qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2 0/4] Clean up TCG tests
@ 2016-08-29 22:49 Pranith Kumar
  2016-08-29 22:49 ` [Qemu-devel] [PATCH v2 1/4] tests/tcg: Move arm tests to arch specific folder Pranith Kumar
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Pranith Kumar @ 2016-08-29 22:49 UTC (permalink / raw)
  To: qemu-devel; +Cc: alex.bennee, rth

Hello,

This patch series cleans up the tcg tests in tests/tcg folder.

The tests have bit-rotten and were not compiling or running. I fixed
the Makefiles to make them compile but there are tests which do not
pass.

The motivation is to add litmus tests to each arch and have them run
using the 'make check' target to test consistency on TCG.

There are no maintainers listed for this test folder. So I am cc'ing
people who I think might be interested.

As suggested by rth in v1 posting, I hooked up 'tests-tcg' target to
run some of the tests. Detecting cross compilers or running the tests
in docker containers are suggested ideas to make running the tests
easier.

My makefile-fu is non-existent. So suggestions on how to hook up the
tests are welcome.

Pranith Kumar (4):
  tests/tcg: Move arm tests to arch specific folder
  tests/tcg: Move mips test to arch specific folder
  tests/tcg: Create and populate misc tests for arch independent tests
  tests/tcg: Add tests-tcg hook in Makefile

 tests/Makefile.include                |  1 +
 tests/tcg/Makefile.include            | 20 ++++++++++
 tests/tcg/arm/Makefile                | 45 +++++++++++++++++++++
 tests/tcg/{ => arm}/hello-arm.c       |  0
 tests/tcg/{ => arm}/test-arm-iwmmxt.s |  0
 tests/tcg/{ => mips}/hello-mips.c     |  0
 tests/tcg/misc/Makefile               | 75 +++++++++++++++++++++++++++++++++++
 tests/tcg/{ => misc}/linux-test.c     |  3 ++
 tests/tcg/{ => misc}/sha1.c           |  0
 tests/tcg/{ => misc}/test-mmap.c      |  0
 tests/tcg/{ => misc}/test_path.c      |  0
 tests/tcg/{ => misc}/testthread.c     |  0
 12 files changed, 144 insertions(+)
 create mode 100644 tests/tcg/Makefile.include
 create mode 100644 tests/tcg/arm/Makefile
 rename tests/tcg/{ => arm}/hello-arm.c (100%)
 rename tests/tcg/{ => arm}/test-arm-iwmmxt.s (100%)
 rename tests/tcg/{ => mips}/hello-mips.c (100%)
 create mode 100644 tests/tcg/misc/Makefile
 rename tests/tcg/{ => misc}/linux-test.c (99%)
 rename tests/tcg/{ => misc}/sha1.c (100%)
 rename tests/tcg/{ => misc}/test-mmap.c (100%)
 rename tests/tcg/{ => misc}/test_path.c (100%)
 rename tests/tcg/{ => misc}/testthread.c (100%)

-- 
2.9.3

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Qemu-devel] [PATCH v2 1/4] tests/tcg: Move arm tests to arch specific folder
  2016-08-29 22:49 [Qemu-devel] [PATCH v2 0/4] Clean up TCG tests Pranith Kumar
@ 2016-08-29 22:49 ` Pranith Kumar
  2016-09-09 14:43   ` Alex Bennée
  2016-08-29 22:49 ` [Qemu-devel] [PATCH v2 2/4] tests/tcg: Move mips test " Pranith Kumar
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 8+ messages in thread
From: Pranith Kumar @ 2016-08-29 22:49 UTC (permalink / raw)
  To: qemu-devel; +Cc: alex.bennee, rth

Signed-off-by: Pranith Kumar <bobby.prani@gmail.com>
---
 tests/tcg/arm/Makefile                | 45 +++++++++++++++++++++++++++++++++++
 tests/tcg/{ => arm}/hello-arm.c       |  0
 tests/tcg/{ => arm}/test-arm-iwmmxt.s |  0
 3 files changed, 45 insertions(+)
 create mode 100644 tests/tcg/arm/Makefile
 rename tests/tcg/{ => arm}/hello-arm.c (100%)
 rename tests/tcg/{ => arm}/test-arm-iwmmxt.s (100%)

