mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 11:21:47 +00:00
Contain variable names in shell2unit
Also correct unbound assertions variable error on line 176
This commit is contained in:
parent
92b1e6d227
commit
670505e5ff
92
third_party/forked/shell2junit/sh2ju.sh
vendored
92
third_party/forked/shell2junit/sh2ju.sh
vendored
@ -46,13 +46,13 @@ errfile=/tmp/evErr.$$.log
|
|||||||
function eVal() {
|
function eVal() {
|
||||||
(eval "$1")
|
(eval "$1")
|
||||||
# stdout and stderr may currently be inverted (see below) so echo may write to stderr
|
# stdout and stderr may currently be inverted (see below) so echo may write to stderr
|
||||||
echo $? 2>&1 | tr -d "\n" > $errfile
|
echo $? 2>&1 | tr -d "\n" > ${errfile}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Method to clean old tests
|
# Method to clean old tests
|
||||||
function juLogClean() {
|
function juLogClean() {
|
||||||
echo "+++ Removing old junit reports from: $juDIR "
|
echo "+++ Removing old junit reports from: ${juDIR} "
|
||||||
rm -f "$juDIR"/junit-*
|
rm -f "${juDIR}"/junit-*
|
||||||
}
|
}
|
||||||
|
|
||||||
# Execute a command and record its results
|
# Execute a command and record its results
|
||||||
@ -76,108 +76,108 @@ function juLog() {
|
|||||||
done
|
done
|
||||||
|
|
||||||
# create output directory
|
# create output directory
|
||||||
mkdir -p "$juDIR" || exit
|
mkdir -p "${juDIR}" || exit
|
||||||
# use first arg as name if it was not given
|
# use first arg as name if it was not given
|
||||||
if [ -z "$name" ]; then
|
if [ -z "${name}" ]; then
|
||||||
name="$asserts-$1"
|
name="${asserts}-$1"
|
||||||
shift
|
shift
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$class" = "" ]]; then
|
if [[ "${class}" = "" ]]; then
|
||||||
class="default"
|
class="default"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
suite=$class
|
suite=${class}
|
||||||
|
|
||||||
# calculate command to eval
|
# calculate command to eval
|
||||||
[ -z "$1" ] && return
|
[ -z "$1" ] && return
|
||||||
cmd="$1"; shift
|
cmd="$1"; shift
|
||||||
while [ -n "${1:-}" ]
|
while [ -n "${1:-}" ]
|
||||||
do
|
do
|
||||||
cmd="$cmd \"$1\""
|
cmd="${cmd} \"$1\""
|
||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
|
|
||||||
# eval the command sending output to a file
|
# eval the command sending output to a file
|
||||||
outf=/var/tmp/ju$$.txt
|
outf=/var/tmp/ju$$.txt
|
||||||
errf=/var/tmp/ju$$-err.txt
|
errf=/var/tmp/ju$$-err.txt
|
||||||
>$outf
|
>${outf}
|
||||||
echo "" | tee -a $outf
|
echo "" | tee -a ${outf}
|
||||||
echo "+++ Running case: $class.$name " | tee -a $outf
|
echo "+++ Running case: ${class}.${name} " | tee -a ${outf}
|
||||||
echo "+++ working dir: "`pwd` | tee -a $outf
|
echo "+++ working dir: "`pwd` | tee -a ${outf}
|
||||||
echo "+++ command: $cmd" | tee -a $outf
|
echo "+++ command: ${cmd}" | tee -a ${outf}
|
||||||
ini=`$date +%s.%N`
|
ini=`${date} +%s.%N`
|
||||||
# execute the command, temporarily swapping stderr and stdout so they can be tee'd to separate files,
|
# execute the command, temporarily swapping stderr and stdout so they can be tee'd to separate files,
|
||||||
# then swapping them back again so that the streams are written correctly for the invoking process
|
# then swapping them back again so that the streams are written correctly for the invoking process
|
||||||
( (eVal "$cmd" | tee -a $outf) 3>&1 1>&2 2>&3 | tee $errf) 3>&1 1>&2 2>&3
|
( (eVal "${cmd}" | tee -a ${outf}) 3>&1 1>&2 2>&3 | tee ${errf}) 3>&1 1>&2 2>&3
|
||||||
evErr=`cat $errfile`
|
evErr=`cat ${errfile}`
|
||||||
rm -f $errfile
|
rm -f ${errfile}
|
||||||
end=`$date +%s.%N`
|
end=`${date} +%s.%N`
|
||||||
echo "+++ exit code: $evErr" | tee -a $outf
|
echo "+++ exit code: ${evErr}" | tee -a ${outf}
|
||||||
|
|
||||||
# set the appropriate error, based in the exit code and the regex
|
# set the appropriate error, based in the exit code and the regex
|
||||||
[ $evErr != 0 ] && err=1 || err=0
|
[ ${evErr} != 0 ] && err=1 || err=0
|
||||||
out=`cat $outf | ${SED} -e 's/^\([^+]\)/| \1/g'`
|
out=`cat $outf | ${SED} -e 's/^\([^+]\)/| \1/g'`
|
||||||
if [ $err = 0 -a -n "${ereg:-}" ]; then
|
if [ ${err} = 0 -a -n "${ereg:-}" ]; then
|
||||||
H=`echo "$out" | egrep $icase "$ereg"`
|
H=`echo "${out}" | egrep ${icase} "${ereg}"`
|
||||||
[ -n "$H" ] && err=1
|
[ -n "${H}" ] && err=1
|
||||||
fi
|
fi
|
||||||
[ $err != 0 ] && echo "+++ error: $err" | tee -a $outf
|
[ ${err} != 0 ] && echo "+++ error: ${err}" | tee -a ${outf}
|
||||||
rm -f $outf
|
rm -f ${outf}
|
||||||
|
|
||||||
errMsg=`cat $errf`
|
errMsg=`cat ${errf}`
|
||||||
rm -f $errf
|
rm -f ${errf}
|
||||||
# calculate vars
|
# calculate vars
|
||||||
asserts=$(($asserts+1))
|
asserts=$(($asserts+1))
|
||||||
errors=$(($errors+$err))
|
errors=$(($errors+$err))
|
||||||
time=`echo "$end - $ini" | bc -l`
|
time=`echo "${end} - ${ini}" | bc -l`
|
||||||
total=`echo "$total + $time" | bc -l`
|
total=`echo "${total} + ${time}" | bc -l`
|
||||||
|
|
||||||
# write the junit xml report
|
# write the junit xml report
|
||||||
## failure tag
|
## failure tag
|
||||||
[ $err = 0 ] && failure="" || failure="
|
[ ${err} = 0 ] && failure="" || failure="
|
||||||
<failure type=\"ScriptError\" message=\"Script Error\">
|
<failure type=\"ScriptError\" message=\"Script Error\">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
$errMsg
|
${errMsg}
|
||||||
]]>
|
]]>
|
||||||
</failure>
|
</failure>
|
||||||
"
|
"
|
||||||
## testcase tag
|
## testcase tag
|
||||||
content="$content
|
content="${content}
|
||||||
<testcase assertions=\"1\" name=\"$name\" time=\"$time\" classname=\"$class\">
|
<testcase assertions=\"1\" name=\"${name}\" time=\"${time}\" classname=\"${class}\">
|
||||||
$failure
|
${failure}
|
||||||
<system-err>
|
<system-err>
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
$errMsg
|
${errMsg}
|
||||||
]]>
|
]]>
|
||||||
</system-err>
|
</system-err>
|
||||||
</testcase>
|
</testcase>
|
||||||
"
|
"
|
||||||
## testsuite block
|
## testsuite block
|
||||||
|
|
||||||
if [[ -e "$juDIR/junit_$suite.xml" ]]; then
|
if [[ -e "${juDIR}/junit_${suite}.xml" ]]; then
|
||||||
# file exists. first update the failures count
|
# file exists. first update the failures count
|
||||||
failCount=`${SED} -n "s/.*testsuite.*failures=\"\([0-9]*\)\".*/\1/p" "$juDIR/junit_$suite.xml"`
|
failCount=`${SED} -n "s/.*testsuite.*failures=\"\([0-9]*\)\".*/\1/p" "${juDIR}/junit_${suite}.xml"`
|
||||||
errors=$(($failCount+$errors))
|
errors=$(($failCount+$errors))
|
||||||
${SED} -i "0,/failures=\"$failCount\"/ s/failures=\"$failCount\"/failures=\"$errors\"/" "$juDIR/junit_$suite.xml"
|
${SED} -i "0,/failures=\"${failCount}\"/ s/failures=\"${failCount}\"/failures=\"${errors}\"/" "${juDIR}/junit_${suite}.xml"
|
||||||
${SED} -i "0,/errors=\"$failCount\"/ s/errors=\"$failCount\"/errors=\"$errors\"/" "$juDIR/junit_$suite.xml"
|
${SED} -i "0,/errors=\"${failCount}\"/ s/errors=\"${failCount}\"/errors=\"${errors}\"/" "${juDIR}/junit_${suite}.xml"
|
||||||
|
|
||||||
# file exists. Need to append to it. If we remove the testsuite end tag, we can just add it in after.
|
# file exists. Need to append to it. If we remove the testsuite end tag, we can just add it in after.
|
||||||
${SED} -i "s^</testsuite>^^g" $juDIR/junit_$suite.xml ## remove testSuite so we can add it later
|
${SED} -i "s^</testsuite>^^g" ${juDIR}/junit_${suite}.xml ## remove testSuite so we can add it later
|
||||||
${SED} -i "s^</testsuites>^^g" $juDIR/junit_$suite.xml
|
${SED} -i "s^</testsuites>^^g" ${juDIR}/junit_${suite}.xml
|
||||||
cat <<EOF >> "$juDIR/junit_$suite.xml"
|
cat <<EOF >> "$juDIR/junit_$suite.xml"
|
||||||
$content
|
${content:-}
|
||||||
</testsuite>
|
</testsuite>
|
||||||
</testsuites>
|
</testsuites>
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
else
|
else
|
||||||
# no file exists. Adding a new file
|
# no file exists. Adding a new file
|
||||||
cat <<EOF > "$juDIR/junit_$suite.xml"
|
cat <<EOF > "${juDIR}/junit_${suite}.xml"
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<testsuites>
|
<testsuites>
|
||||||
<testsuite failures="$errors" assertions="$assertions" name="$suite" tests="1" errors="$errors" time="$total">
|
<testsuite failures="${errors}" assertions="${assertions:-}" name="${suite}" tests="1" errors="${errors}" time="${total}">
|
||||||
$content
|
${content:-}
|
||||||
</testsuite>
|
</testsuite>
|
||||||
</testsuites>
|
</testsuites>
|
||||||
EOF
|
EOF
|
||||||
|
Loading…
Reference in New Issue
Block a user