-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Wire up support for selftests #102
base: main
Are you sure you want to change the base?
Commits on Sep 19, 2024
-
clar: allow overriding current file, line and function
When raising an error we print the current file, line and function where the error was raised. This is of course quite helpful to users, but it stands in the way of testing the clar because they make the output of executables dependent on the developer's setup. Add the ability to override these with fixed constants via a new `CLAR_SELFTEST` macro.
Configuration menu - View commit details
-
Copy full SHA for 8fae41d - Browse repository at this point
Copy the full SHA 8fae41dView commit details -
clar: fix platform-specific use of error codes
We use `exit(-1)` in a lot of places. Exit codes should be in the range of [0, 255] though, so the resulting behaviour is not defined and depends on the platform. Fix this by using `exit(1)` instead.
Configuration menu - View commit details
-
Copy full SHA for 16b3c96 - Browse repository at this point
Copy the full SHA 16b3c96View commit details -
clar: fix platform-specific behaviour of "%p"
The "%p" formatter has platform-specific behaviour. On Windows for example it prints as a zero-padded integer, whereas on glibc systems it prints as non-zero-padded integer with "0x" prepended. Address this by instead using PRIxPTR and casting the pointers to the `uintptr_t` type.
Configuration menu - View commit details
-
Copy full SHA for ac7c25f - Browse repository at this point
Copy the full SHA ac7c25fView commit details -
test: split out examples into their own directory
The examples are closely coupled with our selftests, which makes it hard to iterate on both. Split them out into their own standalone directory as a prerequisite for wiring up proper testing of the clar.
Configuration menu - View commit details
-
Copy full SHA for 6bc4782 - Browse repository at this point
Copy the full SHA 6bc4782View commit details -
test: move tests into subdirectory
We are about to wire up proper testing of clar via CI. This will be done by executing the "clar_test" binary we already have in another clar test binary. This requires us to move the current "clar_test" into its own subdirectory such that "generate.py" can then generate the "clar.suite" for each of these two test binaries independently.
Configuration menu - View commit details
-
Copy full SHA for 68e0c19 - Browse repository at this point
Copy the full SHA 68e0c19View commit details -
test: drop global test counter
The global test counter has been added as a demonstration for how it is possible to modify global resources. Now that we have moved examples into their own directory though it no longer serves that purpose. In fact, it now stands in our way as we are about to introduce testing of the clar itself with various different options. But as we assert that the counter is "8" after all tests have ran, we wouldn't be able to exclude some tests from running. Drop the counter altogether to prepare for the change.
Configuration menu - View commit details
-
Copy full SHA for cc208f4 - Browse repository at this point
Copy the full SHA cc208f4View commit details -
The output for the test that exercise `cl_assert_equal_p()` is indeterministic because we compare on-stack addresses, which naturally change between executions. Adapt the test to instead use fixed values.
Configuration menu - View commit details
-
Copy full SHA for bc29068 - Browse repository at this point
Copy the full SHA bc29068View commit details -
test: exercise the clar itself
While we have had the "clar_test" binary for a very long time already, it was more for demonstration purposes than for real testing of the clar. It could serve as sort of a smoke test if the developer remembered to execute it, but that's about it. In the preceding commits we have moved the "clar_test" into a separate directory, renamed it to "selftest_suite" and made its output deterministic. We can thus now wire up proper testing of the clar by exercising the "selftest_suite" binary via a new "selftest" binary. These tests run the "selftest_test" binary with various different arguments and check both its return code as well as its output.
Configuration menu - View commit details
-
Copy full SHA for a42ad6d - Browse repository at this point
Copy the full SHA a42ad6dView commit details
Commits on Sep 20, 2024
-
ci: wire up support for testing
Wire up support for testing in our CI now that we have proper self tests.
Configuration menu - View commit details
-
Copy full SHA for e088b4d - Browse repository at this point
Copy the full SHA e088b4dView commit details