diff --git a/tests/tcg/arm/Makefile b/tests/tcg/arm/Makefile
new file mode 100644
index 0000000..da92305
--- /dev/null
+++ b/tests/tcg/arm/Makefile
@@ -0,0 +1,45 @@
+BUILD_DIR=../../../build/
+SRC_PATH=../../../
+include $(BUILD_DIR)/config-host.mak
+include $(SRC_PATH)/rules.mak
+
+$(call set-vpath, $(SRC_PATH)/tests/tcg/arm)
+
+QEMU=$(BUILD_DIR)/arm-linux-user/qemu-arm
+
+QEMU_INCLUDES += -I$(BUILD_DIR)
+CFLAGS=-Wall -O2 -g -fno-strict-aliasing
+LDFLAGS=
+
+# TODO: automatically detect ARM and MIPS compilers, and run those too
+
+# runcom maps page 0, so it requires root privileges
+# also, pi_10.com runs indefinitely
+
+TESTS=hello-arm arm-iwmmxt
+
+all: $(patsubst %,run-%,$(TESTS))
+test: all
+
+# rules to run tests
+
+run-%: %
+	$(QEMU) ./$*
+
+#.PHONY: $(patsubst %,run-%,$(TESTS))
+
+run-hello-arm: hello-arm
+run-arm-iwmmxt: arm-iwmmxt
+
+# arm test
+hello-arm: hello-arm.o
+	arm-linux-gnueabi-ld -o $@ $<
+
+hello-arm.o: hello-arm.c
+	arm-linux-gnueabi-gcc -Wall -g -O2 -c -o $@ $<
+
+arm-iwmmxt: test-arm-iwmmxt.s
+	cpp < $< | arm-linux-gnueabi-gcc -Wall -static -march=iwmmxt -mabi=aapcs -x assembler - -o $@
+
+clean:
+	rm -f *~ *.o $(TESTS)
diff --git a/tests/tcg/hello-arm.c b/tests/tcg/arm/hello-arm.c
similarity index 100%
rename from tests/tcg/hello-arm.c
rename to tests/tcg/arm/hello-arm.c
diff --git a/tests/tcg/test-arm-iwmmxt.s b/tests/tcg/arm/test-arm-iwmmxt.s
similarity index 100%
rename from tests/tcg/test-arm-iwmmxt.s
rename to tests/tcg/arm/test-arm-iwmmxt.s
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Qemu-devel] [PATCH v2 2/4] tests/tcg: Move mips test to arch specific folder
  2016-08-29 22:49 [Qemu-devel] [PATCH v2 0/4] Clean up TCG tests Pranith Kumar
  2016-08-29 22:49 ` [Qemu-devel] [PATCH v2 1/4] tests/tcg: Move arm tests to arch specific folder Pranith Kumar
@ 2016-08-29 22:49 ` Pranith Kumar
  2016-08-29 22:49 ` [Qemu-devel] [PATCH v2 3/4] tests/tcg: Create and populate misc tests for arch independent tests Pranith Kumar
  2016-08-29 22:49 ` [Qemu-devel] [PATCH v2 4/4] tests/tcg: Add tests-tcg hook in Makefile Pranith Kumar
  3 siblings, 0 replies; 8+ messages in thread
From: Pranith Kumar @ 2016-08-29 22:49 UTC (permalink / raw)
  To: qemu-devel; +Cc: alex.bennee, rth

Signed-off-by: Pranith Kumar <bobby.prani@gmail.com>
---
 tests/tcg/{ => mips}/hello-mips.c | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename tests/tcg/{ => mips}/hello-mips.c (100%)

diff --git a/tests/tcg/hello-mips.c b/tests/tcg/mips/hello-mips.c
similarity index 100%
rename from tests/tcg/hello-mips.c
rename to tests/tcg/mips/hello-mips.c
-- 
2.9.3

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Qemu-devel] [PATCH v2 3/4] tests/tcg: Create and populate misc tests for arch independent tests
  2016-08-29 22:49 [Qemu-devel] [PATCH v2 0/4] Clean up TCG tests Pranith Kumar
  2016-08-29 22:49 ` [Qemu-devel] [PATCH v2 1/4] tests/tcg: Move arm tests to arch specific folder Pranith Kumar
  2016-08-29 22:49 ` [Qemu-devel] [PATCH v2 2/4] tests/tcg: Move mips test " Pranith Kumar
