From f115f731c3cdf103439a505d02b74314ef9620a9 Mon Sep 17 00:00:00 2001 From: Ruben Ayrapetyan Date: Mon, 15 Jun 2015 22:10:10 +0300 Subject: [PATCH] Switch unit tests to jerry-libc. JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com --- CMakeLists.txt | 9 ++++--- jerry-libc/CMakeLists.txt | 1 + tests/unit/test-api.cpp | 2 ++ tests/unit/test-common.h | 39 +++++++++++++++++----------- tests/unit/test-heap.cpp | 2 +- tests/unit/test-literal-storage.cpp | 2 +- tests/unit/test-number-to-string.cpp | 2 ++ tests/unit/test-parser.cpp | 2 ++ tests/unit/test-pool.cpp | 2 +- tests/unit/test-poolman.cpp | 2 +- tests/unit/test-recordset.cpp | 2 +- tests/unit/test-string-to-number.cpp | 2 ++ 12 files changed, 44 insertions(+), 23 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6d2a3eb69..c2b2a9ca2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -234,7 +234,7 @@ project (Jerry CXX C ASM) set(FLAGS_COMMON_RELEASE "-Os -nostdlib") # Unit tests - set(FLAGS_COMMON_UNITTESTS "-O3 -nodefaultlibs") + set(FLAGS_COMMON_UNITTESTS "-O3 -nostdlib") # Include directories # Core interface @@ -310,8 +310,9 @@ project (Jerry CXX C ASM) add_subdirectory(plugins) # Targets declaration + string(TOLOWER "${PLATFORM_EXT}" PLATFORM_L) + function(declare_targets_for_build_mode BUILD_MODE) - string(TOLOWER "${PLATFORM_EXT}" PLATFORM_L) set(TARGET_NAME ${BUILD_MODE_PREFIX_${BUILD_MODE}}.${PLATFORM_L}) set(PLUGINS_TARGET_NAME ${BUILD_MODE_PREFIX_${BUILD_MODE}}.plugins.${PLATFORM_L}.lib) set(LIBC_TARGET_NAME ${BUILD_MODE_PREFIX_${BUILD_MODE}}.jerry-libc.${PLATFORM_L}.lib) @@ -424,6 +425,7 @@ project (Jerry CXX C ASM) set(TARGET_NAME unit-${TARGET_NAME}) set(CORE_TARGET_NAME unittests.jerry-core) + set(LIBC_TARGET_NAME unittests.jerry-libc.${PLATFORM_L}.lib) set(FDLIBM_TARGET_NAME unittests.jerry-fdlibm${SUFFIX_THIRD_PARTY_LIB}) add_executable(${TARGET_NAME} ${SOURCE_UNIT_TEST_MAIN}) @@ -432,7 +434,8 @@ project (Jerry CXX C ASM) set_property(TARGET ${TARGET_NAME} PROPERTY LINK_FLAGS "${COMPILE_FLAGS_JERRY} ${CXX_FLAGS_JERRY} ${FLAGS_COMMON_UNITTESTS} ${LINKER_FLAGS_COMMON}") target_include_directories(${TARGET_NAME} PRIVATE ${INCLUDE_CORE_INTERFACE}) - target_link_libraries(${TARGET_NAME} ${CORE_TARGET_NAME} ${FDLIBM_TARGET_NAME} ${PREFIX_IMPORTED_LIB}libc + target_include_directories(${TARGET_NAME} SYSTEM PRIVATE ${INCLUDE_LIBC_INTERFACE}) + target_link_libraries(${TARGET_NAME} ${CORE_TARGET_NAME} ${LIBC_TARGET_NAME} ${FDLIBM_TARGET_NAME} ${PREFIX_IMPORTED_LIB}libgcc ${PREFIX_IMPORTED_LIB}libgcc_eh) add_cppcheck_target(${TARGET_NAME}) diff --git a/jerry-libc/CMakeLists.txt b/jerry-libc/CMakeLists.txt index 9dc2e6617..5b6255b4a 100644 --- a/jerry-libc/CMakeLists.txt +++ b/jerry-libc/CMakeLists.txt @@ -139,3 +139,4 @@ set(COMPILE_FLAGS_LIBC "${COMPILE_FLAGS_JERRY} ${C_FLAGS_JERRY}") declare_targets_for_build_mode(DEBUG) declare_targets_for_build_mode(RELEASE) + declare_targets_for_build_mode(UNITTESTS) diff --git a/tests/unit/test-api.cpp b/tests/unit/test-api.cpp index 9636fd049..0e2bea50c 100644 --- a/tests/unit/test-api.cpp +++ b/tests/unit/test-api.cpp @@ -218,6 +218,8 @@ const jerry_api_char_ptr_t magic_string_items[] = int main (void) { + TEST_INIT (); + jerry_init (JERRY_FLAG_EMPTY); bool is_ok; diff --git a/tests/unit/test-common.h b/tests/unit/test-common.h index 3b32553fc..b52c6f59e 100644 --- a/tests/unit/test-common.h +++ b/tests/unit/test-common.h @@ -24,8 +24,6 @@ #include #include -using namespace std; - /** * Verify that unit tests are built with all debug checks enabled */ @@ -33,21 +31,32 @@ using namespace std; # error "defined (JERRY_NDEBUG) || defined (JERRY_DISABLE_HEAVY_DEBUG) in a unit test" #endif /* JERRY_NDEBUG || JERRY_DISABLE_HEAVY_DEBUG */ -#define TEST_RANDOMIZE() \ +/** + * Test initialization statement that should be included + * at the beginning of main function in every unit test. + */ +#define TEST_INIT() \ do \ { \ - struct timeval current_time; \ - gettimeofday (¤t_time, NULL); \ - \ - time_t seconds = current_time.tv_sec; \ - suseconds_t microseconds = current_time.tv_usec; \ - \ - uint32_t seed = (uint32_t) (seconds + microseconds); \ - \ - printf ("TEST_RANDOMIZE: seed is %u\n", seed); \ - \ + FILE *f_rnd = fopen ("/dev/urandom", "r"); \ + \ + if (f_rnd == NULL) \ + { \ + return 1; \ + } \ + \ + uint32_t seed; \ + \ + size_t bytes_read = fread (&seed, 1, sizeof (seed), f_rnd); \ + \ + fclose (f_rnd); \ + \ + if (bytes_read != sizeof (seed)) \ + { \ + return 1; \ + } \ + \ srand (seed); \ -} \ -while (0) +} while (0) #endif /* TEST_COMMON_H */ diff --git a/tests/unit/test-heap.cpp b/tests/unit/test-heap.cpp index 78700d6b0..bb062d6dd 100644 --- a/tests/unit/test-heap.cpp +++ b/tests/unit/test-heap.cpp @@ -82,7 +82,7 @@ int main (int __attr_unused___ argc, char __attr_unused___ **argv) { - TEST_RANDOMIZE (); + TEST_INIT (); mem_heap_init (test_native_heap, sizeof (test_native_heap)); diff --git a/tests/unit/test-literal-storage.cpp b/tests/unit/test-literal-storage.cpp index 28b9a2ccc..db21a2b3b 100644 --- a/tests/unit/test-literal-storage.cpp +++ b/tests/unit/test-literal-storage.cpp @@ -58,7 +58,7 @@ int main (int __attr_unused___ argc, char __attr_unused___ **argv) { - TEST_RANDOMIZE (); + TEST_INIT (); const ecma_char_t *ptrs[test_sub_iters]; ecma_number_t numbers[test_sub_iters]; diff --git a/tests/unit/test-number-to-string.cpp b/tests/unit/test-number-to-string.cpp index e736a02fd..31cf8393f 100644 --- a/tests/unit/test-number-to-string.cpp +++ b/tests/unit/test-number-to-string.cpp @@ -25,6 +25,8 @@ int main (int __attr_unused___ argc, char __attr_unused___ **argv) { + TEST_INIT (); + const ecma_char_t* zt_strings[] = { (const ecma_char_t*) "1", diff --git a/tests/unit/test-parser.cpp b/tests/unit/test-parser.cpp index 2721e68b6..e30867a5e 100644 --- a/tests/unit/test-parser.cpp +++ b/tests/unit/test-parser.cpp @@ -69,6 +69,8 @@ int main (int __attr_unused___ argc, char __attr_unused___ **argv) { + TEST_INIT (); + char program[] = "a=1;var a;"; bool is_ok; diff --git a/tests/unit/test-pool.cpp b/tests/unit/test-pool.cpp index d22d190a6..1c8b8d222 100644 --- a/tests/unit/test-pool.cpp +++ b/tests/unit/test-pool.cpp @@ -37,7 +37,7 @@ int main (int __attr_unused___ argc, char __attr_unused___ **argv) { - TEST_RANDOMIZE (); + TEST_INIT (); for (uint32_t i = 0; i < test_iters; i++) { diff --git a/tests/unit/test-poolman.cpp b/tests/unit/test-poolman.cpp index 2076bd676..c7598e61a 100644 --- a/tests/unit/test-poolman.cpp +++ b/tests/unit/test-poolman.cpp @@ -37,7 +37,7 @@ int main (int __attr_unused___ argc, char __attr_unused___ **argv) { - TEST_RANDOMIZE (); + TEST_INIT (); mem_init (); diff --git a/tests/unit/test-recordset.cpp b/tests/unit/test-recordset.cpp index 86e4b9377..c2a39098e 100644 --- a/tests/unit/test-recordset.cpp +++ b/tests/unit/test-recordset.cpp @@ -213,7 +213,7 @@ int main (int __attr_unused___ argc, char __attr_unused___ **argv) { - TEST_RANDOMIZE (); + TEST_INIT (); mem_init (); diff --git a/tests/unit/test-string-to-number.cpp b/tests/unit/test-string-to-number.cpp index fd4698207..23e617ef5 100644 --- a/tests/unit/test-string-to-number.cpp +++ b/tests/unit/test-string-to-number.cpp @@ -25,6 +25,8 @@ int main (int __attr_unused___ argc, char __attr_unused___ **argv) { + TEST_INIT (); + const ecma_char_t* zt_strings[] = { (const ecma_char_t*) "1",