[master] da2409c38 Improve vtest.sh variable quoting
Nils Goroll
nils.goroll at uplex.de
Wed Jan 27 20:11:21 UTC 2021
commit da2409c3863d1da8f2dac0ace9ae05fa0e743d81
Author: Nils Goroll <nils.goroll at uplex.de>
Date: Wed Jan 27 21:08:13 2021 +0100
Improve vtest.sh variable quoting
Advise from shellcheck taken undogmatically.
(I always forget: is $() for `..` posix-sh or not?)
diff --git a/tools/vtest.sh b/tools/vtest.sh
index bc601ca69..936a96020 100755
--- a/tools/vtest.sh
+++ b/tools/vtest.sh
@@ -66,11 +66,11 @@ export VTEST_REPORT="${REPORTDIR}/_log"
#######################################################################
# Establish TMPDIR
-mkdir -p ${TMPDIR}
-rm -rf ${TMPDIR}/*
+mkdir -p "${TMPDIR}"
+rm -rf "${TMPDIR:?}"/*
# Try to make varnish own TMPDIR, in case we run as root
-chown varnish ${TMPDIR} > /dev/null 2>&1 || true
+chown varnish "${TMPDIR}" > /dev/null 2>&1 || true
#######################################################################
# Establish the SRCDIR we build/run/test
@@ -91,7 +91,7 @@ if [ ! -f vt_key.pub ] ; then
fi
pack () (
- cd ${REPORTDIR}
+ cd "${REPORTDIR}"
tar czf - _log \
`grep '^MANIFEST ' _log | sort -u | sed 's/^MANIFEST *//'` \
)
@@ -104,15 +104,15 @@ submit () (
-o NumberOfPasswordPrompts=0 \
-o RequestTTY=no \
-i vt_key \
- ${SSH_DST} \
+ "${SSH_DST}" \
true \
- < ${1}
+ < "${1}"
)
-rm -f ${TMPDIR}/_report.tgz
-touch ${TMPDIR}/_report.tgz
+rm -f "${TMPDIR}"/_report.tgz
+touch "${TMPDIR}"/_report.tgz
-if ! submit ${TMPDIR}/_report.tgz; then
+if ! submit "${TMPDIR}"/_report.tgz; then
echo "Test submit failed"
echo
echo "You probably need to email this VTEST specific ssh-key"
@@ -193,7 +193,7 @@ failedtests () (
grep -l ':test-result: FAIL' "$LOGDIR"/*.trs |
while read trs
do
- name=`basename $trs .trs`
+ name=`basename "${trs}" .trs`
vtc="${name}.vtc"
log="${name}.log"
rev=`git log -n 1 --pretty=format:%H "${VTCDIR}/${vtc}"`
@@ -226,12 +226,12 @@ do
(cd "${SRCDIR}" && chmod -R +w varnish-trunk && rm -rf varnish-trunk > /dev/null 2>&1 || true)
rev=`cd "${SRCDIR}" && git show -s --pretty=format:%H`
if [ "x${rev}" != "x${orev}" ] ; then
- waitcur=${WAITMIN}
+ waitcur=${WAITMIN}
elif [ "${waitnext}" -gt 0 ] ; then
sleep ${WAITPERIOD}
waitnext=`expr ${waitnext} - 1 || true`
continue
- else
+ else
waitcur=`expr ${waitcur} + 1`
if [ ${waitcur} -gt ${WAITMAX} ] ; then
waitcur=${WAITMAX}
@@ -253,55 +253,55 @@ do
# NB: Only change the report version number when the format/content
# NB: of the report changes. Corresponding changes on the backend
# NB: will be required. Coordinate with phk at .
- echo "VTEST 1.05" > ${VTEST_REPORT}
- echo "DATE `date +%s`" >> ${VTEST_REPORT}
- echo "BRANCH trunk" >> ${VTEST_REPORT}
- echo "HOST `hostname`" >> ${VTEST_REPORT}
- echo "UNAME `uname -a`" >> ${VTEST_REPORT}
- echo "UGID `id`" >> ${VTEST_REPORT}
+ echo "VTEST 1.05" > "${VTEST_REPORT}"
+ echo "DATE `date +%s`" >> "${VTEST_REPORT}"
+ echo "BRANCH trunk" >> "${VTEST_REPORT}"
+ echo "HOST `hostname`" >> "${VTEST_REPORT}"
+ echo "UNAME `uname -a`" >> "${VTEST_REPORT}"
+ echo "UGID `id`" >> "${VTEST_REPORT}"
if [ -x /usr/bin/lsb_release ] ; then
- echo "LSB `lsb_release -d`" >> ${VTEST_REPORT}
+ echo "LSB `lsb_release -d`" >> "${VTEST_REPORT}"
else
- echo "LSB none" >> ${VTEST_REPORT}
+ echo "LSB none" >> "${VTEST_REPORT}"
fi
- echo "MESSAGE ${MESSAGE}" >> ${VTEST_REPORT}
- echo "GITREV $rev" >> ${VTEST_REPORT}
+ echo "MESSAGE ${MESSAGE}" >> "${VTEST_REPORT}"
+ echo "GITREV $rev" >> "${VTEST_REPORT}"
find . -name '*.gc??' -print | xargs rm -f
- if ! autogen >> ${REPORTDIR}/_autogen 2>&1 ; then
- echo "AUTOGEN BAD" >> ${VTEST_REPORT}
- echo "MANIFEST _autogen" >> ${VTEST_REPORT}
+ if ! autogen >> "${REPORTDIR}"/_autogen 2>&1 ; then
+ echo "AUTOGEN BAD" >> "${VTEST_REPORT}"
+ echo "MANIFEST _autogen" >> "${VTEST_REPORT}"
else
- echo "AUTOGEN GOOD" >> ${VTEST_REPORT}
+ echo "AUTOGEN GOOD" >> "${VTEST_REPORT}"
if $enable_gcov ; then
- if makegcov >> ${REPORTDIR}/_makegcov 2>&1 ; then
- mv ${SRCDIR}/_gcov ${REPORTDIR}/
- echo "MAKEGCOV GOOD" >> ${VTEST_REPORT}
- echo "MANIFEST _gcov" >> ${VTEST_REPORT}
+ if makegcov >> "${REPORTDIR}"/_makegcov 2>&1 ; then
+ mv ${SRCDIR}/_gcov "${REPORTDIR}"/
+ echo "MAKEGCOV GOOD" >> "${VTEST_REPORT}"
+ echo "MANIFEST _gcov" >> "${VTEST_REPORT}"
waitcur=${WAITMAX}
waitnext=${WAITMAX}
else
- echo "MAKEGCOV BAD" >> ${VTEST_REPORT}
- echo "MANIFEST _makegcov" >> ${VTEST_REPORT}
- failedtests >> ${VTEST_REPORT}
+ echo "MAKEGCOV BAD" >> "${VTEST_REPORT}"
+ echo "MANIFEST _makegcov" >> "${VTEST_REPORT}"
+ failedtests >> "${VTEST_REPORT}"
fi
- elif ! makedistcheck >> ${REPORTDIR}/_makedistcheck 2>&1 ; then
- echo "MAKEDISTCHECK BAD" >> ${VTEST_REPORT}
- echo "MANIFEST _autogen" >> ${VTEST_REPORT}
- echo "MANIFEST _makedistcheck" >> ${VTEST_REPORT}
- failedtests >> ${VTEST_REPORT}
+ elif ! makedistcheck >> "${REPORTDIR}"/_makedistcheck 2>&1 ; then
+ echo "MAKEDISTCHECK BAD" >> "${VTEST_REPORT}"
+ echo "MANIFEST _autogen" >> "${VTEST_REPORT}"
+ echo "MANIFEST _makedistcheck" >> "${VTEST_REPORT}"
+ failedtests >> "${VTEST_REPORT}"
else
- echo "MAKEDISTCHECK GOOD" >> ${VTEST_REPORT}
+ echo "MAKEDISTCHECK GOOD" >> "${VTEST_REPORT}"
waitnext=${WAITMAX}
waitcur=${WAITMAX}
fi
fi
- echo "VTEST END" >> ${VTEST_REPORT}
- pack > ${TMPDIR}/_report.tgz
+ echo "VTEST END" >> "${VTEST_REPORT}"
+ pack > "${TMPDIR}"/_report.tgz
- submit ${TMPDIR}/_report.tgz || \
+ submit "${TMPDIR}"/_report.tgz || \
sleep 300 || \
- submit ${TMPDIR}/_report.tgz || \
+ submit "${TMPDIR}"/_report.tgz || \
true
done
More information about the varnish-commit
mailing list