Re: [Qemu-devel] [PATCH 1/6] tests/tcg: Move i386 tests to arch specific folder
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
Hi On Sat, Sep 17, 2016 at 6:05 PM Pranith Kumarwrote: > 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
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 $@ \ - $(