Skip to content
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

Open
wants to merge 9 commits into
base: main
Choose a base branch
from
Open

Commits on Sep 19, 2024

  1. 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.
    pks-t committed Sep 19, 2024
    Configuration menu
    Copy the full SHA
    8fae41d View commit details
    Browse the repository at this point in the history
  2. 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.
    pks-t committed Sep 19, 2024
    Configuration menu
    Copy the full SHA
    16b3c96 View commit details
    Browse the repository at this point in the history
  3. 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.
    pks-t committed Sep 19, 2024
    Configuration menu
    Copy the full SHA
    ac7c25f View commit details
    Browse the repository at this point in the history
  4. 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.
    pks-t committed Sep 19, 2024
    Configuration menu
    Copy the full SHA
    6bc4782 View commit details
    Browse the repository at this point in the history
  5. 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.
    pks-t committed Sep 19, 2024
    Configuration menu
    Copy the full SHA
    68e0c19 View commit details
    Browse the repository at this point in the history
  6. 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.
    pks-t committed Sep 19, 2024
    Configuration menu
    Copy the full SHA
    cc208f4 View commit details
    Browse the repository at this point in the history
  7. test: deterministic pointers

    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.
    pks-t committed Sep 19, 2024
    Configuration menu
    Copy the full SHA
    bc29068 View commit details
    Browse the repository at this point in the history
  8. 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.
    pks-t committed Sep 19, 2024
    Configuration menu
    Copy the full SHA
    a42ad6d View commit details
    Browse the repository at this point in the history

Commits on Sep 20, 2024

  1. ci: wire up support for testing

    Wire up support for testing in our CI now that we have proper self
    tests.
    pks-t committed Sep 20, 2024
    Configuration menu
    Copy the full SHA
    e088b4d View commit details
    Browse the repository at this point in the history