diff mbox series

[v4,26/49] tests/tcg: move ARM specific tests into subdir

Message ID 20180517174718.10107-27-alex.bennee@linaro.org
State Superseded
Headers show
Series fix building of tests/tcg | expand

Commit Message

Alex Bennée May 17, 2018, 5:46 p.m. UTC
These only need to be built for ARM guests.

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

Reviewed-by: Thomas Huth <thuth@redhat.com>

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


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

-- 
2.17.0

Comments

Philippe Mathieu-Daudé May 18, 2018, 3:26 p.m. UTC | #1
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 <alex.bennee@linaro.org>

> Reviewed-by: Thomas Huth <thuth@redhat.com>

> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

> Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

> 

> ---

> 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 <peter.maydell@linaro.org>

>  L: qemu-arm@nongnu.org

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

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 May 18, 2018, 3:58 p.m. UTC | #2
Philippe Mathieu-Daudé <f4bug@amsat.org> 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 <alex.bennee@linaro.org>

>> Reviewed-by: Thomas Huth <thuth@redhat.com>

>> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

>> Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

>> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

>>

>> ---

>> 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 <peter.maydell@linaro.org>

>>  L: qemu-arm@nongnu.org

>>  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
diff mbox series

Patch

diff --git a/MAINTAINERS b/MAINTAINERS
index 17b9fc0fbe..4e331c4db4 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -135,6 +135,7 @@  M: Peter Maydell <peter.maydell@linaro.org>
 L: qemu-arm@nongnu.org
 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
+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