summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVijay Dandiga <vijay.dandiga@linaro.org>2014-06-11 14:44:50 +0530
committerVijay Dandiga <vijay.dandiga@linaro.org>2014-06-11 14:44:50 +0530
commitaa5f29af16bbe8c8846e412b0f8ad67863140d58 (patch)
treedef40f794394947cf03e8c344b2e0495d0a14c60
Start git repo for kexec-testHEADmaster
-rwxr-xr-xkexec-test.sh78
1 files changed, 78 insertions, 0 deletions
diff --git a/kexec-test.sh b/kexec-test.sh
new file mode 100755
index 0000000..cd13c7a
--- /dev/null
+++ b/kexec-test.sh
@@ -0,0 +1,78 @@
+#!/bin/bash
+# Test scrip to validate kexec reboots
+
+kexec_tools_instance=$((RANDOM%99999+10000))
+metadata="/home/root/.kexec-test-data"
+kernel="/boot/vmlinux.strip"
+cmdline="$( cat /proc/cmdline) kexec_tools_instance=$kexec_tools_instance"
+dtb="/boot/fdt.dtb"
+
+usage(){
+ echo "Usage:"
+ echo "kexec-test [--metadata <file>] [--kernel <kernel> --append <command line> --dtb <dtb_file>] [--validate] [--reset] [--help]"
+ echo
+ echo "--[m]etadata default - /home/root/.kexec-test-data"
+ echo "--[k]ernel default - /boot/vmlinux.strip"
+ echo "--[a]ppend defalut - current /proc/cmdline + KERNEL ID"
+ echo "--[d]tb default - /boot/fdt.dtb"
+ echo "--[v]alidate Checks whether recent kexec boot Success or Fail"
+ echo "--[r]eset Deletes metadata"
+ echo "--[h]elp Shows this menu"
+ echo
+}
+
+reset(){
+ rm $metadata
+}
+
+validate(){
+ recent_id=`cat $metadata | grep "BOOTING KERNEL" | tail -1 | cut -d ' ' -f 4`
+ kexec_success=`cat /proc/cmdline | grep $recent_id | wc -l`
+ if [ $kexec_success -eq 0 ]
+ then
+ echo "kexec-test: KERNEL ID $recent_id REBOOT FAIL"
+ exit 1
+ else
+ echo "kexec-test: KERNEL ID $recent_id REBOOT SUCCESS"
+ exit 0
+ fi
+}
+
+while [ "$1" ]
+do
+ case $1 in
+ -m | --metadata ) shift
+ metadata=$1
+ ;;
+ -k | --kernel ) shift
+ kernel=$1
+ ;;
+ -a | --append ) shift
+ cmdline="$1 kexec_tools_instance=$kexec_tools_instance"
+ ;;
+ -d | --dtb ) shift
+ dtb=$1
+ ;;
+ -v | --validate ) validate
+ exit 1
+ ;;
+ -r | --reset ) reset
+ exit
+ ;;
+ -h | --help ) usage
+ exit
+ ;;
+ * ) usage
+ exit 1
+ esac
+ shift
+done
+
+echo "kexec-test: LOADING KERNEL $kexec_tools_instance" | tee -a $metadata
+echo "kexec -d --load $kernel "--append=$cmdline" --dtb=$dtb" | tee -a $metadata
+sleep 3
+kexec -d --load $kernel "--append=$cmdline" --dtb=$dtb
+echo "kexec-test: BOOTING KERNEL $kexec_tools_instance" | tee -a $metadata
+sleep 3
+kexec -d -e
+