Re: [Qemu-devel] [PATCH 1/6] tests/tcg: Move i386 tests to arch specific folder

2016-09-19 Thread Pranith Kumar

Marc-André Lureau writes:

>> index 000..15f77af
>> --- /dev/null
>> +++ b/tests/tcg/i386/Makefile
>> @@ -0,0 +1,88 @@
>> +BUILD_DIR=../../../build/
>>
>
> Looks like you are hardcoding a custom path here.

Missed this one. Will fix it up.

>
> There are many Makefile changes that I think you should split to help
> review.

OK, I will do that. I did not think it was worth splitting it up since I was
being lazy, but yes, it will help make the review easier I guess.

>
> +SRC_PATH=../../../
>> +include $(BUILD_DIR)/config-host.mak
>> +include $(SRC_PATH)/rules.mak
>> +
>> +$(call set-vpath, $(SRC_PATH)/tests/tcg/i386)
>> +
>> +QEMU=$(BUILD_DIR)/i386-linux-user/qemu-i386
>> +QEMU_X86_64=$(BUILD_DIR)/x86_64-linux-user/qemu-x86_64
>> +CC_X86_64=$(CC_I386) -m64
>> +
>> +QEMU_INCLUDES += -I$(BUILD_DIR)
>> +CFLAGS=-Wall -O2 -g -fno-strict-aliasing
>> +#CFLAGS+=-msse2
>> +LDFLAGS=
>> +
>> +# TODO: automatically detect ARM and MIPS compilers, and run those too
>> +
>>
>
> Not relevant anymore

Noted.

>
>
>> +# runcom maps page 0, so it requires root privileges
>> +# also, pi_10.com runs indefinitely
>> +
>>
> +I386_TESTS=hello-i386 \
>> +  test-i386 \
>> +  test-i386-fprem
>> +  # runcom
>> +
>> +# native i386 compilers sometimes are not biarch.  assume cross-compilers
>> are
>> +ifneq ($(ARCH),i386)
>> +I386_TESTS+=run-test-x86_64
>>
>
> btw this is wrong, it should be test-x86_64, since run- is prepended later
>

Will fix.

