diff --git a/CMakeLists.txt b/CMakeLists.txt index a669c4ba..938f0c2b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -140,8 +140,6 @@ cmake_pop_check_state() # Checks for libraries. -# Additional libraries required for tests. -set(TEST_LIBRARIES) # Additional libraries required for programs under src directory. set(APP_LIBRARIES) @@ -163,6 +161,7 @@ endif() find_package(CUnit 2.1) if(CUNIT_FOUND) + enable_testing() set(HAVE_CUNIT 1) else() set(HAVE_CUNIT 0) @@ -457,7 +456,6 @@ endif() # # propagate $enable_static to tests/Makefile.am # AM_CONDITIONAL([ENABLE_STATIC], [test "x$enable_static" = "xyes"]) # -# AC_SUBST([TESTLDADD]) # AC_SUBST([APPLDFLAGS]) add_definitions(-DHAVE_CONFIG_H) @@ -519,10 +517,8 @@ add_subdirectory(src) #add_subdirectory(src/includes) add_subdirectory(examples) add_subdirectory(python) -if(0) add_subdirectory(tests) #add_subdirectory(tests/testdata) -endif() add_subdirectory(integration-tests) add_subdirectory(doc) add_subdirectory(contrib) diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 114749b1..a7520f5b 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -24,7 +24,8 @@ set(NGHTTP2_SOURCES nghttp2_http.c ) -add_library(nghttp2 SHARED ${NGHTTP2_SOURCES}) +add_library(nghttp2-obj OBJECT ${NGHTTP2_SOURCES}) +add_library(nghttp2 SHARED $) #target_link_libraries(nghttp2 ...) set_target_properties(nghttp2 PROPERTIES COMPILE_FLAGS "${WARNCFLAGS} ${EXTRACFLAG}" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 81c2cb59..4057ac86 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -155,23 +155,30 @@ if(ENABLE_APP) if(HAVE_CUNIT) # check_PROGRAMS += nghttpx-unittest - # nghttpx_unittest_SOURCES = shrpx-unittest.cc - # shrpx_ssl_test.cc - # shrpx_downstream_test.cc - # shrpx_config_test.cc - # shrpx_http_test.cc - # http2_test.cc - # util_test.cc - # nghttp2_gzip_test.c - # nghttp2_gzip.c - # buffer_test.cc - # memchunk_test.cc - # template_test.cc - # base64_test.cc - # nghttpx_unittest_CPPFLAGS = ${AM_CPPFLAGS} - # -DNGHTTP2_TESTS_DIR=\"$(top_srcdir)/tests\" - # nghttpx_unittest_LDADD = libnghttpx.a ${LDADD} @CUNIT_LIBS@ @TESTLDADD@ - # + set(NGHTTPX_UNITTEST_SOURCES + shrpx-unittest.cc + shrpx_ssl_test.cc + shrpx_downstream_test.cc + shrpx_config_test.cc + shrpx_http_test.cc + http2_test.cc + util_test.cc + nghttp2_gzip_test.c + nghttp2_gzip.c + buffer_test.cc + memchunk_test.cc + template_test.cc + base64_test.cc + ) + add_executable(nghttpx-unittest EXCLUDE_FROM_ALL + ${NGHTTPX_UNITTEST_SOURCES} + $ + ) + target_include_directories(nghttpx-unittest PRIVATE ${CUNIT_INCLUDE_DIRS}) + target_compile_definitions(nghttpx-unittest + PRIVATE "-DNGHTTP2_TESTS_DIR=\"$(CMAKE_SOURCE_DIR)/tests\"" + ) + target_link_libraries(nghttpx-unittest nghttpx ${CUNIT_LIBRARIES}) # if HAVE_MRUBY # nghttpx_unittest_CPPFLAGS += # -I${top_srcdir}/third-party/mruby/include @LIBMRUBY_CFLAGS@ @@ -184,7 +191,7 @@ if(ENABLE_APP) # nghttpx_unittest_LDADD += ${top_builddir}/third-party/libneverbleed.la # endif # HAVE_NEVERBLEED # - # TESTS += nghttpx-unittest + add_test(nghttpx-unittest nghttpx-unittest) endif() add_executable(nghttp ${NGHTTP_SOURCES} $) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 00000000..1ffa16c7 --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,53 @@ +# XXX testdata/: EXTRA_DIST = cacert.pem index.html privkey.pem +if(HAVE_CUNIT) + # XXX replace this by lists (WARNCFLAGS_list) + string(REPLACE " " ";" c_flags "${WARNCFLAGS}") + add_compile_options(${c_flags}) + + include_directories( + "${CMAKE_SOURCE_DIR}/lib/includes" + "${CMAKE_SOURCE_DIR}/lib" + "${CMAKE_SOURCE_DIR}/src/includes" + "${CMAKE_BINARY_DIR}/lib/includes" + ${CUNIT_INCLUDE_DIRS} + ) + + set(MAIN_SOURCES + main.c nghttp2_pq_test.c nghttp2_map_test.c nghttp2_queue_test.c + nghttp2_test_helper.c + nghttp2_frame_test.c + nghttp2_stream_test.c + nghttp2_session_test.c + nghttp2_hd_test.c + nghttp2_npn_test.c + nghttp2_helper_test.c + nghttp2_buf_test.c + ) + + add_executable(main EXCLUDE_FROM_ALL + ${MAIN_SOURCES} + $ + ) + target_include_directories(main PRIVATE ${CUNIT_INCLUDE_DIRS}) + target_link_libraries(main ${CUNIT_LIBRARIES}) + add_test(main main) + + if(ENABLE_FAILMALLOC) + set(FAILMALLOC_SOURCES + failmalloc.c failmalloc_test.c + malloc_wrapper.c + nghttp2_test_helper.c + ) + add_executable(failmalloc EXCLUDE_FROM_ALL + ${FAILMALLOC_SOURCES} + $ + ) + target_link_libraries(failmalloc ${CUNIT_LIBRARIES}) + add_test(failmalloc failmalloc) + endif() + + if(ENABLE_APP) + # EXTRA_DIST = end_to_end.py + # TESTS += end_to_end.py + endif() +endif()