Skip to content
Permalink
Browse files
Bug 1280846 - tests: adjust gtests to compile under modular builds, r…
…=franziskus

--HG--
extra : histedit_source : fb4abd45b84a6ecbde7a5de16131b033066f8c11
  • Loading branch information
ueno committed Jun 1, 2017
1 parent 02a9a2f commit c049dad020713f14bcc58e9e91ddc8f15c74ee5d
Show file tree
Hide file tree
Showing 17 changed files with 229 additions and 40 deletions.
@@ -32,6 +32,12 @@ else
DBMLIB = $(DIST)/lib/$(LIB_PREFIX)dbm.$(LIB_SUFFIX)
endif

ifeq ($(NSS_BUILD_UTIL_ONLY),1)
SECTOOL_LIB = $(NULL)
else
SECTOOL_LIB = $(DIST)/lib/$(LIB_PREFIX)sectool.$(LIB_SUFFIX)
endif

ifdef USE_STATIC_LIBS

DEFINES += -DNSS_USE_STATIC_LIBS
@@ -70,20 +76,10 @@ endif
endif

NSS_LIBS_1=
SECTOOL_LIB=
NSS_LIBS_2=
NSS_LIBS_3=
NSS_LIBS_4=

ifneq ($(NSS_BUILD_UTIL_ONLY),1)
SECTOOL_LIB = \
$(DIST)/lib/$(LIB_PREFIX)sectool.$(LIB_SUFFIX) \
$(NULL)
else
SECTOOL_LIB = \
$(NULL)
endif

ifneq ($(NSS_BUILD_SOFTOKEN_ONLY),1)
ifeq ($(OS_ARCH), WINNT)
# breakdown for windows
@@ -121,9 +117,6 @@ NSS_LIBS_1 = \
$(DIST)/lib/$(LIB_PREFIX)ssl.$(LIB_SUFFIX) \
$(DIST)/lib/$(LIB_PREFIX)nss.$(LIB_SUFFIX) \
$(NULL)
SECTOOL_LIB = \
$(DIST)/lib/$(LIB_PREFIX)sectool.$(LIB_SUFFIX) \
$(NULL)
NSS_LIBS_2 = \
$(DIST)/lib/$(LIB_PREFIX)pkcs12.$(LIB_SUFFIX) \
$(DIST)/lib/$(LIB_PREFIX)pkcs7.$(LIB_SUFFIX) \
@@ -201,7 +194,7 @@ ifeq ($(OS_ARCH), WINNT)

# $(PROGRAM) has explicit dependencies on $(EXTRA_LIBS)
EXTRA_LIBS += \
$(DIST)/lib/$(LIB_PREFIX)sectool.$(LIB_SUFFIX) \
$(SECTOOL_LIB) \
$(NSSUTIL_LIB_DIR)/$(IMPORT_LIB_PREFIX)nssutil3$(IMPORT_LIB_SUFFIX) \
$(DIST)/lib/$(IMPORT_LIB_PREFIX)smime3$(IMPORT_LIB_SUFFIX) \
$(DIST)/lib/$(IMPORT_LIB_PREFIX)ssl3$(IMPORT_LIB_SUFFIX) \
@@ -220,7 +213,7 @@ else

# $(PROGRAM) has explicit dependencies on $(EXTRA_LIBS)
EXTRA_LIBS += \
$(DIST)/lib/$(LIB_PREFIX)sectool.$(LIB_SUFFIX) \
$(SECTOOL_LIB) \
$(NULL)

ifeq ($(OS_ARCH), AIX)
@@ -238,13 +231,15 @@ EXTRA_SHARED_LIBS += \
-lplds4 \
-lnspr4 \
$(NULL)
ifndef NSS_BUILD_UTIL_ONLY
ifndef NSS_BUILD_SOFTOKEN_ONLY
EXTRA_SHARED_LIBS += \
-lssl3 \
-lsmime3 \
-lnss3
endif
endif
endif

ifdef SOFTOKEN_LIB_DIR
ifdef NSS_USE_SYSTEM_FREEBL
@@ -0,0 +1,39 @@
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */

#ifndef scoped_ptrs_util_h__
#define scoped_ptrs_util_h__

#include <memory>
#include "pkcs11uri.h"
#include "secoid.h"

struct ScopedDelete {
void operator()(SECAlgorithmID* id) { SECOID_DestroyAlgorithmID(id, true); }
void operator()(SECItem* item) { SECITEM_FreeItem(item, true); }
void operator()(PK11URI* uri) { PK11URI_DestroyURI(uri); }
void operator()(PLArenaPool* arena) { PORT_FreeArena(arena, PR_FALSE); }
};

template <class T>
struct ScopedMaybeDelete {
void operator()(T* ptr) {
if (ptr) {
ScopedDelete del;
del(ptr);
}
}
};

#define SCOPED(x) typedef std::unique_ptr<x, ScopedMaybeDelete<x> > Scoped##x

SCOPED(SECAlgorithmID);
SCOPED(SECItem);
SCOPED(PK11URI);

#undef SCOPED

#endif // scoped_ptrs_util_h__
@@ -14,9 +14,9 @@ INCLUDES += -I$(CORE_DEPTH)/gtests/google_test/gtest/include \
-I$(CORE_DEPTH)/gtests/common \
-I$(CORE_DEPTH)/cpputil

