-
Notifications
You must be signed in to change notification settings - Fork 32
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #102 from pks-t/pks-selftests
Wire up support for selftests
- Loading branch information
Showing
27 changed files
with
854 additions
and
105 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
find_package(Python COMPONENTS Interpreter REQUIRED) | ||
|
||
add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/clar.suite" | ||
COMMAND "${Python_EXECUTABLE}" "${CMAKE_SOURCE_DIR}/generate.py" --output "${CMAKE_CURRENT_BINARY_DIR}" | ||
DEPENDS main.c example.c | ||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" | ||
) | ||
|
||
add_executable(example) | ||
set_target_properties(example PROPERTIES | ||
C_STANDARD 90 | ||
C_STANDARD_REQUIRED ON | ||
C_EXTENSIONS OFF | ||
) | ||
target_sources(example PRIVATE | ||
main.c | ||
example.c | ||
"${CMAKE_CURRENT_BINARY_DIR}/clar.suite" | ||
) | ||
target_compile_definitions(example PRIVATE) | ||
target_compile_options(example PRIVATE | ||
$<IF:$<CXX_COMPILER_ID:MSVC>,/W4,-Wall> | ||
) | ||
target_include_directories(example PRIVATE | ||
"${CMAKE_SOURCE_DIR}" | ||
"${CMAKE_CURRENT_BINARY_DIR}" | ||
) | ||
target_link_libraries(example clar) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
#include "clar.h" | ||
|
||
void test_example__simple_assert(void) | ||
{ | ||
cl_assert_equal_i(1, 1); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,39 +1,54 @@ | ||
add_subdirectory(selftest_suite) | ||
|
||
find_package(Python COMPONENTS Interpreter REQUIRED) | ||
|
||
add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/clar.suite" | ||
COMMAND "${Python_EXECUTABLE}" "${CMAKE_SOURCE_DIR}/generate.py" --output "${CMAKE_CURRENT_BINARY_DIR}" | ||
DEPENDS main.c sample.c clar_test.h | ||
DEPENDS main.c selftest.c | ||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" | ||
) | ||
|
||
add_executable(clar_test) | ||
set_target_properties(clar_test PROPERTIES | ||
add_executable(selftest) | ||
set_target_properties(selftest PROPERTIES | ||
C_STANDARD 90 | ||
C_STANDARD_REQUIRED ON | ||
C_EXTENSIONS OFF | ||
) | ||
|
||
# MSVC generates all kinds of warnings. We may want to fix these in the future | ||
# and then unconditionally treat warnings as errors. | ||
if(NOT MSVC) | ||
set_target_properties(clar_test PROPERTIES | ||
if (NOT MSVC) | ||
set_target_properties(selftest PROPERTIES | ||
COMPILE_WARNING_AS_ERROR ON | ||
) | ||
endif() | ||
|
||
target_sources(clar_test PRIVATE | ||
target_sources(selftest PRIVATE | ||
main.c | ||
sample.c | ||
selftest.c | ||
"${CMAKE_CURRENT_BINARY_DIR}/clar.suite" | ||
) | ||
target_compile_definitions(clar_test PRIVATE | ||
CLAR_FIXTURE_PATH="${CMAKE_CURRENT_SOURCE_DIR}/resources/" | ||
target_compile_definitions(selftest PRIVATE | ||
CLAR_FIXTURE_PATH="${CMAKE_CURRENT_SOURCE_DIR}/expected/" | ||
) | ||
target_compile_options(clar_test PRIVATE | ||
target_compile_options(selftest PRIVATE | ||
$<IF:$<CXX_COMPILER_ID:MSVC>,/W4,-Wall> | ||
) | ||
target_include_directories(clar_test PRIVATE | ||
target_include_directories(selftest PRIVATE | ||
"${CMAKE_SOURCE_DIR}" | ||
"${CMAKE_CURRENT_BINARY_DIR}" | ||
) | ||
target_link_libraries(clar_test clar) | ||
target_link_libraries(selftest clar) | ||
|
||
add_test(NAME build_selftest_suite | ||
COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_BINARY_DIR}" --config "$<CONFIG>" --target selftest_suite | ||
) | ||
set_tests_properties(build_selftest_suite PROPERTIES FIXTURES_SETUP clar_test_fixture) | ||
|
||
add_test(NAME build_selftest | ||
COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_BINARY_DIR}" --config "$<CONFIG>" --target selftest | ||
) | ||
set_tests_properties(build_selftest PROPERTIES FIXTURES_SETUP clar_test_fixture) | ||
|
||
add_test(NAME selftest COMMAND "${CMAKE_CURRENT_BINARY_DIR}/selftest" "$<TARGET_FILE:selftest_suite>") | ||
set_tests_properties(selftest PROPERTIES FIXTURES_REQUIRED clar_test_fixture) |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
Usage: selftest [options] | ||
|
||
Options: | ||
-sname Run only the suite with `name` (can go to individual test name) | ||
-iname Include the suite with `name` | ||
-xname Exclude the suite with `name` | ||
-v Increase verbosity (show suite names) | ||
-q Only report tests that had an error | ||
-Q Quit as soon as a test fails | ||
-t Display results in tap format | ||
-l Print suite names | ||
-r[filename] Write summary file (to the optional filename) |
Oops, something went wrong.