summaryrefslogtreecommitdiff
path: root/dmake/tests/function_macros-10
diff options
context:
space:
mode:
Diffstat (limited to 'dmake/tests/function_macros-10')
-rwxr-xr-xdmake/tests/function_macros-10122
1 files changed, 122 insertions, 0 deletions
diff --git a/dmake/tests/function_macros-10 b/dmake/tests/function_macros-10
new file mode 100755
index 000000000000..db6ce88b0ded
--- /dev/null
+++ b/dmake/tests/function_macros-10
@@ -0,0 +1,122 @@
+#!/bin/sh
+
+# 28.08.2007 Volker Quetschke
+# Test mktmp function macro.
+# (issue 64234)
+
+: ${DMAKEPROG:=dmake}
+file1="mfile1.mk"
+tmpfiles="$file1"
+
+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( $ -> \$ ).
+# Test 1 - Check that mktmp can write special characters into a file.
+cat > $file1 <<EOT
+SHELL*:=/bin/sh
+SHELLFLAGS*:=-ce
+
+FOO:=test1\n\ttest2\n\
+ test3
+
+all :
+ @cat \$(mktmp \$(FOO:m))
+
+EOT
+
+output1=`eval ${DMAKEPROG} -r -f $file1`
+result1=$?
+comparewith=`printf "test1\n\ttest2\n test3"`
+if test $result1 = 0 -a "$output1" = "$comparewith" ; then
+ echo "Subtest 1: OK"
+ result1=0
+else
+ echo "Subtest 1: Wrong result: $output1"
+ echo
+ result1=1
+fi
+
+
+# Remember to quote variables in generated makefiles( $ -> \$ ).
+# Test 2 - Check output of '('
+cat > $file1 <<EOT
+SHELL*:=/bin/sh
+SHELLFLAGS*:=-ce
+
+all :
+ @cat \${mktmp text (to dump to file}
+
+EOT
+
+output2=`eval ${DMAKEPROG} -r -f $file1`
+result2=$?
+if test $result2 = 0 -a "$output2" = "text (to dump to file" ; then
+ echo "Subtest 2: OK"
+ result2=0
+else
+ echo "Subtest 2: Wrong result: $output2"
+ echo
+ result2=1
+fi
+
+
+# Remember to quote variables in generated makefiles( $ -> \$ ).
+# Test 3 - Test multiple line output.
+cat > $file1 <<EOT
+SHELL*:=/bin/sh
+SHELLFLAGS*:=-ce
+
+OBJ = fred.obj mary.obj
+
+./all :
+ @cat \$(mktmp \$(OBJ:t"+\n"))
+EOT
+
+output3=`eval OOODMAKEMODE=y ${DMAKEPROG} -r -f $file1`
+result3=$?
+comparewith=`printf "fred.obj+\nmary.obj"`
+if test $result3 = 0 -a "$output3" = "$comparewith" ; then
+ echo "Subtest 3: OK"
+ result3=0
+else
+ echo "Subtest 3: Wrong result: $output3"
+ echo
+ result3=1
+fi
+
+
+# Remember to quote variables in generated makefiles( $ -> \$ ).
+# Test 4 - Test <+ ... +>
+cat > $file1 <<EOT
+SHELL*:=/bin/sh
+SHELLFLAGS*:=-ce
+
+OBJ = fred.obj mary.obj joe.obj
+
+./all :
+ @cat <+\$(OBJ)+>
+EOT
+
+output4=`eval ${DMAKEPROG} -r -f $file1`
+result4=$?
+if test $result4 = 0 -a "$output4" = "fred.obj mary.obj joe.obj" ; then
+ echo "Subtest 4: OK"
+ result4=0
+else
+ echo "Subtest 4: Wrong result: $output4"
+ echo
+ result4=1
+fi
+
+
+if test $result1 -eq 0 -a $result2 -eq 0 \
+ -a $result3 -eq 0 -a $result4 -eq 0 ; then
+ echo "Success - Cleaning up" && rm -f ${tmpfiles}
+ exit
+else
+ echo "Failure!"
+ exit 1
+fi