summaryrefslogtreecommitdiff
path: root/dmake/tests/misc-4
diff options
context:
space:
mode:
Diffstat (limited to 'dmake/tests/misc-4')
-rwxr-xr-xdmake/tests/misc-462
1 files changed, 62 insertions, 0 deletions
diff --git a/dmake/tests/misc-4 b/dmake/tests/misc-4
new file mode 100755
index 000000000000..ed11a8e20098
--- /dev/null
+++ b/dmake/tests/misc-4
@@ -0,0 +1,62 @@
+#!/bin/sh
+
+# 06.10.2005 Volker Quetschke
+# Test for parallel operation.
+# (no issue, sanity check only)
+
+: ${DMAKEPROG:=dmake}
+file1="mymakefile.mk"
+file2="testfile"
+file3="testfile1"
+file4="testfile2"
+file5="testfile3"
+tmpfiles="$file1 $file2 $file3 $file4 $file5"
+
+trap '{ echo "trapped signal - removing temporary files" ; rm -rf $tmpfiles ; }' 1 2 3 15
+
+# Remove files from prior failed run
+rm -rf $tmpfiles
+
+# Remember to quote variables in generated makefiles( $ -> \$ ).
+cat > $file1 <<EOT
+# Testing parallel execution
+SHELL*:=/bin/sh
+SHELLFLAGS*:=-ce
+
+testfile : testfile2 testfile3 testfile1
+ +@echo xx > \$@
+
+testfile1 :
+ +@echo making \$@ 1>&2
+ +@sleep 1
+ +@printf t1
+ +@echo 1 > \$@
+
+testfile2 :
+ +@echo making \$@ 1>&2
+ +@sleep 2
+ +@printf t2
+ +@echo 2 > \$@
+
+testfile3 :
+ +@echo making \$@ 1>&2
+ +@sleep 3
+ +@printf t3
+ +@echo 3 > \$@
+
+EOT
+
+output=`eval ${DMAKEPROG} -r -P3 -f $file1`
+result=$?
+
+# In parallel operation the targets with the smaller sleep value
+# will finish first.
+if test "$output" != "t1t2t3"; then
+ echo "Wrong result"
+ result=1
+fi
+
+
+test $result -eq 0 && echo "Success - Cleaning up" && rm -f ${tmpfiles}
+test $result -ne 0 && echo "Failure!"
+exit $result