REQUIRES = nspr nss libdbm gtest
REQUIRES = nspr gtest

PROGRAM = certhigh_gtest

EXTRA_LIBS = $(DIST)/lib/$(LIB_PREFIX)gtest.$(LIB_SUFFIX) $(EXTRA_OBJS) \
../common/$(OBJDIR)/gtests$(OBJ_SUFFIX)
$(DIST)/lib/$(LIB_PREFIX)gtestutil.$(LIB_SUFFIX)
@@ -0,0 +1,26 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nspr.h"
#include "secoid.h"

#include <cstdlib>

#define GTEST_HAS_RTTI 0
#include "gtest/gtest.h"

int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);

if (SECOID_Init() != SECSuccess) {
return 1;
}
int rv = RUN_ALL_TESTS();

if (SECOID_Shutdown() != SECSuccess) {
return 1;
}

return rv;
}
@@ -6,9 +6,13 @@ CORE_DEPTH = ../..
DEPTH = ../..
MODULE = nss

CPPSRCS = \
gtests.cc \
$(NULL)
LIBRARY_NAME = gtestutil

ifeq ($(NSS_BUILD_UTIL_ONLY),1)
CPPSRCS = gtests-util.cc
else
CPPSRCS = gtests.cc
endif

INCLUDES += -I$(CORE_DEPTH)/gtests/google_test/gtest/include \
-I$(CORE_DEPTH)/gtests/common \
@@ -17,6 +21,3 @@ INCLUDES += -I$(CORE_DEPTH)/gtests/google_test/gtest/include \
REQUIRES = gtest

EXTRA_LIBS = $(DIST)/lib/$(LIB_PREFIX)gtest.$(LIB_SUFFIX)

# NOTE: this is not actually used but required to build gtests.o
PROGRAM = gtests
@@ -4,14 +4,13 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "secder.h"
#include "secerr.h"

#include <climits>
#include <memory>
#include "nss.h"
#include "pk11pub.h"
#include "secutil.h"

#include "gtest/gtest.h"
#include "scoped_ptrs.h"

namespace nss_test {

@@ -12,7 +12,6 @@
'type': 'executable',
'sources': [
'der_getint_unittest.cc',
'der_private_key_import_unittest.cc',
'der_quickder_unittest.cc',
'<(DEPTH)/gtests/common/gtests.cc'
],
@@ -7,11 +7,12 @@
#include <stdint.h>

#include "gtest/gtest.h"
#include "scoped_ptrs.h"
#include "scoped_ptrs_util.h"

#include "nss.h"
#include "prerror.h"
#include "secasn1.h"
#include "secder.h"
#include "secerr.h"
#include "secitem.h"

@@ -8,17 +8,16 @@ MODULE = nss

CPPSRCS = \
der_getint_unittest.cc \
der_private_key_import_unittest.cc \
der_quickder_unittest.cc \
$(NULL)

INCLUDES += -I$(CORE_DEPTH)/gtests/google_test/gtest/include \
-I$(CORE_DEPTH)/gtests/common \
-I$(CORE_DEPTH)/cpputil

REQUIRES = nspr nss libdbm gtest
REQUIRES = nspr gtest

PROGRAM = der_gtest

EXTRA_LIBS = $(DIST)/lib/$(LIB_PREFIX)gtest.$(LIB_SUFFIX) $(EXTRA_OBJS) \
../common/$(OBJDIR)/gtests$(OBJ_SUFFIX)
$(DIST)/lib/$(LIB_PREFIX)gtestutil.$(LIB_SUFFIX)
@@ -5,14 +5,32 @@
CORE_DEPTH = ..
DEPTH = ..

DIRS = \
LIB_SRCDIRS = \
google_test \
common \
$(NULL)

ifneq ($(NSS_BUILD_WITHOUT_UTIL),1)
UTIL_SRCDIRS = \
util_gtest \
der_gtest \
$(NULL)
endif

ifneq ($(NSS_BUILD_SOFTOKEN_ONLY),1)
ifneq ($(NSS_BUILD_UTIL_ONLY),1)
NSS_SRCDIRS = \
certdb_gtest \
certhigh_gtest \
der_gtest \
util_gtest \
pk11_gtest \
ssl_gtest \
nss_bogo_shim \
$(NULL)
endif
endif

DIRS = \
$(LIB_SRCDIRS) \
$(UTIL_SRCDIRS) \
$(NSS_SRCDIRS) \
$(NULL)
@@ -16,6 +16,7 @@ CPPSRCS = \
pk11_prf_unittest.cc \
pk11_prng_unittest.cc \
pk11_rsapss_unittest.cc \
pk11_der_private_key_import_unittest.cc \
$(NULL)

INCLUDES += -I$(CORE_DEPTH)/gtests/google_test/gtest/include \
@@ -27,5 +28,5 @@ REQUIRES = nspr nss libdbm gtest
PROGRAM = pk11_gtest

EXTRA_LIBS = $(DIST)/lib/$(LIB_PREFIX)gtest.$(LIB_SUFFIX) $(EXTRA_OBJS) \
../common/$(OBJDIR)/gtests$(OBJ_SUFFIX)
$(DIST)/lib/$(LIB_PREFIX)gtestutil.$(LIB_SUFFIX)

0 comments on commit c049dad

Please sign in to comment.