diff mbox series

[RFC,07/13] tests/tcg/xtensa: enable system tests

Message ID 20181210152829.29271-8-alex.bennee@linaro.org
State Superseded
Headers show
Series Enabling tcg/tests for xtensa, mips and cris | expand

Commit Message

Alex Bennée Dec. 10, 2018, 3:28 p.m. UTC
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

---
 tests/tcg/xtensa/Makefile                | 93 ------------------------
 tests/tcg/xtensa/Makefile.softmmu-target | 43 +++++++++++
 2 files changed, 43 insertions(+), 93 deletions(-)
 delete mode 100644 tests/tcg/xtensa/Makefile
 create mode 100644 tests/tcg/xtensa/Makefile.softmmu-target

-- 
2.17.1

Comments

Max Filippov Dec. 11, 2018, 12:25 a.m. UTC | #1
On Mon, Dec 10, 2018 at 7:28 AM Alex Bennée <alex.bennee@linaro.org> wrote:
>

> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

> ---

>  tests/tcg/xtensa/Makefile                | 93 ------------------------

>  tests/tcg/xtensa/Makefile.softmmu-target | 43 +++++++++++

>  2 files changed, 43 insertions(+), 93 deletions(-)

>  delete mode 100644 tests/tcg/xtensa/Makefile


That Makefile provides a few nice goals for guest and host debugging
and a way to run tests on Tensilica ISS, it would be nice to keep it.

-- 
Thanks.
-- Max
Alex Bennée Dec. 11, 2018, 11:58 a.m. UTC | #2
Max Filippov <jcmvbkbc@gmail.com> writes:

> On Mon, Dec 10, 2018 at 7:28 AM Alex Bennée <alex.bennee@linaro.org> wrote:

>>

>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

>> ---

>>  tests/tcg/xtensa/Makefile                | 93 ------------------------

>>  tests/tcg/xtensa/Makefile.softmmu-target | 43 +++++++++++

>>  2 files changed, 43 insertions(+), 93 deletions(-)

>>  delete mode 100644 tests/tcg/xtensa/Makefile

>

> That Makefile provides a few nice goals for guest and host debugging


I could certainly add a rule like:

gdb-%: %
	gdb --args $(QEMU) $(QEMU_OPTS) $<

> and a way to run tests on Tensilica ISS, it would be nice to keep it.


I can restore some xtensa specific rules:

xt-run-%: %
        xt-run --xtensa-core=DC_B_232L --exit_with_target_code $<

What are EXTFLAGS used for?

--
Alex Bennée
Max Filippov Dec. 11, 2018, 12:32 p.m. UTC | #3
On Tue, Dec 11, 2018 at 3:58 AM Alex Bennée <alex.bennee@linaro.org> wrote:
> I could certainly add a rule like:

>

> gdb-%: %

>         gdb --args $(QEMU) $(QEMU_OPTS) $<


