#!/bin/sh set -e . /home/horms/projects/xen/bin/xm.sh . /home/horms/projects/xen/bin/config.sh clean () { CONF_="$CONF" CONF="" [ -n "$CONF_" ] && rm "$CONF_" } CONF=$(mktemp) || exit 1 trap clean EXIT CONF_NO=0 ############################################################################# ############################################################################# TEST_NO=0 echo "$CONFIG1" > "$CONF" CONF_NO=$(($CONF_NO + 1)) ############################################################################# TEST_NO=$(($TEST_NO + 1)); ATTEMPT=0 STATUS="fail" for i in $(seq $RETRY); do ATTEMPT=$(($ATTEMPT + 1)); echo "Config $CONF_NO, Test $TEST_NO, Attempt $ATTEMPT" xm_destroy debian || continue xm_delete debian || continue xm_create "debian" "$CONF" "$TIMEOUT" || continue expect "" sudo xm pci-list debian || continue expect "" sudo xm pci-attach -o msitranslate=0 -o power_mgmt=0 \ debian 00:1d.0 || continue expect "VSlt domain bus slot func 0x04 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 b || continue expect "VSlt domain bus slot func 0x0b 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "" sudo xm pci-list debian || continue expect "" sudo xm destroy debian || continue STATUS="ok" break done if [ "$STATUS" != "ok" ]; then exit 1 fi ############################################################################# TEST_NO=$(($TEST_NO + 1)) ATTEMPT=0 STATUS="fail" for i in $(seq $RETRY); do ATTEMPT=$(($ATTEMPT + 1)); echo "Config $CONF_NO, Test $TEST_NO, Attempt $ATTEMPT" xm_destroy debian || continue xm_delete debian || continue xm_new "$CONF" expect "" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 || continue expect "domain bus slot func 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 b || continue expect "VSlt domain bus slot func 0x0b 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "" sudo xm pci-attach debian 00:1d.0 b || continue xm_delete debian || continue STATUS="ok" break done if [ "$STATUS" != "ok" ]; then exit 1 fi ############################################################################# TEST_NO=$(($TEST_NO + 1)) ATTEMPT=0 STATUS="fail" for i in $(seq $RETRY); do ATTEMPT=$(($ATTEMPT + 1)); echo "Config $CONF_NO, Test $TEST_NO, Attempt $ATTEMPT" xm_destroy debian || continue xm_delete debian || continue xm_new "$CONF" expect "" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 || continue expect "domain bus slot func 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue xm_start debian "$TIMEOUT" || continue expect "VSlt domain bus slot func 0x04 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 b || continue expect "VSlt domain bus slot func 0x0b 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "" sudo xm pci-list debian || continue xm_destroy debian || continue xm_delete debian || continue STATUS="ok" break done if [ "$STATUS" != "ok" ]; then exit 1 fi ############################################################################# TEST_NO=$(($TEST_NO + 1)) ATTEMPT=0 STATUS="fail" for i in $(seq $RETRY); do ATTEMPT=$(($ATTEMPT + 1)); echo "Config $CONF_NO, Test $TEST_NO, Attempt $ATTEMPT" xm_destroy debian || continue xm_delete debian || continue xm_new "$CONF" expect "" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 || continue expect "domain bus slot func 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "" sudo xm pci-list debian || continue xm_start debian "$TIMEOUT" || continue expect "" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 b || continue expect "VSlt domain bus slot func 0x0b 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "" sudo xm pci-list debian || continue xm_destroy debian || continue xm_delete debian || continue STATUS="ok" break done if [ "$STATUS" != "ok" ]; then exit 1 fi ############################################################################# TEST_NO=$(($TEST_NO + 1)) ATTEMPT=0 STATUS="fail" for i in $(seq $RETRY); do ATTEMPT=$(($ATTEMPT + 1)); echo "Config $CONF_NO, Test $TEST_NO, Attempt $ATTEMPT" xm_destroy debian || continue xm_delete debian || continue xm_new "$CONF" expect "" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 || continue expect "domain bus slot func 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 b || continue expect "VSlt domain bus slot func 0x0b 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue xm_start debian "$TIMEOUT" || continue expect "VSlt domain bus slot func 0x0b 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "" sudo xm pci-list debian || continue xm_destroy debian || continue xm_delete debian || continue STATUS="ok" break done if [ "$STATUS" != "ok" ]; then exit 1 fi ############################################################################# TEST_NO=$(($TEST_NO + 1)) ATTEMPT=0 STATUS="fail" for i in $(seq $RETRY); do ATTEMPT=$(($ATTEMPT + 1)); echo "Config $CONF_NO, Test $TEST_NO, Attempt $ATTEMPT" xm_destroy debian || continue xm_delete debian || continue xm_new "$CONF" expect "" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 || continue expect "domain bus slot func 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 b || continue expect "VSlt domain bus slot func 0x0b 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "" sudo xm pci-list debian || continue xm_start debian "$TIMEOUT" || continue expect "" sudo xm pci-list debian || continue xm_destroy debian || continue xm_delete debian || continue STATUS="ok" break done if [ "$STATUS" != "ok" ]; then exit 1 fi ############################################################################# TEST_NO=$(($TEST_NO + 1)) ATTEMPT=0 STATUS="fail" for i in $(seq $RETRY); do ATTEMPT=$(($ATTEMPT + 1)); echo "Config $CONF_NO, Test $TEST_NO, Attempt $ATTEMPT" xm_destroy debian || continue xm_delete debian || continue xm_new "$CONF" expect "" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 || continue expect "domain bus slot func 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue xm_start debian "$TIMEOUT" || continue expect "VSlt domain bus slot func 0x04 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue xm_destroy debian || continue expect "VSlt domain bus slot func 0x04 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 || continue expect "domain bus slot func 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue xm_start debian "$TIMEOUT" || continue expect "VSlt domain bus slot func 0x04 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue xm_destroy debian || continue expect "VSlt domain bus slot func 0x04 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue xm_destroy debian || continue xm_delete debian || continue STATUS="ok" break done if [ "$STATUS" != "ok" ]; then exit 1 fi ############################################################################# TEST_NO=$(($TEST_NO + 1)) ATTEMPT=0 STATUS="fail" for i in $(seq $RETRY); do ATTEMPT=$(($ATTEMPT + 1)); echo "Config $CONF_NO, Test $TEST_NO, Attempt $ATTEMPT" xm_destroy debian || continue xm_delete debian || continue xm_new "$CONF" expect "" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 || continue expect "domain bus slot func 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue xm_start debian "$TIMEOUT" || continue expect "VSlt domain bus slot func 0x04 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "" sudo xm pci-list debian || continue xm_destroy debian || continue expect "" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 b || continue expect "VSlt domain bus slot func 0x0b 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue xm_start debian "$TIMEOUT" || continue expect "VSlt domain bus slot func 0x0b 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "" sudo xm pci-list debian || continue xm_destroy debian || continue expect "" sudo xm pci-list debian || continue xm_destroy debian || continue xm_delete debian || continue STATUS="ok" break done if [ "$STATUS" != "ok" ]; then exit 1 fi ############################################################################## ############################################################################## TEST_NO=0 echo "$CONFIG2" > "$CONF" CONF_NO=$(($CONF_NO + 1)) ############################################################################## TEST_NO=$(($TEST_NO + 1)); ATTEMPT=0 STATUS="fail" for i in $(seq $RETRY); do ATTEMPT=$(($ATTEMPT + 1)); echo "Config $CONF_NO, Test $TEST_NO, Attempt $ATTEMPT" xm_destroy debian || continue xm_delete debian || continue xm_create "debian" "$CONF" "$TIMEOUT" || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x07 0x0000 0x01 0x00 0x1" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x05 0x0000 0x00 0x1d 0x0 0x07 0x0000 0x01 0x00 0x1" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x07 0x0000 0x01 0x00 0x1" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 b || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x07 0x0000 0x01 0x00 0x1 0x0b 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x07 0x0000 0x01 0x00 0x1" sudo xm pci-list debian || continue expect "" sudo xm destroy debian || continue STATUS="ok" break done if [ "$STATUS" != "ok" ]; then exit 1 fi ############################################################################# TEST_NO=$(($TEST_NO + 1)) ATTEMPT=0 STATUS="fail" for i in $(seq $RETRY); do ATTEMPT=$(($ATTEMPT + 1)); echo "Config $CONF_NO, Test $TEST_NO, Attempt $ATTEMPT" xm_destroy debian || continue xm_delete debian || continue xm_new "$CONF" expect "VSlt domain bus slot func 0x07 0x0000 0x01 0x00 0x1 - 0x0000 0x01 0x00 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 || continue expect "VSlt domain bus slot func 0x07 0x0000 0x01 0x00 0x1 - 0x0000 0x00 0x1d 0x0 - 0x0000 0x01 0x00 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "VSlt domain bus slot func 0x07 0x0000 0x01 0x00 0x1 - 0x0000 0x01 0x00 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 b || continue expect "VSlt domain bus slot func 0x07 0x0000 0x01 0x00 0x1 0x0b 0x0000 0x00 0x1d 0x0 - 0x0000 0x01 0x00 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "VSlt domain bus slot func 0x07 0x0000 0x01 0x00 0x1 - 0x0000 0x01 0x00 0x0" sudo xm pci-list debian || continue xm_delete debian || continue STATUS="ok" break done if [ "$STATUS" != "ok" ]; then exit 1 fi ############################################################################# TEST_NO=$(($TEST_NO + 1)) ATTEMPT=0 STATUS="fail" for i in $(seq $RETRY); do ATTEMPT=$(($ATTEMPT + 1)); echo "Config $CONF_NO, Test $TEST_NO, Attempt $ATTEMPT" xm_destroy debian || continue xm_delete debian || continue xm_new "$CONF" expect "VSlt domain bus slot func 0x07 0x0000 0x01 0x00 0x1 - 0x0000 0x01 0x00 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 || continue expect "VSlt domain bus slot func 0x07 0x0000 0x01 0x00 0x1 - 0x0000 0x00 0x1d 0x0 - 0x0000 0x01 0x00 0x0" sudo xm pci-list debian || continue xm_start debian "$TIMEOUT" || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x05 0x0000 0x00 0x1d 0x0 0x07 0x0000 0x01 0x00 0x1" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x07 0x0000 0x01 0x00 0x1" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 b || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x07 0x0000 0x01 0x00 0x1 0x0b 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x07 0x0000 0x01 0x00 0x1" sudo xm pci-list debian || continue xm_destroy debian || continue xm_delete debian || continue STATUS="ok" break done if [ "$STATUS" != "ok" ]; then exit 1 fi ############################################################################# TEST_NO=$(($TEST_NO + 1)) ATTEMPT=0 STATUS="fail" for i in $(seq $RETRY); do ATTEMPT=$(($ATTEMPT + 1)); echo "Config $CONF_NO, Test $TEST_NO, Attempt $ATTEMPT" xm_destroy debian || continue xm_delete debian || continue xm_new "$CONF" expect "VSlt domain bus slot func 0x07 0x0000 0x01 0x00 0x1 - 0x0000 0x01 0x00 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 || continue expect "VSlt domain bus slot func 0x07 0x0000 0x01 0x00 0x1 - 0x0000 0x00 0x1d 0x0 - 0x0000 0x01 0x00 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "VSlt domain bus slot func 0x07 0x0000 0x01 0x00 0x1 - 0x0000 0x01 0x00 0x0" sudo xm pci-list debian || continue xm_start debian "$TIMEOUT" || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x07 0x0000 0x01 0x00 0x1" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 b || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x07 0x0000 0x01 0x00 0x1 0x0b 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x07 0x0000 0x01 0x00 0x1" sudo xm pci-list debian || continue xm_destroy debian || continue xm_delete debian || continue STATUS="ok" break done if [ "$STATUS" != "ok" ]; then exit 1 fi ############################################################################# TEST_NO=$(($TEST_NO + 1)) ATTEMPT=0 STATUS="fail" for i in $(seq $RETRY); do ATTEMPT=$(($ATTEMPT + 1)); echo "Config $CONF_NO, Test $TEST_NO, Attempt $ATTEMPT" xm_destroy debian || continue xm_delete debian || continue xm_new "$CONF" expect "VSlt domain bus slot func 0x07 0x0000 0x01 0x00 0x1 - 0x0000 0x01 0x00 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 || continue expect "VSlt domain bus slot func 0x07 0x0000 0x01 0x00 0x1 - 0x0000 0x00 0x1d 0x0 - 0x0000 0x01 0x00 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "VSlt domain bus slot func 0x07 0x0000 0x01 0x00 0x1 - 0x0000 0x01 0x00 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 b || continue expect "VSlt domain bus slot func 0x07 0x0000 0x01 0x00 0x1 0x0b 0x0000 0x00 0x1d 0x0 - 0x0000 0x01 0x00 0x0" sudo xm pci-list debian || continue xm_start debian "$TIMEOUT" || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x07 0x0000 0x01 0x00 0x1 0x0b 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x07 0x0000 0x01 0x00 0x1" sudo xm pci-list debian || continue xm_destroy debian || continue xm_delete debian || continue STATUS="ok" break done if [ "$STATUS" != "ok" ]; then exit 1 fi ############################################################################# TEST_NO=$(($TEST_NO + 1)) ATTEMPT=0 STATUS="fail" for i in $(seq $RETRY); do ATTEMPT=$(($ATTEMPT + 1)); echo "Config $CONF_NO, Test $TEST_NO, Attempt $ATTEMPT" xm_destroy debian || continue xm_delete debian || continue xm_new "$CONF" expect "VSlt domain bus slot func 0x07 0x0000 0x01 0x00 0x1 - 0x0000 0x01 0x00 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 || continue expect "VSlt domain bus slot func 0x07 0x0000 0x01 0x00 0x1 - 0x0000 0x00 0x1d 0x0 - 0x0000 0x01 0x00 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "VSlt domain bus slot func 0x07 0x0000 0x01 0x00 0x1 - 0x0000 0x01 0x00 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 b || continue expect "VSlt domain bus slot func 0x07 0x0000 0x01 0x00 0x1 0x0b 0x0000 0x00 0x1d 0x0 - 0x0000 0x01 0x00 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "VSlt domain bus slot func 0x07 0x0000 0x01 0x00 0x1 - 0x0000 0x01 0x00 0x0" sudo xm pci-list debian || continue xm_start debian "$TIMEOUT" || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x07 0x0000 0x01 0x00 0x1" sudo xm pci-list debian || continue xm_destroy debian || continue xm_delete debian || continue STATUS="ok" break done if [ "$STATUS" != "ok" ]; then exit 1 fi ############################################################################# TEST_NO=$(($TEST_NO + 1)) ATTEMPT=0 STATUS="fail" for i in $(seq $RETRY); do ATTEMPT=$(($ATTEMPT + 1)); echo "Config $CONF_NO, Test $TEST_NO, Attempt $ATTEMPT" xm_destroy debian || continue xm_delete debian || continue xm_new "$CONF" expect "VSlt domain bus slot func 0x07 0x0000 0x01 0x00 0x1 - 0x0000 0x01 0x00 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 || continue expect "VSlt domain bus slot func 0x07 0x0000 0x01 0x00 0x1 - 0x0000 0x00 0x1d 0x0 - 0x0000 0x01 0x00 0x0" sudo xm pci-list debian || continue xm_start debian "$TIMEOUT" || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x05 0x0000 0x00 0x1d 0x0 0x07 0x0000 0x01 0x00 0x1" sudo xm pci-list debian || continue xm_destroy debian || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x05 0x0000 0x00 0x1d 0x0 0x07 0x0000 0x01 0x00 0x1" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x07 0x0000 0x01 0x00 0x1" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x07 0x0000 0x01 0x00 0x1 - 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue xm_start debian "$TIMEOUT" || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x05 0x0000 0x00 0x1d 0x0 0x07 0x0000 0x01 0x00 0x1" sudo xm pci-list debian || continue xm_destroy debian || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x05 0x0000 0x00 0x1d 0x0 0x07 0x0000 0x01 0x00 0x1" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x07 0x0000 0x01 0x00 0x1" sudo xm pci-list debian || continue xm_destroy debian || continue xm_delete debian || continue STATUS="ok" break done if [ "$STATUS" != "ok" ]; then exit 1 fi ############################################################################# TEST_NO=$(($TEST_NO + 1)) ATTEMPT=0 STATUS="fail" for i in $(seq $RETRY); do ATTEMPT=$(($ATTEMPT + 1)); echo "Config $CONF_NO, Test $TEST_NO, Attempt $ATTEMPT" xm_destroy debian || continue xm_delete debian || continue xm_new "$CONF" expect "VSlt domain bus slot func 0x07 0x0000 0x01 0x00 0x1 - 0x0000 0x01 0x00 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 || continue expect "VSlt domain bus slot func 0x07 0x0000 0x01 0x00 0x1 - 0x0000 0x00 0x1d 0x0 - 0x0000 0x01 0x00 0x0" sudo xm pci-list debian || continue xm_start debian "$TIMEOUT" || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x05 0x0000 0x00 0x1d 0x0 0x07 0x0000 0x01 0x00 0x1" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x07 0x0000 0x01 0x00 0x1" sudo xm pci-list debian || continue xm_destroy debian || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x07 0x0000 0x01 0x00 0x1" sudo xm pci-list debian || continue expect "" sudo xm pci-attach debian 00:1d.0 b || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x07 0x0000 0x01 0x00 0x1 0x0b 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue xm_start debian "$TIMEOUT" || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x07 0x0000 0x01 0x00 0x1 0x0b 0x0000 0x00 0x1d 0x0" sudo xm pci-list debian || continue expect "" sudo xm pci-detach debian 00:1d.0 || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x07 0x0000 0x01 0x00 0x1" sudo xm pci-list debian || continue xm_destroy debian || continue expect "VSlt domain bus slot func 0x04 0x0000 0x01 0x00 0x0 0x07 0x0000 0x01 0x00 0x1" sudo xm pci-list debian || continue xm_destroy debian || continue xm_delete debian || continue STATUS="ok" break done if [ "$STATUS" != "ok" ]; then exit 1 fi ############################################################################# echo OK\!