1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
#!/bin/sh
# PCP QA Test No. 1094
# Exercise _do_dir_and_arg() (for scripts run from cron)
#
# Copyright (c) 2015 Ken McDonell. All Rights Reserved.
#
seq=`basename $0`
echo "QA output created by $seq"
# get standard environment, filters and checks
. ./common.product
. ./common.filter
. ./common.check
status=1 # failure is the default!
trap "cd $here; rm -rf $tmp.*; exit \$status" 0 1 2 3 15
[ -f $PCP_SHARE_DIR/lib/utilproc.sh ] || _notrun "utilproc.sh not installed"
# _do_dir_and_args is hidden here ...
#
. $PCP_SHARE_DIR/lib/utilproc.sh
# secret debugging flag
#
debug_do_dir_and_args=true
_error()
{
echo "[<stdin>:$line]"
echo "Error: $@"
}
_filter()
{
sed \
-e "s/$(hostname)/HOSTNAME/g" \
-e "s@$tmp@TMP@g" \
# end
}
# real QA test starts here
# don't use date +%Y ... so test will not fail next year!
year=`date +2015`; export year
mydir=/some/path; export mydir
line=1
cat <<End-of-File | while read stuff dir args
preamble\$(blah)\`foo\`\$bar /some/path -c someconfig
preamble\$(blah)\`foo\`\$bar \${mydir}/xyz -c someconfig
preamble\$(blah)\`foo\`\$bar /xyz\${mydir} -c someconfig
preamble\$(blah)\`foo\`\$bar /xyz\$mydir -c someconfig
preamble\$(blah)\`foo\`\$bar \$(echo /some/path) -c someconfig
preamble\$(blah)\`foo\`\$bar \$( echo /some/path ) -c someconfig
preamble\$(blah)\`foo\`\$bar "/some/path/\$(date +2015)" -c someconfig
preamble\$(blah)\`foo\`\$bar '/some/path/\$(date +2015)' -c someconfig
preamble\$(blah)\`foo\`\$bar " /some/path/\$(date +2015) " -c someconfig
preamble\$(blah)\`foo\`\$bar ' /some/path/\$(date +2015) ' -c someconfig
preamble\$(blah)\`foo\`\$bar \`echo /some/path\` -c someconfig
preamble\$(blah)\`foo\`\$bar \` echo /some/path \` -c someconfig
preamble\$(blah)\`foo\`\$bar "/some/path/\`date +2015\`" -c someconfig
preamble\$(blah)\`foo\`\$bar '/some/path/\`date +2015\`' -c someconfig
preamble\$(blah)\`foo\`\$bar \$(bad command -c someconfig
preamble\$(blah)\`foo\`\$bar \`bad command -c someconfig
preamble\$(blah)\`foo\`\$bar "bad string -c someconfig
preamble\$(blah)\`foo\`\$bar 'bad string -c someconfig
preamble\$(blah)\`foo\`\$bar "embedded_backquote\`date +2015\`.postfix" -c someconfig
preamble\$(blah)\`foo\`\$bar 'embedded_backquote\`date +2015\`.postfix' -c someconfig
preamble\$(blah)\`foo\`\$bar bad_embedded_backquote\`date +2015\`.postfix -c someconfig
preamble\$(blah)\`foo\`\$bar "embedded_cmd\$(date +2015).postfix" -c someconfig
preamble\$(blah)\`foo\`\$bar 'embedded_cmd\$(date +2015).postfix' -c someconfig
preamble\$(blah)\`foo\`\$bar bad_embedded_cmd\$(date +2015).postfix -c someconfig
preamble\$(blah)\`foo\`\$bar \$(hostname) -c someconfig
preamble\$(blah)\`foo\`\$bar foo-\$(hostname)-bar -c someconfig
preamble\$(blah)\`foo\`\$bar \`hostname\` -c someconfig
preamble\$(blah)\`foo\`\$bar foo-\`hostname\`-bar -c someconfig
# from 793
LOCALHOSTNAME '\$(echo $tmp/B)' --pmlc-ipc-version=2 -c $tmp.config -l $tmp.B.log -Dservices,appl3,appl4
End-of-File
do
echo
echo "input \$dir |$dir| \$args |$args|" | _filter
_do_dir_and_args >$tmp.tmp
_filter <$tmp.tmp
echo "processed \$dir |$dir| \$args |$args|" | _filter
line=`expr $line + 1`
done
# success, all done
status=0
exit
|