@ 2016-08-29 22:49 ` Pranith Kumar
  2016-09-09 14:55   ` Alex Bennée
  2016-09-09 16:04   ` Alex Bennée
  2016-08-29 22:49 ` [Qemu-devel] [PATCH v2 4/4] tests/tcg: Add tests-tcg hook in Makefile Pranith Kumar
  3 siblings, 2 replies; 8+ messages in thread
From: Pranith Kumar @ 2016-08-29 22:49 UTC (permalink / raw)
  To: qemu-devel, Veronia Bahaa, Paolo Bonzini; +Cc: alex.bennee, rth

Signed-off-by: Pranith Kumar <bobby.prani@gmail.com>
---
 tests/tcg/misc/Makefile           | 75 +++++++++++++++++++++++++++++++++++++++
 tests/tcg/{ => misc}/linux-test.c |  3 ++
 tests/tcg/{ => misc}/sha1.c       |  0
 tests/tcg/{ => misc}/test-mmap.c  |  0
 tests/tcg/{ => misc}/test_path.c  |  0
 tests/tcg/{ => misc}/testthread.c |  0
 6 files changed, 78 insertions(+)
 create mode 100644 tests/tcg/misc/Makefile
 rename tests/tcg/{ => misc}/linux-test.c (99%)
 rename tests/tcg/{ => misc}/sha1.c (100%)
 rename tests/tcg/{ => misc}/test-mmap.c (100%)
 rename tests/tcg/{ => misc}/test_path.c (100%)
 rename tests/tcg/{ => misc}/testthread.c (100%)

diff --git a/tests/tcg/misc/Makefile b/tests/tcg/misc/Makefile
new file mode 100644
index 0000000..39c316b
--- /dev/null
+++ b/tests/tcg/misc/Makefile
@@ -0,0 +1,75 @@
+BUILD_DIR=../../../build/
+SRC_PATH=../../../
+include $(BUILD_DIR)/config-host.mak
+include $(SRC_PATH)/rules.mak
+
+$(call set-vpath, $(SRC_PATH)/tests/tcg/misc)
+
+QEMU=$(BUILD_DIR)/$(ARCH)-linux-user/qemu-$(ARCH)
+
+QEMU_INCLUDES += -I$(BUILD_DIR)
+CFLAGS=-Wall -O2 -g -fno-strict-aliasing -I$(SRC_PATH)/include -I$(BUILD_DIR)
+#CFLAGS+=-msse2
+LDFLAGS=
+
+# TODO: automatically detect ARM and MIPS compilers, and run those too
+
+# runcom maps page 0, so it requires root privileges
+# also, pi_10.com runs indefinitely
+
+TESTS=linux-test \
+      testthread \
+      sha1 \
+      test-mmap \
+      test_path
+      # runcom
+
+all: $(patsubst %,run-%,$(TESTS))
+test: all
+
+# rules to run tests
+
+run-%: %
+	-$(QEMU) ./$*
+
+run-linux-test: linux-test
+run-testthread: testthread
+run-sha1: sha1
+run-test_path: test_path
+
+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-test_path: test_path
+
+# rules to compile tests
+
+test_path: test_path.o
+	$(CC) $^ -o $@ -lglib-2.0
+
+test_path.o: test_path.c
+	$(CC) $^ -c -o $@ $(QEMU_INCLUDES) `pkg-config --cflags --libs glib-2.0`
+
+testthread: testthread.c
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lpthread
+
+# generic Linux and CPU test
+linux-test: linux-test.c
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lm
+
+test-mmap: test-mmap.c
+	$(CC) $(CFLAGS) -Wall -O2 $(LDFLAGS) -o $@ $< -static
+
+# speed test
+sha1: sha1.c
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $<
+
+speed: sha1
+	time ./sha1
+	time $(QEMU) ./sha1
+
+clean:
+	rm -f *~ *.o $(TESTS)
diff --git a/tests/tcg/linux-test.c b/tests/tcg/misc/linux-test.c
similarity index 99%
rename from tests/tcg/linux-test.c
rename to tests/tcg/misc/linux-test.c
index 5070d31..41ad91c 100644
--- a/tests/tcg/linux-test.c
+++ b/tests/tcg/misc/linux-test.c
@@ -39,6 +39,9 @@
 #include <dirent.h>
 #include <setjmp.h>
 #include <sys/shm.h>
