summaryrefslogtreecommitdiff
path: root/scripts/sr-ir.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/sr-ir.sh')
-rwxr-xr-xscripts/sr-ir.sh90
1 files changed, 90 insertions, 0 deletions
diff --git a/scripts/sr-ir.sh b/scripts/sr-ir.sh
new file mode 100755
index 0000000..5cc6e73
--- /dev/null
+++ b/scripts/sr-ir.sh
@@ -0,0 +1,90 @@
+#!/bin/bash
+. scripts/lava-common.sh
+
+# urls
+acs_img='ir_acs_live_image.img'
+acs_url='https://people.linaro.org/~ilias.apalodimas/qemu/debian/'"$acs_img"
+post_url='https://archive.validation.linaro.org/artifacts/team/systemready/'
+
+# final log files
+log_file_part='/media/acs_results/sct_results/Overall/Summary'
+ekl="$log_file_part"'.ekl'
+log="$log_file_part"'.log'
+
+wget "$acs_url"
+wget https://people.linaro.org/~ilias.apalodimas/images/ubuntu-21.04/variables.img
+# FIXME compile this from source
+wget https://people.linaro.org/~ilias.apalodimas/qemu/debian/u-boot.bin
+
+# Ordering matters here keep variables.img first
+tmux new-session -d -s qemu \
+ "qemu-system-aarch64 \
+ -bios u-boot.bin \
+ -machine virt \
+ -cpu cortex-a57 -m 4G \
+ -nographic -no-acpi \
+ -drive id=disk0,file=variables.img,if=none,format=raw \
+ -device virtio-blk-device,drive=disk0 \
+ -drive id=disk1,file=$acs_img,if=none,format=raw \
+ -device virtio-blk-device,drive=disk1"
+
+echo '########################################'
+echo '# Checking QEMU ACS for completion ... #'
+echo '########################################'
+
+part=$(losetup -f -P -r --show $acs_img)'p2'
+[ -z "$part" ] && lava_result 'MOUNT_LOOPBACK' 'FAILED' 'yes'
+
+el=0
+while true; do
+ sudo mount "$part" /media > /dev/null 2>&1
+ # Since there's no indication in SCT, grep for a very late entry in FWTS
+ # logs (FWTS executes after SCT)
+ stop_compl=$(grep 'Other failures' /media/acs_results/fwts/FWTSResults.log 2>/dev/null)
+ [ -n "$stop_compl" ] && echo "Found SCT logs. Parsing..." && break
+ stop_qemu=$(pidof qemu-system-aarch64)
+ [ -z "$stop_qemu" ] && lava_result 'QEMU_PROCESS' 'FAILED' 'yes' && break
+
+ sudo umount /media > /dev/null 2>&1
+ echo "Test running for $((el/60)) minutes ..."
+ sleep 120
+ el=$((el+120))
+done
+
+#git clone --depth=1 https://gitlab.arm.com/systemready/edk2-test-parser
+git clone --branch vincent/master https://gitlab.arm.com/systemready/edk2-test-parser
+cd edk2-test-parser
+./parser.py "$ekl" \
+ /media/acs_results/sct_results/Sequence/EBBR.seq \
+ --filter "x['result'] in ['DROPPED', 'FAILURE', 'WARNING']" --uniq \
+ --fields 'count,result,name' --print
+
+# Get the key
+lava_test_dir="$(find /lava-* -maxdepth 0 -type d | grep -E '^/lava-[0-9]+' 2>/dev/null | sort | tail -1)"
+[ -n "$lava_test_dir" ] && . $lava_test_dir/secrets
+
+# store files
+ekl=$(curl -F "path=@$ekl" -F "token=$API_KEY" "$post_url")
+log=$(curl -F "path=@$log" -F "token=$API_KEY" "$post_url")
+final_dir=$(echo $ekl | awk 'BEGIN{FS=OFS="/"}NF--')
+final_dir="$final_dir"'/'
+
+# used for prints
+title='Download Logs'
+url_num_char=${#final_dir}
+title_num_char=${#title}
+
+# pretty print logs location
+printc=$(printf '%*s' "$url_num_char" | tr ' ' '#')
+start=$(((url_num_char-title_num_char)/2))
+echo "$printc" | awk -v start="$start" \
+ -v rep="$title_num_char" \
+ -v title="$title" \
+ '{target=substr($0,0,rep); gsub(/#############/,title,target); \
+ trail=substr($0,0,start)
+ print trail target trail}'
+echo "$final_dir"
+echo "$printc"
+
+sudo umount /media > /dev/null 2>&1
+sudo losetup -D > /dev/null 2>&1