blob: d722b4546bc31a5a878aeeeecade72e18c4744d7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
CSC=csc.exe
MCS=../mcs/mcs.exe
VERIFY=../tools/verifier.exe
TEST_SOURCES = \
test-1 test-2 test-3 test-4 test-5 test-6 test-7 test-8 test-9 test-10 \
test-11 test-12 test-13 test-14 test-15 test-16 test-17 test-18 test-19 test-20 \
test-21 test-22 test-23 test-24 test-25 test-26 test-27 test-28 test-30 \
test-31 test-32 test-33 test-34 test-35 test-36 test-37 test-39 \
test-41 test-42 test-43 test-44 test-46 test-47 test-48 test-49 \
test-51 test-54 test-55 test-56 test-57 test-59 test-60 \
test-61 test-62 test-63 test-64 test-65 test-66 test-68 test-69 test-70 \
test-71 test-72 test-73 test-74 test-75 test-76 test-77 test-78 test-79 test-80 \
test-81 test-82 test-83 test-84 test-85 test-86 test-87 test-88 test-89 test-90 \
test-92 test-93 test-94 test-95 test-96 test-97 test-98 test-99 test-100\
test-101 test-102 test-103 test-104 test-105 test-108 test-109 test-110\
test-111 test-112 test-113 test-114 test-115 test-116 test-117 test-118 test-119 \
test-121 test-123 test-125 test-126 test-127 test-128 test-129 test-130 \
test-131 test-134 test-135
UNSAFE_SOURCES = \
unsafe-1 unsafe-2 unsafe-3
WINDOWS_SOURCES = \
test-50 test-67
# A test is a 'no pass' if it fails on either windows or linux
# Test 120 does not pass because the MS.NET runtime is buggy.
TEST_NOPASS = \
test-29 test-38 test-40 test-45 test-52 test-53 test-91 test-106 test-107 \
test-120 test-122 test-132 test-133
all: test-compiler test-unsafe test-windows
# Compile with mono, run with MS jit
test-compiler:
@rm -f *.exe; \
for i in $(TEST_SOURCES); do \
echo -n "Running $$i ... "; \
if $(MCS) $$i.cs > /dev/null; then \
if ./$$i.exe > /dev/null; then \
echo OK; \
else \
echo FAILED; exit 1; \
fi; \
else \
echo FAILED TO COMPILE; exit 1; \
fi \
done
# Compile with mono, run with MS jit
test-unsafe:
@for i in $(UNSAFE_SOURCES); do \
echo -n "Running (unsafe) $$i ... "; \
if $(MCS) --unsafe $$i.cs > /dev/null; then \
if ./$$i.exe > /dev/null; then \
echo OK; \
else \
echo FAILED; exit 1; \
fi; \
else \
echo FAILED WHILE COMPILING; exit 1; \
fi \
done
# Compiled (previously) with mono, run with mono jit
test-jit:
@for i in $(TEST_SOURCES:.cs=.exe); do \
echo -n "Running jit $$i ... "; \
if mono ./$$i.exe > /dev/null; then \
echo OK; \
else \
echo FAILED; exit 1; \
fi \
done
# Compiled with mono, run with MS jit
test-windows:
@echo Running windows-only tests - these will fail on linux; \
for i in $(WINDOWS_SOURCES); do \
echo -n "Running $$i ... "; \
if $(MCS) $$i.cs > /dev/null; then \
if ./$$i.exe > /dev/null; then \
echo OK; \
else \
echo FAILED; exit 1; \
fi; \
else \
echo FAILED TO COMPILE; exit 1; \
fi \
done
verify:
@for i in $(TEST_SOURCES); do \
if $(MCS) -o mcs-gen-code.exe $$i.cs > /dev/null; then \
if $(CSC) /out:csc-gen-code.exe $$i.cs > /dev/null; then \
if $(VERIFY) mcs-gen-code.exe csc-gen-code.exe > /dev/null; then \
echo $$i: identical assemblies; \
else \
echo $$i: unidentical assemblies; exit; \
fi; \
fi \
fi \
done; \
echo Verification passed
casts.cs: gen-cast-test.cs
$(CSC) /out:csc-cast.exe gen-cast-test.cs
./csc-cast > casts.cs
casts-csc.exe: casts.cs
$(CSC) /out:casts-csc.exe casts.cs
casts.exe: casts.cs
$(MCS) casts.cs
csc-casts.out: casts-csc.exe
./casts-csc.exe > csc-casts.out
msc-casts.out: casts.exe
./casts.exe > msc-casts.out
test-casts: csc-casts.out msc-casts.out
cmp csc-casts.out msc-casts.out
clean:
rm *.exe
rm *.out
rm casts.cs
|