+#include <stdbool.h>
+#include <sys/resource.h>
+#include "qemu/compiler.h"
 #include "qemu/cutils.h"
 
 #define TESTPATH "/tmp/linux-test.tmp"
diff --git a/tests/tcg/sha1.c b/tests/tcg/misc/sha1.c
similarity index 100%
rename from tests/tcg/sha1.c
rename to tests/tcg/misc/sha1.c
diff --git a/tests/tcg/test-mmap.c b/tests/tcg/misc/test-mmap.c
similarity index 100%
rename from tests/tcg/test-mmap.c
rename to tests/tcg/misc/test-mmap.c
diff --git a/tests/tcg/test_path.c b/tests/tcg/misc/test_path.c
similarity index 100%
rename from tests/tcg/test_path.c
rename to tests/tcg/misc/test_path.c
diff --git a/tests/tcg/testthread.c b/tests/tcg/misc/testthread.c
similarity index 100%
rename from tests/tcg/testthread.c
rename to tests/tcg/misc/testthread.c
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Qemu-devel] [PATCH v2 4/4] tests/tcg: Add tests-tcg hook in Makefile
  2016-08-29 22:49 [Qemu-devel] [PATCH v2 0/4] Clean up TCG tests Pranith Kumar
                   ` (2 preceding siblings ...)
  2016-08-29 22:49 ` [Qemu-devel] [PATCH v2 3/4] tests/tcg: Create and populate misc tests for arch independent tests Pranith Kumar
@ 2016-08-29 22:49 ` Pranith Kumar
  3 siblings, 0 replies; 8+ messages in thread
From: Pranith Kumar @ 2016-08-29 22:49 UTC (permalink / raw)
  To: qemu-devel, Eric Blake, Markus Armbruster, Daniel P. Berrange,
	Michael S. Tsirkin, Richard Henderson
  Cc: alex.bennee

Signed-off-by: Pranith Kumar <bobby.prani@gmail.com>
---
 tests/Makefile.include     |  1 +
 tests/tcg/Makefile.include | 20 ++++++++++++++++++++
 2 files changed, 21 insertions(+)
 create mode 100644 tests/tcg/Makefile.include

diff --git a/tests/Makefile.include b/tests/Makefile.include
index 14be491..141281b 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -776,3 +776,4 @@ all: $(QEMU_IOTESTS_HELPERS-y)
 
 -include $(wildcard tests/*.d)
 -include $(wildcard tests/libqos/*.d)
+-include $(SRC_PATH)/tests/tcg/Makefile.include
diff --git a/tests/tcg/Makefile.include b/tests/tcg/Makefile.include
new file mode 100644
index 0000000..563a097
--- /dev/null
+++ b/tests/tcg/Makefile.include
@@ -0,0 +1,20 @@
+UNAME_P := $(shell uname -p)
+
+tests-tcg: misc
+
+x86_64:
+	cd $(SRC_PATH)/tests/tcg/i386 && make
+i386:
+	cd $(SRC_PATH)/tests/tcg/i386 && make
+
+arm:
+	cd $(SRC_PATH)/tests/tcg/arm && make
+aarch64:
+	cd $(SRC_PATH)/tests/tcg/arm && make
+
+misc:
+	cd $(SRC_PATH)/tests/tcg/misc && make
+	make $(UNAME_P)
+
+.PHONY: tests-tcg
+
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] [PATCH v2 1/4] tests/tcg: Move arm tests to arch specific folder
  2016-08-29 22:49 ` [Qemu-devel] [PATCH v2 1/4] tests/tcg: Move arm tests to arch specific folder Pranith Kumar
