]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Create test_libcommon_build
authorColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Fri, 17 Jun 2011 19:19:11 +0000 (12:19 -0700)
committerColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Tue, 21 Jun 2011 18:40:20 +0000 (11:40 -0700)
Create test_libcommon_build to test for references to g_ceph_context and
other libglobal symbols from within libcommon.

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
src/Makefile.am
src/common/common_init.cc
src/global/global_context.cc
src/test/test_libcommon_build.cc [new file with mode: 0644]

index e3e196c9339f1b9284b670d69505b68cc7431c65..a92f935a125c156da5187d0dae00f030f7f1f6b4 100644 (file)
@@ -22,8 +22,7 @@ if WITH_PROFILER
 EXTRALIBS += -lprofiler
 endif
 
-LIBGLOBAL_LDA = libcommon.a -lpthread -lm $(CRYPTO_LIBS) $(EXTRALIBS)
-LIBCOMMON_LDA = libcommon.a -lpthread -lm $(CRYPTO_LIBS) $(EXTRALIBS)
+LIBGLOBAL_LDA = libglobal.a -lpthread -lm $(CRYPTO_LIBS) $(EXTRALIBS)
 
 # monitor
 cmon_SOURCES = cmon.cc
@@ -149,7 +148,7 @@ endif # WITH_TCMALLOC
 
 # debug targets
 psim_SOURCES = psim.cc
-psim_LDADD = libcommon.a -lpthread -lm $(CRYPTO_LIBS) $(EXTRALIBS)
+psim_LDADD = $(LIBGLOBAL_LDA)
 bin_DEBUGPROGRAMS += psim
 
 test_mutate_SOURCES = test/test_mutate.cc
@@ -157,26 +156,30 @@ test_mutate_LDADD = librados.la -lpthread -lm $(CRYPTO_LIBS) $(EXTRALIBS)
 bin_DEBUGPROGRAMS += test_mutate
 
 testmsgr_SOURCES = testmsgr.cc
-testmsgr_LDADD = libcommon.a -lpthread -lm $(CRYPTO_LIBS) $(EXTRALIBS)
+testmsgr_LDADD = $(LIBGLOBAL_LDA)
 bin_DEBUGPROGRAMS += testmsgr
 
 test_ioctls_SOURCES = client/test_ioctls.c
 bin_DEBUGPROGRAMS += test_ioctls
 
 dupstore_SOURCES = dupstore.cc
-dupstore_LDADD = libos.a libcommon.a -lpthread -lm $(CRYPTO_LIBS) $(EXTRALIBS)
+dupstore_LDADD = libos.a $(LIBGLOBAL_LDA)
 streamtest_SOURCES = streamtest.cc
-streamtest_LDADD = libos.a libcommon.a -lpthread -lm $(CRYPTO_LIBS) $(EXTRALIBS)
+streamtest_LDADD = libos.a $(LIBGLOBAL_LDA)
 bin_DEBUGPROGRAMS += dupstore streamtest
 
 test_trans_SOURCES = test_trans.cc
-test_trans_LDADD = libos.a libcommon.a -lpthread -lm $(CRYPTO_LIBS) $(EXTRALIBS)
+test_trans_LDADD = libos.a $(LIBGLOBAL_LDA)
 bin_DEBUGPROGRAMS += test_trans
 
 testsnaps_SOURCES = test/osd/TestSnaps.cc
-testsnaps_LDADD = librados.la -lpthread -lm $(CRYPTO_LIBS) $(EXTRALIBS)
+testsnaps_LDADD = librados.la $(LIBGLOBAL_LDA)
 bin_DEBUGPROGRAMS += testsnaps
 
+test_libcommon_build_SOURCES = test/test_libcommon_build.cc $(libcommon_files)
+test_libcommon_build_LDADD = -lpthread -lm $(CRYPTO_LIBS) $(EXTRALIBS)
+bin_DEBUGPROGRAMS += test_libcommon_build
+
 ##########
 BUILT_SOURCES =
 lib_LTLIBRARIES = 
@@ -185,7 +188,7 @@ lib_LTLIBRARIES =
 libceph_la_SOURCES = \
        libceph.cc \
        client/Client.cc \
-       ${libcommon_a_SOURCES} \
+       ${libglobal_a_SOURCES} \
        ${libosdc_a_SOURCES}
 libceph_la_CFLAGS= ${CRYPTO_CFLAGS} ${AM_CFLAGS}
 libceph_la_CXXFLAGS= ${CRYPTO_CXXFLAGS} ${AM_CXXFLAGS}
@@ -213,7 +216,7 @@ bin_DEBUGPROGRAMS += testsignal_handlers
 librados_SOURCES = \
        librados.cc \
        osdc/Objecter.cc \
-       ${libcommon_a_SOURCES}
+       ${libglobal_a_SOURCES}
 librados_la_SOURCES = ${librados_SOURCES}
 librados_la_CFLAGS = ${CRYPTO_CFLAGS} ${AM_CFLAGS}
 librados_la_CXXFLAGS = ${CRYPTO_CXXFLAGS} ${AM_CXXFLAGS}
