| From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
| From: Patrick Steinhardt <ps@pks.im> |
| Date: Fri, 27 Dec 2024 14:59:39 +0100 |
| Subject: t/Makefile: make "check-meson" work with Dash |
| |
| commit d8af27d309c3637d05bd6b4957b3667c04dc861e upstream |
| |
| The "check-meson" target uses process substitution to check whether |
| extracted contents from "meson.build" match expected contents. Process |
| substitution is unportable though and thus the target will fail when |
| using for example Dash. |
| |
| Fix this by writing data into a temporary directory. |
| |
| Signed-off-by: Patrick Steinhardt <ps@pks.im> |
| Signed-off-by: Junio C Hamano <gitster@pobox.com> |
| Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> |
| --- |
| t/.gitignore | 1 + |
| t/Makefile | 12 +++++++----- |
| 2 files changed, 8 insertions(+), 5 deletions(-) |
| |
| diff --git a/t/.gitignore b/t/.gitignore |
| index 91cf5772fe5..3e6b0f2cc57 100644 |
| --- a/t/.gitignore |
| +++ b/t/.gitignore |
| @@ -2,4 +2,5 @@ |
| /test-results |
| /.prove |
| /chainlinttmp |
| +/mesontmp |
| /out/ |
| diff --git a/t/Makefile b/t/Makefile |
| index 290fb03ff01..daa5fcae86f 100644 |
| --- a/t/Makefile |
| +++ b/t/Makefile |
| @@ -103,6 +103,7 @@ clean-except-prove-cache: clean-chainlint |
| |
| clean: clean-except-prove-cache |
| $(RM) -r '$(TEST_RESULTS_DIRECTORY_SQ)' |
| + $(RM) -r mesontmp |
| $(RM) .prove |
| |
| clean-chainlint: |
| @@ -116,16 +117,17 @@ check-chainlint: |
| |
| check-meson: |
| @# awk acts up when trying to match single quotes, so we use \047 instead. |
| - @printf "%s\n" \ |
| + @mkdir -p mesontmp && \ |
| + printf "%s\n" \ |
| "integration_tests t[0-9][0-9][0-9][0-9]-*.sh" \ |
| "unit_test_programs unit-tests/t-*.c" \ |
| "clar_test_suites unit-tests/u-*.c" | \ |
| while read -r variable pattern; do \ |
| - meson_tests=$$(awk "/^$$variable = \[\$$/ {flag=1 ; next } /^]$$/ { flag=0 } flag { gsub(/^ \047/, \"\"); gsub(/\047,\$$/, \"\"); print }" meson.build) && \ |
| - actual_tests=$$(ls $$pattern) && \ |
| - if test "$$meson_tests" != "$$actual_tests"; then \ |
| + awk "/^$$variable = \[\$$/ {flag=1 ; next } /^]$$/ { flag=0 } flag { gsub(/^ \047/, \"\"); gsub(/\047,\$$/, \"\"); print }" meson.build >mesontmp/meson.txt && \ |
| + ls $$pattern >mesontmp/actual.txt && \ |
| + if ! cmp mesontmp/meson.txt mesontmp/actual.txt; then \ |
| echo "Meson tests differ from actual tests:"; \ |
| - diff -u <(echo "$$meson_tests") <(echo "$$actual_tests"); \ |
| + diff -u mesontmp/meson.txt mesontmp/actual.txt; \ |
| exit 1; \ |
| fi; \ |
| done |