@ 2016-09-09 14:43   ` Alex Bennée
  0 siblings, 0 replies; 8+ messages in thread
From: Alex Bennée @ 2016-09-09 14:43 UTC (permalink / raw)
  To: Pranith Kumar; +Cc: qemu-devel, rth


Pranith Kumar <bobby.prani@gmail.com> writes:

> Signed-off-by: Pranith Kumar <bobby.prani@gmail.com>
> ---
>  tests/tcg/arm/Makefile                | 45 +++++++++++++++++++++++++++++++++++
>  tests/tcg/{ => arm}/hello-arm.c       |  0
>  tests/tcg/{ => arm}/test-arm-iwmmxt.s |  0
>  3 files changed, 45 insertions(+)
>  create mode 100644 tests/tcg/arm/Makefile
>  rename tests/tcg/{ => arm}/hello-arm.c (100%)
>  rename tests/tcg/{ => arm}/test-arm-iwmmxt.s (100%)
>
> diff --git a/tests/tcg/arm/Makefile b/tests/tcg/arm/Makefile
> new file mode 100644
> index 0000000..da92305
> --- /dev/null
> +++ b/tests/tcg/arm/Makefile
> @@ -0,0 +1,45 @@
> +BUILD_DIR=../../../build/

I think this needs to come from the calling Makefile or be set if being
called direct:

BUILD_DIR?=$(CURDIR)

The BUILD_DIR can be outside of the tree.

> +SRC_PATH=../../../
> +include $(BUILD_DIR)/config-host.mak
> +include $(SRC_PATH)/rules.mak
> +
> +$(call set-vpath, $(SRC_PATH)/tests/tcg/arm)
> +
> +QEMU=$(BUILD_DIR)/arm-linux-user/qemu-arm
> +
> +QEMU_INCLUDES += -I$(BUILD_DIR)
> +CFLAGS=-Wall -O2 -g -fno-strict-aliasing
> +LDFLAGS=
> +
> +# TODO: automatically detect ARM and MIPS compilers, and run those too
> +
> +# runcom maps page 0, so it requires root privileges
> +# also, pi_10.com runs indefinitely
> +
> +TESTS=hello-arm arm-iwmmxt
> +
> +all: $(patsubst %,run-%,$(TESTS))
> +test: all
> +
> +# rules to run tests
> +
> +run-%: %
> +	$(QEMU) ./$*
> +
> +#.PHONY: $(patsubst %,run-%,$(TESTS))
> +
> +run-hello-arm: hello-arm
> +run-arm-iwmmxt: arm-iwmmxt
> +
> +# arm test
> +hello-arm: hello-arm.o
> +	arm-linux-gnueabi-ld -o $@ $<
> +
> +hello-arm.o: hello-arm.c
> +	arm-linux-gnueabi-gcc -Wall -g -O2 -c -o $@ $<
> +
> +arm-iwmmxt: test-arm-iwmmxt.s
> +	cpp < $< | arm-linux-gnueabi-gcc -Wall -static -march=iwmmxt -mabi=aapcs -x assembler - -o $@

The ld/gcc/cpp calls need to be done via env variables so they can be
changed easily.

> +
> +clean:
> +	rm -f *~ *.o $(TESTS)
> diff --git a/tests/tcg/hello-arm.c b/tests/tcg/arm/hello-arm.c
> similarity index 100%
> rename from tests/tcg/hello-arm.c
> rename to tests/tcg/arm/hello-arm.c
> diff --git a/tests/tcg/test-arm-iwmmxt.s b/tests/tcg/arm/test-arm-iwmmxt.s
> similarity index 100%
> rename from tests/tcg/test-arm-iwmmxt.s
> rename to tests/tcg/arm/test-arm-iwmmxt.s


--
Alex Bennée

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] [PATCH v2 3/4] tests/tcg: Create and populate misc tests for arch independent tests
  2016-08-29 22:49 ` [Qemu-devel] [PATCH v2 3/4] tests/tcg: Create and populate misc tests for arch independent tests Pranith Kumar
@ 2016-09-09 14:55   ` Alex Bennée
  2016-09-09 16:04   ` Alex Bennée
  1 sibling, 0 replies; 8+ messages in thread
From: Alex Bennée @ 2016-09-09 14:55 UTC (permalink / raw)
  To: Pranith Kumar; +Cc: qemu-devel, Veronia Bahaa, Paolo Bonzini, rth


Pranith Kumar <bobby.prani@gmail.com> writes:

