qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Fam Zheng <famz@redhat.com>
To: qemu-devel@nongnu.org
Cc: peter.maydell@linaro.org, thuth@redhat.com,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Fam Zheng" <famz@redhat.com>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	programmingkidx@gmail.com, crosa@redhat.com, pbonzini@redhat.com,
	rth@twiddle.net
Subject: [Qemu-devel] [PATCH RFC 7/7] tests: Move i386 tcg tests to check-tcg
Date: Fri,  8 Sep 2017 17:17:00 +0800	[thread overview]
Message-ID: <20170908091700.14867-8-famz@redhat.com> (raw)
In-Reply-To: <20170908091700.14867-1-famz@redhat.com>

Only enable the tests if i386-linux-user is a specified target in
configure, and build the test programs with "docker.py cc" command.

Also change the "diff -u" to "cmp -s" because we have really huge output
to compare.

Signed-off-by: Fam Zheng <famz@redhat.com>
---
 tests/tcg/Makefile         | 60 -------------------------------------
 tests/tcg/Makefile.include | 74 +++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 73 insertions(+), 61 deletions(-)

diff --git a/tests/tcg/Makefile b/tests/tcg/Makefile
index 89e3342f3d..4a2b069304 100644
--- a/tests/tcg/Makefile
+++ b/tests/tcg/Makefile
@@ -17,15 +17,6 @@ LDFLAGS=
 # runcom maps page 0, so it requires root privileges
 # also, pi_10.com runs indefinitely
 
-I386_TESTS=hello-i386 \
-	   linux-test \
-	   testthread \
-	   sha1-i386 \
-	   test-i386 \
-	   test-i386-fprem \
-	   test-mmap \
-	   # runcom
-
 # native i386 compilers sometimes are not biarch.  assume cross-compilers are
 ifneq ($(ARCH),i386)
 I386_TESTS+=run-test-x86_64
@@ -46,35 +37,11 @@ test: all
 run-%: %
 	-$(QEMU) ./$*
 
-run-hello-i386: hello-i386
-run-linux-test: linux-test
-run-testthread: testthread
-run-sha1-i386: sha1-i386
-
-run-test-i386: test-i386
-	./test-i386 > test-i386.ref
-	-$(QEMU) test-i386 > test-i386.out
-	@if diff -u test-i386.ref test-i386.out ; then echo "Auto Test OK"; fi
-
-run-test-i386-fprem: test-i386-fprem
-	./test-i386-fprem > test-i386-fprem.ref
-	-$(QEMU) test-i386-fprem > test-i386-fprem.out
-	@if diff -u test-i386-fprem.ref test-i386-fprem.out ; then echo "Auto Test OK"; fi
-
 run-test-x86_64: test-x86_64
 	./test-x86_64 > test-x86_64.ref
 	-$(QEMU_X86_64) test-x86_64 > test-x86_64.out
 	@if diff -u test-x86_64.ref test-x86_64.out ; then echo "Auto Test OK"; fi
 
-run-test-mmap: test-mmap
-	-$(QEMU) ./test-mmap
-	-$(QEMU) -p 8192 ./test-mmap 8192
-	-$(QEMU) -p 16384 ./test-mmap 16384
-	-$(QEMU) -p 32768 ./test-mmap 32768
-
-run-runcom: runcom
-	-$(QEMU) ./runcom $(SRC_PATH)/tests/pi_10.com
-
 run-test_path: test_path
 	./test_path
 
@@ -84,37 +51,10 @@ test_path: test_path.o
 
 test_path.o: test_path.c
 
-hello-i386: hello-i386.c
-	$(CC_I386) -nostdlib $(CFLAGS) -static $(LDFLAGS) -o $@ $<
-	strip $@
-
-testthread: testthread.c
-	$(CC_I386) $(CFLAGS) $(LDFLAGS) -o $@ $< -lpthread
-
-# i386/x86_64 emulation test (test various opcodes) */
-test-i386: test-i386.c test-i386-code16.S test-i386-vm86.S \
-           test-i386.h test-i386-shift.h test-i386-muldiv.h
-	$(CC_I386) $(QEMU_INCLUDES) $(CFLAGS) $(LDFLAGS) -o $@ \
-              $(<D)/test-i386.c $(<D)/test-i386-code16.S $(<D)/test-i386-vm86.S -lm
-
-test-i386-fprem: test-i386-fprem.c
-	$(CC_I386) $(QEMU_INCLUDES) $(CFLAGS) $(LDFLAGS) -o $@ $^
-
 test-x86_64: test-i386.c \
            test-i386.h test-i386-shift.h test-i386-muldiv.h
 	$(CC_X86_64) $(QEMU_INCLUDES) $(CFLAGS) $(LDFLAGS) -o $@ $(<D)/test-i386.c -lm
 
-# generic Linux and CPU test
-linux-test: linux-test.c
-	$(CC_I386) $(CFLAGS) $(LDFLAGS) -o $@ $< -lm
-
-# vm86 test
-runcom: runcom.c
-	$(CC_I386) $(CFLAGS) $(LDFLAGS) -o $@ $<
-
-test-mmap: test-mmap.c
-	$(CC_I386) -m32 $(CFLAGS) -Wall -O2 $(LDFLAGS) -o $@ $<
-
 # speed test
 sha1-i386: sha1.c
 	$(CC_I386) $(CFLAGS) $(LDFLAGS) -o $@ $<
