|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 2/2] CI: Check save/restore of PV domain as part of qemu-alpine-x86_64
Make sure that save/restore continue to work.
The check save and restore twice to check for corrupted status.
Also a command is launched in the guest to make sure that the
machine is not crashed but working.
Signed-off-by: Frediano Ziglio <frediano.ziglio@xxxxxxxxxx>
---
automation/scripts/console.exp | 8 +++++
automation/scripts/qemu-alpine-x86_64.sh | 40 ++++++++++++++++++++++--
2 files changed, 46 insertions(+), 2 deletions(-)
diff --git a/automation/scripts/console.exp b/automation/scripts/console.exp
index e27886bbef..ff58ed29b8 100755
--- a/automation/scripts/console.exp
+++ b/automation/scripts/console.exp
@@ -58,6 +58,14 @@ if {[info exists env(WAKEUP_CMD)]} {
system "$env(WAKEUP_CMD)"
}
+if {[info exists env(EXPECT_TEXTS)]} {
+ set lines [split "$env(EXPECT_TEXTS)" "\n"]
+ foreach {exp snd} $lines {
+ expect -re "$exp"
+ send "$snd\n"
+ }
+}
+
if {[info exists env(LOG_MSG)]} {
expect {
-notransfer -re "$env(PASSED)" {
diff --git a/automation/scripts/qemu-alpine-x86_64.sh
b/automation/scripts/qemu-alpine-x86_64.sh
index 60f5cc49fc..409a601c34 100755
--- a/automation/scripts/qemu-alpine-x86_64.sh
+++ b/automation/scripts/qemu-alpine-x86_64.sh
@@ -48,6 +48,28 @@ xl -vvv create -c /root/domU.cfg
" > etc/local.d/xen.start
chmod +x etc/local.d/xen.start
+
+# Script to test save and restore.
+# It saves and restores domU domain twice to check if the domain was corrupted
+# during the first sequence.
+# At the end open the console to check if the domain is working.
+cat > root/save_restore_test << "EOF"
+#!/bin/sh
+set -ex
+xl list | grep -q domU
+rm -f save.dat
+xl save "$(xl list | awk '$1=="domU" { print $2 }')" save.dat /root/domU.cfg
+xl restore /root/domU.cfg save.dat
+xl list | grep -q domU
+rm -f save.dat
+xl save "$(xl list | awk '$1=="domU" { print $2 }')" save.dat /root/domU.cfg
+xl restore /root/domU.cfg save.dat
+xl list | grep -q domU
+rm -f save.dat
+xl console "$(xl list | awk '$1=="domU" { print $2 }')"
+EOF
+chmod +x root/save_restore_test
+
find . | cpio -R 0:0 -H newc -o | gzip >> ../dom0-rootfs.cpio.gz
cd ../..
@@ -70,9 +92,23 @@ export TEST_CMD="qemu-system-x86_64 \
-device virtio-net-pci,netdev=n0 \
-netdev user,id=n0,tftp=binaries,bootfile=/pxelinux.0"
+# Sequence of expect/send strings:
+# 1. wait domain start and close console;
+# 2. wait login prompt and login as root
+# 3. wait login and launch save/restore test;
+# 4. wait restore from domain console and send a command.
+gs=$'\x1d'
+export EXPECT_TEXTS="BusyBox
+$gs $gs
+login:
+root
+login on
+/root/save_restore_test
+Restarting tasks
+dmesg | grep suspending | tr o 0"
+
export TEST_LOG="smoke.serial"
export BOOT_MSG="Latest ChangeSet: "
-export LOG_MSG="Domain-0"
-export PASSED="BusyBox"
+export PASSED="suspending xenst0re"
./automation/scripts/console.exp |& sed 's/\r\+$//'
--
2.43.0
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |