[Qemu-devel] [PATCH v3 16/46] tests/tcg: move i386 specific tests into subdir

Alex Bennée posted 46 patches 7 years, 6 months ago
There is a newer version of this series
[Qemu-devel] [PATCH v3 16/46] tests/tcg: move i386 specific tests into subdir
Posted by Alex Bennée 7 years, 6 months ago
These only need to be built for i386 guests. This includes a stub
tests/tcg/i386/Makfile.target which absorbs some of what was in
tests/tcg/Makefile.

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>
---
v2
  - move VPATH and TESTs setup into i386/Makefile.target
  - set CFLAGS+=-m32 for cross building
---
 tests/tcg/README                        |  39 ------------------------
 tests/tcg/i386/Makefile.target          |  30 ++++++++++++++++++
 tests/tcg/i386/README                   |  38 +++++++++++++++++++++++
 tests/tcg/{ => i386}/hello-i386.c       |   0
 tests/tcg/{ => i386}/pi_10.com          | Bin
 tests/tcg/{ => i386}/runcom.c           |   0
 tests/tcg/{ => i386}/test-i386-code16.S |   0
 tests/tcg/{ => i386}/test-i386-fprem.c  |   0
 tests/tcg/{ => i386}/test-i386-muldiv.h |   0
 tests/tcg/{ => i386}/test-i386-shift.h  |   0
 tests/tcg/{ => i386}/test-i386-ssse3.c  |   0
 tests/tcg/{ => i386}/test-i386-vm86.S   |   0
 tests/tcg/{ => i386}/test-i386.c        |   0
 tests/tcg/{ => i386}/test-i386.h        |   0
 14 files changed, 68 insertions(+), 39 deletions(-)
 create mode 100644 tests/tcg/i386/Makefile.target
 create mode 100644 tests/tcg/i386/README
 rename tests/tcg/{ => i386}/hello-i386.c (100%)
 rename tests/tcg/{ => i386}/pi_10.com (100%)
 rename tests/tcg/{ => i386}/runcom.c (100%)
 rename tests/tcg/{ => i386}/test-i386-code16.S (100%)
 rename tests/tcg/{ => i386}/test-i386-fprem.c (100%)
 rename tests/tcg/{ => i386}/test-i386-muldiv.h (100%)
 rename tests/tcg/{ => i386}/test-i386-shift.h (100%)
 rename tests/tcg/{ => i386}/test-i386-ssse3.c (100%)
 rename tests/tcg/{ => i386}/test-i386-vm86.S (100%)
 rename tests/tcg/{ => i386}/test-i386.c (100%)
 rename tests/tcg/{ => i386}/test-i386.h (100%)

diff --git a/tests/tcg/README b/tests/tcg/README
index 0890044cf0..469504c4cb 100644
--- a/tests/tcg/README
+++ b/tests/tcg/README
@@ -3,45 +3,6 @@ regression testing. Tests are either multi-arch, meaning they can be
 built for all guest architectures that support linux-user executable,
 or they are architecture specific.
 
-i386
-====
-
-test-i386
----------
-
-This program executes most of the 16 bit and 32 bit x86 instructions and
-generates a text output, for comparison with the output obtained with
-a real CPU or another emulator.
-
-The Linux system call modify_ldt() is used to create x86 selectors
-to test some 16 bit addressing and 32 bit with segmentation cases.
-
-The Linux system call vm86() is used to test vm86 emulation.
-
-Various exceptions are raised to test most of the x86 user space
-exception reporting.
-
-linux-test
-----------
-
-This program tests various Linux system calls. It is used to verify
-that the system call parameters are correctly converted between target
-and host CPUs.
-
-test-i386-fprem
----------------
-
-runcom
-------
-
-test-mmap
----------
-
-sha1
-----
-
-hello-i386
-----------
 
 
 ARM
