Show 121 quoted lines
> Thanks!
>
> Patrick
>
> Johannes Schindelin (4):
> clar: avoid compile error with mingw-w64
> clar(win32): avoid compile error due to unused `fs_copy()`
> clar: stop including `shellapi.h` unnecessarily
> clar: add CMake support
>
> Patrick Steinhardt (10):
> t: do not pass GIT_TEST_OPTS to unit tests with prove
> t: import the clar unit testing framework
> t/clar: fix compatibility with NonStop
> Makefile: fix sparse dependency on GENERATED_H
> Makefile: make hdr-check depend on generated headers
> Makefile: do not use sparse on third-party sources
> Makefile: wire up the clar unit testing framework
> t/unit-tests: implement test driver
> t/unit-tests: convert strvec tests to use clar
> t/unit-tests: convert ctype tests to use clar
>
> .gitignore | 1 +
> Documentation/technical/unit-tests.txt | 2 +
> Makefile | 53 +-
> contrib/buildsystems/CMakeLists.txt | 53 ++
> t/Makefile | 4 +-
> t/run-test.sh | 2 +-
> t/unit-tests/.gitignore | 2 +
> t/unit-tests/clar-generate.awk | 50 ++
> t/unit-tests/clar/.github/workflows/ci.yml | 23 +
> t/unit-tests/clar/COPYING | 15 +
> t/unit-tests/clar/README.md | 329 ++++++++
> t/unit-tests/clar/clar.c | 842 +++++++++++++++++++++
> t/unit-tests/clar/clar.h | 173 +++++
> t/unit-tests/clar/clar/fixtures.h | 50 ++
> t/unit-tests/clar/clar/fs.h | 524 +++++++++++++
> t/unit-tests/clar/clar/print.h | 211 ++++++
> t/unit-tests/clar/clar/sandbox.h | 159 ++++
> t/unit-tests/clar/clar/summary.h | 143 ++++
> t/unit-tests/clar/generate.py | 266 +++++++
> t/unit-tests/clar/test/.gitignore | 4 +
> t/unit-tests/clar/test/Makefile | 39 +
> t/unit-tests/clar/test/clar_test.h | 16 +
> t/unit-tests/clar/test/main.c | 40 +
> t/unit-tests/clar/test/main.c.sample | 27 +
> t/unit-tests/clar/test/resources/test/file | 1 +
> t/unit-tests/clar/test/sample.c | 84 ++
> t/unit-tests/{t-ctype.c => ctype.c} | 71 +-
> t/unit-tests/strvec.c | 241 ++++++
> t/unit-tests/t-strvec.c | 211 ------
> t/unit-tests/unit-test.c | 47 ++
> t/unit-tests/unit-test.h | 10 +
> 31 files changed, 3459 insertions(+), 234 deletions(-)
> create mode 100644 t/unit-tests/clar-generate.awk
> create mode 100644 t/unit-tests/clar/.github/workflows/ci.yml
> create mode 100644 t/unit-tests/clar/COPYING
> create mode 100644 t/unit-tests/clar/README.md
> create mode 100644 t/unit-tests/clar/clar.c
> create mode 100644 t/unit-tests/clar/clar.h
> create mode 100644 t/unit-tests/clar/clar/fixtures.h
> create mode 100644 t/unit-tests/clar/clar/fs.h
> create mode 100644 t/unit-tests/clar/clar/print.h
> create mode 100644 t/unit-tests/clar/clar/sandbox.h
> create mode 100644 t/unit-tests/clar/clar/summary.h
> create mode 100755 t/unit-tests/clar/generate.py
> create mode 100644 t/unit-tests/clar/test/.gitignore
> create mode 100644 t/unit-tests/clar/test/Makefile
> create mode 100644 t/unit-tests/clar/test/clar_test.h
> create mode 100644 t/unit-tests/clar/test/main.c
> create mode 100644 t/unit-tests/clar/test/main.c.sample
> create mode 100644 t/unit-tests/clar/test/resources/test/file
> create mode 100644 t/unit-tests/clar/test/sample.c
> rename t/unit-tests/{t-ctype.c => ctype.c} (68%)
> create mode 100644 t/unit-tests/strvec.c
> delete mode 100644 t/unit-tests/t-strvec.c
> create mode 100644 t/unit-tests/unit-test.c
> create mode 100644 t/unit-tests/unit-test.h
>
> Range-diff against v7:
> 1: b67f10ec0b0 = 1: b67f10ec0b0 t: do not pass GIT_TEST_OPTS to unit tests with prove
> 2: 55a9b46e65f = 2: 55a9b46e65f t: import the clar unit testing framework
> 3: f24401f0a87 = 3: f24401f0a87 t/clar: fix compatibility with NonStop
> 4: 658a601c541 = 4: 658a601c541 clar: avoid compile error with mingw-w64
> 5: 0b8a6ac5fed = 5: 0b8a6ac5fed clar(win32): avoid compile error due to unused `fs_copy()`
> 6: c50e7a0ea68 = 6: c50e7a0ea68 clar: stop including `shellapi.h` unnecessarily
> 7: b8f3f16dd27 = 7: b8f3f16dd27 Makefile: fix sparse dependency on GENERATED_H
> 8: 3d3fe443b9a = 8: 3d3fe443b9a Makefile: make hdr-check depend on generated headers
> 9: 7d0f494850a = 9: 7d0f494850a Makefile: do not use sparse on third-party sources
> 10: 9c74c5ae019 = 10: 9c74c5ae019 Makefile: wire up the clar unit testing framework
> 11: 8bd5b3e2b29 ! 11: 81d932bfa33 t/unit-tests: implement test driver
> @@ t/unit-tests/unit-test.c
> + struct string_list exclude_args = STRING_LIST_INIT_NODUP;
> + int immediate = 0;
> + struct option options[] = {
> -+ OPT_BOOL('i', "--immediate", &immediate,
> ++ OPT_BOOL('i', "immediate", &immediate,
> + N_("immediately exit upon the first failed test")),
> -+ OPT_STRING_LIST('r', "run", &run_args, N_("name"),
> -+ N_("run only test suite or individual test <name>")),
> -+ OPT_STRING_LIST('x', "exclude", &exclude_args, N_("name"),
> -+ N_("exclude test suite <name>")),
> ++ OPT_STRING_LIST('r', "run", &run_args, N_("suite[::test]"),
> ++ N_("run only test suite or individual test <suite[::test]>")),
> ++ OPT_STRING_LIST('x', "exclude", &exclude_args, N_("suite"),
> ++ N_("exclude test suite <suite>")),
> + OPT_END(),
> + };
> + struct strvec args = STRVEC_INIT;
> @@ t/unit-tests/unit-test.c
> +
> + strvec_push(&args, argv[0]);
> + strvec_push(&args, "-t");
> ++ if (immediate)
> ++ strvec_push(&args, "-Q");
> + for (size_t i = 0; i < run_args.nr; i++)
> + strvec_pushf(&args, "-s%s", run_args.items[i].string);
> + for (size_t i = 0; i < exclude_args.nr; i++)
> 12: 3c3b9eacdfb = 12: 604303e31aa t/unit-tests: convert strvec tests to use clar
> 13: c8360db2f86 = 13: ba05b9f1eef t/unit-tests: convert ctype tests to use clar
> 14: d51c146cd9d = 14: 8441d29daa8 clar: add CMake support