git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[RFC PATCH 2/2] unit test: add basic example

From
Calvin Wan <calvinwan@google.com>
Date
Apr 27, 2023, 17:50 UTC
Message-ID
<20230427175007.902278-3-calvinwan@google.com>
In-Reply-To
<20230427175007.902278-1-calvinwan@google.com>

Although this commit doesn't showcase unit tests running against anything in Git, locally, I have a smaller set of Git files compiling into a library with unit tests running against it using this C TAP harness.

However, you can run `make ctap` to get an idea of how the output looks and use it as a baseline to play around with the other features of the library.

Signed-off-by: Calvin Wan <calvinwan@google.com>
---
 Makefile      | 11 +++++++++++
 t/TESTS       |  1 +
 t/unit-test.c | 14 ++++++++++++++
 3 files changed, 26 insertions(+)
 create mode 100644 t/unit-test.c
diff --git a/Makefile b/Makefile
index 60ab1a8b4f..b67b81e312 100644
--- a/Makefile
+++ b/Makefile
@@ -3831,3 +3831,14 @@ $(FUZZ_PROGRAMS): all
 		$(XDIFF_OBJS) $(EXTLIBS) git.o $@.o $(LIB_FUZZING_ENGINE) -o $@
 
 fuzz-all: $(FUZZ_PROGRAMS)
+
+LIB_CTAP_SOURCES = t/tap/basic.c t/tap/basic.h t/tap/macros.h
+
+PHONY: ctap
+ctap:
+	cc -It -c $(LIB_CTAP_SOURCES)
+	ar -rc libtap.a basic.o
+	mkdir -p t/unit-test
+	cc -It -o t/unit-test/unit-test-t t/unit-test.c -L. -l:libtap.a
+	cc -o t/runtests t/runtests.c
+	cd t && ./runtests -l TESTS
diff --git a/t/TESTS b/t/TESTS
index e69de29bb2..4b1899a115 100644
--- a/t/TESTS
+++ b/t/TESTS
@@ -0,0 +1 @@
+unit-test/unit-test-t
diff --git a/t/unit-test.c b/t/unit-test.c
new file mode 100644
index 0000000000..6eceb50ee6
--- /dev/null
+++ b/t/unit-test.c
@@ -0,0 +1,14 @@
+#include <tap/basic.h>
+
+int unit_test() {
+	if (1 != 1)
+		return 0;
+	return 1;
+}
+
+int main(void)
+{
+	plan(1);
+	ok(unit_test(), "unit test runs successfully");
+	return 0;
+}
-- 
2.40.1.495.gc816e09b53d-goog
Previous: Phillip WoodNext: Junio C Hamano
Message 21 of 29 in “add an external testing library for unit tests”
  1. 0/2 add an external testing library for unit testsCalvin Wan, Apr 27, 2023
  2. 1/2 Add C TAP harnessCalvin Wan, Apr 27, 2023
  3. SZEDER GáborApr 27, 2023
  4. Calvin WanApr 27, 2023
  5. Phillip WoodApr 27, 2023
  6. Calvin WanApr 28, 2023
  7. Felipe ContrerasMay 2, 2023
  8. Phillip WoodMay 10, 2023
  9. Glen ChooMay 11, 2023
  10. Phillip WoodMay 18, 2023
  11. Linus ArverJun 21, 2023
  12. Phillip WoodJun 26, 2023
  13. Linus ArverJun 28, 2023
  14. Oswald BuddenhagenJun 29, 2023
  15. Phillip WoodJun 30, 2023
  16. Felipe ContrerasMay 2, 2023
  17. Ævar Arnfjörð BjarmasonMay 2, 2023
  18. Felipe ContrerasMay 2, 2023
  19. Ævar Arnfjörð BjarmasonMay 2, 2023
  20. Phillip WoodMay 10, 2023
  21. 2/2 unit test: add basic exampleCalvin Wan, Apr 27, 2023
  22. Junio C HamanoApr 27, 2023
  23. Felipe ContrerasMay 2, 2023
  24. Junio C HamanoApr 27, 2023
  25. Calvin WanApr 27, 2023
  26. brian m. carlsonApr 27, 2023
  27. Felipe ContrerasMay 2, 2023
  28. Ævar Arnfjörð BjarmasonMay 2, 2023
  29. Felipe ContrerasMay 2, 2023

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.