diff --git a/tests/tcg/i386/Makefile.target b/tests/tcg/i386/Makefile.target
new file mode 100644
index 0000000000..2f27b65e2d
--- /dev/null
+++ b/tests/tcg/i386/Makefile.target
@@ -0,0 +1,30 @@
+# i386 cross compile notes
+
+I386_SRC=$(SRC_PATH)/tests/tcg/i386
+
+# Set search path for all sources
+VPATH 		+= $(I386_SRC)
+
+I386_SRCS=$(notdir $(wildcard $(I386_SRC)/*.c))
+I386_TESTS=$(I386_SRCS:.c=)
+
+# Update TESTS
+TESTS+=$(I386_TESTS)
+
+ifneq ($(TARGET_NAME),x86_64)
+CFLAGS+=-m32
+endif
+
+#
+# hello-i386 is a barebones app
+#
+hello-i386: CFLAGS+=-ffreestanding
+hello-i386: LDFLAGS+=-nostdlib
+
+#
+# test-386 includes a couple of additional objects that need to be linked together
+#
+
+test-i386: test-i386.c test-i386-code16.S test-i386-vm86.S test-i386.h test-i386-shift.h test-i386-muldiv.h
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ \
+	   $(<D)/test-i386.c $(<D)/test-i386-code16.S $(<D)/test-i386-vm86.S -lm
diff --git a/tests/tcg/i386/README b/tests/tcg/i386/README
new file mode 100644
index 0000000000..7a0a47bf27
--- /dev/null
+++ b/tests/tcg/i386/README
@@ -0,0 +1,38 @@
+These are i386 specific guest programs
+
+test-i386
+---------
+
+This program executes most of the 16 bit and 32 bit x86 instructions and
+generates a text output, for comparison with the output obtained with
+a real CPU or another emulator.
+
+The Linux system call modify_ldt() is used to create x86 selectors
+to test some 16 bit addressing and 32 bit with segmentation cases.
+
+The Linux system call vm86() is used to test vm86 emulation.
+
+Various exceptions are raised to test most of the x86 user space
+exception reporting.
+
+linux-test
+----------
+
+This program tests various Linux system calls. It is used to verify
+that the system call parameters are correctly converted between target
+and host CPUs.
+
+test-i386-fprem
+---------------
+
+runcom
+------
+
+test-mmap
+---------
+
+sha1
+----
+
+hello-i386
+----------
diff --git a/tests/tcg/hello-i386.c b/tests/tcg/i386/hello-i386.c
similarity index 100%
rename from tests/tcg/hello-i386.c
rename to tests/tcg/i386/hello-i386.c
diff --git a/tests/tcg/pi_10.com b/tests/tcg/i386/pi_10.com
similarity index 100%
rename from tests/tcg/pi_10.com
rename to tests/tcg/i386/pi_10.com
diff --git a/tests/tcg/runcom.c b/tests/tcg/i386/runcom.c
similarity index 100%
rename from tests/tcg/runcom.c
rename to tests/tcg/i386/runcom.c
diff --git a/tests/tcg/test-i386-code16.S b/tests/tcg/i386/test-i386-code16.S
similarity index 100%
rename from tests/tcg/test-i386-code16.S
rename to tests/tcg/i386/test-i386-code16.S
diff --git a/tests/tcg/test-i386-fprem.c b/tests/tcg/i386/test-i386-fprem.c
similarity index 100%
rename from tests/tcg/test-i386-fprem.c
rename to tests/tcg/i386/test-i386-fprem.c
diff --git a/tests/tcg/test-i386-muldiv.h b/tests/tcg/i386/test-i386-muldiv.h
similarity index 100%
rename from tests/tcg/test-i386-muldiv.h
rename to tests/tcg/i386/test-i386-muldiv.h
diff --git a/tests/tcg/test-i386-shift.h b/tests/tcg/i386/test-i386-shift.h
similarity index 100%
rename from tests/tcg/test-i386-shift.h
rename to tests/tcg/i386/test-i386-shift.h
diff --git a/tests/tcg/test-i386-ssse3.c b/tests/tcg/i386/test-i386-ssse3.c
similarity index 100%
rename from tests/tcg/test-i386-ssse3.c
rename to tests/tcg/i386/test-i386-ssse3.c
diff --git a/tests/tcg/test-i386-vm86.S b/tests/tcg/i386/test-i386-vm86.S
similarity index 100%
rename from tests/tcg/test-i386-vm86.S
rename to tests/tcg/i386/test-i386-vm86.S
diff --git a/tests/tcg/test-i386.c b/tests/tcg/i386/test-i386.c
similarity index 100%
rename from tests/tcg/test-i386.c
rename to tests/tcg/i386/test-i386.c
diff --git a/tests/tcg/test-i386.h b/tests/tcg/i386/test-i386.h
similarity index 100%
rename from tests/tcg/test-i386.h
rename to tests/tcg/i386/test-i386.h
-- 
2.17.0


Re: [Qemu-devel] [PATCH v3 16/46] tests/tcg: move i386 specific tests into subdir
Posted by Richard Henderson 7 years, 6 months ago
On 04/24/2018 05:23 AM, Alex Bennée wrote:
> These only need to be built for i386 guests. This includes a stub
> tests/tcg/i386/Makfile.target which absorbs some of what was in
> tests/tcg/Makefile.
> 
> 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>
> ---
> v2
>   - move VPATH and TESTs setup into i386/Makefile.target
>   - set CFLAGS+=-m32 for cross building
> ---

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


r~


Re: [Qemu-devel] [PATCH v3 16/46] tests/tcg: move i386 specific tests into subdir
Posted by Philippe Mathieu-Daudé 7 years, 6 months ago
On 04/24/2018 12:23 PM, Alex Bennée wrote:
> These only need to be built for i386 guests. This includes a stub
> tests/tcg/i386/Makfile.target which absorbs some of what was in
> tests/tcg/Makefile.
> 
> 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>
> ---
> v2
>   - move VPATH and TESTs setup into i386/Makefile.target
>   - set CFLAGS+=-m32 for cross building
> ---
>  tests/tcg/README                        |  39 ------------------------
>  tests/tcg/i386/Makefile.target          |  30 ++++++++++++++++++
>  tests/tcg/i386/README                   |  38 +++++++++++++++++++++++
>  tests/tcg/{ => i386}/hello-i386.c       |   0
>  tests/tcg/{ => i386}/pi_10.com          | Bin
>  tests/tcg/{ => i386}/runcom.c           |   0
>  tests/tcg/{ => i386}/test-i386-code16.S |   0
>  tests/tcg/{ => i386}/test-i386-fprem.c  |   0
>  tests/tcg/{ => i386}/test-i386-muldiv.h |   0
>  tests/tcg/{ => i386}/test-i386-shift.h  |   0
>  tests/tcg/{ => i386}/test-i386-ssse3.c  |   0
>  tests/tcg/{ => i386}/test-i386-vm86.S   |   0
>  tests/tcg/{ => i386}/test-i386.c        |   0
>  tests/tcg/{ => i386}/test-i386.h        |   0
>  14 files changed, 68 insertions(+), 39 deletions(-)
>  create mode 100644 tests/tcg/i386/Makefile.target
>  create mode 100644 tests/tcg/i386/README
>  rename tests/tcg/{ => i386}/hello-i386.c (100%)
>  rename tests/tcg/{ => i386}/pi_10.com (100%)
>  rename tests/tcg/{ => i386}/runcom.c (100%)
>  rename tests/tcg/{ => i386}/test-i386-code16.S (100%)
>  rename tests/tcg/{ => i386}/test-i386-fprem.c (100%)
>  rename tests/tcg/{ => i386}/test-i386-muldiv.h (100%)
>  rename tests/tcg/{ => i386}/test-i386-shift.h (100%)
>  rename tests/tcg/{ => i386}/test-i386-ssse3.c (100%)
>  rename tests/tcg/{ => i386}/test-i386-vm86.S (100%)
>  rename tests/tcg/{ => i386}/test-i386.c (100%)
>  rename tests/tcg/{ => i386}/test-i386.h (100%)
> 
> diff --git a/tests/tcg/README b/tests/tcg/README
> index 0890044cf0..469504c4cb 100644
> --- a/tests/tcg/README
> +++ b/tests/tcg/README
> @@ -3,45 +3,6 @@ regression testing. Tests are either multi-arch, meaning they can be
>  built for all guest architectures that support linux-user executable,
>  or they are architecture specific.
>  
> -i386
> -====
> -
> -test-i386
> ----------
> -
> -This program executes most of the 16 bit and 32 bit x86 instructions and
> -generates a text output, for comparison with the output obtained with
> -a real CPU or another emulator.
> -
> -The Linux system call modify_ldt() is used to create x86 selectors
> -to test some 16 bit addressing and 32 bit with segmentation cases.
> -
> -The Linux system call vm86() is used to test vm86 emulation.
> -
> -Various exceptions are raised to test most of the x86 user space
> -exception reporting.
> -
> -linux-test
> -----------
> -
> -This program tests various Linux system calls. It is used to verify
> -that the system call parameters are correctly converted between target
> -and host CPUs.
> -
> -test-i386-fprem
> ----------------
> -
> -runcom
> -------
> -
> -test-mmap
> ----------
> -
> -sha1
> -----
> -
> -hello-i386
> -----------
>  
>  
>  ARM
> diff --git a/tests/tcg/i386/Makefile.target b/tests/tcg/i386/Makefile.target
> new file mode 100644
> index 0000000000..2f27b65e2d
> --- /dev/null
> +++ b/tests/tcg/i386/Makefile.target
> @@ -0,0 +1,30 @@
> +# i386 cross compile notes
> +
> +I386_SRC=$(SRC_PATH)/tests/tcg/i386
> +
> +# Set search path for all sources
> +VPATH 		+= $(I386_SRC)
> +
> +I386_SRCS=$(notdir $(wildcard $(I386_SRC)/*.c))
> +I386_TESTS=$(I386_SRCS:.c=)
> +
> +# Update TESTS
> +TESTS+=$(I386_TESTS)
> +
> +ifneq ($(TARGET_NAME),x86_64)
> +CFLAGS+=-m32
> +endif
> +
> +#
> +# hello-i386 is a barebones app
> +#
> +hello-i386: CFLAGS+=-ffreestanding
> +hello-i386: LDFLAGS+=-nostdlib
> +
> +#
> +# test-386 includes a couple of additional objects that need to be linked together
> +#
> +
> +test-i386: test-i386.c test-i386-code16.S test-i386-vm86.S test-i386.h test-i386-shift.h test-i386-muldiv.h
> +	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ \
> +	   $(<D)/test-i386.c $(<D)/test-i386-code16.S $(<D)/test-i386-vm86.S -lm
> diff --git a/tests/tcg/i386/README b/tests/tcg/i386/README
> new file mode 100644
> index 0000000000..7a0a47bf27
> --- /dev/null
> +++ b/tests/tcg/i386/README
> @@ -0,0 +1,38 @@
> +These are i386 specific guest programs
> +
> +test-i386
> +---------
> +
> +This program executes most of the 16 bit and 32 bit x86 instructions and
> +generates a text output, for comparison with the output obtained with
> +a real CPU or another emulator.
> +
> +The Linux system call modify_ldt() is used to create x86 selectors
> +to test some 16 bit addressing and 32 bit with segmentation cases.
> +
> +The Linux system call vm86() is used to test vm86 emulation.
> +
> +Various exceptions are raised to test most of the x86 user space
> +exception reporting.

So I suppose this is expected:

$ make -j1 run-tcg-tests-i386-linux-user
  BUILD   fedora-i386-cross
  [...]
  TEST    test-i386 on i386
ASAN:DEADLYSIGNAL
=================================================================
==8721==ERROR: AddressSanitizer: SEGV on unknown address 0x7fe768f01234
(pc 0x5560b3382e2d bp 0x000000001234 sp 0x7ffcb44a7ef0 T0)
==8721==The signal is caused by a WRITE memory access.
    #0 0x5560b3382e2c in static_code_gen_buffer
(/source/qemu/build/full/i386-linux-user/qemu-i386+0xf64e2c)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV
(/source/qemu/build/full/i386-linux-user/qemu-i386+0xf64e2c) in
static_code_gen_buffer
==8721==ABORTING
make[2]: *** [/source/qemu/tests/tcg/Makefile:64: run-test-i386] Error 1
  TEST    hello-i386 on i386
  SLOW TEST test-i386-fprem SKIPPED on i386

> +
> +linux-test
> +----------
> +
> +This program tests various Linux system calls. It is used to verify
> +that the system call parameters are correctly converted between target
> +and host CPUs.
> +
> +test-i386-fprem
> +---------------
> +
> +runcom
> +------

Also expected:

$ make -j1 run-tcg-tests-i386-linux-user -k
  BUILD   fedora-i386-cross
  [...]
  TEST    runcom on i386
ASAN:DEADLYSIGNAL
=================================================================
==8730==ERROR: AddressSanitizer: SEGV on unknown address 0x7f7d0a8108fe
(pc 0x562c94475f23 bp 0x0000000108fe sp 0x7ffd036dd590 T0)
==8730==The signal is caused by a WRITE memory access.
    #0 0x562c94475f22 in static_code_gen_buffer
(/source/qemu/build/full/i386-linux-user/qemu-i386+0xe5ff22)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV
(/source/qemu/build/full/i386-linux-user/qemu-i386+0xe5ff22) in
static_code_gen_buffer
==8730==ABORTING
make[2]: *** [/source/qemu/tests/tcg/i386/Makefile.target:38:
run-runcom] Error 1
make[2]: Target 'run' not remade because of errors.
make[1]: *** [/source/qemu/tests/tcg/Makefile.include:69:
run-guest-tests] Error 2

> +
> +test-mmap
> +---------

Any idea how to remove this "ignoring old recipe" warning?

$ make -j1 run-tcg-tests-i386-linux-user -k
  BUILD   fedora-i386-cross
  CROSS-BUILD i386 guest-tests with docker qemu:fedora-i386-cross
/source/qemu/tests/tcg/i386/Makefile.target:50: warning: overriding
recipe for target 'run-test-mmap'
/source/qemu/tests/tcg/multiarch/Makefile.target:26: warning: ignoring
old recipe for target 'run-test-mmap'
  BUILD   fedora-i386-cross
  CROSS-BUILD i386 guest-tests with docker qemu:fedora-i386-cross
/source/qemu/tests/tcg/i386/Makefile.target:50: warning: overriding
recipe for target 'run-test-mmap'
/source/qemu/tests/tcg/multiarch/Makefile.target:26: warning: ignoring
old recipe for target 'run-test-mmap'
  RUN-TESTS for i386
/source/qemu/tests/tcg/i386/Makefile.target:50: warning: overriding
recipe for target 'run-test-mmap'
/source/qemu/tests/tcg/multiarch/Makefile.target:26: warning: ignoring
old recipe for target 'run-test-mmap'
  TEST    test-mmap (default) on i386

> +
> +sha1
> +----
> +
> +hello-i386
> +----------
> diff --git a/tests/tcg/hello-i386.c b/tests/tcg/i386/hello-i386.c
> similarity index 100%
> rename from tests/tcg/hello-i386.c
> rename to tests/tcg/i386/hello-i386.c
> diff --git a/tests/tcg/pi_10.com b/tests/tcg/i386/pi_10.com
> similarity index 100%
> rename from tests/tcg/pi_10.com
> rename to tests/tcg/i386/pi_10.com
> diff --git a/tests/tcg/runcom.c b/tests/tcg/i386/runcom.c
> similarity index 100%
> rename from tests/tcg/runcom.c
> rename to tests/tcg/i386/runcom.c
> diff --git a/tests/tcg/test-i386-code16.S b/tests/tcg/i386/test-i386-code16.S
> similarity index 100%
> rename from tests/tcg/test-i386-code16.S
> rename to tests/tcg/i386/test-i386-code16.S
> diff --git a/tests/tcg/test-i386-fprem.c b/tests/tcg/i386/test-i386-fprem.c
> similarity index 100%
> rename from tests/tcg/test-i386-fprem.c
> rename to tests/tcg/i386/test-i386-fprem.c
> diff --git a/tests/tcg/test-i386-muldiv.h b/tests/tcg/i386/test-i386-muldiv.h
> similarity index 100%
> rename from tests/tcg/test-i386-muldiv.h
> rename to tests/tcg/i386/test-i386-muldiv.h
> diff --git a/tests/tcg/test-i386-shift.h b/tests/tcg/i386/test-i386-shift.h
> similarity index 100%
> rename from tests/tcg/test-i386-shift.h
> rename to tests/tcg/i386/test-i386-shift.h
> diff --git a/tests/tcg/test-i386-ssse3.c b/tests/tcg/i386/test-i386-ssse3.c
> similarity index 100%
> rename from tests/tcg/test-i386-ssse3.c
> rename to tests/tcg/i386/test-i386-ssse3.c
> diff --git a/tests/tcg/test-i386-vm86.S b/tests/tcg/i386/test-i386-vm86.S
> similarity index 100%
> rename from tests/tcg/test-i386-vm86.S
> rename to tests/tcg/i386/test-i386-vm86.S
> diff --git a/tests/tcg/test-i386.c b/tests/tcg/i386/test-i386.c
> similarity index 100%
> rename from tests/tcg/test-i386.c
> rename to tests/tcg/i386/test-i386.c
> diff --git a/tests/tcg/test-i386.h b/tests/tcg/i386/test-i386.h
> similarity index 100%
> rename from tests/tcg/test-i386.h
> rename to tests/tcg/i386/test-i386.h
> 

Re: [Qemu-devel] [PATCH v3 16/46] tests/tcg: move i386 specific tests into subdir
Posted by Alex Bennée 7 years, 6 months ago
Philippe Mathieu-Daudé <f4bug@amsat.org> writes:

> On 04/24/2018 12:23 PM, Alex Bennée wrote:
>> These only need to be built for i386 guests. This includes a stub
>> tests/tcg/i386/Makfile.target which absorbs some of what was in
>> tests/tcg/Makefile.
>>
>> 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>
>> ---
>> v2
>>   - move VPATH and TESTs setup into i386/Makefile.target
>>   - set CFLAGS+=-m32 for cross building
>> ---
>>  tests/tcg/README                        |  39 ------------------------
>>  tests/tcg/i386/Makefile.target          |  30 ++++++++++++++++++
>>  tests/tcg/i386/README                   |  38 +++++++++++++++++++++++
>>  tests/tcg/{ => i386}/hello-i386.c       |   0
>>  tests/tcg/{ => i386}/pi_10.com          | Bin
>>  tests/tcg/{ => i386}/runcom.c           |   0
>>  tests/tcg/{ => i386}/test-i386-code16.S |   0
>>  tests/tcg/{ => i386}/test-i386-fprem.c  |   0
>>  tests/tcg/{ => i386}/test-i386-muldiv.h |   0
>>  tests/tcg/{ => i386}/test-i386-shift.h  |   0
>>  tests/tcg/{ => i386}/test-i386-ssse3.c  |   0
>>  tests/tcg/{ => i386}/test-i386-vm86.S   |   0
>>  tests/tcg/{ => i386}/test-i386.c        |   0
>>  tests/tcg/{ => i386}/test-i386.h        |   0
>>  14 files changed, 68 insertions(+), 39 deletions(-)
>>  create mode 100644 tests/tcg/i386/Makefile.target
>>  create mode 100644 tests/tcg/i386/README
>>  rename tests/tcg/{ => i386}/hello-i386.c (100%)
>>  rename tests/tcg/{ => i386}/pi_10.com (100%)
>>  rename tests/tcg/{ => i386}/runcom.c (100%)
>>  rename tests/tcg/{ => i386}/test-i386-code16.S (100%)
>>  rename tests/tcg/{ => i386}/test-i386-fprem.c (100%)
>>  rename tests/tcg/{ => i386}/test-i386-muldiv.h (100%)
>>  rename tests/tcg/{ => i386}/test-i386-shift.h (100%)
>>  rename tests/tcg/{ => i386}/test-i386-ssse3.c (100%)
>>  rename tests/tcg/{ => i386}/test-i386-vm86.S (100%)
>>  rename tests/tcg/{ => i386}/test-i386.c (100%)
>>  rename tests/tcg/{ => i386}/test-i386.h (100%)
>>
>> diff --git a/tests/tcg/README b/tests/tcg/README
>> index 0890044cf0..469504c4cb 100644
>> --- a/tests/tcg/README
>> +++ b/tests/tcg/README
>> @@ -3,45 +3,6 @@ regression testing. Tests are either multi-arch, meaning they can be
>>  built for all guest architectures that support linux-user executable,
>>  or they are architecture specific.
>>
>> -i386
>> -====
>> -
>> -test-i386
>> ----------
>> -
>> -This program executes most of the 16 bit and 32 bit x86 instructions and
>> -generates a text output, for comparison with the output obtained with
>> -a real CPU or another emulator.
>> -
>> -The Linux system call modify_ldt() is used to create x86 selectors
>> -to test some 16 bit addressing and 32 bit with segmentation cases.
>> -
>> -The Linux system call vm86() is used to test vm86 emulation.
>> -
>> -Various exceptions are raised to test most of the x86 user space
>> -exception reporting.
>> -
>> -linux-test
>> -----------
>> -
>> -This program tests various Linux system calls. It is used to verify
>> -that the system call parameters are correctly converted between target
>> -and host CPUs.
>> -
>> -test-i386-fprem
>> ----------------
>> -
>> -runcom
>> -------
>> -
>> -test-mmap
>> ----------
>> -
>> -sha1
>> -----
>> -
>> -hello-i386
>> -----------
>>
>>
>>  ARM
>> diff --git a/tests/tcg/i386/Makefile.target b/tests/tcg/i386/Makefile.target
>> new file mode 100644
>> index 0000000000..2f27b65e2d
>> --- /dev/null
>> +++ b/tests/tcg/i386/Makefile.target
>> @@ -0,0 +1,30 @@
>> +# i386 cross compile notes
>> +
>> +I386_SRC=$(SRC_PATH)/tests/tcg/i386
>> +
>> +# Set search path for all sources
>> +VPATH 		+= $(I386_SRC)
>> +
>> +I386_SRCS=$(notdir $(wildcard $(I386_SRC)/*.c))
>> +I386_TESTS=$(I386_SRCS:.c=)
>> +
>> +# Update TESTS
>> +TESTS+=$(I386_TESTS)
>> +
>> +ifneq ($(TARGET_NAME),x86_64)
>> +CFLAGS+=-m32
>> +endif
>> +
>> +#
>> +# hello-i386 is a barebones app
>> +#
>> +hello-i386: CFLAGS+=-ffreestanding
>> +hello-i386: LDFLAGS+=-nostdlib
>> +
>> +#
>> +# test-386 includes a couple of additional objects that need to be linked together
>> +#
>> +
>> +test-i386: test-i386.c test-i386-code16.S test-i386-vm86.S test-i386.h test-i386-shift.h test-i386-muldiv.h
>> +	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ \
>> +	   $(<D)/test-i386.c $(<D)/test-i386-code16.S $(<D)/test-i386-vm86.S -lm
>> diff --git a/tests/tcg/i386/README b/tests/tcg/i386/README
>> new file mode 100644
>> index 0000000000..7a0a47bf27
>> --- /dev/null
>> +++ b/tests/tcg/i386/README
>> @@ -0,0 +1,38 @@
>> +These are i386 specific guest programs
>> +
>> +test-i386
>> +---------
>> +
>> +This program executes most of the 16 bit and 32 bit x86 instructions and
>> +generates a text output, for comparison with the output obtained with
>> +a real CPU or another emulator.
>> +
>> +The Linux system call modify_ldt() is used to create x86 selectors
>> +to test some 16 bit addressing and 32 bit with segmentation cases.
>> +
>> +The Linux system call vm86() is used to test vm86 emulation.
>> +
>> +Various exceptions are raised to test most of the x86 user space
>> +exception reporting.
>
> So I suppose this is expected:
>
> $ make -j1 run-tcg-tests-i386-linux-user
>   BUILD   fedora-i386-cross
>   [...]
>   TEST    test-i386 on i386
> ASAN:DEADLYSIGNAL
> =================================================================
> ==8721==ERROR: AddressSanitizer: SEGV on unknown address 0x7fe768f01234
> (pc 0x5560b3382e2d bp 0x000000001234 sp 0x7ffcb44a7ef0 T0)
> ==8721==The signal is caused by a WRITE memory access.
>     #0 0x5560b3382e2c in static_code_gen_buffer
> (/source/qemu/build/full/i386-linux-user/qemu-i386+0xf64e2c)
>
> AddressSanitizer can not provide additional info.
> SUMMARY: AddressSanitizer: SEGV
> (/source/qemu/build/full/i386-linux-user/qemu-i386+0xf64e2c) in
> static_code_gen_buffer
> ==8721==ABORTING
> make[2]: *** [/source/qemu/tests/tcg/Makefile:64: run-test-i386] Error
> 1

Not sure - shouldn't ASAN be able to deal with caught exceptions?

>   TEST    hello-i386 on i386
>   SLOW TEST test-i386-fprem SKIPPED on i386
>
>> +
>> +linux-test
>> +----------
>> +
>> +This program tests various Linux system calls. It is used to verify
>> +that the system call parameters are correctly converted between target
>> +and host CPUs.
>> +
>> +test-i386-fprem
>> +---------------
>> +
>> +runcom
>> +------
>
> Also expected:
>
> $ make -j1 run-tcg-tests-i386-linux-user -k
>   BUILD   fedora-i386-cross
>   [...]
>   TEST    runcom on i386
> ASAN:DEADLYSIGNAL
> =================================================================
> ==8730==ERROR: AddressSanitizer: SEGV on unknown address 0x7f7d0a8108fe
> (pc 0x562c94475f23 bp 0x0000000108fe sp 0x7ffd036dd590 T0)
> ==8730==The signal is caused by a WRITE memory access.
>     #0 0x562c94475f22 in static_code_gen_buffer
> (/source/qemu/build/full/i386-linux-user/qemu-i386+0xe5ff22)
>
> AddressSanitizer can not provide additional info.
> SUMMARY: AddressSanitizer: SEGV
> (/source/qemu/build/full/i386-linux-user/qemu-i386+0xe5ff22) in
> static_code_gen_buffer
> ==8730==ABORTING
> make[2]: *** [/source/qemu/tests/tcg/i386/Makefile.target:38:
> run-runcom] Error 1
> make[2]: Target 'run' not remade because of errors.
> make[1]: *** [/source/qemu/tests/tcg/Makefile.include:69:
> run-guest-tests] Error 2
>
>> +
>> +test-mmap
>> +---------
>
> Any idea how to remove this "ignoring old recipe" warning?

Fix the various qemu's to not crash or expose a variable to modify a
single run-test-mmap for each architecture.

>
> $ make -j1 run-tcg-tests-i386-linux-user -k
>   BUILD   fedora-i386-cross
>   CROSS-BUILD i386 guest-tests with docker qemu:fedora-i386-cross
> /source/qemu/tests/tcg/i386/Makefile.target:50: warning: overriding
> recipe for target 'run-test-mmap'
> /source/qemu/tests/tcg/multiarch/Makefile.target:26: warning: ignoring
> old recipe for target 'run-test-mmap'
>   BUILD   fedora-i386-cross
>   CROSS-BUILD i386 guest-tests with docker qemu:fedora-i386-cross
> /source/qemu/tests/tcg/i386/Makefile.target:50: warning: overriding
> recipe for target 'run-test-mmap'
> /source/qemu/tests/tcg/multiarch/Makefile.target:26: warning: ignoring
> old recipe for target 'run-test-mmap'
>   RUN-TESTS for i386
> /source/qemu/tests/tcg/i386/Makefile.target:50: warning: overriding
> recipe for target 'run-test-mmap'
> /source/qemu/tests/tcg/multiarch/Makefile.target:26: warning: ignoring
> old recipe for target 'run-test-mmap'
>   TEST    test-mmap (default) on i386
>
>> +
>> +sha1
>> +----
>> +
>> +hello-i386
>> +----------
>> diff --git a/tests/tcg/hello-i386.c b/tests/tcg/i386/hello-i386.c
>> similarity index 100%
>> rename from tests/tcg/hello-i386.c
>> rename to tests/tcg/i386/hello-i386.c
>> diff --git a/tests/tcg/pi_10.com b/tests/tcg/i386/pi_10.com
>> similarity index 100%
>> rename from tests/tcg/pi_10.com
>> rename to tests/tcg/i386/pi_10.com
>> diff --git a/tests/tcg/runcom.c b/tests/tcg/i386/runcom.c
>> similarity index 100%
>> rename from tests/tcg/runcom.c
>> rename to tests/tcg/i386/runcom.c
>> diff --git a/tests/tcg/test-i386-code16.S b/tests/tcg/i386/test-i386-code16.S
>> similarity index 100%
>> rename from tests/tcg/test-i386-code16.S
>> rename to tests/tcg/i386/test-i386-code16.S
>> diff --git a/tests/tcg/test-i386-fprem.c b/tests/tcg/i386/test-i386-fprem.c
>> similarity index 100%
>> rename from tests/tcg/test-i386-fprem.c
>> rename to tests/tcg/i386/test-i386-fprem.c
>> diff --git a/tests/tcg/test-i386-muldiv.h b/tests/tcg/i386/test-i386-muldiv.h
>> similarity index 100%
>> rename from tests/tcg/test-i386-muldiv.h
>> rename to tests/tcg/i386/test-i386-muldiv.h
>> diff --git a/tests/tcg/test-i386-shift.h b/tests/tcg/i386/test-i386-shift.h
>> similarity index 100%
>> rename from tests/tcg/test-i386-shift.h
>> rename to tests/tcg/i386/test-i386-shift.h
>> diff --git a/tests/tcg/test-i386-ssse3.c b/tests/tcg/i386/test-i386-ssse3.c
>> similarity index 100%
>> rename from tests/tcg/test-i386-ssse3.c
>> rename to tests/tcg/i386/test-i386-ssse3.c
>> diff --git a/tests/tcg/test-i386-vm86.S b/tests/tcg/i386/test-i386-vm86.S
>> similarity index 100%
>> rename from tests/tcg/test-i386-vm86.S
>> rename to tests/tcg/i386/test-i386-vm86.S
>> diff --git a/tests/tcg/test-i386.c b/tests/tcg/i386/test-i386.c
>> similarity index 100%
>> rename from tests/tcg/test-i386.c
>> rename to tests/tcg/i386/test-i386.c
>> diff --git a/tests/tcg/test-i386.h b/tests/tcg/i386/test-i386.h
>> similarity index 100%
>> rename from tests/tcg/test-i386.h
>> rename to tests/tcg/i386/test-i386.h
>>


--
Alex Bennée

Re: [Qemu-devel] [PATCH v3 16/46] tests/tcg: move i386 specific tests into subdir
Posted by Philippe Mathieu-Daudé 7 years, 6 months ago
On 04/25/2018 06:08 AM, Alex Bennée wrote:
> Philippe Mathieu-Daudé <f4bug@amsat.org> writes:
>> On 04/24/2018 12:23 PM, Alex Bennée wrote:
>>> These only need to be built for i386 guests. This includes a stub
>>> tests/tcg/i386/Makfile.target which absorbs some of what was in
>>> tests/tcg/Makefile.
>>>
>>> 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>
>>> ---
>>> v2
>>>   - move VPATH and TESTs setup into i386/Makefile.target
>>>   - set CFLAGS+=-m32 for cross building
>>> ---
>>>  tests/tcg/README                        |  39 ------------------------
>>>  tests/tcg/i386/Makefile.target          |  30 ++++++++++++++++++
>>>  tests/tcg/i386/README                   |  38 +++++++++++++++++++++++
>>>  tests/tcg/{ => i386}/hello-i386.c       |   0
>>>  tests/tcg/{ => i386}/pi_10.com          | Bin
>>>  tests/tcg/{ => i386}/runcom.c           |   0
>>>  tests/tcg/{ => i386}/test-i386-code16.S |   0
>>>  tests/tcg/{ => i386}/test-i386-fprem.c  |   0
>>>  tests/tcg/{ => i386}/test-i386-muldiv.h |   0
>>>  tests/tcg/{ => i386}/test-i386-shift.h  |   0
>>>  tests/tcg/{ => i386}/test-i386-ssse3.c  |   0
>>>  tests/tcg/{ => i386}/test-i386-vm86.S   |   0
>>>  tests/tcg/{ => i386}/test-i386.c        |   0
>>>  tests/tcg/{ => i386}/test-i386.h        |   0
>>>  14 files changed, 68 insertions(+), 39 deletions(-)
>>>  create mode 100644 tests/tcg/i386/Makefile.target
>>>  create mode 100644 tests/tcg/i386/README
>>>  rename tests/tcg/{ => i386}/hello-i386.c (100%)
>>>  rename tests/tcg/{ => i386}/pi_10.com (100%)
>>>  rename tests/tcg/{ => i386}/runcom.c (100%)
>>>  rename tests/tcg/{ => i386}/test-i386-code16.S (100%)
>>>  rename tests/tcg/{ => i386}/test-i386-fprem.c (100%)
>>>  rename tests/tcg/{ => i386}/test-i386-muldiv.h (100%)
>>>  rename tests/tcg/{ => i386}/test-i386-shift.h (100%)
>>>  rename tests/tcg/{ => i386}/test-i386-ssse3.c (100%)
>>>  rename tests/tcg/{ => i386}/test-i386-vm86.S (100%)
>>>  rename tests/tcg/{ => i386}/test-i386.c (100%)
>>>  rename tests/tcg/{ => i386}/test-i386.h (100%)
>>>
>>> diff --git a/tests/tcg/README b/tests/tcg/README
>>> index 0890044cf0..469504c4cb 100644
>>> --- a/tests/tcg/README
>>> +++ b/tests/tcg/README
>>> @@ -3,45 +3,6 @@ regression testing. Tests are either multi-arch, meaning they can be
>>>  built for all guest architectures that support linux-user executable,
>>>  or they are architecture specific.
>>>
>>> -i386
>>> -====
>>> -
>>> -test-i386
>>> ----------
>>> -
>>> -This program executes most of the 16 bit and 32 bit x86 instructions and
>>> -generates a text output, for comparison with the output obtained with
>>> -a real CPU or another emulator.
>>> -
>>> -The Linux system call modify_ldt() is used to create x86 selectors
>>> -to test some 16 bit addressing and 32 bit with segmentation cases.
>>> -
>>> -The Linux system call vm86() is used to test vm86 emulation.
>>> -
>>> -Various exceptions are raised to test most of the x86 user space
>>> -exception reporting.
>>> -
>>> -linux-test
>>> -----------
>>> -
>>> -This program tests various Linux system calls. It is used to verify
>>> -that the system call parameters are correctly converted between target
>>> -and host CPUs.
>>> -
>>> -test-i386-fprem
>>> ----------------
>>> -
>>> -runcom
>>> -------
>>> -
>>> -test-mmap
>>> ----------
>>> -
>>> -sha1
>>> -----
>>> -
>>> -hello-i386
>>> -----------
>>>
>>>
>>>  ARM
>>> diff --git a/tests/tcg/i386/Makefile.target b/tests/tcg/i386/Makefile.target
>>> new file mode 100644
>>> index 0000000000..2f27b65e2d
>>> --- /dev/null
>>> +++ b/tests/tcg/i386/Makefile.target
>>> @@ -0,0 +1,30 @@
>>> +# i386 cross compile notes
>>> +
>>> +I386_SRC=$(SRC_PATH)/tests/tcg/i386
>>> +
>>> +# Set search path for all sources
>>> +VPATH 		+= $(I386_SRC)
>>> +
>>> +I386_SRCS=$(notdir $(wildcard $(I386_SRC)/*.c))
>>> +I386_TESTS=$(I386_SRCS:.c=)
>>> +
>>> +# Update TESTS
>>> +TESTS+=$(I386_TESTS)
>>> +
>>> +ifneq ($(TARGET_NAME),x86_64)
>>> +CFLAGS+=-m32
>>> +endif
>>> +
>>> +#
>>> +# hello-i386 is a barebones app
>>> +#
>>> +hello-i386: CFLAGS+=-ffreestanding
>>> +hello-i386: LDFLAGS+=-nostdlib
>>> +
>>> +#
>>> +# test-386 includes a couple of additional objects that need to be linked together
>>> +#
>>> +
>>> +test-i386: test-i386.c test-i386-code16.S test-i386-vm86.S test-i386.h test-i386-shift.h test-i386-muldiv.h
>>> +	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ \
>>> +	   $(<D)/test-i386.c $(<D)/test-i386-code16.S $(<D)/test-i386-vm86.S -lm
>>> diff --git a/tests/tcg/i386/README b/tests/tcg/i386/README
>>> new file mode 100644
>>> index 0000000000..7a0a47bf27
>>> --- /dev/null
>>> +++ b/tests/tcg/i386/README
>>> @@ -0,0 +1,38 @@
>>> +These are i386 specific guest programs
>>> +
>>> +test-i386
>>> +---------
>>> +
>>> +This program executes most of the 16 bit and 32 bit x86 instructions and
>>> +generates a text output, for comparison with the output obtained with
>>> +a real CPU or another emulator.
>>> +
>>> +The Linux system call modify_ldt() is used to create x86 selectors
>>> +to test some 16 bit addressing and 32 bit with segmentation cases.
>>> +
>>> +The Linux system call vm86() is used to test vm86 emulation.
>>> +
>>> +Various exceptions are raised to test most of the x86 user space
>>> +exception reporting.
>>
>> So I suppose this is expected:
>>
>> $ make -j1 run-tcg-tests-i386-linux-user
>>   BUILD   fedora-i386-cross
>>   [...]
>>   TEST    test-i386 on i386
>> ASAN:DEADLYSIGNAL
>> =================================================================
>> ==8721==ERROR: AddressSanitizer: SEGV on unknown address 0x7fe768f01234
>> (pc 0x5560b3382e2d bp 0x000000001234 sp 0x7ffcb44a7ef0 T0)
>> ==8721==The signal is caused by a WRITE memory access.
>>     #0 0x5560b3382e2c in static_code_gen_buffer
>> (/source/qemu/build/full/i386-linux-user/qemu-i386+0xf64e2c)
>>
>> AddressSanitizer can not provide additional info.
>> SUMMARY: AddressSanitizer: SEGV
>> (/source/qemu/build/full/i386-linux-user/qemu-i386+0xf64e2c) in
>> static_code_gen_buffer
>> ==8721==ABORTING
>> make[2]: *** [/source/qemu/tests/tcg/Makefile:64: run-test-i386] Error
>> 1
> 
> Not sure - shouldn't ASAN be able to deal with caught exceptions?

Oh I'm not asking you to fix this ASan problem :)
At least not in this series :P

> 
>>   TEST    hello-i386 on i386
>>   SLOW TEST test-i386-fprem SKIPPED on i386
>>
>>> +
>>> +linux-test
>>> +----------
>>> +
>>> +This program tests various Linux system calls. It is used to verify
>>> +that the system call parameters are correctly converted between target
>>> +and host CPUs.
>>> +
>>> +test-i386-fprem
>>> +---------------
>>> +
>>> +runcom
>>> +------
>>
>> Also expected:
>>
>> $ make -j1 run-tcg-tests-i386-linux-user -k
>>   BUILD   fedora-i386-cross
>>   [...]
>>   TEST    runcom on i386
>> ASAN:DEADLYSIGNAL
>> =================================================================
>> ==8730==ERROR: AddressSanitizer: SEGV on unknown address 0x7f7d0a8108fe
>> (pc 0x562c94475f23 bp 0x0000000108fe sp 0x7ffd036dd590 T0)
>> ==8730==The signal is caused by a WRITE memory access.
>>     #0 0x562c94475f22 in static_code_gen_buffer
>> (/source/qemu/build/full/i386-linux-user/qemu-i386+0xe5ff22)
>>
>> AddressSanitizer can not provide additional info.
>> SUMMARY: AddressSanitizer: SEGV
>> (/source/qemu/build/full/i386-linux-user/qemu-i386+0xe5ff22) in
>> static_code_gen_buffer
>> ==8730==ABORTING
>> make[2]: *** [/source/qemu/tests/tcg/i386/Makefile.target:38:
>> run-runcom] Error 1
>> make[2]: Target 'run' not remade because of errors.
>> make[1]: *** [/source/qemu/tests/tcg/Makefile.include:69:
>> run-guest-tests] Error 2
>>
>>> +
>>> +test-mmap
>>> +---------
>>
>> Any idea how to remove this "ignoring old recipe" warning?
> 
> Fix the various qemu's to not crash or expose a variable to modify a
> single run-test-mmap for each architecture.

OK, this is annoying but only a warning.

> 
>>
>> $ make -j1 run-tcg-tests-i386-linux-user -k
>>   BUILD   fedora-i386-cross
>>   CROSS-BUILD i386 guest-tests with docker qemu:fedora-i386-cross
>> /source/qemu/tests/tcg/i386/Makefile.target:50: warning: overriding
>> recipe for target 'run-test-mmap'
>> /source/qemu/tests/tcg/multiarch/Makefile.target:26: warning: ignoring
>> old recipe for target 'run-test-mmap'
>>   BUILD   fedora-i386-cross
>>   CROSS-BUILD i386 guest-tests with docker qemu:fedora-i386-cross
>> /source/qemu/tests/tcg/i386/Makefile.target:50: warning: overriding
>> recipe for target 'run-test-mmap'
>> /source/qemu/tests/tcg/multiarch/Makefile.target:26: warning: ignoring
>> old recipe for target 'run-test-mmap'
>>   RUN-TESTS for i386
>> /source/qemu/tests/tcg/i386/Makefile.target:50: warning: overriding
>> recipe for target 'run-test-mmap'
>> /source/qemu/tests/tcg/multiarch/Makefile.target:26: warning: ignoring
>> old recipe for target 'run-test-mmap'
>>   TEST    test-mmap (default) on i386
>>
>>> +
>>> +sha1
>>> +----
>>> +
>>> +hello-i386
>>> +----------
>>> diff --git a/tests/tcg/hello-i386.c b/tests/tcg/i386/hello-i386.c
>>> similarity index 100%
>>> rename from tests/tcg/hello-i386.c
>>> rename to tests/tcg/i386/hello-i386.c
>>> diff --git a/tests/tcg/pi_10.com b/tests/tcg/i386/pi_10.com
>>> similarity index 100%
>>> rename from tests/tcg/pi_10.com
>>> rename to tests/tcg/i386/pi_10.com
>>> diff --git a/tests/tcg/runcom.c b/tests/tcg/i386/runcom.c
>>> similarity index 100%
>>> rename from tests/tcg/runcom.c
>>> rename to tests/tcg/i386/runcom.c
>>> diff --git a/tests/tcg/test-i386-code16.S b/tests/tcg/i386/test-i386-code16.S
>>> similarity index 100%
>>> rename from tests/tcg/test-i386-code16.S
>>> rename to tests/tcg/i386/test-i386-code16.S
>>> diff --git a/tests/tcg/test-i386-fprem.c b/tests/tcg/i386/test-i386-fprem.c
>>> similarity index 100%
>>> rename from tests/tcg/test-i386-fprem.c
>>> rename to tests/tcg/i386/test-i386-fprem.c
>>> diff --git a/tests/tcg/test-i386-muldiv.h b/tests/tcg/i386/test-i386-muldiv.h
>>> similarity index 100%
>>> rename from tests/tcg/test-i386-muldiv.h
>>> rename to tests/tcg/i386/test-i386-muldiv.h
>>> diff --git a/tests/tcg/test-i386-shift.h b/tests/tcg/i386/test-i386-shift.h
>>> similarity index 100%
>>> rename from tests/tcg/test-i386-shift.h
>>> rename to tests/tcg/i386/test-i386-shift.h
>>> diff --git a/tests/tcg/test-i386-ssse3.c b/tests/tcg/i386/test-i386-ssse3.c
>>> similarity index 100%
>>> rename from tests/tcg/test-i386-ssse3.c
>>> rename to tests/tcg/i386/test-i386-ssse3.c
>>> diff --git a/tests/tcg/test-i386-vm86.S b/tests/tcg/i386/test-i386-vm86.S
>>> similarity index 100%
>>> rename from tests/tcg/test-i386-vm86.S
>>> rename to tests/tcg/i386/test-i386-vm86.S
>>> diff --git a/tests/tcg/test-i386.c b/tests/tcg/i386/test-i386.c
>>> similarity index 100%
>>> rename from tests/tcg/test-i386.c
>>> rename to tests/tcg/i386/test-i386.c
>>> diff --git a/tests/tcg/test-i386.h b/tests/tcg/i386/test-i386.h
>>> similarity index 100%
>>> rename from tests/tcg/test-i386.h
>>> rename to tests/tcg/i386/test-i386.h
>>>