|
|
1.1 root 1: -include ../config-host.mak 1.1.1.9 ! root 2: -include $(SRC_PATH)/rules.mak 1.1.1.8 root 3: 4: $(call set-vpath, $(SRC_PATH)/tests) 1.1 root 5: 1.1.1.9 ! root 6: QEMU=../i386-linux-user/qemu-i386 ! 7: QEMU_X86_64=../x86_64-linux-user/qemu-x86_64 ! 8: CC_X86_64=$(CC_I386) -m64 ! 9: ! 10: QEMU_INCLUDES += -I.. 1.1.1.5 root 11: CFLAGS=-Wall -O2 -g -fno-strict-aliasing 1.1.1.3 root 12: #CFLAGS+=-msse2 1.1 root 13: LDFLAGS= 14: 1.1.1.9 ! root 15: # TODO: automatically detect ARM and MIPS compilers, and run those too ! 16: ! 17: # runcom maps page 0, so it requires root privileges ! 18: # also, pi_10.com runs indefinitely ! 19: ! 20: I386_TESTS=hello-i386 \ ! 21: linux-test \ ! 22: testthread \ ! 23: sha1-i386 \ ! 24: test-i386 \ ! 25: test-mmap \ ! 26: # runcom ! 27: ! 28: # native i386 compilers sometimes are not biarch. assume cross-compilers are ! 29: ifneq ($(ARCH),i386) ! 30: I386_TESTS+=run-test-x86_64 1.1 root 31: endif 1.1.1.9 ! root 32: ! 33: TESTS = test_path ! 34: ifneq ($(call find-in-path, $(CC_I386)),) ! 35: TESTS += $(I386_TESTS) 1.1 root 36: endif 37: 1.1.1.9 ! root 38: all: $(patsubst %,run-%,$(TESTS)) 1.1 root 39: 1.1.1.9 ! root 40: # rules to run tests ! 41: ! 42: .PHONY: $(patsubst %,run-%,$(TESTS)) ! 43: ! 44: run-%: % ! 45: -$(QEMU) ./$* ! 46: ! 47: run-hello-i386: hello-i386 ! 48: run-linux-test: linux-test ! 49: run-testthread: testthread ! 50: run-sha1-i386: sha1-i386 ! 51: ! 52: run-test-i386: test-i386 ! 53: ./test-i386 > test-i386.ref ! 54: -$(QEMU) test-i386 > test-i386.out ! 55: @if diff -u test-i386.ref test-i386.out ; then echo "Auto Test OK"; fi ! 56: ! 57: run-test-x86_64: test-x86_64 ! 58: ./test-x86_64 > test-x86_64.ref ! 59: -$(QEMU_X86_64) test-x86_64 > test-x86_64.out ! 60: @if diff -u test-x86_64.ref test-x86_64.out ; then echo "Auto Test OK"; fi ! 61: ! 62: run-test-mmap: test-mmap ! 63: -$(QEMU) ./test-mmap ! 64: -$(QEMU) -p 8192 ./test-mmap 8192 ! 65: -$(QEMU) -p 16384 ./test-mmap 16384 ! 66: -$(QEMU) -p 32768 ./test-mmap 32768 ! 67: ! 68: run-runcom: runcom ! 69: -$(QEMU) ./runcom $(SRC_PATH)/tests/pi_10.com ! 70: ! 71: run-test_path: test_path ! 72: ./test_path ! 73: ! 74: # rules to compile tests ! 75: ! 76: test_path: test_path.o ! 77: test_path.o: test_path.c 1.1 root 78: 79: hello-i386: hello-i386.c 1.1.1.9 ! root 80: $(CC_I386) -nostdlib $(CFLAGS) -static $(LDFLAGS) -o $@ $< 1.1 root 81: strip $@ 82: 83: testthread: testthread.c 1.1.1.9 ! root 84: $(CC_I386) $(CFLAGS) $(LDFLAGS) -o $@ $< -lpthread 1.1 root 85: 86: # i386/x86_64 emulation test (test various opcodes) */ 87: test-i386: test-i386.c test-i386-code16.S test-i386-vm86.S \ 88: test-i386.h test-i386-shift.h test-i386-muldiv.h 1.1.1.9 ! root 89: $(CC_I386) $(CFLAGS) $(LDFLAGS) -o $@ \ 1.1.1.6 root 90: $(<D)/test-i386.c $(<D)/test-i386-code16.S $(<D)/test-i386-vm86.S -lm 1.1 root 91: 92: test-x86_64: test-i386.c \ 93: test-i386.h test-i386-shift.h test-i386-muldiv.h 1.1.1.9 ! root 94: $(CC_X86_64) $(CFLAGS) $(LDFLAGS) -o $@ $(<D)/test-i386.c -lm 1.1 root 95: 96: # generic Linux and CPU test 97: linux-test: linux-test.c 1.1.1.9 ! root 98: $(CC_I386) $(CFLAGS) $(LDFLAGS) -o $@ $< -lm ! 99: ! 100: # vm86 test ! 101: runcom: runcom.c ! 102: $(CC_I386) $(CFLAGS) $(LDFLAGS) -o $@ $< ! 103: ! 104: test-mmap: test-mmap.c ! 105: $(CC_I386) -m32 $(CFLAGS) -Wall -O2 $(LDFLAGS) -o $@ $< 1.1 root 106: 107: # speed test 108: sha1-i386: sha1.c 1.1.1.9 ! root 109: $(CC_I386) $(CFLAGS) $(LDFLAGS) -o $@ $< 1.1 root 110: 111: sha1: sha1.c 1.1.1.9 ! root 112: $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< 1.1 root 113: 114: speed: sha1 sha1-i386 115: time ./sha1 116: time $(QEMU) ./sha1-i386 117: 1.1.1.9 ! root 118: # broken test 1.1 root 119: # NOTE: -fomit-frame-pointer is currently needed : this is a bug in libqemu 1.1.1.7 root 120: qruncom: qruncom.c ../ioport-user.c ../i386-user/libqemu.a 1.1.1.2 root 121: $(CC) $(CFLAGS) -fomit-frame-pointer $(LDFLAGS) -I../target-i386 -I.. -I../i386-user -I../fpu \ 1.1.1.7 root 122: -o $@ $(filter %.c, $^) -L../i386-user -lqemu -lm 1.1 root 123: 124: # arm test 125: hello-arm: hello-arm.o 126: arm-linux-ld -o $@ $< 127: 128: hello-arm.o: hello-arm.c 129: arm-linux-gcc -Wall -g -O2 -c -o $@ $< 130: 1.1.1.5 root 131: test-arm-iwmmxt: test-arm-iwmmxt.s 132: cpp < $< | arm-linux-gnu-gcc -Wall -static -march=iwmmxt -mabi=aapcs -x assembler - -o $@ 133: 1.1.1.4 root 134: # MIPS test 135: hello-mips: hello-mips.c 136: mips-linux-gnu-gcc -nostdlib -static -mno-abicalls -fno-PIC -mabi=32 -Wall -Wextra -g -O2 -o $@ $< 137: 138: hello-mipsel: hello-mips.c 139: mipsel-linux-gnu-gcc -nostdlib -static -mno-abicalls -fno-PIC -mabi=32 -Wall -Wextra -g -O2 -o $@ $< 140: 1.1.1.5 root 141: # testsuite for the CRIS port. 142: test-cris: 143: $(MAKE) -C cris check 1.1 root 144: 145: clean: 146: rm -f *~ *.o test-i386.out test-i386.ref \ 147: test-x86_64.log test-x86_64.ref qruncom $(TESTS)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.