diff options
Diffstat (limited to 'tools/tests/mce-test/cases/ucna_llc/guest/cases.sh')
-rw-r--r-- | tools/tests/mce-test/cases/ucna_llc/guest/cases.sh | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/tools/tests/mce-test/cases/ucna_llc/guest/cases.sh b/tools/tests/mce-test/cases/ucna_llc/guest/cases.sh new file mode 100644 index 0000000000..5212770b51 --- /dev/null +++ b/tools/tests/mce-test/cases/ucna_llc/guest/cases.sh @@ -0,0 +1,93 @@ +#!/bin/bash +# +# Copyright (c) 2010, Intel Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version +# 2 as published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. +# +# Author: Xudong Hao <xudong.hao@intel.com> +# + +sd=$(dirname $0) +export ROOT=`(cd $sd/../../../; pwd)` +export this_case=ucna_llc_guest + +. $ROOT/lib/xen-mceinj-tool.sh + +usage() +{ + echo "Usage: ./cases.sh [-options] [arguments]" + echo "================Below are the must have options===============" + echo -e "\t-i image\t: guest image" + echo -e "\t-m memory\t: set guest virtual memory" + echo "======== ========" + echo "================Below are the optional options================" + echo -e "\t-u vcpus\t: set guest virtual cpus number" + echo -e "\t-c injcpu\t: which cpu to inject error" + echo -e "\t-p pageaddr\t: Guest Physical Address to inject error" + echo -e "\t\t\tBy default, the GPA is 0x180020" + echo -e "\t-h help" + exit 0 +} + +[ $# -lt 1 ] && usage + +while getopts ":i:u:m:c:p:hl:" option +do + case "$option" in + i) image=$OPTARG; offset=`kpartx -l $image | awk '{print $NF*512}'`;; + u) vcpus=$OPTARG;; + m) memory=$OPTARG;; + c) injcpu=$OPTARG;; + p) pageaddr=$OPTARG;; + l) early_kill="0";; + h) usage;; + *) echo "invalid option!"; usage;; + esac +done + + +start_guest() +{ + create_hvm_guest $image -u $vcpus -m $memory + if [ $? -ne 0 ]; then + echo " Create guest fail!" + return 1 + fi + return 0 +} + +inject() +{ + mce_inject_trigger $CMCI_UCNA_LLC -u $injcpu -p $pageaddr + if [ $? -eq 0 ]; then + show " Passed: Successfully to fake and inject a MCE error" + else + show " Failed: Fake error and inject fail !!" + return 1 + fi + return 0 +} + +do_main() +{ + ret_val=0 + clean_env + start_guest || ret_val=1 + inject || ret_val=1 + mcelog_verify $CMCI_UCNA_LLC || ret_val=1 + des_guest + gen_result $ret_val +} + +do_main "$@" |