> Signed-off-by: Pranith Kumar <bobby.prani@gmail.com>
> ---
>  tests/tcg/misc/Makefile           | 75 +++++++++++++++++++++++++++++++++++++++
>  tests/tcg/{ => misc}/linux-test.c |  3 ++
>  tests/tcg/{ => misc}/sha1.c       |  0
>  tests/tcg/{ => misc}/test-mmap.c  |  0
>  tests/tcg/{ => misc}/test_path.c  |  0
>  tests/tcg/{ => misc}/testthread.c |  0
>  6 files changed, 78 insertions(+)
>  create mode 100644 tests/tcg/misc/Makefile
>  rename tests/tcg/{ => misc}/linux-test.c (99%)
>  rename tests/tcg/{ => misc}/sha1.c (100%)
>  rename tests/tcg/{ => misc}/test-mmap.c (100%)
>  rename tests/tcg/{ => misc}/test_path.c (100%)
>  rename tests/tcg/{ => misc}/testthread.c (100%)
>
> diff --git a/tests/tcg/misc/Makefile b/tests/tcg/misc/Makefile
> new file mode 100644
> index 0000000..39c316b
> --- /dev/null
> +++ b/tests/tcg/misc/Makefile
> @@ -0,0 +1,75 @@

I think the aim for misc is it can be built multiple times with whatever
compiler it is passed.

> +BUILD_DIR=../../../build/
> +SRC_PATH=../../../
> +include $(BUILD_DIR)/config-host.mak
> +include $(SRC_PATH)/rules.mak
> +
> +$(call set-vpath, $(SRC_PATH)/tests/tcg/misc)
> +
> +QEMU=$(BUILD_DIR)/$(ARCH)-linux-user/qemu-$(ARCH)
> +
> +QEMU_INCLUDES += -I$(BUILD_DIR)
> +CFLAGS=-Wall -O2 -g -fno-strict-aliasing -I$(SRC_PATH)/include -I$(BUILD_DIR)
> +#CFLAGS+=-msse2
> +LDFLAGS=
> +
> +# TODO: automatically detect ARM and MIPS compilers, and run those
> too

I think this is a holdover from the old Makefile. I suspect the best way
is to have a conditional setting of CC, LD etc so they can be overridden.

> +
> +# runcom maps page 0, so it requires root privileges
> +# also, pi_10.com runs indefinitely
> +
> +TESTS=linux-test \
> +      testthread \
> +      sha1 \
> +      test-mmap \
> +      test_path
> +      # runcom
> +
> +all: $(patsubst %,run-%,$(TESTS))
> +test: all
> +
> +# rules to run tests
> +
> +run-%: %
> +	-$(QEMU) ./$*
> +
> +run-linux-test: linux-test
> +run-testthread: testthread
> +run-sha1: sha1
> +run-test_path: test_path
> +
> +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-test_path: test_path
> +
> +# rules to compile tests
> +
> +test_path: test_path.o
> +	$(CC) $^ -o $@ -lglib-2.0
> +
> +test_path.o: test_path.c
> +	$(CC) $^ -c -o $@ $(QEMU_INCLUDES) `pkg-config --cflags --libs glib-2.0`
> +
> +testthread: testthread.c
> +	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lpthread
> +
> +# generic Linux and CPU test
> +linux-test: linux-test.c
> +	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lm
> +
> +test-mmap: test-mmap.c
> +	$(CC) $(CFLAGS) -Wall -O2 $(LDFLAGS) -o $@ $< -static
> +
> +# speed test
> +sha1: sha1.c
> +	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $<
> +
> +speed: sha1
> +	time ./sha1
> +	time $(QEMU) ./sha1
> +
> +clean:
> +	rm -f *~ *.o $(TESTS)
> diff --git a/tests/tcg/linux-test.c b/tests/tcg/misc/linux-test.c
> similarity index 99%
> rename from tests/tcg/linux-test.c
> rename to tests/tcg/misc/linux-test.c
> index 5070d31..41ad91c 100644
> --- a/tests/tcg/linux-test.c
> +++ b/tests/tcg/misc/linux-test.c
> @@ -39,6 +39,9 @@
>  #include <dirent.h>
>  #include <setjmp.h>
>  #include <sys/shm.h>
> +#include <stdbool.h>
> +#include <sys/resource.h>
> +#include "qemu/compiler.h"
>  #include "qemu/cutils.h"
>
>  #define TESTPATH "/tmp/linux-test.tmp"
> diff --git a/tests/tcg/sha1.c b/tests/tcg/misc/sha1.c
> similarity index 100%
> rename from tests/tcg/sha1.c
> rename to tests/tcg/misc/sha1.c
> diff --git a/tests/tcg/test-mmap.c b/tests/tcg/misc/test-mmap.c
> similarity index 100%
> rename from tests/tcg/test-mmap.c
> rename to tests/tcg/misc/test-mmap.c
> diff --git a/tests/tcg/test_path.c b/tests/tcg/misc/test_path.c
> similarity index 100%
> rename from tests/tcg/test_path.c
> rename to tests/tcg/misc/test_path.c
> diff --git a/tests/tcg/testthread.c b/tests/tcg/misc/testthread.c
> similarity index 100%
> rename from tests/tcg/testthread.c
> rename to tests/tcg/misc/testthread.c


