def: Add missing cmocka_set_message_output symbol
[platform/upstream/cmocka.git] / tests / CMakeLists.txt
index 82cc046..2f985a5 100644 (file)
@@ -7,20 +7,39 @@ include_directories(
 )
 
 set(CMOCKA_TESTS
+    test_alloc
+    test_group_setup_fail
     test_fixtures
+    test_group_fixtures
     test_assert_macros
     test_assert_macros_fail
     test_exception_handler
-    test_basics)
+    test_basics
+    test_skip
+    test_setup_fail)
 
 foreach(_CMOCKA_TEST ${CMOCKA_TESTS})
-    add_cmocka_test(${_CMOCKA_TEST} ${_CMOCKA_TEST}.c ${CMOCKA_SHARED_LIBRARY})
+    add_cmocka_test(${_CMOCKA_TEST} ${_CMOCKA_TEST}.c ${CMOCKA_STATIC_LIBRARY})
 endforeach()
 
+### Special Cases
+if (${CMAKE_C_COMPILER_ID} MATCHES "(GNU|Clang)")
+    set_source_files_properties(test_cmockery.c PROPERTIES COMPILE_FLAGS "-Wno-deprecated-declarations")
+endif()
+add_cmocka_test(test_cmockery test_cmockery.c ${CMOCKA_STATIC_LIBRARY})
+
 ### Exceptions
 
 # test_assert_macros_fail
 set_tests_properties(
+    test_skip
+        PROPERTIES
+        PASS_REGULAR_EXPRESSION
+        "\\[  SKIPPED \\] test_check_skip"
+)
+
+# test_assert_macros_fail
+set_tests_properties(
     test_assert_macros_fail
         PROPERTIES
         PASS_REGULAR_EXPRESSION
@@ -28,9 +47,126 @@ set_tests_properties(
 )
 
 # test_exception_handler
+if (WIN32)
+    set_tests_properties(
+        test_exception_handler
+            PROPERTIES
+            PASS_REGULAR_EXPRESSION
+            "EXCEPTION_ACCESS_VIOLATION occurred at")
+else()
+    set_tests_properties(
+        test_exception_handler
+            PROPERTIES
+            PASS_REGULAR_EXPRESSION
+            "Test failed with exception: (Segmentation fault|Segmentation Fault|11)"
+    )
+endif (WIN32)
+
 set_tests_properties(
-    test_exception_handler
+    test_setup_fail
+        PROPERTIES
+        WILL_FAIL
+        1
+)
+
+set_tests_properties(
+    test_group_setup_fail
+        PROPERTIES
+        WILL_FAIL
+        1
+)
+
+add_test (test_setup_fail_1_failed test_setup_fail)
+set_tests_properties(
+    test_setup_fail_1_failed
+        PROPERTIES
+        PASS_REGULAR_EXPRESSION
+        "\\[  ERROR   \\] int_test_ignored"
+)
+
+add_test (test_setup_fail_1_passed test_setup_fail)
+set_tests_properties(
+    test_setup_fail_1_passed
         PROPERTIES
         PASS_REGULAR_EXPRESSION
-        "Test failed with exception: (Segmentation fault|Segmentation Fault|11)"
+        "\\[  PASSED  \\] 1 test\\(s\\)."
 )
+
+add_test (test_setup_fail_match_failed test_setup_fail)
+set_tests_properties(
+    test_setup_fail_match_failed
+        PROPERTIES
+        PASS_REGULAR_EXPRESSION
+        "\\[  ERROR   \\] int_test_ignored"
+)
+
+add_test (test_setup_fail_match_passed test_setup_fail)
+set_tests_properties(
+    test_setup_fail_match_passed
+        PROPERTIES
+        PASS_REGULAR_EXPRESSION
+        "\\[       OK \\] int_test_success"
+)
+
+### Output formats
+
+# test output of success, failure, skip, fixture failure
+set(OUTPUT_TESTS
+    test_basics
+    test_assert_macros_fail
+    test_skip
+    test_setup_fail)
+
+set(TEST_OUTPUT_FMTS
+    tap
+    subunit
+    xml)
+
+set(test_basics_tap_out
+    "^\t1\\.\\.2[ \n\r]+\tok 1 - null_test_success[ \n\r]+\tok 2 - int_test_success[ \n\r]+ok - tests")
+set(test_assert_macros_fail_tap_out
+    "^\t1\\.\\.1[ \n\r]+\tnot ok 1 - test_assert_return_code_fail[ \n\r]+\t#[^\n\r]+[\n\r]\t#[^\n\r]+[\n\r]not ok - tests")
+
+set(test_skip_tap_out
+    "not ok 1 # SKIP")
+set(test_setup_fail_tap_out
+    "not ok 1 - int_test_ignored Could not run the test - check test fixtures")
+
+set(test_basics_subunit_out
+    "^test: null_test_success[ \n\r]+success: null_test_success")
+set(test_assert_macros_fail_subunit_out
+    "failure: test_assert_return_code_fail \\[")
+set(test_skip_subunit_out
+    "^test: test_check_skip[ \n\r]+skip: test_check_skip")
+set(test_setup_fail_subunit_out
+    "error: int_test_ignored \\[ Could not run the test - check test fixtures \\]")
+
+set(test_basics_xml_out
+    "<testsuite name=\"tests\" time=\"[0-9.]+\" tests=\"2\" failures=\"0\" errors=\"0\" skipped=\"0\" >[ \n\r]+<testcase name=\"null_test_success\" time=\"[0-9.]+\" >.*</testcase>")
+set(test_assert_macros_fail_xml_out
+    "<testcase name=\"test_assert_return_code_fail\" time=\"[0-9.]+\" >[ \n\r]+<failure>")
+set(test_skip_xml_out
+    "<testcase name=\"test_check_skip\" time=\"[0-9.]+\" >[ \n\r]+<skipped/>")
+set(test_setup_fail_xml_out
+    "<testcase name=\"int_test_ignored\" time=\"[0-9.]+\" >[ \n\r]+<failure><!\\[CDATA\\[Test setup failed\\]\\]></failure>")
+
+foreach(_TEST_OUTPUT_FMT ${TEST_OUTPUT_FMTS})
+    foreach(_OUTPUT_TEST ${OUTPUT_TESTS})
+        set(TEST_NAME ${_OUTPUT_TEST}_${_TEST_OUTPUT_FMT})
+        add_test(${TEST_NAME} ${_OUTPUT_TEST})
+
+        set_property(
+            TEST
+            ${TEST_NAME}
+            PROPERTY
+                ENVIRONMENT CMOCKA_MESSAGE_OUTPUT=${_TEST_OUTPUT_FMT}
+            )
+
+            set_tests_properties(
+                    ${TEST_NAME}
+                    PROPERTIES
+                    PASS_REGULAR_EXPRESSION
+                    ${${TEST_NAME}_out}
+            )
+    endforeach()
+endforeach()