qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 14/15] make: add check targets based on gtester


From: Anthony Liguori
Subject: [Qemu-devel] [PATCH 14/15] make: add check targets based on gtester
Date: Tue, 10 Jan 2012 13:10:55 -0600

This will run all tests through gtester.  The main targets are:

$ make check

Which will run each unit test and:

$ make check-report.html

Which will generate a nice HTML report of the test status.

Signed-off-by: Anthony Liguori <address@hidden>
---
 scripts/gtester-cat |   32 ++++++++++++++++++++++++++++
 tests/Makefile      |   58 ++++++++++++++++++++++++++++++++++++++++++++++++--
 2 files changed, 87 insertions(+), 3 deletions(-)
 create mode 100755 scripts/gtester-cat

diff --git a/scripts/gtester-cat b/scripts/gtester-cat
new file mode 100755
index 0000000..afd8c3e
--- /dev/null
+++ b/scripts/gtester-cat
@@ -0,0 +1,32 @@
+#!/bin/sh
+#
+# Copyright IBM, Corp. 2012
+#
+# Authors:
+#  Anthony Liguori <address@hidden>
+#
+# This work is licensed under the terms of the GNU GPLv2 or later.
+# See the COPYING file in the top-level directory.
+
+cat <<EOF
+<?xml version="1.0"?>
+<gtester>
+EOF
+
+for file in "$@"; do
+    first="yes"
+    cat $file | while read LINE; do
+       if test "$first" = "yes"; then
+           first="no"
+           continue
+       fi
+       if test "$LINE" = "<gtester>" -o "$LINE" = "</gtester>"; then
+           continue
+       fi
+       echo $LINE
+    done
+done
+
+cat<<EOF
+</gtester>
+EOF
diff --git a/tests/Makefile b/tests/Makefile
index 0005764..63b835d 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -2,6 +2,10 @@ CHECKS = check-qdict check-qfloat check-qint check-qstring 
check-qlist
 CHECKS += check-qjson test-qmp-output-visitor test-qmp-input-visitor
 CHECKS += test-coroutine
 
+HW_TESTS=
+
+TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
+
 check-qint.o check-qstring.o check-qdict.o check-qlist.o check-qfloat.o 
check-qjson.o test-coroutine.o: $(GENERATED_HEADERS)
 
 check-qint: check-qint.o qint.o $(tools-obj-y)
@@ -35,6 +39,54 @@ test-qmp-commands: test-qmp-commands.o $(qobject-obj-y) 
$(qapi-obj-y) $(tools-ob
 
 tests/rtc-test: tests/rtc-test.o tests/libqtest.o
 
-.PHONY: check
-check: $(CHECKS)
-       gtester $(CHECKS)
+check-help:
+       @echo "Regression targets:"
+       @echo
+       @echo " make check                Run all tests"
+       @echo " make check-qtest          Run qtest tests"
+       @echo " make check-unit           Run qobject tests"
+       @echo " make check-report.html    Generates an HTML test report"
+       @echo
+       @echo "Please note that HTML reports do not regenerate if the unit 
tests"
+       @echo "has not changed."
+       @echo
+       @echo "The variable SPEED can be set to control the gtester speed 
setting"
+
+.SECONDARY:
+
+SPEED ?= quick
+
+# Reports
+check-report-qtest-%.log: $(HW_TESTS)
+       $(call quiet-command,QTEST_QEMU_BINARY=`basename $@ .log | cut -f4 
-d-`-softmmu/qemu-system-`basename $@ .log | cut -f4 -d-` \
+         gtester -k -q -o $@ -m=$(SPEED) $(HW_TESTS),"  TEST   $^ (`basename 
$@ .log | cut -f4 -d-`)")
+
+check-report-unit.log: $(CHECKS)
+       $(call quiet-command,gtester -k -q -m=$(SPEED) -o $@ $^, "  TEST   $^")
+
+check-report.log: check-report-unit.log $(patsubst %,check-report-qtest-%.log, 
$(TARGETS))
+       $(call quiet-command,$(SRC_PATH)/scripts/gtester-cat $^ > $@, "  GEN    
$@")
+
+check-report.html: check-report.log
+       $(call quiet-command,gtester-report $< > $@, "  GEN    $@")
+
+# Check tests
+
+check-qtest-%: $(HW_TESTS)
+       @for test in $^; do \
+           arch=`echo $@ | cut -f3- -d-`; \
+           echo "Running '$$test' with qemu-system-$$arch..."; \
+           $(SRC_PATH)/scripts/qtest $$arch-softmmu/qemu-system-$$arch $$test 
|| exit $?; \
+       done
+
+check-qtest: $(patsubst %,check-qtest-%, $(TARGETS))
+
+check-unit: $(CHECKS)
+       @for test in $^; do \
+           echo "Running '$$test'..."; \
+           ./$$test || exit $?; \
+       done
+
+check: check-unit check-qtest
+
+.PHONY: check-help check-qtest check-unit check
-- 
1.7.4.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]