--
Alex Bennée

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] [PATCH v2 3/4] tests/tcg: Create and populate misc tests for arch independent tests
  2016-08-29 22:49 ` [Qemu-devel] [PATCH v2 3/4] tests/tcg: Create and populate misc tests for arch independent tests Pranith Kumar
  2016-09-09 14:55   ` Alex Bennée
@ 2016-09-09 16:04   ` Alex Bennée
  1 sibling, 0 replies; 8+ messages in thread
From: Alex Bennée @ 2016-09-09 16:04 UTC (permalink / raw)
  To: Pranith Kumar; +Cc: qemu-devel, Veronia Bahaa, Paolo Bonzini, rth


Pranith Kumar <bobby.prani@gmail.com> writes:

> Signed-off-by: Pranith Kumar <bobby.prani@gmail.com>
> ---
>  tests/tcg/misc/Makefile           | 75 +++++++++++++++++++++++++++++++++++++++
>  tests/tcg/{ => misc}/linux-test.c |  3 ++
>  tests/tcg/{ => misc}/sha1.c       |  0
>  tests/tcg/{ => misc}/test-mmap.c  |  0
>  tests/tcg/{ => misc}/test_path.c  |  0
>  tests/tcg/{ => misc}/testthread.c |  0
>  6 files changed, 78 insertions(+)
>  create mode 100644 tests/tcg/misc/Makefile
>  rename tests/tcg/{ => misc}/linux-test.c (99%)
>  rename tests/tcg/{ => misc}/sha1.c (100%)
>  rename tests/tcg/{ => misc}/test-mmap.c (100%)
>  rename tests/tcg/{ => misc}/test_path.c (100%)
>  rename tests/tcg/{ => misc}/testthread.c (100%)
>
> diff --git a/tests/tcg/misc/Makefile b/tests/tcg/misc/Makefile
> new file mode 100644
> index 0000000..39c316b
> --- /dev/null
> +++ b/tests/tcg/misc/Makefile
> @@ -0,0 +1,75 @@
> +BUILD_DIR=../../../build/
> +SRC_PATH=../../../
> +include $(BUILD_DIR)/config-host.mak
> +include $(SRC_PATH)/rules.mak

So the misc tests need to be called allowing change of compiler with
setting CROSS_CC. The other tests need to test is ARCH (i.e. host
architecture) matches in which case they can set CROSS_CC to CC.
Otherwise they fail to build.

See the following patch to get an idea, applies on top of your stuff but
you'll want to squash it in as appropriate:

>From c2dc6fa3abf49e6b430a980bd18101ab64a1fade Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>
Date: Fri, 9 Sep 2016 16:58:12 +0100
Subject: [PATCH] tcg/tests/misc/Makefile: a number of tweaks to roll up

With this you can build with:

  mkdir aarch64-linux-user/tests
  cd aarch64-linux-user/tests
  CROSS_CC=aarch64-linux-gnu-gcc make -f ../../tests/tcg/misc/Makefile

Things changed:

  - explicit about the BUILD_DIR and where we expect to be called
  - use config-host.mak to get SRC_DIR
  - use config-target.mak to get TARGET_NAME
  - use CROSS_CC instead of CC
  - disable test_path (these need re-writing in cross compile friendly non-glib)
  - only pass -I into QEMU src tree when needed
---
 tests/tcg/misc/Makefile | 53 ++++++++++++++++++++++++++++---------------------
 1 file changed, 30 insertions(+), 23 deletions(-)

diff --git a/tests/tcg/misc/Makefile b/tests/tcg/misc/Makefile
index 39c316b..57235df 100644
--- a/tests/tcg/misc/Makefile
+++ b/tests/tcg/misc/Makefile
@@ -1,28 +1,33 @@
-BUILD_DIR=../../../build/
-SRC_PATH=../../../
-include $(BUILD_DIR)/config-host.mak
+# -*- Mode: makefile -*-
+#
+# Generic linux-user TCG tests
+#
+# These tests all use standard non-architecture specific APIs so can
+# be built for all TCG targets. The Make is expected to be called in
+# the ${BUILD_DIR}/$(TARGET_NAME_ARCH)-linux-user/tests directory
+#
+# To build for other architectures call make with CROSS_CC set
+#
+
+BUILD_DIR=../..
+include $(BUILD_DIR)/config-host.mak	# brings in SRC_PATH
+include ../config-target.mak		# TARGET_NAME
 include $(SRC_PATH)/rules.mak

 $(call set-vpath, $(SRC_PATH)/tests/tcg/misc)

-QEMU=$(BUILD_DIR)/$(ARCH)-linux-user/qemu-$(ARCH)
+QEMU=$(BUILD_DIR)/$(TARGET_NAME)-linux-user/qemu-$(TARGET_NAME)

-QEMU_INCLUDES += -I$(BUILD_DIR)
-CFLAGS=-Wall -O2 -g -fno-strict-aliasing -I$(SRC_PATH)/include -I$(BUILD_DIR)
-#CFLAGS+=-msse2
-LDFLAGS=
-
-# TODO: automatically detect ARM and MIPS compilers, and run those too
+# Compiler set-up, default to system compiler if not set
+CROSS_CC?=$(CC)

-# runcom maps page 0, so it requires root privileges
-# also, pi_10.com runs indefinitely
+CFLAGS=-Wall -O2 -g -fno-strict-aliasing -static
+LDFLAGS=

 TESTS=linux-test \
       testthread \
       sha1 \
-      test-mmap \
-      test_path
-      # runcom
+      test-mmap

 all: $(patsubst %,run-%,$(TESTS))
 test: all
@@ -47,25 +52,27 @@ run-test_path: test_path

 # rules to compile tests

-test_path: test_path.o
-	$(CC) $^ -o $@ -lglib-2.0

-test_path.o: test_path.c
-	$(CC) $^ -c -o $@ $(QEMU_INCLUDES) `pkg-config --cflags --libs glib-2.0`
+# These two need to be re-written as relying on glib (rather than just glibc)
+# test_path: test_path.o
+# 	$(CROSS_CC) $^ -o $@ -lglib-2.0
+
+# test_path.o: test_path.c
+# 	$(CROSS_CC) $^ -c -o $@ $(QEMU_INCLUDES) `pkg-config --cflags --libs glib-2.0`

 testthread: testthread.c
-	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lpthread
+	$(CROSS_CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lpthread

 # generic Linux and CPU test
 linux-test: linux-test.c
-	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lm
+	$(CROSS_CC) $(CFLAGS) -I$(SRC_PATH)/include $(LDFLAGS) -o $@ $< -lm

 test-mmap: test-mmap.c
-	$(CC) $(CFLAGS) -Wall -O2 $(LDFLAGS) -o $@ $< -static
+	$(CROSS_CC) $(CFLAGS) -Wall -O2 $(LDFLAGS) -o $@ $< -static

 # speed test
 sha1: sha1.c
-	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $<
+	$(CROSS_CC) $(CFLAGS) $(LDFLAGS) -o $@ $<

 speed: sha1
        time ./sha1
--
2.9.3




--
Alex Bennée

^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2016-09-09 16:04 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-08-29 22:49 [Qemu-devel] [PATCH v2 0/4] Clean up TCG tests Pranith Kumar
2016-08-29 22:49 ` [Qemu-devel] [PATCH v2 1/4] tests/tcg: Move arm tests to arch specific folder Pranith Kumar
2016-09-09 14:43   ` Alex Bennée
2016-08-29 22:49 ` [Qemu-devel] [PATCH v2 2/4] tests/tcg: Move mips test " Pranith Kumar
2016-08-29 22:49 ` [Qemu-devel] [PATCH v2 3/4] tests/tcg: Create and populate misc tests for arch independent tests Pranith Kumar
2016-09-09 14:55   ` Alex Bennée
2016-09-09 16:04   ` Alex Bennée
2016-08-29 22:49 ` [Qemu-devel] [PATCH v2 4/4] tests/tcg: Add tests-tcg hook in Makefile Pranith Kumar

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).