Re: [Qemu-devel] [RFC PATCH 07/13] tests/tcg/xtensa: enable system tests

2018-12-11 Thread Max Filippov
On Tue, Dec 11, 2018 at 3:58 AM Alex Bennée  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



Re: [Qemu-devel] [RFC PATCH 07/13] tests/tcg/xtensa: enable system tests

2018-12-11 Thread Alex Bennée


Max Filippov  writes:

> On Mon, Dec 10, 2018 at 7:28 AM Alex Bennée  wrote:
>>
>> Signed-off-by: Alex Bennée 
>> ---
>>  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



Re: [Qemu-devel] [RFC PATCH 07/13] tests/tcg/xtensa: enable system tests

2018-12-10 Thread Max Filippov
On Mon, Dec 10, 2018 at 7:28 AM Alex Bennée  wrote:
>
> Signed-off-by: Alex Bennée 
> ---
>  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



[Qemu-devel] [RFC PATCH 07/13] tests/tcg/xtensa: enable system tests

2018-12-10 Thread Alex Bennée
Signed-off-by: Alex Bennée 
---
 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

diff --git a/tests/tcg/xtensa/Makefile b/tests/tcg/xtensa/Makefile
deleted file mode 100644
index 2f5691f75b..00
--- 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 00..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)")
-- 
2.17.1