summaryrefslogtreecommitdiff
path: root/external_tests
diff options
context:
space:
mode:
Diffstat (limited to 'external_tests')
-rw-r--r--external_tests/google_test/Makefile11
-rw-r--r--external_tests/ssl_gtest/Makefile16
-rw-r--r--external_tests/ssl_gtest/databuffer.h5
-rw-r--r--external_tests/ssl_gtest/ssl_loopback_unittest.cc4
-rw-r--r--external_tests/ssl_gtest/tls_agent.cc25
-rw-r--r--external_tests/ssl_gtest/tls_agent.h12
-rw-r--r--external_tests/ssl_gtest/tls_connect.cc16
-rw-r--r--external_tests/ssl_gtest/tls_parser.h4
8 files changed, 62 insertions, 31 deletions
diff --git a/external_tests/google_test/Makefile b/external_tests/google_test/Makefile
index ac7276e78..8a3c1fae6 100644
--- a/external_tests/google_test/Makefile
+++ b/external_tests/google_test/Makefile
@@ -42,4 +42,13 @@ include $(CORE_DEPTH)/coreconf/rules.mk
# (7) Execute "local" rules. (OPTIONAL). #
#######################################################################
-MKSHLIB = $(CCC) $(DSO_LDOPTS) $(DARWIN_SDK_SHLIBFLAGS)
+MKSHLIB = $(CCC) $(DSO_LDOPTS) $(DARWIN_SDK_SHLIBFLAGS)
+ifeq (WINNT,$(OS_ARCH))
+ # -MTd (not -MD) because that makes it link to the right library
+ # -EHsc because gtest has exception handlers
+ OS_CFLAGS := $(filterout -MD,$(OS_CFLAGS))
+ OS_CFLAGS += -MTd -EHsc
+ # On windows, we need to create the parent directory
+ # Needed because we include files from a subdirectory
+ MAKE_OBJDIR = $(INSTALL) -D $(dir $@)
+endif
diff --git a/external_tests/ssl_gtest/Makefile b/external_tests/ssl_gtest/Makefile
index 9b9ed8915..61965a20a 100644
--- a/external_tests/ssl_gtest/Makefile
+++ b/external_tests/ssl_gtest/Makefile
@@ -42,7 +42,19 @@ include $(CORE_DEPTH)/coreconf/rules.mk
# (7) Execute "local" rules. (OPTIONAL). #
#######################################################################
-MKPROG = $(CXX)
-CFLAGS += -std=c++0x
+MKPROG = $(CCC)
include ../../cmd/platrules.mk
+ifeq (WINNT,$(OS_ARCH))
+ # -MTd (not -MD) because that makes it link to the right library
+ # -EHsc because gtest has exception handlers
+ OS_CFLAGS := $(filterout -MD,$(OS_CFLAGS))
+ OS_CFLAGS += -MTd -EHsc -nologo
+ # http://www.suodenjoki.dk/us/archive/2010/min-max.htm
+ OS_CFLAGS += -DNOMINMAX
+
+ # Linking to winsock to get htonl
+ OS_LIBS += Ws2_32.lib
+else
+ CFLAGS += -std=c++0x
+endif
diff --git a/external_tests/ssl_gtest/databuffer.h b/external_tests/ssl_gtest/databuffer.h
index c3d3bb9be..5735c2cef 100644
--- a/external_tests/ssl_gtest/databuffer.h
+++ b/external_tests/ssl_gtest/databuffer.h
@@ -12,6 +12,11 @@
#include <cstring>
#include <iomanip>
#include <iostream>
+#if defined(WIN32) || defined(WIN64)
+#include <winsock2.h>
+#else
+#include <arpa/inet.h>
+#endif
namespace nss_test {
diff --git a/external_tests/ssl_gtest/ssl_loopback_unittest.cc b/external_tests/ssl_gtest/ssl_loopback_unittest.cc
index a4a9e78ec..deb690a8f 100644
--- a/external_tests/ssl_gtest/ssl_loopback_unittest.cc
+++ b/external_tests/ssl_gtest/ssl_loopback_unittest.cc
@@ -318,10 +318,10 @@ TEST_P(TlsConnectStream, ShortRead) {
server_->SendData(1200, 1200);
// Read the first tranche.
WAIT_(client_->received_bytes() == 1024, 2000);
- ASSERT_EQ(1024, client_->received_bytes());
+ ASSERT_EQ(1024U, client_->received_bytes());
// The second tranche should now immediately be available.
client_->ReadBytes();
- ASSERT_EQ(1200, client_->received_bytes());
+ ASSERT_EQ(1200U, client_->received_bytes());
}
INSTANTIATE_TEST_CASE_P(VariantsStream10, TlsConnectGeneric,
diff --git a/external_tests/ssl_gtest/tls_agent.cc b/external_tests/ssl_gtest/tls_agent.cc
index ed2ef04a2..a12037a15 100644
--- a/external_tests/ssl_gtest/tls_agent.cc
+++ b/external_tests/ssl_gtest/tls_agent.cc
@@ -27,7 +27,7 @@ TlsAgent::TlsAgent(const std::string& name, Role role, Mode mode, SSLKEAType kea
adapter_(nullptr),
ssl_fd_(nullptr),
role_(role),
- state_(INIT),
+ state_(STATE_INIT),
falsestart_enabled_(false),
expected_version_(0),
expected_cipher_suite_(0),
@@ -122,7 +122,7 @@ void TlsAgent::StartConnect() {
SECStatus rv;
rv = SSL_ResetHandshake(ssl_fd_, role_ == SERVER ? PR_TRUE : PR_FALSE);
EXPECT_EQ(SECSuccess, rv);
- SetState(CONNECTING);
+ SetState(STATE_CONNECTING);
}
void TlsAgent::EnableSomeEcdheCiphers() {
@@ -192,12 +192,12 @@ void TlsAgent::SetExpectedReadError(bool err) {
}
void TlsAgent::CheckKEAType(SSLKEAType type) const {
- EXPECT_EQ(CONNECTED, state_);
+ EXPECT_EQ(STATE_CONNECTED, state_);
EXPECT_EQ(type, csinfo_.keaType);
}
void TlsAgent::CheckAuthType(SSLAuthType type) const {
- EXPECT_EQ(CONNECTED, state_);
+ EXPECT_EQ(STATE_CONNECTED, state_);
EXPECT_EQ(type, csinfo_.authAlgorithm);
}
@@ -252,7 +252,7 @@ void TlsAgent::CheckSrtp() const {
}
void TlsAgent::CheckErrorCode(int32_t expected) const {
- EXPECT_EQ(ERROR, state_);
+ EXPECT_EQ(STATE_ERROR, state_);
EXPECT_EQ(expected, error_code_);
}
@@ -315,7 +315,7 @@ void TlsAgent::Connected() {
rv = SSL_GetCipherSuiteInfo(info_.cipherSuite, &csinfo_, sizeof(csinfo_));
EXPECT_EQ(SECSuccess, rv);
- SetState(CONNECTED);
+ SetState(STATE_CONNECTED);
}
void TlsAgent::Handshake() {
@@ -344,15 +344,15 @@ void TlsAgent::Handshake() {
default:
LOG("Handshake failed with error " << err);
error_code_ = err;
- SetState(ERROR);
+ SetState(STATE_ERROR);
return;
}
}
void TlsAgent::PrepareForRenegotiate() {
- EXPECT_EQ(CONNECTED, state_);
+ EXPECT_EQ(STATE_CONNECTED, state_);
- SetState(CONNECTING);
+ SetState(STATE_CONNECTING);
}
void TlsAgent::StartRenegotiate() {
@@ -377,7 +377,7 @@ void TlsAgent::SendData(size_t bytes, size_t blocksize) {
LOG("Writing " << tosend << " bytes");
int32_t rv = PR_Write(ssl_fd_, block, tosend);
- ASSERT_EQ(tosend, rv);
+ ASSERT_EQ(tosend, static_cast<size_t>(rv));
bytes -= tosend;
}
@@ -396,8 +396,9 @@ void TlsAgent::ReadBytes() {
error_code_ = err;
} else {
ASSERT_LE(0, rv);
- LOG("Read " << rv << " bytes");
- for (size_t i = 0; i < rv; ++i) {
+ size_t count = static_cast<size_t>(rv);
+ LOG("Read " << count << " bytes");
+ for (size_t i = 0; i < count; ++i) {
ASSERT_EQ(recv_ctr_ & 0xff, block[i]);
recv_ctr_++;
}
diff --git a/external_tests/ssl_gtest/tls_agent.h b/external_tests/ssl_gtest/tls_agent.h
index bfa39107f..ecf614d5f 100644
--- a/external_tests/ssl_gtest/tls_agent.h
+++ b/external_tests/ssl_gtest/tls_agent.h
@@ -31,7 +31,7 @@ enum SessionResumptionMode {
class TlsAgent : public PollTarget {
public:
enum Role { CLIENT, SERVER };
- enum State { INIT, CONNECTING, CONNECTED, ERROR };
+ enum State { STATE_INIT, STATE_CONNECTING, STATE_CONNECTED, STATE_ERROR };
TlsAgent(const std::string& name, Role role, Mode mode, SSLKEAType kea);
virtual ~TlsAgent();
@@ -96,19 +96,19 @@ class TlsAgent : public PollTarget {
uint16_t min_version() const { return vrange_.min; }
uint16_t max_version() const { return vrange_.max; }
uint16_t version() const {
- EXPECT_EQ(CONNECTED, state_);
+ EXPECT_EQ(STATE_CONNECTED, state_);
return info_.protocolVersion;
}
bool cipher_suite(int16_t* cipher_suite) const {
- if (state_ != CONNECTED) return false;
+ if (state_ != STATE_CONNECTED) return false;
*cipher_suite = info_.cipherSuite;
return true;
}
std::string cipher_suite_name() const {
- if (state_ != CONNECTED) return "UNKNOWN";
+ if (state_ != STATE_CONNECTED) return "UNKNOWN";
return csinfo_.cipherSuiteName;
}
@@ -150,10 +150,10 @@ class TlsAgent : public PollTarget {
void ReadableCallback_int() {
LOG("Readable");
switch (state_) {
- case CONNECTING:
+ case STATE_CONNECTING:
Handshake();
break;
- case CONNECTED:
+ case STATE_CONNECTED:
ReadBytes();
break;
default:
diff --git a/external_tests/ssl_gtest/tls_connect.cc b/external_tests/ssl_gtest/tls_connect.cc
index e13e094ce..4084cecc5 100644
--- a/external_tests/ssl_gtest/tls_connect.cc
+++ b/external_tests/ssl_gtest/tls_connect.cc
@@ -131,8 +131,8 @@ void TlsConnectTestBase::Handshake() {
client_->Handshake();
server_->Handshake();
- ASSERT_TRUE_WAIT((client_->state() != TlsAgent::CONNECTING) &&
- (server_->state() != TlsAgent::CONNECTING),
+ ASSERT_TRUE_WAIT((client_->state() != TlsAgent::STATE_CONNECTING) &&
+ (server_->state() != TlsAgent::STATE_CONNECTING),
5000);
}
@@ -150,8 +150,8 @@ void TlsConnectTestBase::CheckConnected() {
server_->max_version()),
client_->version());
- EXPECT_EQ(TlsAgent::CONNECTED, client_->state());
- EXPECT_EQ(TlsAgent::CONNECTED, server_->state());
+ EXPECT_EQ(TlsAgent::STATE_CONNECTED, client_->state());
+ EXPECT_EQ(TlsAgent::STATE_CONNECTED, server_->state());
int16_t cipher_suite1, cipher_suite2;
bool ret = client_->cipher_suite(&cipher_suite1);
@@ -180,8 +180,8 @@ void TlsConnectTestBase::ConnectExpectFail() {
client_->StartConnect();
Handshake();
- ASSERT_EQ(TlsAgent::ERROR, client_->state());
- ASSERT_EQ(TlsAgent::ERROR, server_->state());
+ ASSERT_EQ(TlsAgent::STATE_ERROR, client_->state());
+ ASSERT_EQ(TlsAgent::STATE_ERROR, server_->state());
}
void TlsConnectTestBase::SetExpectedVersion(uint16_t version) {
@@ -252,8 +252,8 @@ void TlsConnectTestBase::SendReceive() {
WAIT_(
client_->received_bytes() == 50 &&
server_->received_bytes() == 50, 2000);
- ASSERT_EQ(50, client_->received_bytes());
- ASSERT_EQ(50, server_->received_bytes());
+ ASSERT_EQ(50U, client_->received_bytes());
+ ASSERT_EQ(50U, server_->received_bytes());
}
TlsConnectGeneric::TlsConnectGeneric()
diff --git a/external_tests/ssl_gtest/tls_parser.h b/external_tests/ssl_gtest/tls_parser.h
index 3e6ac24c6..a17933047 100644
--- a/external_tests/ssl_gtest/tls_parser.h
+++ b/external_tests/ssl_gtest/tls_parser.h
@@ -10,7 +10,11 @@
#include <memory>
#include <cstdint>
#include <cstring>
+#if defined(WIN32) || defined(WIN64)
+#include <winsock2.h>
+#else
#include <arpa/inet.h>
+#endif
#include "databuffer.h"
namespace nss_test {