diff mbox

[v2,3/4] tests/tcg: Create and populate misc tests for arch independent tests

Message ID 87twdp3vqp.fsf@linaro.org
State New
Headers show

Commit Message

Alex Bennée Sept. 9, 2016, 4:04 p.m. UTC
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(-)

--
2.9.3




--
Alex Bennée
diff mbox

Patch

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