diff --git a/tests/tcg/Makefile.include b/tests/tcg/Makefile.include
index e5fea1c8c5..64f1a4a003 100644
--- a/tests/tcg/Makefile.include
+++ b/tests/tcg/Makefile.include
@@ -1,3 +1,75 @@
 
-check-tcg:
+TCG_I386_TESTS := \
+	hello-i386 \
+	linux-test \
+	testthread \
+	sha1-i386 \
+	test-i386 \
+	test-i386-fprem \
+	test-mmap \
+	# runcom
+
+$(addprefix tests/tcg/, $(TCG_I386_TESTS)): DOCKER_IMAGE := fedora-i386-cross
+$(addprefix tests/tcg/, $(TCG_I386_TESTS)): CFLAGS := -m32 -I/usr/lib/glib-2.0/include/ -I/usr/include/glib-2.0 -Wall -O2 -g -fno-strict-aliasing $(QEMU_INCLUDES)
+$(addprefix tests/tcg/, $(TCG_I386_TESTS)): QEMU_CFLAGS :=
+$(addprefix tests/tcg/, $(TCG_I386_TESTS)): LDFLAGS :=
+$(addprefix tests/tcg/, $(TCG_I386_TESTS)): QEMU_LDFLAGS :=
+
+check-tcg-i386: $(addprefix tcg-run-,$(TCG_I386_TESTS))
+$(addprefix tcg-run-,$(TCG_I386_TESTS)): QEMU := i386-linux-user/qemu-i386
+$(addprefix tcg-run-,$(TCG_I386_TESTS)): i386-linux-user/qemu-i386
+
+TCG_SIMPLE_TESTS := \
+	hello-i386 \
+	linux-test \
+	testthread \
+	sha1-i386
+
+$(foreach t,$(TCG_SIMPLE_TESTS), \
+	$(eval tcg-run-$t: tcg-runsimple-$t))
+
+tcg-runsimple-%: tests/tcg/%$(EXESUF)
+	-$(QEMU) $<
+
+TCG_CMP_TESTS := \
+	test-i386 \
+	test-i386-fprem
+
+$(foreach t,$(TCG_CMP_TESTS), \
+	$(eval tcg-run-$t: tcg-runcmp-$t))
+
+tcg-runcmp-%: tests/tcg/%$(EXESUF)
+	$< > $<.ref
+	-$(QEMU) $< > $<.out
+	@if cmp -s $<.ref $<.out ; then echo "Auto Test OK"; fi
+
+tcg-run-test-mmap: tests/tcg/test-mmap
+	-$(QEMU) $<
+	-$(QEMU) -p 8192 $< 8192
+	-$(QEMU) -p 16384 $< 16384
+	-$(QEMU) -p 32768 $< 32768
+
+tcg-run-runcom: tests/tcg/runcom
+	-$(QEMU) $< $(SRC_PATH)/tests/tcg/pi_10.com
+
+TCG_TESTS = $(if $(filter i386-linux-user, $(TARGET_LIST)), $(TCG_I386_TESTS))
+
+$(addprefix tests/tcg/, $(TCG_TESTS)): CXX :=
+$(addprefix tests/tcg/, $(TCG_TESTS)): CC := \
+	$(SRC_PATH)/tests/docker/docker.py cc -i qemu:$(DOCKER_IMAGE) -s $(SRC_PATH) --
+
+tests/tcg/hello-i386: LDFLAGS := -nostdlib
+
+tests/tcg/sha1-i386: tests/tcg/sha1.o
+	$(call LINK, $^)
+
+tests/tcg/test-i386: $(addprefix $(SRC_PATH)/tests/tcg/, \
+			test-i386.c test-i386-code16.S test-i386-vm86.S \
+           test-i386.h test-i386-shift.h test-i386-muldiv.h)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ \
+              $(<D)/test-i386.c $(<D)/test-i386-code16.S $(<D)/test-i386-vm86.S -lm
+
+.PHONY: check-tcg $(patsubst %,run-%,$(TCG_TESTS))
+
+check-tcg: $(addprefix tcg-run-, $(TCG_TESTS))
 	$(MAKE) -C tests/tcg test
-- 
2.13.5

  parent reply	other threads:[~2017-09-08  9:17 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-08  9:16 [Qemu-devel] [PATCH RFC 0/7] Proof of concept to power up "make test" with docker Fam Zheng
2017-09-08  9:16 ` [Qemu-devel] [PATCH RFC 1/7] Makefile: Rename TARGET_DIRS to TARGET_LIST Fam Zheng
2017-09-08  9:16 ` [Qemu-devel] [PATCH RFC 2/7] docker: Add "cc" subcommand Fam Zheng
2017-09-08  9:16 ` [Qemu-devel] [PATCH RFC 3/7] docker: Add fedora-i386-cross image Fam Zheng
2017-09-08  9:16 ` [Qemu-devel] [PATCH RFC 4/7] tests: Build fix for hello-i386 Fam Zheng
2017-09-08  9:16 ` [Qemu-devel] [PATCH RFC 5/7] tests: Build fix for linux-test Fam Zheng
2017-09-08  9:16 ` [Qemu-devel] [PATCH RFC 6/7] buildsys: Add "check-tcg" target Fam Zheng
2017-09-08  9:17 ` Fam Zheng [this message]
2017-09-08  9:26 ` [Qemu-devel] [PATCH RFC 0/7] Proof of concept to power up "make test" with docker no-reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170908091700.14867-8-famz@redhat.com \
    --to=famz@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=crosa@redhat.com \
    --cc=f4bug@amsat.org \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=programmingkidx@gmail.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).