>> --- a/tests/tcg/hello-i386.c
>> +++ b/tests/tcg/i386/hello-i386.c
>> @@ -1,6 +1,7 @@
>>  #include 
>> +#include 
>>
>> -static inline void exit(int status)
>> +static inline void _exit(int status)
>>  {
>>int __res;
>>__asm__ volatile ("movl %%ecx,%%ebx\n"\
>> @@ -8,7 +9,7 @@ static inline void exit(int status)
>> :  "=a" (__res) : "0" (__NR_exit),"c"
>> ((long)(status)));
>>  }
>>
>> -static inline int write(int fd, const char * buf, int len)
>> +static inline size_t _write(int fd, const void * buf, size_t len)
>>  {
>>int status;
>>__asm__ volatile ("pushl %%ebx\n"\
>> @@ -22,6 +23,6 @@ static inline int write(int fd, const char * buf, int
>> len)
>>
>>  void _start(void)
>>  {
>> -write(1, "Hello World\n", 12);
>> -exit(0);
>> +_write(1, "Hello World\n", 12);
>> +_exit(0);
>>  }
>>
>
> This could be a seperate patch
>

OK, will do.

-- 
Pranith



Re: [Qemu-devel] [PATCH 1/6] tests/tcg: Move i386 tests to arch specific folder

2016-09-19 Thread Marc-André Lureau
Hi

On Sat, Sep 17, 2016 at 6:05 PM Pranith Kumar  wrote:

> Signed-off-by: Pranith Kumar 
> ---
>  tests/tcg/Makefile  | 156
> 
>  tests/tcg/i386/Makefile |  88 ++
>  tests/tcg/{ => i386}/hello-i386.c   |   9 +-
>  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
>

Moving i386 specific files to their own subdir like the rest of the archs
is a good idea to me.

 13 files changed, 93 insertions(+), 160 deletions(-)
>  delete mode 100644 tests/tcg/Makefile
>  create mode 100644 tests/tcg/i386/Makefile
>  rename tests/tcg/{ => i386}/hello-i386.c (71%)
>  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/Makefile b/tests/tcg/Makefile
> deleted file mode 100644
> index 89e3342..000
> --- a/tests/tcg/Makefile
> +++ /dev/null
> @@ -1,156 +0,0 @@
> --include ../../config-host.mak
> --include $(SRC_PATH)/rules.mak
> -
> -$(call set-vpath, $(SRC_PATH)/tests/tcg)
> -
> -QEMU=../../i386-linux-user/qemu-i386
> -QEMU_X86_64=../../x86_64-linux-user/qemu-x86_64
> -CC_X86_64=$(CC_I386) -m64
> -
> -QEMU_INCLUDES += -I../..
> -CFLAGS=-Wall -O2 -g -fno-strict-aliasing
> -#CFLAGS+=-msse2
> -LDFLAGS=
> -
> -# TODO: automatically detect ARM and MIPS compilers, and run those too
> -
> -# runcom maps page 0, so it requires root privileges
> -# also, pi_10.com runs indefinitely
> -
> -I386_TESTS=hello-i386 \
> -  linux-test \
> -  testthread \
> -  sha1-i386 \
> -  test-i386 \
> -  test-i386-fprem \
> -  test-mmap \
> -  # runcom
> -
> -# native i386 compilers sometimes are not biarch.  assume cross-compilers
> are
> -ifneq ($(ARCH),i386)
> -I386_TESTS+=run-test-x86_64
> -endif
> -
> -TESTS = test_path
> -ifneq ($(call find-in-path, $(CC_I386)),)
> -TESTS += $(I386_TESTS)
> -endif
> -
> -all: $(patsubst %,run-%,$(TESTS))
> -test: all
> -
> -# rules to run tests
> -
> -.PHONY: $(patsubst %,run-%,$(TESTS))
> -
> -run-%: %
> -   -$(QEMU) ./$*
> -
> -run-hello-i386: hello-i386
> -run-linux-test: linux-test
> -run-testthread: testthread
> -run-sha1-i386: sha1-i386
> -
> -run-test-i386: test-i386
> -   ./test-i386 > test-i386.ref
> -   -$(QEMU) test-i386 > test-i386.out
> -   @if diff -u test-i386.ref test-i386.out ; then echo "Auto Test
> OK"; fi
> -
> -run-test-i386-fprem: test-i386-fprem
> -   ./test-i386-fprem > test-i386-fprem.ref
> -   -$(QEMU) test-i386-fprem > test-i386-fprem.out
> -   @if diff -u test-i386-fprem.ref test-i386-fprem.out ; then echo
> "Auto Test OK"; fi
> -
> -run-test-x86_64: test-x86_64
> -   ./test-x86_64 > test-x86_64.ref
> -   -$(QEMU_X86_64) test-x86_64 > test-x86_64.out
> -   @if diff -u test-x86_64.ref test-x86_64.out ; then echo "Auto Test
> OK"; fi
> -
> -run-test-mmap: test-mmap
> -   -$(QEMU) ./test-mmap
> -   -$(QEMU) -p 8192 ./test-mmap 8192
> -   -$(QEMU) -p 16384 ./test-mmap 16384
> -   -$(QEMU) -p 32768 ./test-mmap 32768
> -
> -run-runcom: runcom
> -   -$(QEMU) ./runcom $(SRC_PATH)/tests/pi_10.com
> -
> -run-test_path: test_path
> -   ./test_path
> -
> -# rules to compile tests
> -
> -test_path: test_path.o
> -
> -test_path.o: test_path.c
> -
> -hello-i386: hello-i386.c
> -   $(CC_I386) -nostdlib $(CFLAGS) -static $(LDFLAGS) -o $@ $<
> -   strip $@
> -
> -testthread: testthread.c
> -   $(CC_I386) $(CFLAGS) $(LDFLAGS) -o $@ $< -lpthread
> -
> -# i386/x86_64 emulation test (test various opcodes) */
> -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_I386) $(QEMU_INCLUDES) $(CFLAGS) $(LDFLAGS) -o $@ \
> -  $( $( -
> -test-i386-fprem: test-i386-fprem.c
> -   $(CC_I386) $(QEMU_INCLUDES) $(CFLAGS) $(LDFLAGS) -o $@ $^
> -
> -test-x86_64: test-i386.c \
> -   test-i386.h test-i386-shift.h test-i386-muldiv.h
> -   $(CC_X86_64) 

[Qemu-devel] [PATCH 1/6] tests/tcg: Move i386 tests to arch specific folder

2016-09-17 Thread Pranith Kumar
Signed-off-by: Pranith Kumar 
---
 tests/tcg/Makefile  | 156 
 tests/tcg/i386/Makefile |  88 ++
 tests/tcg/{ => i386}/hello-i386.c   |   9 +-
 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
 13 files changed, 93 insertions(+), 160 deletions(-)
 delete mode 100644 tests/tcg/Makefile
 create mode 100644 tests/tcg/i386/Makefile
 rename tests/tcg/{ => i386}/hello-i386.c (71%)
 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/Makefile b/tests/tcg/Makefile
deleted file mode 100644
index 89e3342..000
--- a/tests/tcg/Makefile
+++ /dev/null
@@ -1,156 +0,0 @@
--include ../../config-host.mak
--include $(SRC_PATH)/rules.mak
-
-$(call set-vpath, $(SRC_PATH)/tests/tcg)
-
-QEMU=../../i386-linux-user/qemu-i386
-QEMU_X86_64=../../x86_64-linux-user/qemu-x86_64
-CC_X86_64=$(CC_I386) -m64
-
-QEMU_INCLUDES += -I../..
-CFLAGS=-Wall -O2 -g -fno-strict-aliasing
-#CFLAGS+=-msse2
-LDFLAGS=
-
-# TODO: automatically detect ARM and MIPS compilers, and run those too
-
-# runcom maps page 0, so it requires root privileges
-# also, pi_10.com runs indefinitely
-
-I386_TESTS=hello-i386 \
-  linux-test \
-  testthread \
-  sha1-i386 \
-  test-i386 \
-  test-i386-fprem \
-  test-mmap \
-  # runcom
-
-# native i386 compilers sometimes are not biarch.  assume cross-compilers are
-ifneq ($(ARCH),i386)
-I386_TESTS+=run-test-x86_64
-endif
-
-TESTS = test_path
-ifneq ($(call find-in-path, $(CC_I386)),)
-TESTS += $(I386_TESTS)
-endif
-
-all: $(patsubst %,run-%,$(TESTS))
-test: all
-
-# rules to run tests
-
-.PHONY: $(patsubst %,run-%,$(TESTS))
-
-run-%: %
-   -$(QEMU) ./$*
-
-run-hello-i386: hello-i386
-run-linux-test: linux-test
-run-testthread: testthread
-run-sha1-i386: sha1-i386
-
-run-test-i386: test-i386
-   ./test-i386 > test-i386.ref
-   -$(QEMU) test-i386 > test-i386.out
-   @if diff -u test-i386.ref test-i386.out ; then echo "Auto Test OK"; fi
-
-run-test-i386-fprem: test-i386-fprem
-   ./test-i386-fprem > test-i386-fprem.ref
-   -$(QEMU) test-i386-fprem > test-i386-fprem.out
-   @if diff -u test-i386-fprem.ref test-i386-fprem.out ; then echo "Auto 
Test OK"; fi
-
-run-test-x86_64: test-x86_64
-   ./test-x86_64 > test-x86_64.ref
-   -$(QEMU_X86_64) test-x86_64 > test-x86_64.out
-   @if diff -u test-x86_64.ref test-x86_64.out ; then echo "Auto Test OK"; 
fi
-
-run-test-mmap: test-mmap
-   -$(QEMU) ./test-mmap
-   -$(QEMU) -p 8192 ./test-mmap 8192
-   -$(QEMU) -p 16384 ./test-mmap 16384
-   -$(QEMU) -p 32768 ./test-mmap 32768
-
-run-runcom: runcom
-   -$(QEMU) ./runcom $(SRC_PATH)/tests/pi_10.com
-
-run-test_path: test_path
-   ./test_path
-
-# rules to compile tests
-
-test_path: test_path.o
-
-test_path.o: test_path.c
-
-hello-i386: hello-i386.c
-   $(CC_I386) -nostdlib $(CFLAGS) -static $(LDFLAGS) -o $@ $<
-   strip $@
-
-testthread: testthread.c
-   $(CC_I386) $(CFLAGS) $(LDFLAGS) -o $@ $< -lpthread
-
-# i386/x86_64 emulation test (test various opcodes) */
-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_I386) $(QEMU_INCLUDES) $(CFLAGS) $(LDFLAGS) -o $@ \
-  $(