From eb328da56c3fc7167b536dcb206df0abb0f4a9b9 Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Fri, 13 Nov 2020 22:31:18 -0800 Subject: fixes #1087 CMakeLists structural improvements desired This doesn't modularize all the tests yet, but it goes a long way in the right direction. --- tests/CMakeLists.txt | 18 +++++++++--------- tests/stubs.h | 7 ++++--- tests/testutil.c | 22 +++++++++++++++------- 3 files changed, 28 insertions(+), 19 deletions(-) (limited to 'tests') diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index a7835826..aa7260ac 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -53,10 +53,10 @@ if (NNG_TESTS) set(NNG_TEST_PORT 13000) macro(add_nng_test NAME TIMEOUT) add_executable(${NAME} ${NAME}.c convey.c) - target_link_libraries(${NAME} ${PROJECT_NAME}_testlib ${THRLIB}) - add_test(NAME ${PROJECT_NAME}.${NAME} COMMAND ${NAME} -v -p TEST_PORT=${NNG_TEST_PORT}) + target_link_libraries(${NAME} nng_testing ${THRLIB}) + add_test(NAME nng.${NAME} COMMAND ${NAME} -v -p TEST_PORT=${NNG_TEST_PORT}) math(EXPR TIMEOUT ${TIMEOUT}*${TIMEOUT_FACTOR}) - set_tests_properties(${PROJECT_NAME}.${NAME} PROPERTIES TIMEOUT ${TIMEOUT}) + set_tests_properties(nng.${NAME} PROPERTIES TIMEOUT ${TIMEOUT}) math(EXPR NNG_TEST_PORT "${NNG_TEST_PORT}+20") endmacro(add_nng_test) @@ -65,12 +65,12 @@ if (NNG_TESTS) # should work and which shouldn't. macro(add_nng_compat_test NAME TIMEOUT) add_executable(${NAME} ${NAME}.c compat_testutil.c) - target_link_libraries(${NAME} ${PROJECT_NAME}_testlib) + target_link_libraries(${NAME} nng_testing) target_include_directories(${NAME} PRIVATE ${PROJECT_SOURCE_DIR}/src/compat ${PROJECT_SOURCE_DIR}/include) - add_test(NAME ${PROJECT_NAME}.${NAME} COMMAND ${NAME} ${NNG_TEST_PORT}) - set_tests_properties(${PROJECT_NAME}.${NAME} PROPERTIES TIMEOUT ${TIMEOUT}) + add_test(NAME nng.${NAME} COMMAND ${NAME} ${NNG_TEST_PORT}) + set_tests_properties(nng.${NAME} PROPERTIES TIMEOUT ${TIMEOUT}) math(EXPR NNG_TEST_PORT "${NNG_TEST_PORT}+20") endmacro(add_nng_compat_test) @@ -78,9 +78,9 @@ if (NNG_TESTS) if (NOT NNG_ENABLE_COVERAGE) enable_language(CXX) add_executable(${NAME} ${NAME}.cc) - target_link_libraries(${NAME} ${PROJECT_NAME}_testlib) - add_test(NAME ${PROJECT_NAME}.${NAME} COMMAND ${NAME} ${TEST_PORT}) - set_tests_properties(${PROJECT_NAME}.${NAME} PROPERTIES TIMEOUT ${TIMEOUT}) + target_link_libraries(${NAME} nng_testing) + add_test(NAME nng.${NAME} COMMAND ${NAME} ${TEST_PORT}) + set_tests_properties(nng.${NAME} PROPERTIES TIMEOUT ${TIMEOUT}) math(EXPR TEST_PORT "${NNG_TEST_PORT}+20") endif () endmacro(add_nng_cpp_test) diff --git a/tests/stubs.h b/tests/stubs.h index 56193cb3..8b230705 100644 --- a/tests/stubs.h +++ b/tests/stubs.h @@ -84,9 +84,10 @@ fdready(int fd) uint16_t test_htons(uint16_t in) { -#ifdef NNG_LITTLE_ENDIAN - in = ((in >> 8) & 0xff) | ((in & 0xff) << 8); -#endif + short one = 1; + if (*((char *)(void *)&one) == 1) { + in = ((in / 256) + ((in % 256) * 256)); + } return (in); } diff --git a/tests/testutil.c b/tests/testutil.c index ce9978ce..ea8386b1 100644 --- a/tests/testutil.c +++ b/tests/testutil.c @@ -114,22 +114,30 @@ testutil_pollfd(int fd) return (false); } +bool +testutil_is_little_endian(void) +{ + uint16_t num = 0x1; + uint8_t *ptr = (uint8_t *) (void *) (&num); + return (ptr[0] == 1); +} + uint16_t testutil_htons(uint16_t in) { -#ifdef NNG_LITTLE_ENDIAN - in = ((in >> 8u) & 0xffu) | ((in & 0xffu) << 8u); -#endif + if (testutil_is_little_endian()) { + in = ((in / 0x100) + ((in % 0x100) * 0x100)); + } return (in); } uint32_t testutil_htonl(uint32_t in) { -#ifdef NNG_LITTLE_ENDIAN - in = ((in >> 24u) & 0xffu) | ((in >> 8u) & 0xff00u) | - ((in << 8u) & 0xff0000u) | ((in << 24u) & 0xff000000u); -#endif + if (testutil_is_little_endian()) { + in = ((in >> 24u) & 0xffu) | ((in >> 8u) & 0xff00u) | + ((in << 8u) & 0xff0000u) | ((in << 24u) & 0xff000000u); + } return (in); } -- cgit v1.2.3-70-g09d2