mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
I am adding one more test case for vTPM migration. The new one does
local network migration without the 'live' parameter 3 times. The test '04' that does live migration now tests local live migration 3 times. Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
This commit is contained in:
1 parent
4df9ae27a2
commit
dd2e5172dc
3 files changed
+135
-29
No files matched your search
@@ -6,6 +6,7 @@
|
||||
# Positive Test: create domain with virtual TPM attached at build time,
|
||||
# check list of pcrs; locally migrate the domain and
|
||||
# check list of pcrs again
|
||||
# This test does local live migration.
|
||||
|
||||
from XmTestLib import *
|
||||
from vtpm_utils import *
|
||||
@@ -50,40 +51,44 @@ domain.closeConsole()
|
||||
|
||||
old_domid = domid(domName)
|
||||
|
||||
try:
|
||||
status, ouptut = traceCommand("xm migrate -l %s localhost" %
|
||||
domName,
|
||||
timeout=90)
|
||||
except TimeoutError, e:
|
||||
saveLog(consoleHistory)
|
||||
vtpm_cleanup(domName)
|
||||
FAIL(str(e))
|
||||
loop = 0
|
||||
while loop < 3:
|
||||
try:
|
||||
status, ouptut = traceCommand("xm migrate -l %s localhost" %
|
||||
domName,
|
||||
timeout=90)
|
||||
except TimeoutError, e:
|
||||
saveLog(consoleHistory)
|
||||
vtpm_cleanup(domName)
|
||||
FAIL(str(e))
|
||||
|
||||
if status != 0:
|
||||
saveLog(consoleHistory)
|
||||
vtpm_cleanup(domName)
|
||||
FAIL("xm migrate did not succeed. External device migration activated?")
|
||||
if status != 0:
|
||||
saveLog(consoleHistory)
|
||||
vtpm_cleanup(domName)
|
||||
FAIL("xm migrate did not succeed. External device migration activated?")
|
||||
|
||||
|
||||
domName = domain.getName()
|
||||
new_domid = domid(domName)
|
||||
domName = domain.getName()
|
||||
new_domid = domid(domName)
|
||||
|
||||
if (old_domid == new_domid):
|
||||
vtpm_cleanup(domName)
|
||||
FAIL("xm migrate failed, domain id is still %s" % old_domid)
|
||||
if (old_domid == new_domid):
|
||||
vtpm_cleanup(domName)
|
||||
FAIL("xm migrate failed, domain id is still %s (loop=%d)" %
|
||||
(old_domid,loop))
|
||||
|
||||
try:
|
||||
console = domain.getConsole()
|
||||
except ConsoleError, e:
|
||||
vtpm_cleanup(domName)
|
||||
FAIL(str(e))
|
||||
try:
|
||||
console = domain.getConsole()
|
||||
except ConsoleError, e:
|
||||
vtpm_cleanup(domName)
|
||||
FAIL(str(e))
|
||||
|
||||
try:
|
||||
run = console.runCmd("cat /sys/devices/platform/tpm_vtpm/pcrs")
|
||||
except ConsoleError, e:
|
||||
saveLog(console.getHistory())
|
||||
vtpm_cleanup(domName)
|
||||
FAIL(str(e))
|
||||
try:
|
||||
run = console.runCmd("cat /sys/devices/platform/tpm_vtpm/pcrs")
|
||||
except ConsoleError, e:
|
||||
saveLog(console.getHistory())
|
||||
vtpm_cleanup(domName)
|
||||
FAIL(str(e))
|
||||
loop += 1
|
||||
|
||||
domain.closeConsole()
|
||||
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
# Copyright (C) International Business Machines Corp., 2006
|
||||
# Author: Stefan Berger <stefanb@us.ibm.com>
|
||||
|
||||
# Positive Test: create domain with virtual TPM attached at build time,
|
||||
# check list of pcrs; locally migrate the domain and
|
||||
# check list of pcrs again
|
||||
# This test does local (non-live) migration.
|
||||
|
||||
from XmTestLib import *
|
||||
from vtpm_utils import *
|
||||
import commands
|
||||
import os
|
||||
import os.path
|
||||
|
||||
config = {"vtpm":"instance=1,backend=0"}
|
||||
domain = XmTestDomain(extraConfig=config)
|
||||
consoleHistory = ""
|
||||
|
||||
try:
|
||||
console = domain.start()
|
||||
except DomainError, e:
|
||||
if verbose:
|
||||
print e.extra
|
||||
vtpm_cleanup(domain.getName())
|
||||
FAIL("Unable to create domain")
|
||||
|
||||
domName = domain.getName()
|
||||
|
||||
try:
|
||||
console.sendInput("input")
|
||||
except ConsoleError, e:
|
||||
saveLog(console.getHistory())
|
||||
vtpm_cleanup(domName)
|
||||
FAIL(str(e))
|
||||
|
||||
try:
|
||||
run = console.runCmd("cat /sys/devices/platform/tpm_vtpm/pcrs")
|
||||
except ConsoleError, e:
|
||||
saveLog(console.getHistory())
|
||||
vtpm_cleanup(domName)
|
||||
FAIL(str(e))
|
||||
|
||||
if re.search("No such file",run["output"]):
|
||||
vtpm_cleanup(domName)
|
||||
FAIL("TPM frontend support not compiled into (domU?) kernel")
|
||||
|
||||
consoleHistory = console.getHistory()
|
||||
domain.closeConsole()
|
||||
|
||||
old_domid = domid(domName)
|
||||
|
||||
loop = 0
|
||||
while loop < 3:
|
||||
try:
|
||||
status, ouptut = traceCommand("xm migrate %s localhost" %
|
||||
domName,
|
||||
timeout=90)
|
||||
except TimeoutError, e:
|
||||
saveLog(consoleHistory)
|
||||
vtpm_cleanup(domName)
|
||||
FAIL(str(e))
|
||||
|
||||
if status != 0:
|
||||
saveLog(consoleHistory)
|
||||
vtpm_cleanup(domName)
|
||||
FAIL("xm migrate did not succeed. External device migration activated?")
|
||||
|
||||
|
||||
domName = domain.getName()
|
||||
new_domid = domid(domName)
|
||||
|
||||
if (old_domid == new_domid):
|
||||
vtpm_cleanup(domName)
|
||||
FAIL("xm migrate failed, domain id is still %s (loop=%d)" %
|
||||
(old_domid,loop))
|
||||
|
||||
try:
|
||||
console = domain.getConsole()
|
||||
except ConsoleError, e:
|
||||
vtpm_cleanup(domName)
|
||||
FAIL(str(e))
|
||||
|
||||
try:
|
||||
run = console.runCmd("cat /sys/devices/platform/tpm_vtpm/pcrs")
|
||||
except ConsoleError, e:
|
||||
saveLog(console.getHistory())
|
||||
vtpm_cleanup(domName)
|
||||
FAIL(str(e))
|
||||
loop += 1
|
||||
|
||||
domain.closeConsole()
|
||||
|
||||
domain.stop()
|
||||
|
||||
vtpm_cleanup(domName)
|
||||
|
||||
if not re.search("PCR-00:",run["output"]):
|
||||
FAIL("Virtual TPM is not working correctly on /dev/vtpm on backend side")
|
||||
@@ -3,7 +3,8 @@ SUBDIRS =
|
||||
TESTS = 01_vtpm-list_pos.test \
|
||||
02_vtpm-cat_pcrs.test \
|
||||
03_vtpm-susp_res.test \
|
||||
04_vtpm-loc_migr.test
|
||||
04_vtpm-loc_migr.test \
|
||||
05_vtpm-loc_migr.test
|
||||
|
||||
XFAIL_TESTS =
|
||||
|
||||
|
||||