diff options
author | Vijay Dandiga <vijay.dandiga@linaro.org> | 2014-06-11 14:44:50 +0530 |
---|---|---|
committer | Vijay Dandiga <vijay.dandiga@linaro.org> | 2014-06-11 14:57:48 +0530 |
commit | 4eb1e6ea435c53accf13ef83febdba3a2d8e611d (patch) | |
tree | 2c321c678018e58b1940e618028f997488e0a26e |
Start git repo for kexec-test
-rwxr-xr-x | kexec-test.sh | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/kexec-test.sh b/kexec-test.sh new file mode 100755 index 0000000..8a5e787 --- /dev/null +++ b/kexec-test.sh @@ -0,0 +1,78 @@ +#!/bin/bash +# Test script 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 + |