diff options
Diffstat (limited to 'dmake/tests')
-rwxr-xr-x | dmake/tests/misc-18 | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/dmake/tests/misc-18 b/dmake/tests/misc-18 new file mode 100755 index 000000000000..a676df6580e2 --- /dev/null +++ b/dmake/tests/misc-18 @@ -0,0 +1,169 @@ +#!/bin/sh + +# 23.03.2007 Volker Quetschke +# Test .WINPATH attribute (A cygwin only attribute that is ignored +# elsewhere). +# (issue 73499) + +: ${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 - Test if .WINPATH is accepted as global attribute +cat > $file1 <<EOT +SHELL*:=/bin/sh +SHELLFLAGS*:=-ce + +.WINPATH : + +all : + @echo OK1 + +EOT + +output1=`eval ${DMAKEPROG} -r -f $file1` +result1=$? +if test "$output1" != "OK1"; then + echo "Subtest 1: Wrong result: $output1" + result1=1 +else + echo "Subtest 1: OK" +fi + +# Test 2 - Test if .WINPATH is accepted as local attribute +cat > $file1 <<EOT +SHELL*:=/bin/sh +SHELLFLAGS*:=-ce + +all .WINPATH : + @echo OK2 + +EOT + +output2=`eval ${DMAKEPROG} -r -f $file1` +result2=$? +if test "$output2" != "OK2"; then + echo "Subtest 2: Wrong result: $output2" + result2=1 +else + echo "Subtest 2: OK" +fi + + +# Test 3 - Test if $@ and $* are DOSified. +cat > $file1 <<EOT +SHELL*:=/bin/sh +SHELLFLAGS*:=-ce + +/tmp/blah.xx .WINPATH : + @echo at:\$@:star:\$*: + +EOT + +if test x`uname -o 2> /dev/null` = "xCygwin"; then + output3=`eval ${DMAKEPROG} -r -f $file1` + result3=$? + if test "$output3" != "at:`cygpath -m /tmp/blah.xx`:star:`cygpath -m /tmp/blah`:"; then + echo "Subtest : Wrong result: $output3" + result3=1 + else + echo "Subtest 3: OK" + fi +else + echo "Subtest 3 ignored for non cygwin environment" + result3=0 +fi + + +# Test 4 - Test if $(PWD), $(MAKEDIR) are DOSified. +cat > $file1 <<EOT +SHELL*:=/bin/sh +SHELLFLAGS*:=-ce + +all .WINPATH .SETDIR=/tmp : + @echo :\$(PWD):\$(MAKEDIR): + +EOT + +if test x`uname -o 2> /dev/null` = "xCygwin"; then + output4=`eval ${DMAKEPROG} -r -f $file1` + result4=$? + mypwd=`pwd` + if test "$output4" != ":`cygpath -m /tmp`:`cygpath -m $mypwd`:"; then + echo "Subtest : Wrong result: $output4" + result4=1 + else + echo "Subtest 4: OK" + fi +else + echo "Subtest 4 ignored for non cygwin environment" + result4=0 +fi + + +# Test 5 - Test if $(TMD) is DOSified (if it is an absolute path). +cat > $file1 <<EOT +SHELL*:=/bin/sh +SHELLFLAGS*:=-ce + +all .WINPATH .SETDIR=/ : + @echo :\$(PWD):\$(TMD): + +EOT + +if test x`uname -o 2> /dev/null` = "xCygwin"; then + output5=`eval ${DMAKEPROG} -r -f $file1` + result5=$? + mypwd=`pwd` + if test "$output5" != ":`cygpath -m /`:`cygpath -m $mypwd`:"; then + echo "Subtest : Wrong result: $output5" + result5=1 + else + echo "Subtest 5: OK" + fi +else + echo "Subtest 5 ignored for non cygwin environment" + result5=0 +fi + + +# Test 6 - Test if .WINPATH changes $@ in conditional macro. +cat > $file1 <<EOT +SHELL*:=/bin/sh +SHELLFLAGS*:=-ce + +/tmp/all.bla ?= QQQ=\$@ +/tmp/all.bla .WINPATH : + @echo :\$(QQQ): +EOT + +if test x`uname -o 2> /dev/null` = "xCygwin"; then + output6=`eval ${DMAKEPROG} -r -f $file1` + result6=$? + if test "$output6" != ":`cygpath -m /tmp/all.bla`:"; then + echo "Subtest : Wrong result: $output6" + result6=1 + else + echo "Subtest 6: OK" + fi +else + echo "Subtest 6 ignored for non cygwin environment" + result6=0 +fi + + +if test $result1 -eq 0 -a $result2 -eq 0 \ + -a $result3 -eq 0 -a $result4 -eq 0 \ + -a $result5 -eq 0 -a $result6 -eq 0; then + echo "Success - Cleaning up" && rm -f ${tmpfiles} + exit +else + echo "Failure!" + exit 1 +fi |