blob: 09f3e96895d47dd2364be0ba484970f3b6445392 [file] [log] [blame]
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