diff options
author | Jens-Heiner Rechtien <hr@openoffice.org> | 2006-04-20 11:15:34 +0000 |
---|---|---|
committer | Jens-Heiner Rechtien <hr@openoffice.org> | 2006-04-20 11:15:34 +0000 |
commit | 950e8e8910c19c221a9736d981c15c89472cef71 (patch) | |
tree | a76e54b0985e641e35c7a384a11221a05a610953 /dmake/tests/function_macros-5 | |
parent | 4dbca1eff5c019871ff6a81ab4a04cd6739636f0 (diff) |
INTEGRATION: CWS dmake43p01 (1.1.2); FILE ADDED
2006/03/14 23:23:21 vq 1.1.2.1: #i61940# Add testcase to check that $(shell ..) does not pick up output from
concurrent processes.
Diffstat (limited to 'dmake/tests/function_macros-5')
-rwxr-xr-x | dmake/tests/function_macros-5 | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/dmake/tests/function_macros-5 b/dmake/tests/function_macros-5 new file mode 100755 index 000000000000..1be199068c7b --- /dev/null +++ b/dmake/tests/function_macros-5 @@ -0,0 +1,46 @@ +#!/bin/sh + +# 03.14.2006 Volker Quetschke +# Verifies that $(shell ..) does not pick up stdout output from +# concurrent processes. (Stronger test for the spawn case.) +# (issue 61856 / issue 61940) + +: ${DMAKEPROG:=dmake} +file1="makefile.mk" +file2="stdout.txt" +tmpfiles="$file1 $file2" + +trap '{ echo "trapped signal - removing temporary files" ; rm -rf $tmpfiles ; }' 1 2 3 15 + +trap 'rm -rf $tmpfiles' 1 2 3 15 + +# Remember to quote variables in generated makefiles( $ -> \$ ). +cat > $file1 <<EOT +# Testing continuation char in recipes +SHELL*:=/bin/sh +SHELLFLAGS*:=-ce + +all : all1 all2 + @+echo "Y\$(DYNMAC)Y" > $file2 + +all1 : + @+echo "Before the sleeps ..." + @+echo A; sleep 1; echo B; sleep 1; echo C; sleep 1; echo D; sleep 1; echo E + @+echo "After the sleeps ..." + +all2 : + @+sleep 1; + @+echo "X\$(assign DYNMAC:=\$(shell @+echo "(shellpre)";sleep 2; echo "(shellpost)"))X" + @+echo "Z\$(DYNMAC)Z" +EOT + +${DMAKEPROG} -P3 -r -f $file1 +result=$? +if test "`cat $file2`" != "Y(shellpre) (shellpost)Y"; then + echo "Wrong result: `cat $file2`, Y(shellpre) (shellpost)Y expected!" + result=1 +fi + +test $result -eq 0 && echo "Success - Cleaning up" && rm -f ${tmpfiles} +test $result -ne 0 && echo "Failure!" +exit $result |