office-gobmx/dmake/tests/misc-18
Oliver Bolte 77a621b368 INTEGRATION: CWS dmake48 (1.1.2); FILE ADDED
2007/04/09 13:22:59 vq 1.1.2.3: #i73499# Fix bash syntax typo.
2007/04/09 03:27:03 vq 1.1.2.2: #i73499# Make test work on Solaris.
2007/03/23 20:40:40 vq 1.1.2.1: #i73499# Add documentation and testcase.
2007-06-12 05:08:37 +00:00

169 lines
3.4 KiB
Bash
Executable file

#!/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