0003-Makefile-extract-script-to-generate-clar-declaration.patch 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. From 4e5e8a0822db050c31b3cdd5ae00c37f4a8a063e Mon Sep 17 00:00:00 2001
  2. From: Patrick Steinhardt <ps@pks.im>
  3. Date: Mon, 21 Oct 2024 12:56:38 +0200
  4. Subject: [PATCH] Makefile: extract script to generate clar declarations
  5. Extract the script to generate function declarations for the clar unit
  6. testing framework into a standalone script. This is done such that we
  7. can reuse it in other build systems.
  8. Signed-off-by: Patrick Steinhardt <ps@pks.im>
  9. Upstream: https://lore.kernel.org/r/c2e3fbcd8532038158a0ead6f0a2f752f557ab7f.1729506329.git.ps@pks.im
  10. Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
  11. ---
  12. Makefile | 4 +---
  13. t/unit-tests/generate-clar-decls.sh | 16 ++++++++++++++++
  14. 2 files changed, 17 insertions(+), 3 deletions(-)
  15. create mode 100755 t/unit-tests/generate-clar-decls.sh
  16. diff --git a/Makefile b/Makefile
  17. index 87c1f9e220..a58dcab954 100644
  18. --- a/Makefile
  19. +++ b/Makefile
  20. @@ -3905,9 +3905,7 @@ GIT-TEST-SUITES: FORCE
  21. fi
  22. $(UNIT_TEST_DIR)/clar-decls.h: $(patsubst %,$(UNIT_TEST_DIR)/%.c,$(CLAR_TEST_SUITES)) GIT-TEST-SUITES
  23. - $(QUIET_GEN)for suite in $(CLAR_TEST_SUITES); do \
  24. - sed -ne "s/^\(void test_$${suite}__[a-zA-Z_0-9][a-zA-Z_0-9]*(void)\)$$/extern \1;/p" $(UNIT_TEST_DIR)/$$suite.c; \
  25. - done >$@
  26. + $(QUIET_GEN)$(SHELL_PATH) $(UNIT_TEST_DIR)/generate-clar-decls.sh "$@" $(filter %.c,$^)
  27. $(UNIT_TEST_DIR)/clar.suite: $(UNIT_TEST_DIR)/clar-decls.h
  28. $(QUIET_GEN)awk -f $(UNIT_TEST_DIR)/clar-generate.awk $< >$(UNIT_TEST_DIR)/clar.suite
  29. $(CLAR_TEST_OBJS): $(UNIT_TEST_DIR)/clar-decls.h
  30. diff --git a/t/unit-tests/generate-clar-decls.sh b/t/unit-tests/generate-clar-decls.sh
  31. new file mode 100755
  32. index 0000000000..688e0885f4
  33. --- /dev/null
  34. +++ b/t/unit-tests/generate-clar-decls.sh
  35. @@ -0,0 +1,16 @@
  36. +#!/bin/sh
  37. +
  38. +if test $# -lt 2
  39. +then
  40. + echo "USAGE: $0 <OUTPUT> <SUITE>..." 2>&1
  41. + exit 1
  42. +fi
  43. +
  44. +OUTPUT="$1"
  45. +shift
  46. +
  47. +for suite in "$@"
  48. +do
  49. + sed -ne "s/^\(void test_$(basename "${suite%.c}")__[a-zA-Z_0-9][a-zA-Z_0-9]*(void)\)$/extern \1;/p" "$suite" ||
  50. + exit 1
  51. +done >"$OUTPUT"
  52. --
  53. An old man doll... just what I always wanted! - Clara