@@ -229,7 +232,7 @@ librados_a_CXXFLAGS = ${CRYPTO_CXXFLAGS} ${AM_CXXFLAGS}
 if WITH_RADOSGW
 librgw_SOURCES = \
        $(my_libradosgw_src) \
-       ${libcommon_a_SOURCES}
+       ${libglobal_a_SOURCES}
 librgw_la_SOURCES = ${librgw_SOURCES}
 librgw_la_CFLAGS = ${CRYPTO_CFLAGS} ${AM_CFLAGS}
 librgw_la_CXXFLAGS = ${CRYPTO_CXXFLAGS} ${AM_CXXFLAGS}
@@ -325,12 +328,12 @@ bin_DEBUGPROGRAMS += rgw_multiparser
 endif
 
 testcrypto_SOURCES = testcrypto.cc
-testcrypto_LDADD = libcommon.a $(CRYPTO_LIBS) -lpthread -lm $(EXTRALIBS)
+testcrypto_LDADD =  $(LIBGLOBAL_LDA)
 testcrypto_CXXFLAGS = ${CRYPTO_CXXFLAGS} ${AM_CXXFLAGS}
 bin_DEBUGPROGRAMS += testcrypto
 
 testkeys_SOURCES = testkeys.cc
-testkeys_LDADD = libmon.a libcommon.a -lpthread -lm $(CRYPTO_LIBS) $(EXTRALIBS)
+testkeys_LDADD = libmon.a $(LIBGLOBAL_LDA) 
 testkeys_CXXFLAGS = ${AM_CXXFLAGS}
 bin_DEBUGPROGRAMS += testkeys
 
@@ -412,7 +415,7 @@ unittest_librados_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
 check_PROGRAMS += unittest_librados
 
 unittest_bufferlist_SOURCES = test/bufferlist.cc
-unittest_bufferlist_LDADD = ${UNITTEST_LDADD} libcommon.a $(CRYPTO_LIBS)
+unittest_bufferlist_LDADD = ${UNITTEST_LDADD} $(LIBGLOBAL_LDA) 
 unittest_bufferlist_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
 check_PROGRAMS += unittest_bufferlist
 
@@ -424,38 +427,38 @@ check_PROGRAMS += unittest_crypto
 
 unittest_ceph_crypto_SOURCES = test/ceph_crypto.cc
 unittest_ceph_crypto_LDFLAGS = ${CRYPTO_LDFLAGS} ${AM_LDFLAGS}
-unittest_ceph_crypto_LDADD = libcommon.a ${CRYPTO_LIBS} ${UNITTEST_LDADD}
+unittest_ceph_crypto_LDADD = ${UNITTEST_LDADD} $(LIBGLOBAL_LDA)
 unittest_ceph_crypto_CXXFLAGS = ${CRYPTO_CXXFLAGS} ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
 check_PROGRAMS += unittest_ceph_crypto
 
 unittest_utf8_SOURCES = test/utf8.cc
 unittest_utf8_LDFLAGS = -pthread ${AM_LDFLAGS}
-unittest_utf8_LDADD = libcommon.a $(CRYPTO_LIBS) ${UNITTEST_LDADD}
+unittest_utf8_LDADD = ${UNITTEST_LDADD} $(LIBGLOBAL_LDA)
 unittest_utf8_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
 check_PROGRAMS += unittest_utf8
 
 unittest_rgw_escape_SOURCES = test/rgw_escape.cc rgw/rgw_escape.c
 unittest_rgw_escape_LDFLAGS = -pthread ${AM_LDFLAGS}
-unittest_rgw_escape_LDADD = libcommon.a $(CRYPTO_LIBS) ${UNITTEST_LDADD}
+unittest_rgw_escape_LDADD = ${UNITTEST_LDADD} $(LIBGLOBAL_LDA)
 unittest_rgw_escape_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
 check_PROGRAMS += unittest_rgw_escape
 
 unittest_strtol_SOURCES = test/strtol.cc
 unittest_strtol_LDFLAGS = -pthread ${AM_LDFLAGS}
-unittest_strtol_LDADD = libcommon.a $(CRYPTO_LIBS) ${UNITTEST_LDADD}
+unittest_strtol_LDADD = ${UNITTEST_LDADD} $(LIBGLOBAL_LDA)
 unittest_strtol_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
 check_PROGRAMS += unittest_strtol
 
 unittest_confutils_SOURCES = test/confutils.cc
 unittest_confutils_LDFLAGS = -pthread ${AM_LDFLAGS}
-unittest_confutils_LDADD = libcommon.a $(CRYPTO_LIBS) ${UNITTEST_LDADD}
+unittest_confutils_LDADD = ${UNITTEST_LDADD} $(LIBGLOBAL_LDA)
 unittest_confutils_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
 check_PROGRAMS += unittest_confutils
 
 if WITH_RADOSGW
 unittest_librgw_SOURCES = test/librgw.cc
 unittest_librgw_LDFLAGS = -pthread -lcurl ${AM_LDFLAGS}
