2002-12-31 Martin Baulig <martin@ximian.com>
[mono.git] / mono / tests / Makefile.am
1
2 TEST_PROG=../interpreter/mint
3 JITTEST_PROG=../jit/mono
4 RUNTIME_ARGS=--config tests-config
5
6 CSC=csc /unsafe
7
8 BENCHSRC=fib.cs random.cs nested-loops.cs ackermann.cs tight-loop.cs sieve.cs
9
10 TEST_CS_SRC=                    \
11         array-init.cs           \
12         arraylist.cs            \
13         char-isnumber.cs        \
14         create-instance.cs      \
15         field-layout.cs         \
16         pack-layout.cs          \
17         hash-table.cs           \
18         test-ops.cs             \
19         obj.cs                  \
20         string.cs               \
21         stringbuilder.cs        \
22         switch.cs               \
23         outparm.cs              \
24         delegate.cs             \
25         bitconverter.cs         \
26         exception.cs            \
27         exception2.cs           \
28         exception3.cs           \
29         exception4.cs           \
30         exception5.cs           \
31         exception6.cs           \
32         exception7.cs           \
33         exception8.cs           \
34         exception10.cs          \
35         exception11.cs          \
36         exception12.cs          \
37         exception13.cs          \
38         exception14.cs          \
39         struct.cs               \
40         valuetype-gettype.cs    \
41         static-constructor.cs   \
42         pinvoke.cs              \
43         pinvoke1.cs             \
44         pinvoke2.cs             \
45         pinvoke3.cs             \
46         pinvoke4.cs             \
47         pinvoke5.cs             \
48         pinvoke6.cs             \
49         pinvoke7.cs             \
50         pinvoke8.cs             \
51         pinvoke9.cs             \
52         invoke.cs               \
53         invoke2.cs              \
54         reinit.cs               \
55         box.cs                  \
56         array.cs                \
57         enum.cs                 \
58         enum2.cs                \
59         property.cs             \
60         enumcast.cs             \
61         assignable-tests.cs     \
62         array-cast.cs           \
63         cattr-compile.cs        \
64         cattr-field.cs          \
65         cattr-object.cs         \
66         custom-attr.cs          \
67         double-cast.cs          \
68         newobj-valuetype.cs     \
69         arraylist-clone.cs      \
70         setenv.cs               \
71         vtype.cs                \
72         isvaluetype.cs          \
73         iface6.cs               \
74         ipaddress.cs            \
75         array-vt.cs             \
76         interface1.cs           \
77         reflection-enum.cs      \
78         reflection-prop.cs      \
79         reflection4.cs          \
80         reflection5.cs          \
81         many-locals.cs          \
82         string-compare.cs       \
83         test-prime.cs           \
84         params.cs               \
85         reflection.cs           \
86         interface.cs            \
87         iface.cs                \
88         iface2.cs               \
89         iface3.cs               \
90         iface4.cs               \
91         virtual-method.cs       \
92         intptrcast.cs           \
93         indexer.cs              \
94         stream.cs               \
95         console.cs              \
96         shift.cs                \
97         jit-int.cs              \
98         jit-uint.cs             \
99         jit-long.cs             \
100         long.cs                 \
101         jit-ulong.cs            \
102         jit-float.cs            \
103         pop.cs                  \
104         time.cs                 \
105         appdomain.cs            \
106         appdomain1.cs           \
107         appdomain2.cs           \
108         appdomain-client.cs     \
109         pointer.cs              \
110         vararg.cs               \
111         rounding.cs             \
112         hashcode.cs             \
113         delegate1.cs            \
114         delegate2.cs            \
115         delegate3.cs            \
116         delegate4.cs            \
117         delegate5.cs            \
118         delegate6.cs            \
119         delegate7.cs            \
120         remoting1.cs            \
121         remoting2.cs            \
122         remoting3.cs            \
123         nonvirt.cs              \
124         largeexp.cs             \
125         largeexp2.cs            \
126         marshalbyref1.cs        \
127         static-ctor.cs          \
128         inctest.cs              \
129         bound.cs                \
130         array-invoke.cs         \
131         decimal.cs              \
132         decimal-array.cs        \
133         marshal1.cs             \
134         marshal2.cs             \
135         marshal3.cs             \
136         marshal4.cs             \
137         thread.cs               \
138         thread5.cs              \
139         thread6.cs              \
140         float-pop.cs
141
142 TEST_IL_SRC=                    \
143         cpblkTest.il            \
144         jmpTest.il              \
145         calliTest.il            \
146         ckfiniteTest.il         \
147         locallocTest.il         \
148         initblkTest.il
149
150
151 TESTSI_CS=$(TEST_CS_SRC:.cs=.exe)
152 TESTSI_IL=$(TEST_IL_SRC:.il=.exe)
153 TESTBS=$(BENCHSRC:.cs=.exe)
154
155 EXTRA_DIST=test-driver $(TEST_CS_SRC) $(TEST_IL_SRC)
156
157 %.exe: %.il
158         ilasm $< /OUTPUT=$@
159
160 %.exe: %.cs
161         $(CSC) $<
162
163 test:   test_cs test_il
164
165 test_cs: $(TEST_PROG) $(TESTSI_CS) libtest.la
166         @failed=0; \
167         passed=0; \
168         export LD_LIBRARY_PATH="`pwd`/.libs:$${LD_LIBRARY_PATH}"; \
169         for i in $(TESTSI_CS); do       \
170                 if ./test-driver $(TEST_PROG) $$i $(RUNTIME_ARGS); \
171                 then \
172                         passed=`expr $${passed} + 1`; \
173                 else \
174                         failed=`expr $${failed} + 1`; \
175                 fi \
176         done; \
177         echo; echo ".cs: $${passed} test(s) passed. $${failed} test(s) failed."; echo
178
179 test_il: $(TEST_PROG) $(TESTSI_IL) libtest.la
180         @failed=0; \
181         passed=0; \
182         export LD_LIBRARY_PATH="`pwd`/.libs:$${LD_LIBRARY_PATH}"; \
183         for i in $(TESTSI_IL); do       \
184                 if ./test-driver $(TEST_PROG) $$i $(RUNTIME_ARGS); \
185                 then \
186                         passed=`expr $${passed} + 1`; \
187                 else \
188                         failed=`expr $${failed} + 1`; \
189                 fi \
190         done; \
191         echo; echo ".il: $${passed} test(s) passed. $${failed} test(s) failed."; echo
192
193 testb: $(TEST_PROG) $(TESTBS)
194         for i in $(TESTBS); do  \
195                 ./test-driver $(TEST_PROG) $$ii $(RUNTIME_ARGS);        \
196         done
197
198 testjit: $(JITTEST_PROG) $(TESTSI_CS) $(TESTSI_IL) $(TESTBS)
199         @failed=0; \
200         passed=0; \
201         export LD_LIBRARY_PATH="`pwd`/.libs:$${LD_LIBRARY_PATH}"; \
202         for i in $(TESTSI_CS) $(TESTSI_IL) $(TESTBS); do        \
203                 if ./test-driver $(JITTEST_PROG) $$i $(RUNTIME_ARGS); \
204                 then \
205                         passed=`expr $${passed} + 1`; \
206                 else \
207                         failed=`expr $${failed} + 1`; \
208                 fi \
209         done; \
210         echo "$${passed} test(s) passed. $${failed} test(s) failed."
211
212 testjitspeed: $(JITTEST_PROG) $(TESTBS)
213         for i in $(TESTBS); do  \
214                 echo $$i;       \
215                 time $(JITTEST_PROG) $$i;       \
216         done
217
218 check:
219         @echo no check yet
220
221 noinst_LTLIBRARIES = libtest.la
222
223 libtest_la_LDFLAGS = -rpath `pwd`
224 libtest_la_SOURCES = libtest.c