#!/bin/sh # PCP QA Test No. 464 # Test pmLoadASCIINameSpace with pmcpp instead of cpp # # Copyright (c) 2011 Ken McDonell. All Rights Reserved. # seq=`basename $0` echo "QA output created by $seq" # get standard filters . ./common.product . ./common.filter . ./common.check status=0 # success is the default! $sudo rm -rf $tmp.* $seq.full trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15 _filter() { cat >$tmp.tmp grep "^pmcpp:" <$tmp.tmp >$tmp.save if [ -s $tmp.save ] then # pmcpp lines ... move 'em to the start cat $tmp.save grep -v "^pmcpp:" $tmp.tmp else cat $tmp.tmp fi \ | sed \ -e "s;$tmp;TMP;g" } # real QA test starts here echo "no error cases ..." cat <$tmp.root root { one 1:2:3 two four } two { three 4:5:6 } four { five } four.five { six 7:8:9 } End-of-File pminfo -n $tmp.root -m >$tmp.out 2>$tmp.err cat $tmp.out $tmp.err | _filter echo cat <$tmp.root root { one 1:2:3 #include "$tmp.1" End-of-File cat <$tmp.1 two four } two { three 4:5:6 } #include "$tmp.2" End-of-File cat <$tmp.2 four { five } four.five { six 7:8:9 } End-of-File pminfo -n $tmp.root -m >$tmp.out 2>$tmp.err cat $tmp.out $tmp.err | _filter rm -f $tmp.? echo cat <$tmp.root /* comment at the beginning */ root { one 1:2:3 two four } two { three /*inline comment*/ 4:5:6 } four { five } four.five { /**/six 7:8:9 } /* * multi-line comment at the end */ End-of-File pminfo -n $tmp.root -m >$tmp.out 2>$tmp.err cat $tmp.out $tmp.err | _filter echo cat <$tmp.root #define one two #define foo_path3 foo.three #define THREE 3 #define FOUR 4 #define FIVE 5 root { one 2:2:2 foo } foo { two three } foo.one { eek THREE:FOUR:FIVE } foo_path3 { urk FIVE:FOUR:THREE } End-of-File pminfo -n $tmp.root -m >$tmp.out 2>$tmp.err cat $tmp.out $tmp.err | _filter echo echo "#include errors ..." cat <$tmp.root root { #include $tmp.1 } End-of-File pminfo -n $tmp.root -m >$tmp.out 2>$tmp.err cat $tmp.out $tmp.err | _filter rm -f $tmp.? cat <$tmp.root root { #include "$tmp.1 } End-of-File pminfo -n $tmp.root -m >$tmp.out 2>$tmp.err cat $tmp.out $tmp.err | _filter cat <$tmp.root root { #include "$tmp.1" junk } End-of-File pminfo -n $tmp.root -m >$tmp.out 2>$tmp.err cat $tmp.out $tmp.err | _filter rm -f $tmp.? cat <$tmp.root root { #include "$tmp.1" } End-of-File pminfo -n $tmp.root -m >$tmp.out 2>$tmp.err cat $tmp.out $tmp.err | _filter rm -f $tmp.? cat <$tmp.root root { zero 1:0:0 #include "$tmp.1" } End-of-File cat <$tmp.1 one 1:0:1 #include "$tmp.2" End-of-File cat <$tmp.2 two 1:0:2 #include "$tmp.3" End-of-File cat <$tmp.3 three 1:0:3 #include "$tmp.4" End-of-File cat <$tmp.4 four 1:0:4 #include "$tmp.5" End-of-File pminfo -Dpmns -n $tmp.root -m >$tmp.out 2>$tmp.err cat $tmp.out $tmp.err | _filter rm -f $tmp.? echo echo "#define errors ..." cat <$tmp.root root { #define } End-of-File pminfo -n $tmp.root -m >$tmp.out 2>$tmp.err cat $tmp.out $tmp.err | _filter cat <$tmp.root root { /* white space at the end of the next line */ #define } End-of-File pminfo -n $tmp.root -m >$tmp.out 2>$tmp.err cat $tmp.out $tmp.err | _filter cat <$tmp.root root { #define foo } End-of-File pminfo -n $tmp.root -m >$tmp.out 2>$tmp.err cat $tmp.out $tmp.err | _filter cat <$tmp.root root { #define bad_123_macro!name } End-of-File pminfo -n $tmp.root -m >$tmp.out 2>$tmp.err cat $tmp.out $tmp.err | _filter echo echo "other #cpp line errors ..." cat <$tmp.root root { #fumble } End-of-File pminfo -n $tmp.root -m >$tmp.out 2>$tmp.err cat $tmp.out $tmp.err | _filter # success, all done exit