-unittest_librgw_LDADD =  librgw.a ${CRYPTO_LIBS} libcommon.a ${UNITTEST_LDADD} -lexpat -lfcgi
+unittest_librgw_LDADD =  librgw.a ${UNITTEST_LDADD} -lexpat -lfcgi $(LIBGLOBAL_LDA)
 unittest_librgw_CXXFLAGS = ${CRYPTO_CFLAGS} ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS}
 check_PROGRAMS += unittest_librgw
 endif
@@ -517,7 +520,7 @@ EXTRALIBS += -lgcov
 endif
 
 noinst_LIBRARIES = \
-       libcommon.a \
+       libglobal.a \
        libmon.a libmds.a libosdc.a libosd.a libclient.a \
        libos.a librados.a librbd.a
 
@@ -591,12 +594,15 @@ clean-local:
        -rm *.so *.gcno *.gcda
 
 # libs
-libcommon_a_SOURCES = \
-       ./ceph_ver.c \
-       $(libcommon_files)
+libglobal_a_SOURCES = \
+       $(libcommon_files) \
+       global/global_context.cc \
+       global/global_init.cc \
+       global/pidfile.cc \
+       global/signal_handler.cc
 
-libcommon_a_CFLAGS= ${CRYPTO_CFLAGS} ${AM_CFLAGS}
-libcommon_a_CXXFLAGS= ${CRYPTO_CXXFLAGS} ${AM_CXXFLAGS}
+libglobal_a_CFLAGS= ${CRYPTO_CFLAGS} ${AM_CFLAGS}
+libglobal_a_CXXFLAGS= ${CRYPTO_CXXFLAGS} ${AM_CXXFLAGS}
 
 crush_files = \
        crush/builder.c \
@@ -607,6 +613,7 @@ crush_files = \
 
 # this list ommits the ceph_ver.c file
 libcommon_files = \
+       ./ceph_ver.c \
        auth/AuthAuthorizeHandler.cc \
        auth/AuthClientHandler.cc \
        auth/AuthSupported.cc \
@@ -643,14 +650,11 @@ libcommon_files = \
        osd/OSDMap.cc \
        mds/MDSMap.cc \
        common/common_init.cc \
-       global/global_init.cc \
-       global/global_context.cc \
        common/ceph_argparse.cc \
        common/ceph_context.cc \
        common/buffer.cc \
        common/code_environment.cc \
        common/signal.cc \
-       global/signal_handler.cc \
        common/simple_spin.cc \
        common/Thread.cc \
        include/ceph_fs.cc \
@@ -667,7 +671,6 @@ libcommon_files = \
        common/hex.cc \
        common/entity_name.cc \
        common/ceph_crypto.cc \
-       global/pidfile.cc \
        include/addr_parsing.c \
        $(crush_files)
 
index 8627570eea5c9be2365dbf0a04cf112449b7e51b..0a01cee3b296f2bc9dc9c86da20024e5a4cd7874 100644 (file)
@@ -29,6 +29,8 @@
 #define _STR(x) #x
 #define STRINGIFY(x) _STR(x)
 
+CephContext *get_global_context(void);
+
 CephContext *common_preinit(const CephInitParameters &iparams,
                          enum code_environment_t code_env, int flags)
 {
@@ -37,7 +39,7 @@ CephContext *common_preinit(const CephInitParameters &iparams,
 
   // Create a configuration object
   // TODO: de-globalize
-  CephContext *cct = &g_ceph_context; //new CephContext();
+  CephContext *cct = get_global_context(); //new CephContext();
   md_config_t *conf = cct->_conf;
   // add config observers here
 
index 651999b91eb7ab3c8ccd085db94afca54761cbd8..3ae0b31045cc85bb706f3b757cf5660fd11bc79b 100644 (file)
@@ -21,3 +21,8 @@
 CephContext g_ceph_context __attribute__((init_priority(103))) (0);
 md_config_t *g_conf(g_ceph_context._conf);
 DoutStreambuf <char, std::basic_string<char>::traits_type> *_doss(g_ceph_context._doss);
+
+CephContext *get_global_context(void)
+{
+  return &g_ceph_context;
+}
diff --git a/src/test/test_libcommon_build.cc b/src/test/test_libcommon_build.cc
new file mode 100644 (file)
index 0000000..bdcfb99
--- /dev/null
@@ -0,0 +1,18 @@
+#include "common/common_init.h"
+
+CephContext *get_global_context(void)
+{
+  return NULL;
+}
+
+/* This program exists to test that we can build libcommon without
+ * referencing g_ceph_context.
+ *
+ * This program will go away as soon as we actually don't use g_ceph_context in
+ * more programs. Obviously, at that point, those programs will provide an
+ * equivalent test.
+ */
+int main(int argc, char **argv)
+{
+  return 0;
+}