qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v4 26/49] tests/tcg: move ARM specific tests int


From: Alex Bennée
Subject: Re: [Qemu-devel] [PATCH v4 26/49] tests/tcg: move ARM specific tests into subdir
Date: Fri, 18 May 2018 16:58:37 +0100
User-agent: mu4e 1.1.0; emacs 26.1

Philippe Mathieu-Daudé <address@hidden> writes:

> On 05/17/2018 02:46 PM, Alex Bennée wrote:
>> These only need to be built for ARM guests.
>>
>> Signed-off-by: Alex Bennée <address@hidden>
>> Reviewed-by: Thomas Huth <address@hidden>
>> Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
>> Tested-by: Philippe Mathieu-Daudé <address@hidden>
>> Reviewed-by: Richard Henderson <address@hidden>
>>
>> ---
>> v2
>>   - do VPATH manipulation in tests/tcg/arm/Makefile.target
>>   - merge with fix hello-arm test
>> v4
>>   - update MAINTAINERS
>> ---
>>  MAINTAINERS                           |  1 +
>>  tests/tcg/README                      |  9 ---------
>>  tests/tcg/arm/Makefile.target         | 13 +++++++++++++
>>  tests/tcg/arm/README                  | 11 +++++++++++
>>  tests/tcg/{ => arm}/hello-arm.c       |  0
>>  tests/tcg/{ => arm}/test-arm-iwmmxt.s |  0
>>  6 files changed, 25 insertions(+), 9 deletions(-)
>>  create mode 100644 tests/tcg/arm/Makefile.target
>>  create mode 100644 tests/tcg/arm/README
>>  rename tests/tcg/{ => arm}/hello-arm.c (100%)
>>  rename tests/tcg/{ => arm}/test-arm-iwmmxt.s (100%)
>>
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index 17b9fc0fbe..4e331c4db4 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -135,6 +135,7 @@ M: Peter Maydell <address@hidden>
>>  L: address@hidden
>>  S: Maintained
>>  F: target/arm/
>> +F: tests/tcg/arm/
>>  F: hw/arm/
>>  F: hw/cpu/a*mpcore.c
>>  F: include/hw/cpu/a*mpcore.h
>> diff --git a/tests/tcg/README b/tests/tcg/README
>> index 469504c4cb..625f2326e6 100644
>> --- a/tests/tcg/README
>> +++ b/tests/tcg/README
>> @@ -5,15 +5,6 @@ or they are architecture specific.
>>
>>
>>
>> -ARM
>> -===
>> -
>> -hello-arm
>> ----------
>> -
>> -test-arm-iwmmxt
>> ----------------
>> -
>>  MIPS
>>  ====
>>
>> diff --git a/tests/tcg/arm/Makefile.target b/tests/tcg/arm/Makefile.target
>> new file mode 100644
>> index 0000000000..bc6962ecc6
>> --- /dev/null
>> +++ b/tests/tcg/arm/Makefile.target
>> @@ -0,0 +1,13 @@
>> +# -*- Mode: makefile -*-
>> +#
>> +# ARM - included from tests/tcg/Makefile.target
>> +#
>> +
>> +ARM_SRC=$(SRC_PATH)/tests/tcg/arm
>> +
>> +# Set search path for all sources
>> +VPATH               += $(ARM_SRC)
>> +
>> +
>> +hello-arm: CFLAGS+=-marm -ffreestanding
>
> So we are only testing the ARMv7, but linux-user provides ARMv5 and
> ARMv6 cpus.
>
> There are still boards shipped with those cpus, so I think QEMU will
> still be useful nowadays with those older archs.
> Can we consider add tests for them?
> If so, I volunteer to prepare Docker cross images :)

Hmm OK but we'd a bunch of new tests and something like this:

modified   tests/tcg/arm/Makefile.target
@@ -8,13 +8,23 @@ ARM_SRC=$(SRC_PATH)/tests/tcg/arm
 # Set search path for all sources
 VPATH          += $(ARM_SRC)

-ARM_TESTS=hello-arm test-arm-iwmmxt
+ARM_TESTS=hello-arm hello-arm-v6 test-arm-iwmmxt

 TESTS += $(ARM_TESTS) fcvt

 hello-arm: CFLAGS+=-marm -ffreestanding
 hello-arm: LDFLAGS+=-nostdlib

+hello-arm-v6: CFLAGS+=-march=armv6 -ffreestanding
+hello-arm-v6: LDFLAGS+=-nostdlib
+hello-arm-v6: hello-arm.c
+       $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS)
+
+run-hello-arm-v6: hello-arm-v6
+       $(call quiet-command, \
+               timeout $(TIMEOUT) $(QEMU) -cpu arm926 $< > $<.out, \
+               "TEST", "$< on $(TARGET_NAME)")
+

Of course that fails because:

/home/alex/lsrc/qemu/qemu.git/tests/tcg/arm/hello-arm.c:106:1: sorry, 
unimplemented: Thumb-1 hard-float VFP ABI
 _syscall1(int,exit1,int,status);
 ^~~~~~~~~

I think using external tests like risu is probably better for this sort
of coverage.

>
> arm-linux-user/tests$ ../qemu-arm -cpu arm926 -d in_asm,op sha1
> ----------------
> IN:
> 0x000102ec:  f04f 0b00  mov.w    fp, #0
>
> OP:
>  ld_i32 tmp5,env,$0xffffffffffffffec
>  movi_i32 tmp6,$0x0
>  brcond_i32 tmp5,tmp6,lt,$L0
>
>  ---- 000102ec 00000000 00000000
>  movi_i32 pc,$0x102ec
>  movi_i32 tmp5,$0x1
>  movi_i32 tmp6,$0x2000000
>  movi_i32 tmp7,$0x1
>  call exception_with_syndrome,$0x0,$0,env,tmp5,tmp6,tmp7
>  set_label $L0
>  exit_tb $0x563aed6cc043
>
> qemu: uncaught target signal 4 (Illegal instruction) - core dumped
> Illegal instruction
>
>> +hello-arm: LDFLAGS+=-nostdlib
>> diff --git a/tests/tcg/arm/README b/tests/tcg/arm/README
>> new file mode 100644
>> index 0000000000..e6307116e2
>> --- /dev/null
>> +++ b/tests/tcg/arm/README
>> @@ -0,0 +1,11 @@
>> +These are ARM specific guest programs
>> +
>> +hello-arm
>> +---------
>> +
>> +A very simple inline assembly, write syscall based hello world
>> +
>> +test-arm-iwmmxt
>> +---------------
>> +
>> +A simple test case for older iwmmxt extended ARMs
>> 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]