summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/CMakeLists.txt18
-rw-r--r--tests/stubs.h7
-rw-r--r--tests/testutil.c22
3 files changed, 28 insertions, 19 deletions
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);
}