Thanks (:

> > and a way to run tests on Tensilica ISS, it would be nice to keep it.

>

> I can restore some xtensa specific rules:

>

> xt-run-%: %

>         xt-run --xtensa-core=DC_B_232L --exit_with_target_code $<


The idea in the original makefile was that 'make check XT='
runs the same suite on the ISS that 'make check' runs on QEMU.

> What are EXTFLAGS used for?


To pass additional flags to the current emulator.
Usually -d something for QEMU.

Also now that I'm looking at the following, it seems to me that CC
would be more appropriate there than HOST_CC:

> +linker.ld: linker.ld.S

> +       $(HOST_CC) $(XTENSA_INC) -E -P $< -o $@


-- 
Thanks.
-- Max
diff mbox series

Patch

diff --git a/tests/tcg/xtensa/Makefile b/tests/tcg/xtensa/Makefile
deleted file mode 100644
index 2f5691f75b..0000000000
--- a/tests/tcg/xtensa/Makefile
+++ /dev/null
@@ -1,93 +0,0 @@ 
--include ../../../config-host.mak
-
-CORE=dc232b
-CROSS=xtensa-$(CORE)-elf-
-
-ifndef XT
-SIM = ../../../xtensa-softmmu/qemu-system-xtensa
-SIMFLAGS = -M sim -cpu $(CORE) -nographic -semihosting -icount 6 $(EXTFLAGS) -kernel
-SIMDEBUG = -s -S
-else
-SIM = xt-run
-SIMFLAGS = --xtensa-core=DC_B_232L --exit_with_target_code $(EXTFLAGS)
-SIMDEBUG = --gdbserve=0
-endif
-
-HOST_CC = gcc
-CC      = $(CROSS)gcc
-AS      = $(CROSS)gcc -x assembler-with-cpp
-LD      = $(CROSS)ld
-
-XTENSA_SRC_PATH = $(SRC_PATH)/tests/tcg/xtensa
-INCLUDE_DIRS = $(XTENSA_SRC_PATH) $(SRC_PATH)/target/xtensa/core-$(CORE)
-XTENSA_INC = $(addprefix -I,$(INCLUDE_DIRS))
-
-LDFLAGS = -Tlinker.ld
-
-CRT        = crt.o vectors.o
-
-TESTCASES += test_b.tst
-TESTCASES += test_bi.tst
-#TESTCASES += test_boolean.tst
-TESTCASES += test_break.tst
-TESTCASES += test_bz.tst
-TESTCASES += test_cache.tst
-TESTCASES += test_clamps.tst
-TESTCASES += test_extui.tst
-TESTCASES += test_fail.tst
-TESTCASES += test_interrupt.tst
-TESTCASES += test_loop.tst
-TESTCASES += test_mac16.tst
-TESTCASES += test_max.tst
-TESTCASES += test_min.tst
-TESTCASES += test_mmu.tst
-TESTCASES += test_mul16.tst
-TESTCASES += test_mul32.tst
-TESTCASES += test_nsa.tst
-TESTCASES += test_phys_mem.tst
-ifdef XT
-TESTCASES += test_pipeline.tst
-endif
-TESTCASES += test_quo.tst
-TESTCASES += test_rem.tst
-TESTCASES += test_rst0.tst
-TESTCASES += test_s32c1i.tst
-TESTCASES += test_sar.tst
-TESTCASES += test_sext.tst
-TESTCASES += test_shift.tst
-TESTCASES += test_sr.tst
-TESTCASES += test_timer.tst
-TESTCASES += test_windowed.tst
-
-all: build
-
-linker.ld: $(XTENSA_SRC_PATH)/linker.ld.S
-	$(HOST_CC) $(XTENSA_INC) -E -P $< -o $@
-
-%.o: $(XTENSA_SRC_PATH)/%.c
-	$(CC) $(XTENSA_INC) $(CFLAGS) -c $< -o $@
-
-%.o: $(XTENSA_SRC_PATH)/%.S
-	$(CC) $(XTENSA_INC) $(ASFLAGS) -c $< -o $@
-
-%.tst: %.o linker.ld $(XTENSA_SRC_PATH)/macros.inc $(CRT) Makefile
-	$(LD) $(LDFLAGS) $(NOSTDFLAGS) $(CRT) $< -o $@
-
-build: $(TESTCASES)
-
-check: $(addprefix run-, $(TESTCASES))
-
-run-%.tst: %.tst
-	$(SIM) $(SIMFLAGS) ./$<
-
-run-test_fail.tst: test_fail.tst
-	! $(SIM) $(SIMFLAGS) ./$<
-
-debug-%.tst: %.tst
-	$(SIM) $(SIMDEBUG) $(SIMFLAGS) ./$<
-
-host-debug-%.tst: %.tst
-	gdb --args $(SIM) $(SIMFLAGS) ./$<
-
-clean:
-	$(RM) -fr $(TESTCASES) $(CRT) linker.ld
diff --git a/tests/tcg/xtensa/Makefile.softmmu-target b/tests/tcg/xtensa/Makefile.softmmu-target
new file mode 100644
index 0000000000..e9d6939990
--- /dev/null
+++ b/tests/tcg/xtensa/Makefile.softmmu-target
@@ -0,0 +1,43 @@ 
+#
+# Xtensa softmmu tests
+#
+
+XTENSA_SRC = $(SRC_PATH)/tests/tcg/xtensa
+XTENSA_ALL = $(wildcard $(XTENSA_SRC)/*.S)
+XTENSA_TESTS = $(patsubst $(XTENSA_SRC)/%.S, %, $(XTENSA_ALL))
+# Filter out common blobs and broken tests
+XTENSA_BROKEN_TESTS  = crt vectors test_boolean test_pipeline
+XTENSA_USABLE_TESTS = $(filter-out $(XTENSA_BROKEN_TESTS), $(XTENSA_TESTS))
+XTENSA_RUNS = $(patsubst %, run-%, $(XTENSA_USABLE_TESTS))
+
+# add to the list of tests
+TESTS += $(XTENSA_USABLE_TESTS)
+VPATH += $(XTENSA_SRC)
+
+CORE=dc232b
+QEMU_OPTS = -M sim -cpu $(CORE) -nographic -semihosting -icount 6 $(EXTFLAGS) -kernel
+
+INCLUDE_DIRS = $(SRC_PATH)/target/xtensa/core-$(CORE)
+XTENSA_INC = $(addprefix -I,$(INCLUDE_DIRS))
+
+LDFLAGS = -Tlinker.ld -nostartfiles -nostdlib
+
+CRT        = crt.o vectors.o
+
+linker.ld: linker.ld.S
+	$(HOST_CC) $(XTENSA_INC) -E -P $< -o $@
+
+$(XTENSA_USABLE_TESTS): linker.ld macros.inc $(CRT) Makefile.softmmu-target
+
+# special rule for common blobs
+%.o: %.S
+	$(CC) $(XTENSA_INC) $(ASFLAGS) -c $< -o $@
+
+%: %.S
+	$(CC) $(XTENSA_INC) $(ASFLAGS) $< -o $@ $(LDFLAGS) $(NOSTDFLAGS) $(CRT)
+
+# Special runner
+$(XTENSA_RUNS): $(XTENSA_USABLE_TESTS)
+	$(call quiet-command,					\
+		timeout $(TIMEOUT) $(QEMU) $(QEMU_OPTS) $<, 	\
+		"TEST","$< on $(TARGET_NAME) $(QEMU_OPTS)")