diff options
author | Ivo Hinkelmann <ihi@openoffice.org> | 2007-10-15 14:49:47 +0000 |
---|---|---|
committer | Ivo Hinkelmann <ihi@openoffice.org> | 2007-10-15 14:49:47 +0000 |
commit | da9dc9687652b08f376d042e8f62dbd19f82a0f9 (patch) | |
tree | 2ca23cf7d1b7d1c7bf667dd51455a7c534f2421b /dmake/tests/misc-20 | |
parent | 88872b0a4b72f06d78a244343f61a92bca224127 (diff) |
INTEGRATION: CWS dmake411 (1.1.2); FILE ADDED
2007/10/13 22:27:58 vq 1.1.2.2: #i10000# Fix typo.
2007/09/16 16:35:34 vq 1.1.2.1: #i81296# Add testcases.
Diffstat (limited to 'dmake/tests/misc-20')
-rwxr-xr-x | dmake/tests/misc-20 | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/dmake/tests/misc-20 b/dmake/tests/misc-20 new file mode 100755 index 000000000000..c25bf05d8342 --- /dev/null +++ b/dmake/tests/misc-20 @@ -0,0 +1,121 @@ +#!/bin/sh + +# 16.09.2007 Volker Quetschke +# Check that inferred makefiles for .INCLUDE do not disturb the dependency +# checking afterwards. +# (issue 81296) + +: ${DMAKEPROG:=dmake} +file1="mfile1.mk" +file2="my.c" +file3="my.obj" +file4="my.foo" +tmpfiles="$file1 $file2 $file3 $file4" + +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 - from testcase t_81296_5.mk +cat > $file1 <<EOT +SHELL*:=/bin/sh +SHELLFLAGS*:=-ce + +# Test that my.c is build when my.foo is newer. + +# rules.mk --- +%.obj : %.c ; @+printf "\$@:" +# @sleep 1 + @touch \$@ + +%.dpo : %.c ; @+printf "incbuild:\$@:" +# @sleep 1 + +# target.mk --- +all : my.obj ; @echo all + +# If the file exist no inference is done for it. +.INCLUDE .IGNORE : my.dpo + +# When inference was run on the %.dpo with an existing +# %.c these rule gets ignored. +# local makefile.mk --- +%.c : %.foo ; @+printf "\$@:" +# @sleep 1 + @touch \$@ +EOT + +# Create test environment +touch my.c +sleep 1 +touch my.foo + +output1=`eval ${DMAKEPROG} -rf $file1 2>&1 ` +result1=$? + +if test $result1 = 0 -a "$output1" = "incbuild:my.dpo:my.c:my.obj:all"; then + echo "Subtest 1: OK" +else + echo "Subtest 1: Wrong result: $output1" + echo + result1=1 +fi + +# Remove files from prior run +rm -rf $tmpfiles +# Remember to quote variables in generated makefiles( $ -> \$ ). +# Test 2 - from testcase t_81296_6.mk +cat > $file1 <<EOT +SHELL*:=/bin/sh +SHELLFLAGS*:=-ce + +# Test that no circular dependency error is issued: +# $ rm -f my.* ; touch my.c ; ./dmake/dmake.exe -rf t_81296_6.mk + +# rules.mk --- +%.obj : %.c ; @+printf "\$@:" + @touch \$@ + +%.dpo : %.c ; @+printf "incbuild:\$@:" + +# target.mk --- +all : my.obj ; @echo all + +# If the file exist no inference is done for it. +.INCLUDE .IGNORE : my.dpo + +%.c : %.foo ; @+printf "\$@:" + @touch \$@ + +# This leads to a (wrong) circular dependency error +my.obj : my.c + +EOT + +# Create test environment +touch my.c +sleep 1 +touch my.foo + +output2=`eval ${DMAKEPROG} -rf $file1 2>&1 ` +result2=$? + +if test $result2 = 0 -a "$output2" = "incbuild:my.dpo:my.c:my.obj:all"; then + echo "Subtest 2: OK" +else + echo "Subtest 2: Wrong result: $output2" + echo + result2=1 +fi + + +if test $result1 -eq 0 -a $result2 -eq 0 ; then + echo "Success - Cleaning up" + rm -rf $tmpfiles + exit +else + echo "Failure!" + exit 1 +fi |