[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC 3/6] device-crash-test: Allow checkOneCase() to report
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [RFC 3/6] device-crash-test: Allow checkOneCase() to report multiple results |
Date: |
Tue, 26 Sep 2017 20:07:06 -0300 |
This will allow the test code to be improved to test multiple
devices in a single run.
Signed-off-by: Eduardo Habkost <address@hidden>
---
scripts/device-crash-test | 29 ++++++++++++++---------------
1 file changed, 14 insertions(+), 15 deletions(-)
diff --git a/scripts/device-crash-test b/scripts/device-crash-test
index 782d7fd6c2..0bd599d395 100755
--- a/scripts/device-crash-test
+++ b/scripts/device-crash-test
@@ -384,7 +384,8 @@ def getBinaryInfo(args, binary):
def checkOneCase(args, testcase):
"""Check one specific case
- Returns a dictionary containing results of test case.
+ Generates a list of dictionaries containing results of testing. If
+ multiple devices are being tested, multiple entries can be returned.
"""
binary = testcase['binary']
accel = testcase['accel']
@@ -413,7 +414,7 @@ def checkOneCase(args, testcase):
vm.shutdown()
r['exitcode'] = vm.exitcode()
r['log'] = vm.get_log()
- return r
+ yield r
def binariesToTest(args, testcase):
if args.qemu:
@@ -572,22 +573,20 @@ def main():
if args.dry_run:
continue
- try:
- f = checkOneCase(args, t)
- except KeyboardInterrupt:
- break
- i, wl = checkResultWhitelist(f)
- dbg("testcase: %r, whitelist match: %r", t, wl)
- wl_stats.setdefault(i, []).append(f)
- level = wl.get('loglevel', logging.DEBUG)
- logResult(f, level)
+ for r in checkOneCase(args, t):
+ i, wl = checkResultWhitelist(r)
+ dbg("testcase: %r, whitelist match: %r", t, wl)
+ wl_stats.setdefault(i, []).append(r)
+ level = wl.get('loglevel', logging.DEBUG)
+ logResult(r, level)
+
+ if wl.get('fatal') or (args.strict and level >= logging.WARN):
+ fatal_failures.append(r)
- if wl.get('fatal') or (args.strict and level >= logging.WARN):
- fatal_failures.append(f)
+ if expected_match and expected_match[0] != i:
+ logger.warn("Didn't fail as expected: %s", formatTestCase(t))
- if expected_match and expected_match[0] != i:
- logger.warn("Didn't fail as expected: %s", formatTestCase(t))
logger.info("Total: %d test cases", total)
if skipped:
--
2.13.5
- [Qemu-devel] [RFC 0/6] device-crash-test: device_add test mode, Eduardo Habkost, 2017/09/26
- [Qemu-devel] [RFC 1/6] device-crash-test: Make whitelist code a bit more flexible, Eduardo Habkost, 2017/09/26
- [Qemu-devel] [RFC 2/6] device-crash-test: Log detailed info on success too, Eduardo Habkost, 2017/09/26
- [Qemu-devel] [RFC 4/6] device-crash-test: Exit immediately on fatal failures on quick mode, Eduardo Habkost, 2017/09/26
- [Qemu-devel] [RFC 3/6] device-crash-test: Allow checkOneCase() to report multiple results,
Eduardo Habkost <=
- [Qemu-devel] [RFC 5/6] device-crash-test: Basic device_add support, Eduardo Habkost, 2017/09/26
- [Qemu-devel] [RFC 6/6] device-crash-test: Multi-device device_add test, Eduardo Habkost, 2017/09/26