mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-23 19:04:45 +03:00
f99954c01f
When a VM fails to launch or is unreachable the qemu-7-prepare.sh script will fail to collect the artifacts due to the missing vm* directories. We want to collect as much diagnostic information as possible, when missing create the directory to allow the subsequent steps to proceed normally. Additionally, we don't want to fail if the /tmp/summary.txt file is missing. Reviewed-by: Tony Hutter <hutter2@llnl.gov> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #18438
106 lines
2.3 KiB
Bash
Executable File
106 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
######################################################################
|
|
# 8) show colored output of results
|
|
######################################################################
|
|
|
|
set -eu
|
|
|
|
# read our defined variables
|
|
source /var/tmp/env.txt
|
|
cd $RESPATH
|
|
|
|
# helper function for showing some content with headline
|
|
function showfile() {
|
|
content=$(dd if=$1 bs=1024 count=400k 2>/dev/null)
|
|
if [ -z "$2" ]; then
|
|
group1=""
|
|
group2=""
|
|
else
|
|
SIZE=$(stat --printf="%s" "$file")
|
|
SIZE=$((SIZE/1024))
|
|
group1="##[group]$2 ($SIZE KiB)"
|
|
group2="##[endgroup]"
|
|
fi
|
|
cat <<EOF > tmp$$
|
|
$group1
|
|
$content
|
|
$group2
|
|
EOF
|
|
cat tmp$$
|
|
rm -f tmp$$
|
|
}
|
|
|
|
function showfile_tail() {
|
|
echo "##[group]$2 (final lines)"
|
|
tail -n 80 $1
|
|
echo "##[endgroup]"
|
|
}
|
|
|
|
# overview if available
|
|
if [ -f /tmp/summary.txt -a -s /tmp/summary.txt ]; then
|
|
cat /tmp/summary.txt
|
|
echo ""
|
|
fi
|
|
|
|
if [ -f /tmp/have_failed_tests -a -s /tmp/failed.txt ]; then
|
|
echo "Debuginfo of failed tests:"
|
|
cat /tmp/failed.txt
|
|
echo ""
|
|
cat /tmp/summary.txt | grep -v '^/'
|
|
echo ""
|
|
fi
|
|
|
|
echo -e "\nFull logs for download:\n $1\n"
|
|
|
|
for ((i=1; i<=VMs; i++)); do
|
|
|
|
# Print Lustre build test results (the build is only done on vm2)
|
|
if [ -f vm$i/lustre-exitcode.txt ] ; then
|
|
rv=$(< vm$i/lustre-exitcode.txt)
|
|
if [ $rv = 0 ]; then
|
|
vm="[92mvm$i[0m"
|
|
else
|
|
vm="[1;91mvm$i[0m"
|
|
touch /tmp/have_failed_tests
|
|
fi
|
|
file="vm$i/lustre.txt"
|
|
test -s "$file" && showfile_tail "$file" "$vm: Lustre build"
|
|
fi
|
|
|
|
if [ -f vm$i/builtin-exitcode.txt ] ; then
|
|
rv=$(< vm$i/builtin-exitcode.txt)
|
|
if [ $rv = 0 ]; then
|
|
vm="[92mvm$i[0m"
|
|
else
|
|
vm="[1;91mvm$i[0m"
|
|
touch /tmp/have_failed_tests
|
|
fi
|
|
file="vm$i/builtin.txt"
|
|
test -s "$file" && showfile_tail "$file" "$vm: Linux built-in build"
|
|
fi
|
|
|
|
rv=$(cat vm$i/tests-exitcode.txt)
|
|
|
|
if [ $rv = 0 ]; then
|
|
vm="[92mvm$i[0m"
|
|
else
|
|
vm="[1;91mvm$i[0m"
|
|
fi
|
|
|
|
file="vm$i/dmesg-prerun.txt"
|
|
test -s "$file" && showfile "$file" "$vm: dmesg kernel"
|
|
|
|
file="/tmp/vm${i}log.txt"
|
|
test -s "$file" && showfile "$file" "$vm: test results"
|
|
|
|
file="vm$i/console.txt"
|
|
test -s "$file" && showfile "$file" "$vm: serial console"
|
|
|
|
file="/tmp/vm${i}dbg.txt"
|
|
test -s "$file" && showfile "$file" "$vm: failure logfile"
|
|
done
|
|
|
|
test -f /tmp/have_failed_tests && exit 1
|
|
exit 0
|