[interp] Remove unreachable code (#12411)
[mono-project.git] / mono / tests / Makefile.am
blob93d13a061d091c785b657620890a6ec61e9f809d
1 include $(top_srcdir)/mk/common.mk
3 SUBDIRS = gc-descriptors . testing_gac assembly-load-reference llvmonly-mixed
5 check-local:
6         ok=:; \
7         $(MAKE) test-tailcall || ok=false; \
8         if test x$(IGNORE_TEST_JIT) == x; then $(MAKE) test-jit || ok=false; fi; \
9         $(MAKE) test-generic-sharing || ok=false; \
10         $(MAKE) test-type-load || ok=false; \
11         $(MAKE) test-multi-netmodule || ok=false; \
12         $(MAKE) test-cattr-type-load || ok=false; \
13         $(MAKE) test-reflection-load-with-context || ok=false; \
14         $(MAKE) test-platform || ok=false; \
15         $(MAKE) test-console-output || ok=false; \
16         $(MAKE) test-env-options || ok=false; \
17         $(MAKE) test-unhandled-exception-2 || ok=false; \
18         $(MAKE) test-appdomain-unload || ok=false; \
19         $(MAKE) test-process-stress || ok=false; \
20         $(MAKE) test-pedump || ok=false; \
21         $(MAKE) test-internalsvisibleto || ok=false; \
22         $(MAKE) rm-empty-logs || ok=false; \
23         $(MAKE) runtest-gac-loading || ok=false; \
24         $(MAKE) runtest-assembly-load-reference || ok=false; \
25         $$ok
27 BUILT_SOURCES =
29 ARRAY_COOP_CS=\
30         array-coop-bigvt.cs     \
31         array-coop-int.cs       \
32         array-coop-smallvt.cs
34 BUILT_SOURCES += $(ARRAY_COOP_CS)
36 array-coop-bigvt.cs: array-coop-bigvt.sh array-coop-1.cs array-coop-2.cs
37          . $(srcdir)/array-coop-bigvt.sh $(srcdir) > $@
39 array-coop-smallvt.cs: array-coop-smallvt.sh array-coop-1.cs array-coop-2.cs
40          . $(srcdir)/array-coop-smallvt.sh $(srcdir) > $@
42 array-coop-int.cs: array-coop-int.sh array-coop-1.cs array-coop-2.cs
43          . $(srcdir)/array-coop-int.sh $(srcdir) > $@
45 # These are not actually tests, but they are source files part of another test.
46 TAILCALL_DISABLED_TESTS_COMPILE = \
47         tailcall/coreclr/JIT/opt/Tailcall/TailcallVerifyTransparentLibraryWithPrefix.exe \
48         tailcall/coreclr/JIT/opt/Tailcall/TailcallVerifyVerifiableLibraryWithPrefix.exe
50 # FIXME valuetype parameter.
51 TAILCALL_DISABLED_TESTS_COMPILE += \
52         tailcall/coreclr/JIT/opt/ETW/TailCallCases.exe
54 # FIXME Some of these sound like negative tests -- "badtailcall". Verify and automate.
55 # FIXME investigate and explain every test failure.
56 TAILCALL_DISABLED_TESTS_RUN = \
57         tailcall/coreclr/JIT/Directed/IL/PInvokeTail/tailwinapi.exe \
58         tailcall/coreclr/JIT/Directed/IL/Tailcall/Jittailcall2.exe \
59         tailcall/coreclr/JIT/Directed/IL/mutualrecur-tailcall/MutualRecur-TailCall.exe \
60         tailcall/coreclr/JIT/Directed/coverage/importer/Desktop/badtailcall.exe \
61         tailcall/coreclr/JIT/Directed/coverage/importer/badtailcall.exe \
62         tailcall/coreclr/JIT/Directed/pinvoke/tail.exe \
63         tailcall/coreclr/JIT/IL_Conformance/Old/Base/tailcall.exe \
64         tailcall/coreclr/JIT/Methodical/Invoke/fptr/recurse_tail_call.exe \
65         tailcall/coreclr/JIT/Methodical/Invoke/fptr/recurse_tail_calli.exe \
66         tailcall/coreclr/JIT/Methodical/tailcall/deep_array.exe \
67         tailcall/coreclr/JIT/Methodical/tailcall/deep_array_nz.exe \
68         tailcall/coreclr/JIT/Methodical/tailcall/gcval_nested.exe \
69         tailcall/coreclr/JIT/Methodical/tailcall/pointer_i.exe \
70         tailcall/coreclr/JIT/Methodical/tailcall/pointer.exe \
71         tailcall/coreclr/JIT/Methodical/tailcall/reference_i.exe \
72         tailcall/coreclr/JIT/Methodical/tailcall/test_implicit.exe \
73         tailcall/coreclr/JIT/Methodical/tailcall/test_mutual_rec.exe \
74         tailcall/coreclr/JIT/Methodical/tailcall/test_switch.exe \
75         tailcall/coreclr/JIT/Methodical/tailcall_v4/delegateTail.exe \
76         tailcall/coreclr/JIT/Methodical/tailcall_v4/hijacking.exe \
77         tailcall/coreclr/JIT/Methodical/tailcall_v4/smallFrame.exe \
78         tailcall/coreclr/JIT/Methodical/tailcall_v4/tailcall_AV.exe \
79         tailcall/coreclr/JIT/Regression/VS-ia64-JIT/V1.2-M02/b102844/tailcallcalli.exe \
80         tailcall/coreclr/JIT/opt/Tailcall/TailcallVerifyWithPrefix.exe \
81         $(TAILCALL_DISABLED_TESTS_COMPILE)
83 # FIXME investigate and explain every test failure.
84 TAILCALL_DISABLED_TESTS_RUN += \
85         tailcall/coreclr/JIT/Methodical/Boxing/misc/tailjump.exe \
86         tailcall/coreclr/JIT/Methodical/tailcall/deep_gc.exe \
87         tailcall/coreclr/JIT/Methodical/tailcall/deep_inst.exe \
88         tailcall/coreclr/JIT/Methodical/tailcall/deep_value.exe \
89         tailcall/coreclr/JIT/Methodical/tailcall/deep_virt.exe \
90         tailcall/coreclr/JIT/Methodical/tailcall/gcval.exe \
91         tailcall/coreclr/JIT/Methodical/tailcall/gcval_sideeffect.exe \
92         tailcall/coreclr/JIT/Methodical/tailcall/test_3b.exe \
93         tailcall/coreclr/JIT/Methodical/tailcall_v4/delegateParamCallTarget.exe
95 if X86
96 TAILCALL_DISABLED_TESTS_RUN += tailcall/coreclr/JIT/Methodical/nonvirtualcall/tailcall.exe
97 endif
99 if FULL_AOT_TESTS
101 # FullAOT Assertion at method-to-ir.c:9203, condition `*ip == CEE_RET' not met
102 # This should raise a bad image format exception.
103 TAILCALL_DISABLED_TESTS_COMPILE += \
104         tailcall/coreclr/JIT/opt/Tailcall/TailcallVerifyWithPrefix.exe
106 # return type mismatch (float32 vs. float64)
107 #       tailcall/coreclr/JIT/Methodical/tailcall/compat_r8_r4_inl.exe
108 #       tailcall/coreclr/JIT/Methodical/tailcall/compat_r4_r8_inl.exe
110 # return type mismatch (int32 vs. enum)
111 #       tailcall/coreclr/JIT/Methodical/tailcall/compat_enum.exe
113 # FIXME depends on msvcrt.dll, and calli
114 #       tailcall/coreclr/JIT/Directed/IL/PInvokeTail/PInvokeTail.exe
116 # FIXME reference parameter; requires range check to allow
117 #       tailcall/coreclr/JIT/Directed/zeroinit/tail.exe
119 # Tests that fail assert about tailcall.
120 TAILCALL_DISABLED_TESTS_RUN += \
121         tailcall/coreclr/JIT/Directed/IL/PInvokeTail/tailwinapi.exe \
122         tailcall/coreclr/JIT/Directed/pinvoke/tail.exe \
123         tailcall/coreclr/JIT/Methodical/Invoke/fptr/recurse_tail_call.exe \
124         tailcall/coreclr/JIT/Methodical/Invoke/fptr/recurse_tail_calli.exe \
125         tailcall/coreclr/JIT/Methodical/tailcall/Desktop/thread-race.exe \
126         tailcall/coreclr/JIT/Methodical/tailcall/deep_array_nz.exe \
127         tailcall/coreclr/JIT/Methodical/tailcall/pointer.exe \
128         tailcall/coreclr/JIT/Methodical/tailcall/reference_i.exe \
129         tailcall/coreclr/JIT/Methodical/tailcall/test_mutual_rec.exe \
130         tailcall/coreclr/JIT/Methodical/tailcall_v4/delegateTail.exe \
131         tailcall/coreclr/JIT/Methodical/tailcall_v4/tailcall_AV.exe \
132         tailcall/coreclr/JIT/Regression/VS-ia64-JIT/V1.2-M02/b102844/tailcallcalli.exe
134 # This test is also slow, though its sleep can be dialed down.
135 #TAILCALL_DISABLED_TESTS_RUN += tailcall/coreclr/JIT/Methodical/tailcall_v4/hijacking.exe
137 endif
139 compile-tailcall: $(TESTS_TAILCALL_COMPILE) $(TESTSAOT_TAILCALL)
141 if FULL_AOT_TESTS
143 # FullAOT does not allow --compile-all.
145 else
147 TEST_TAILCALL_COMPILE_ALL=--runtime-args "--compile-all"
149 endif
151 test-tailcall: compile-tailcall test-runner.exe
152         MONO_DEBUG=test-tailcall-require $(TOOLS_RUNTIME) --debug $(TEST_RUNNER) -j a $(TEST_TAILCALL_COMPILE_ALL) --testsuite-name "runtime-tailcall" --timeout 300 --disabled "$(DISABLED_TESTS)" $(TESTS_TAILCALL_RUN)
154 check-full:
155         ok=; \
156         $(MAKE) test-sgen || ok=false; \
157         $(MAKE) check-local || ok=false; \
158         $$ok
160 check-parallel:
161         ok=; \
162         $(MAKE) compile-tests; \
163         $(MAKE) check-full || ok=false; \
164         $$ok
166 check-coreclr:
167         $(MAKE) -C $(mono_build_root)/acceptance-tests check-coreclr
169 check-stress:
170         $(MAKE) test-stress-sgen
172 # for backwards compatibility on Wrench
173 test-wrench: check-parallel
175 aotcheck: testaot gshared-aot
177 JITTEST_PROG = $(if $(VALGRIND), valgrind $(VALGRIND_ARGS),) $(if $(SGEN),$(top_builddir)/mono/mini/mono-sgen,$(top_builddir)/mono/mini/mono)
179 JITTEST_PROG_RUN = MONO_CFG_DIR=$(mono_build_root)/runtime/etc $(LIBTOOL) --mode=execute $(JITTEST_PROG)
182 RUNTIME_ARGS=--config tests-config --optimize=all --debug
183 TEST_RUNTIME_ARGS ?= $(RUNTIME_ARGS)
184 TEST_AOT_BUILD_FLAGS ?= $(AOT_BUILD_FLAGS)
185 TEST_AOT_RUN_FLAGS ?= $(AOT_RUN_FLAGS)
187 CLASS=$(mcs_topdir)/class/lib/$(DEFAULT_PROFILE)
189 with_mono_path = MONO_PATH=$(CLASS)
191 RUNTIME = $(with_mono_path) $(top_builddir)/runtime/mono-wrapper
192 TOOLS_RUNTIME = MONO_PATH=$(mcs_topdir)/class/lib/build $(top_builddir)/runtime/mono-wrapper --aot-path=$(mcs_topdir)/class/lib/build
194 MKBUNDLE = \
195         PKG_CONFIG_PATH=$(top_builddir):$(PKG_CONFIG_PATH) \
196         $(RUNTIME) $(CLASS)/mkbundle.exe
198 if FULL_AOT_TESTS
199 PROFILE_MCS_FLAGS = -d:MOBILE,MOBILE_LEGACY,FULL_AOT_DESKTOP 
200 endif
202 if HYBRID_AOT_TESTS
203 PROFILE_MCS_FLAGS = -d:MOBILE,MOBILE_LEGACY 
204 endif
206 if AOT_FULL_INTERP_TESTS
207 PROFILE_MCS_FLAGS = -d:MOBILE,MOBILE_LEGACY
208 endif
210 if AOT_FULL_INTERP_LLVM_TESTS
211 PROFILE_MCS_FLAGS = -d:MOBILE,MOBILE_LEGACY
212 endif
214 MCS_NO_UNSAFE = $(TOOLS_RUNTIME) $(CSC) -debug:portable \
215         -noconfig -nologo \
216         -nowarn:0162 -nowarn:0168 -nowarn:0219 -nowarn:0414 -nowarn:0618 \
217         -nowarn:0169 -nowarn:1690 -nowarn:0649 -nowarn:0612 -nowarn:3021 \
218         -nowarn:0197 -langversion:latest $(PROFILE_MCS_FLAGS)
219 MCS_NO_LIB = $(MCS_NO_UNSAFE) -unsafe
221 MCS = $(MCS_NO_LIB)
223 ILASM = $(TOOLS_RUNTIME) $(mcs_topdir)/class/lib/build/ilasm.exe
225 TEST_RUNNER = ./test-runner.exe
227 if HOST_WIN32
228 TEST_RUNNER += --config tests-config --runtime "$(if $(MONO_EXECUTABLE),$(shell cygpath -w -a $(MONO_EXECUTABLE) | sed 's/\\/\\\\/g'),$(top_builddir)/runtime/mono-wrapper)"
229 else
230 TEST_RUNNER += --config tests-config --runtime "$(if $(MONO_EXECUTABLE),$(MONO_EXECUTABLE),$(top_builddir)/runtime/mono-wrapper)"
231 endif
233 TEST_RUNNER += --mono-path "$(CLASS)"
235 if FULL_AOT_TESTS
236 TEST_RUNNER += --runtime-args "$(TEST_AOT_RUN_FLAGS)"
237 endif
239 if HYBRID_AOT_TESTS
240 TEST_RUNNER += --runtime-args "$(TEST_AOT_RUN_FLAGS)"
241 endif
243 TEST_RUNNER += --runtime-args "$(TEST_RUNTIME_FLAGS)"
245 TEST_RUNNER += $(if $(V), --verbose,)
247 TESTS_BENCH_SRC=fib.cs random.cs nested-loops.cs ackermann.cs tight-loop.cs sieve.cs
249 TESTS_STRESS_SRC=       \
250         abort-stress-1.cs       \
251         abort-stress-2.cs       \
252         abort-stress-3.cs       \
253         domain-stress.cs        \
254         gchandle-stress.cs      \
255         monitor-stress.cs       \
256         thread-stress.cs        \
257         gc-stress.cs            \
258         gc-copy-stress.cs       \
259         gc-graystack-stress.cs          \
260         exit-stress.cs          \
261         process-stress.cs       \
262         assembly-load-stress.cs
264 # Disabled until ?mcs is fixed
265 #       bug-331958.cs
266 TESTS_CS_SRC=           \
267         generic-unloading-sub.2.cs      \
268         create-instance.cs      \
269         bug-2907.cs             \
270         $(ARRAY_COOP_CS)        \
271         array-12193.cs          \
272         array-init.cs           \
273         arraylist.cs            \
274         assembly-load-remap.cs  \
275         assembly-load-bytes.cs  \
276         assembly-loadfile.cs    \
277         assembly-loadfrom.cs    \
278         assembly-load-bytes-bindingredirect.cs  \
279         assembly-loadfile-bindingredirect.cs    \
280         assembly-loadfrom-bindingredirect.cs    \
281         assembly-loadfrom-simplename.cs \
282         assemblyresolve_event.cs        \
283         assemblyresolve_event3.cs       \
284         assemblyresolve_event4.cs       \
285         assemblyresolve_event5.cs       \
286         assemblyresolve_event6.cs       \
287         checked.cs              \
288         char-isnumber.cs        \
289         field-layout.cs         \
290         pack-layout.cs          \
291         pack-bug.cs             \
292         hash-table.cs           \
293         test-ops.cs             \
294         obj.cs                  \
295         test-dup-mp.cs          \
296         string.cs               \
297         stringbuilder.cs        \
298         switch.cs               \
299         outparm.cs              \
300         delegate.cs             \
301         bitconverter.cs         \
302         exception.cs            \
303         exception2.cs           \
304         exception3.cs           \
305         exception4.cs           \
306         exception5.cs           \
307         exception6.cs           \
308         exception7.cs           \
309         exception8.cs           \
310         exception10.cs          \
311         exception11.cs          \
312         exception12.cs          \
313         exception13.cs          \
314         exception14.cs          \
315         exception15.cs          \
316         exception16.cs          \
317         exception17.cs          \
318         exception18.cs          \
319         exception-invokes.cs            \
320         merp-json-valid.cs              \
321         exception19.cs          \
322         exception20.cs          \
323         exception21.cs          \
324         typeload-unaligned.cs   \
325         struct.cs               \
326         valuetype-gettype.cs    \
327         typeof-ptr.cs           \
328         static-constructor.cs   \
329         pinvoke.cs              \
330         pinvoke-utf8.cs         \
331         pinvoke3.cs             \
332         pinvoke11.cs            \
333         pinvoke13.cs            \
334         pinvoke17.cs            \
335         invoke.cs               \
336         invoke2.cs              \
337         runtime-invoke.cs               \
338         invoke-string-ctors.cs          \
339         reinit.cs               \
340         box.cs                  \
341         array.cs                \
342         enum.cs                 \
343         enum2.cs                \
344         enum-intrins.cs         \
345         property.cs             \
346         enumcast.cs             \
347         assignable-tests.cs     \
348         array-cast.cs           \
349         array-subtype-attr.cs   \
350         cattr-compile.cs        \
351         cattr-field.cs          \
352         cattr-object.cs         \
353         custom-attr.cs          \
354         double-cast.cs          \
355         newobj-valuetype.cs     \
356         arraylist-clone.cs      \
357         setenv.cs               \
358         vtype.cs                \
359         isvaluetype.cs          \
360         iface6.cs               \
361         iface7.cs               \
362         ipaddress.cs            \
363         array-vt.cs             \
364         interface1.cs           \
365         reflection-enum.cs      \
366         reflection-prop.cs      \
367         reflection4.cs          \
368         reflection5.cs          \
369         reflection-const-field.cs \
370         many-locals.cs          \
371         string-compare.cs       \
372         test-prime.cs           \
373         test-tls.cs             \
374         params.cs               \
375         reflection.cs           \
376         interface.cs            \
377         iface.cs                \
378         iface2.cs               \
379         iface3.cs               \
380         iface4.cs               \
381         iface-large.cs          \
382         iface-contravariant1.cs \
383         virtual-method.cs       \
384         intptrcast.cs           \
385         indexer.cs              \
386         stream.cs               \
387         console.cs              \
388         shift.cs                \
389         jit-int.cs              \
390         jit-uint.cs             \
391         jit-long.cs             \
392         long.cs                 \
393         jit-ulong.cs            \
394         jit-float.cs            \
395         pop.cs                  \
396         time.cs                 \
397         pointer.cs              \
398         hashcode.cs             \
399         delegate1.cs            \
400         delegate2.cs            \
401         delegate3.cs            \
402         delegate5.cs            \
403         delegate6.cs            \
404         delegate7.cs            \
405         delegate8.cs            \
406         delegate10.cs           \
407         delegate11.cs           \
408         delegate12.cs           \
409         delegate13.cs           \
410         delegate14.cs           \
411         delegate15.cs           \
412         delegate16.cs           \
413         largeexp.cs             \
414         largeexp2.cs            \
415         marshalbyref1.cs        \
416         static-ctor.cs          \
417         inctest.cs              \
418         bound.cs                \
419         array-invoke.cs         \
420         test-arr.cs             \
421         decimal.cs              \
422         decimal-array.cs        \
423         marshal.cs              \
424         marshal1.cs             \
425         marshal2.cs             \
426         marshal3.cs             \
427         marshal5.cs             \
428         marshal6.cs             \
429         marshal7.cs             \
430         marshal8.cs             \
431         marshal9.cs             \
432         marshalbool.cs          \
433         test-byval-in-struct.cs \
434         thread.cs               \
435         thread5.cs              \
436         thread-static.cs        \
437         thread-static-init.cs   \
438         context-static.cs       \
439         float-pop.cs            \
440         interfacecast.cs        \
441         array3.cs               \
442         classinit.cs            \
443         classinit2.cs           \
444         classinit3.cs           \
445         synchronized.cs         \
446         async_read.cs           \
447         threadpool.cs           \
448         threadpool1.cs          \
449         threadpool-exceptions1.cs \
450         threadpool-exceptions3.cs \
451         threadpool-exceptions4.cs \
452         threadpool-exceptions6.cs \
453         base-definition.cs      \
454         bug-27420.cs            \
455         bug-46781.cs            \
456         bug-42136.cs            \
457         bug-59286.cs            \
458         bug-70561.cs            \
459         bug-78311.cs            \
460         bug-78653.cs            \
461         bug-78656.cs            \
462         bug-77127.cs            \
463         bug-323114.cs           \
464         bug-Xamarin-5278.cs     \
465         interlocked.cs          \
466         delegate-async-exit.cs  \
467         delegate-delegate-exit.cs       \
468         delegate-exit.cs        \
469         delegate-disposed-hashcode.cs   \
470         finalizer-abort.cs      \
471         finalizer-exception.cs  \
472         finalizer-exit.cs       \
473         finalizer-thread.cs     \
474         main-exit.cs    \
475         main-returns-abort-resetabort.cs        \
476         main-returns-background-abort-resetabort.cs     \
477         main-returns-background-resetabort.cs   \
478         main-returns-background.cs      \
479         main-returns-background-change.cs       \
480         main-returns.cs         \
481         subthread-exit.cs       \
482         desweak.cs              \
483         exists.cs               \
484         handleref.cs    \
485         install_eh_callback.cs  \
486         dbnull-missing.cs       \
487         test-type-ctor.cs       \
488         soft-float-tests.cs     \
489         thread-exit.cs          \
490         finalize-parent.cs      \
491         interlocked-2.2.cs      \
492         pinvoke-2.2.cs          \
493         bug-78431.2.cs          \
494         bug-79684.2.cs          \
495         catch-generics.2.cs     \
496         event-get.2.cs          \
497         safehandle.2.cs         \
498         module-cctor-loader.2.cs        \
499         generics-invoke-byref.2.cs      \
500         generic-signature-compare.2.cs  \
501         generics-sharing.2.cs   \
502         shared-generic-methods.2.cs     \
503         shared-generic-synchronized.2.cs        \
504         generic-inlining.2.cs   \
505         generic-initobj.2.cs    \
506         generic-delegate.2.cs   \
507         generic-sizeof.2.cs     \
508         generic-virtual.2.cs    \
509         generic-interface-methods.2.cs  \
510         generic-array-type.2.cs \
511         generic-method-patching.2.cs    \
512         generic-static-methods.2.cs     \
513         generic-null-call.2.cs  \
514         generic-special.2.cs    \
515         generic-special2.2.cs   \
516         generic-exceptions.2.cs \
517         generic-virtual2.2.cs   \
518         generic-valuetype-interface.2.cs        \
519         generic-getgenericarguments.2.cs        \
520         generic-synchronized.2.cs       \
521         generic-delegate-ctor.2.cs      \
522         generic-array-iface-set.2.cs    \
523         generic-typedef.2.cs    \
524         bug-431413.2.cs \
525         bug-459285.2.cs \
526         generic-virtual-invoke.2.cs     \
527         bug-461198.2.cs \
528         generic-sealed-virtual.2.cs     \
529         generic-system-arrays.2.cs      \
530         generic-stack-traces.2.cs       \
531         generic-stack-traces2.2.cs      \
532         bug-472600.2.cs \
533         recursive-generics.2.cs \
534         bug-473482.2.cs \
535         bug-473999.2.cs \
536         bug-479763.2.cs \
537         bug-616463.cs   \
538         bug-80392.2.cs          \
539         bug-82194.2.cs  \
540         anonarray.2.cs  \
541         ienumerator-interfaces.2.cs     \
542         array-enumerator-ifaces.2.cs    \
543         generic_type_definition_encoding.2.cs \
544         bug-333798.2.cs         \
545         bug-348522.2.cs         \
546         bug-340662_bug.cs       \
547         bug-325283.2.cs \
548         thunks.cs \
549         winx64structs.cs \
550         nullable_boxing.2.cs    \
551         valuetype-equals.cs     \
552         custom-modifiers.2.cs   \
553         custom-modifiers-inheritance.cs \
554         bug-382986.cs   \
555         test-inline-call-stack.cs       \
556         bug-324535.cs   \
557         modules.cs      \
558         bug-81673.cs    \
559         bug-81691.cs    \
560         bug-415577.cs   \
561         filter-stack.cs \
562         vararg.cs       \
563         vararg2.cs      \
564         bug-461867.cs   \
565         bug-461941.cs   \
566         bug-461261.cs   \
567         bug-400716.cs   \
568         bug-459094.cs   \
569         bug-467456.cs   \
570         bug-508538.cs   \
571         bug-472692.2.cs         \
572         gchandles.cs    \
573         interlocked-3.cs        \
574         interlocked-4.2.cs      \
575         w32message.cs   \
576         gc-altstack.cs  \
577         large-gc-bitmap.cs      \
578         bug-561239.cs   \
579         bug-562150.cs   \
580         bug-599469.cs   \
581         monitor-resurrection.cs \
582         monitor-wait-abort.cs   \
583         monitor-abort.cs        \
584         bug-666008.cs   \
585         bug-685908.cs   \
586         sgen-long-vtype.cs      \
587         delegate-invoke.cs      \
588         delegate-prop.cs        \
589         bug-696593.cs   \
590         bug-705140.cs   \
591         bug-1147.cs     \
592         mono-path.cs    \
593         bug-bxc-795.cs  \
594         bug-3903.cs     \
595         async-with-cb-throws.cs \
596         bug-6148.cs     \
597         bug-10127.cs    \
598         bug-18026.cs    \
599         allow-synchronous-major.cs      \
600         block_guard_restore_aligment_on_exit.cs \
601         thread_static_gc_layout.cs \
602         sleep.cs \
603         bug-27147.cs    \
604         bug-30085.cs    \
605         bug-17537.cs    \
606         pinvoke_ppcc.cs \
607         pinvoke_ppcs.cs \
608         pinvoke_ppci.cs \
609         pinvoke_ppcf.cs \
610         pinvoke_ppcd.cs \
611         bug-29585.cs    \
612         priority.cs     \
613         abort-cctor.cs  \
614         abort-try-holes.cs \
615         abort-tests.cs \
616         thread-native-exit.cs \
617         reference-loader.cs \
618         thread-suspend-suspended.cs \
619         thread-suspend-selfsuspended.cs \
620         remoting4.cs    \
621         remoting1.cs    \
622         remoting2.cs    \
623         remoting3.cs    \
624         remoting5.cs    \
625         appdomain.cs    \
626         appdomain-client.cs     \
627         appdomain-unload.cs     \
628         appdomain-async-invoke.cs       \
629         appdomain-thread-abort.cs       \
630         appdomain1.cs   \
631         appdomain2.cs   \
632         appdomain-exit.cs       \
633         appdomain-serialize-exception.cs \
634         assemblyresolve_event2.2.cs     \
635         appdomain-unload-callback.cs    \
636         appdomain-unload-doesnot-raise-pending-events.cs        \
637         appdomain-unload-asmload.cs     \
638         appdomain-unload-exception.cs   \
639         unload-appdomain-on-shutdown.cs \
640         appdomain-marshalbyref-assemblyload.cs \
641         bug-47295.cs    \
642         loader.cs       \
643         pinvoke2.cs     \
644         generic-type-builder.2.cs       \
645         dynamic-generic-size.cs \
646         cominterop.cs   \
647         dynamic-method-access.2.cs      \
648         dynamic-method-finalize.2.cs    \
649         dynamic-method-stack-traces.cs  \
650         generic_type_definition.2.cs    \
651         bug-333798-tb.2.cs      \
652         bug-335131.2.cs \
653         bug-322722_patch_bx.2.cs        \
654         bug-322722_dyn_method_throw.2.cs        \
655         bug-389886-2.cs \
656         bug-349190.2.cs \
657         bug-389886-sre-generic-interface-instances.cs   \
658         bug-462592.cs   \
659         bug-575941.cs   \
660         bug-389886-3.cs \
661         constant-division.cs    \
662         dynamic-method-resurrection.cs  \
663         bug-80307.cs    \
664         assembly_append_ordering.cs     \
665         bug-544446.cs   \
666         bug-36848.cs    \
667         generic-marshalbyref.2.cs       \
668         stackframes-async.2.cs  \
669         transparentproxy.cs     \
670         bug-48015.cs    \
671         delegate9.cs    \
672         marshal-valuetypes.cs   \
673         xdomain-threads.cs      \
674         monitor.cs      \
675         generic-xdomain.2.cs    \
676         threadpool-exceptions7.cs       \
677         cross-domain.cs \
678         generic-unloading.2.cs  \
679         namedmutex-destroy-race.cs      \
680         thread6.cs      \
681         thread7.cs      \
682         appdomain-threadpool-unload.cs  \
683         process-unref-race.cs   \
684         bug-46661.cs    \
685         w32message.cs \
686         runtime-invoke.gen.cs \
687         imt_big_iface_test.cs \
688         bug-58782-plain-throw.cs \
689         bug-58782-capture-and-throw.cs \
690         recursive-struct-arrays.cs \
691         struct-explicit-layout.cs \
692         bug-59281.cs    \
693         init_array_with_lazy_type.cs \
694         weak-fields.cs \
695         threads-leak.cs \
696         threads-init.cs \
697         bug-60848.cs \
698         bug-59400.cs \
699         tailcall-generic-cast-cs.cs \
700         tailcall-interface.cs \
701         bug-60843.cs    \
702         nested_type_visibility.cs       \
703         dynamic-method-churn.cs \
704         verbose.cs \
705         generic-unmanaged-constraint.cs \
706         bug-10834.cs \
707         bug-10837.cs    \
708         bug-gh-9507.cs
710 # some tests fail to compile on mcs
711 if CSC_IS_ROSLYN
712 TESTS_CS_SRC += roslyn-bug-19038.cs sizeof-empty-structs.cs
713 endif
715 if AMD64
716 TESTS_CS_SRC += async-exc-compilation.cs finally_guard.cs finally_block_ending_in_dead_bb.cs
717 if !HOST_WIN32
718 # requires working altstack
719 TESTS_CS_SRC += bug-60862.cs
720 endif
721 endif
723 if X86
724 TESTS_CS_SRC += async-exc-compilation.cs finally_guard.cs finally_block_ending_in_dead_bb.cs
725 if !HOST_WIN32
726 # requires working altstack
727 TESTS_CS_SRC += bug-60862.cs
728 endif
729 endif
731 #maybe this test works on linux, not sure
732 if HOST_DARWIN
733 TESTS_CS_SRC += bug-8417.cs
734 endif
736 if CROSS_COMPILING # FIXME build vs. host vs. target
737 TAILCALL_INTERFACE_CONSERVESTACK_IL=
738 TAILCALL_FSHARP_DEEPTAIL_IL=
739 else
740 if HOST_WASM # FIXME build problem
741 TAILCALL_INTERFACE_CONSERVESTACK_IL=
742 TAILCALL_FSHARP_DEEPTAIL_IL=
743 else
744 if HOST_WIN32 # FIXME build problem
745 TAILCALL_INTERFACE_CONSERVESTACK_IL=
746 TAILCALL_FSHARP_DEEPTAIL_IL=
747 else
748 # These tests are produced by splitting up tailcall-interface-conservestack.il.
749 TAILCALL_INTERFACE_CONSERVESTACK_IL=\
750         tailcall/interface-conservestack/1.il \
751         tailcall/interface-conservestack/10.il \
752         tailcall/interface-conservestack/11.il \
753         tailcall/interface-conservestack/12.il \
754         tailcall/interface-conservestack/13.il \
755         tailcall/interface-conservestack/14.il \
756         tailcall/interface-conservestack/15.il \
757         tailcall/interface-conservestack/16.il \
758         tailcall/interface-conservestack/17.il \
759         tailcall/interface-conservestack/18.il \
760         tailcall/interface-conservestack/19.il \
761         tailcall/interface-conservestack/2.il \
762         tailcall/interface-conservestack/20.il \
763         tailcall/interface-conservestack/21.il \
764         tailcall/interface-conservestack/22.il \
765         tailcall/interface-conservestack/23.il \
766         tailcall/interface-conservestack/24.il \
767         tailcall/interface-conservestack/25.il \
768         tailcall/interface-conservestack/26.il \
769         tailcall/interface-conservestack/27.il \
770         tailcall/interface-conservestack/28.il \
771         tailcall/interface-conservestack/29.il \
772         tailcall/interface-conservestack/3.il \
773         tailcall/interface-conservestack/30.il \
774         tailcall/interface-conservestack/31.il \
775         tailcall/interface-conservestack/32.il \
776         tailcall/interface-conservestack/33.il \
777         tailcall/interface-conservestack/34.il \
778         tailcall/interface-conservestack/35.il \
779         tailcall/interface-conservestack/36.il \
780         tailcall/interface-conservestack/37.il \
781         tailcall/interface-conservestack/38.il \
782         tailcall/interface-conservestack/39.il \
783         tailcall/interface-conservestack/4.il \
784         tailcall/interface-conservestack/40.il \
785         tailcall/interface-conservestack/41.il \
786         tailcall/interface-conservestack/42.il \
787         tailcall/interface-conservestack/43.il \
788         tailcall/interface-conservestack/44.il \
789         tailcall/interface-conservestack/45.il \
790         tailcall/interface-conservestack/46.il \
791         tailcall/interface-conservestack/47.il \
792         tailcall/interface-conservestack/48.il \
793         tailcall/interface-conservestack/49.il \
794         tailcall/interface-conservestack/5.il \
795         tailcall/interface-conservestack/50.il \
796         tailcall/interface-conservestack/51.il \
797         tailcall/interface-conservestack/52.il \
798         tailcall/interface-conservestack/53.il \
799         tailcall/interface-conservestack/6.il \
800         tailcall/interface-conservestack/7.il \
801         tailcall/interface-conservestack/8.il \
802         tailcall/interface-conservestack/9.il
804 # These tests are produced by splitting up tailcall/fsharp-deeptail.il.
805 TAILCALL_FSHARP_DEEPTAIL_IL=\
806         tailcall/fsharp-deeptail/Seq.filter-length1.il \
807         tailcall/fsharp-deeptail/Seq.filter-length2.il \
808         tailcall/fsharp-deeptail/Seq.filter-length3.il \
809         tailcall/fsharp-deeptail/StaticTailCallLoop_DateTime_.il \
810         tailcall/fsharp-deeptail/StaticTailCallLoop_int_.il \
811         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_DateTime_.Method1_DateTime_.il \
812         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_DateTime_.Method1_byte_.il \
813         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_DateTime_.Method1_int_.il \
814         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_DateTime_.Method1_string_.il \
815         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_DatstringeTime_.Method1_string_.il \
816         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_byte_.Method1_DateTime_.il \
817         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_byte_.Method1_byte_.il \
818         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_byte_.Method1_int_.il \
819         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_byte_.Method1_string_.il \
820         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_int_.Method1_DateTime_.il \
821         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_int_.Method1_byte_.il \
822         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_int_.Method1_int_.il \
823         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_int_.Method1_string_.il \
824         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_string_.Method1_DateTime_.il \
825         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_string_.Method1_byte_.il \
826         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_string_.Method1_int_.il \
827         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_DateTime_.Method1_DateTime_.il \
828         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_DateTime_.Method1_byte_.il \
829         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_DateTime_.Method1_int_.il \
830         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_DateTime_.Method1_string_.il \
831         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_DatstringeTime_.Method1_string_.il \
832         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_byte_.Method1_DateTime_.il \
833         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_byte_.Method1_byte_.il \
834         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_byte_.Method1_int_.il \
835         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_byte_.Method1_string_.il \
836         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_int_.Method1_DateTime_.il \
837         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_int_.Method1_byte_.il \
838         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_int_.Method1_int_.il \
839         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_int_.Method1_string_.il \
840         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_string_.Method1_DateTime_.il \
841         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_string_.Method1_byte_.il \
842         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_string_.Method1_int_.il \
843         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_DateTime_.Method1_DateTime_.il \
844         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_DateTime_.Method1_byte_.il \
845         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_DateTime_.Method1_int_.il \
846         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_DateTime_.Method1_string_.il \
847         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_byte_.Method1_DateTime_.il \
848         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_byte_.Method1_byte_.il \
849         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_byte_.Method1_int_.il \
850         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_byte_.Method1_string_.il \
851         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_int_.Method1_DateTime_.il \
852         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_int_.Method1_byte_.il \
853         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_int_.Method1_int_.il \
854         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_int_.Method1_string_.il \
855         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_string_.Method1_DateTime_.il \
856         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_string_.Method1_byte_.il \
857         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_string_.Method1_int_.il \
858         tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_string_.Method1_string_.il \
859         tailcall/fsharp-deeptail/TailCallLoopGenericClass_DateTime_.il \
860         tailcall/fsharp-deeptail/TailCallLoopGenericClass_int_.il \
861         tailcall/fsharp-deeptail/TailCallLoopGenericClass_string_.il \
862         tailcall/fsharp-deeptail/TailCallLoop_DateTime_.il \
863         tailcall/fsharp-deeptail/TailCallLoop_int_.il \
864         tailcall/fsharp-deeptail/mutualTail1IsEven.il \
865         tailcall/fsharp-deeptail/mutualTail1IsOdd.il \
866         tailcall/fsharp-deeptail/simpleTail1.il \
867         tailcall/fsharp-deeptail/simpleTail2.il
869 $(TAILCALL_FSHARP_DEEPTAIL_IL): tailcall/fsharp-deeptail.stamp
871 $(TAILCALL_INTERFACE_CONSERVESTACK_IL): tailcall/interface-conservestack.stamp
873 tailcall/fsharp-deeptail.stamp: tailcall/split-fsharp$(EXEEXT) tailcall/fsharp-deeptail.il
874         ./tailcall/split-fsharp$(EXEEXT) < $(srcdir)/tailcall/fsharp-deeptail.il
875         touch -f $@
877 tailcall/interface-conservestack.stamp: split-tailcall-interface-conservestack$(EXEEXT) tailcall-interface-conservestack.il
878         ./split-tailcall-interface-conservestack$(EXEEXT) < $(srcdir)/tailcall-interface-conservestack.il
879         touch -f $@
881 noinst_PROGRAMS = tailcall/split-fsharp split-tailcall-interface-conservestack
883 tailcall_split_fsharp_SOURCES=tailcall/split-fsharp.cpp
885 split_tailcall_interface_conservestack_SOURCES=split-tailcall-interface-conservestack.cpp
887 endif # HOST_WIN32
888 endif # HOST_WASM
889 endif # CROSS_COMPILING
891 BUILT_SOURCES += $(TAILCALL_FSHARP_DEEPTAIL_IL) $(TAILCALL_INTERFACE_CONSERVESTACK_IL)
893 TESTS_IL_SRC=                   \
894         tailcall/2.il        \
895         tailcall/3.il        \
896         tailcall/4.il        \
897         tailcall/fsharp-deeptail.il          \
898         tailcall/fsharp-shallowtail.il   \
899         tailcall/fsharp-shallownotail.il \
900         $(TAILCALL_FSHARP_DEEPTAIL_IL) \
901         gptail1.il              \
902         itail1.il               \
903         itaili1.il              \
904         ivtail1.il              \
905         sirtail1.il             \
906         sitail1.il              \
907         srtail1.il              \
908         stail1.il               \
909         tail1.il                \
910         taili1.il               \
911         vtail1.il               \
912         tailcall-virt.il        \
913         tailcall-rgctxa.il      \
914         tailcall-rgctxb.il      \
915         tailcall-rgctxb-static.il \
916         tailcall-mrgctx.il      \
917         $(TAILCALL_INTERFACE_CONSERVESTACK_IL) \
918         tailcall-interface-justrun.il \
919         field-access.il         \
920         method-access.il        \
921         ldftn-access.il         \
922         cpblkTest.il            \
923         vbinterface.il          \
924         calliTest.il            \
925         calliGenericTest.il             \
926         ckfiniteTest.il         \
927         fault-handler.il                \
928         locallocTest.il         \
929         initblkTest.il          \
930         qt-instance.il          \
931         vararg3.il              \
932         bug-29859.il            \
933         bug-78549.il            \
934         static-fields-nonconst.il       \
935         reload-at-bb-end.il     \
936         test-enum-indstoreil.il \
937         filter-bug.il           \
938         even-odd.il             \
939         bug-82022.il    \
940         vt-sync-method.il       \
941         enum_types.il   \
942         invalid-token.il        \
943         call_missing_method.il  \
944         call_missing_class.il   \
945         calli_sig_check.il      \
946         ldfld_missing_field.il  \
947         ldfld_missing_class.il  \
948         find-method.2.il        \
949         bug-79215.2.il  \
950         bug-79956.2.il  \
951         bug-327438.2.il \
952         bug-387274.2.il \
953         bug-426309.2.il \
954         ldtoken_with_byref_typespec.2.il \
955         resolve_method_bug.2.il \
956         resolve_field_bug.2.il \
957         resolve_type_bug.2.il   \
958         generics-sharing-other-exc.2.il \
959         generic-ldobj.2.il      \
960         generic-mkrefany.2.il   \
961         generic-refanyval.2.il  \
962         generic-ldtoken.2.il    \
963         generic-ldtoken-method.2.il     \
964         generic-ldtoken-field.2.il      \
965         generic-tailcall.2.il   \
966         generic-tailcall2.2.il  \
967         generic-array-exc.2.il  \
968         generic-valuetype-newobj2.2.il  \
969         generic-valuetype-newobj.2.il   \
970         generic-constrained.2.il        \
971         generic-type-load-exception.2.il        \
972         bug-81466.il    \
973         bug457574.il    \
974         bug445361.il    \
975         bug-463303.il   \
976         bug469742.2.il  \
977         bug-528055.il   \
978         array_load_exception.il \
979         bug-481403.il   \
980         interface-with-static-method.il \
981         bug-633291.il   \
982         delegate-with-null-target.il    \
983         bug-318677.il   \
984         gsharing-valuetype-layout.il    \
985         invalid_generic_instantiation.il \
986         bug-45841-fpstack-exceptions.il \
987         instance_tailrec.il     \
988         dim-constrainedcall.il  \
989         dim-diamondshape.il     \
990         dim-genericmethods.il   \
991         dim-methodimpl.il       \
992         dim-sharedgenerics.il   \
993         dim-simple.il   \
994         dim-valuetypes.il \
995         tailcall-generic-cast-conservestack-il.il \
996         tailcall-generic-cast-nocrash-il.il \
997         tailcall-member-function-in-valuetype.il \
998         tailcall-return-valuetype.il \
999         tailcall-valuetype-parameter.il \
1000         ldfldvt.il \
1001         newobj-abstract.il \
1002         invalid-isbyreflike.il
1004 # This test crashes the runtime, even with recent fixes.
1005 #       incorrect-ldvirtftn-read-behind-for-dup.il
1007 TESTS_GSHARED_SRC = \
1008         generics-sharing.2.cs   \
1009         shared-generic-methods.2.cs     \
1010         shared-generic-synchronized.2.cs        \
1011         generic-initobj.2.cs            \
1012         generics-sharing-other-exc.2.cs \
1013         generic-box.2.cs                \
1014         generic-unbox.2.cs      \
1015         generic-delegate.2.cs   \
1016         generic-sizeof.2.cs     \
1017         generic-ldobj.2.cs      \
1018         generic-mkrefany.2.cs                   \
1019         generic-refanyval.2.cs  \
1020         generic-ldtoken.2.cs                    \
1021         generic-ldtoken-method.2.cs     \
1022         generic-ldtoken-field.2.cs      \
1023         generic-virtual.2.cs    \
1024         generic-tailcall.2.cs                   \
1025         generic-interface-methods.2.cs  \
1026         generic-array-type.2.cs \
1027         generic-method-patching.2.cs    \
1028         generic-static-methods.2.cs     \
1029         generic-null-call.2.cs  \
1030         generic-tailcall2.2.cs                  \
1031         generic-array-exc.2.cs  \
1032         generic-special.2.cs                    \
1033         generic-special2.2.cs   \
1034         generic-exceptions.2.cs \
1035         generic-delegate2.2.cs          \
1036         generic-virtual2.2.cs   \
1037         generic-valuetype-interface.2.cs        \
1038         generic-valuetype-newobj.2.cs   \
1039         generic-valuetype-newobj2.2.cs  \
1040         generic-getgenericarguments.2.cs        \
1041         generic-synchronized.2.cs       \
1042         generic-delegate-ctor.2.cs              \
1043         generic-constrained.2.cs        \
1044         bug-431413.2.cs                 \
1045         generic-virtual-invoke.2.cs     \
1046         generic-typedef.2.cs            \
1047         generic-marshalbyref.2.cs       \
1048         bug-459285.2.cs \
1049         bug-461198.2.cs \
1050         generic-sealed-virtual.2.cs     \
1051         generic-system-arrays.2.cs      \
1052         generic-stack-traces.2.cs       \
1053         generic-stack-traces2.2.cs              \
1054         bug-472600.2.cs \
1055         bug-473482.2.cs \
1056         bug-473999.2.cs         \
1057         bug-479763.2.cs                         \
1058         generic-type-load-exception.2.cs        \
1059         bug-616463.cs   \
1060         bug-1147.cs     \
1061         generic-type-builder.2.cs
1063 PLATFORM_DISABLED_TESTS=\
1064         $(TAILCALL_DISABLED_TESTS_RUN) \
1065         tailcall-member-function-in-valuetype.exe \
1066         tailcall-rgctxb.exe
1068 if HOST_WIN32
1069 PLATFORM_DISABLED_TESTS += bug-58782-plain-throw.exe bug-58782-capture-and-throw.exe
1071 # see https://github.com/mono/mono/issues/9739
1072 PLATFORM_DISABLED_TESTS += verbose.exe
1073 endif
1077 if HOST_DARWIN
1079 # see https://github.com/mono/mono/issues/10845
1080 PLATFORM_DISABLED_TESTS += monitor-wait-abort.exe
1081 else
1082 PLATFORM_DISABLED_TESTS += merp-json-valid.exe
1083 endif
1085 if AMD64
1086 # #651684
1087 PLATFORM_DISABLED_TESTS += finally_guard.exe
1089 if HOST_WIN32
1090 PLATFORM_DISABLED_TESTS += w32message.exe
1091 endif
1093 endif
1095 if X86
1097 if HOST_WIN32
1098 PLATFORM_DISABLED_TESTS += async-exc-compilation.exe finally_guard.exe finally_block_ending_in_dead_bb.exe \
1099         bug-18026.exe monitor.exe threadpool-exceptions5.exe process-unref-race.exe w32message.exe \
1100         unhandled-exception-1.exe unhandled-exception-2.exe unhandled-exception-3.exe unhandled-exception-4.exe \
1101         unhandled-exception-5.exe unhandled-exception-6.exe unhandled-exception-7.exe unhandled-exception-8.exe
1102 endif
1104 # test_virt.exe fails because callee takes more parameters than caller, 1 vs. 0, and
1105 # x86 passes no parameters in registers, so it is a stack imbalance.
1106 PLATFORM_DISABLED_TESTS += tailcall/coreclr/JIT/Methodical/tailcall/test_virt.exe
1108 endif
1110 if POWERPC
1111 # bug #71274
1112 PLATFORM_DISABLED_TESTS += finalizer-abort.exe finalizer-exception.exe finalizer-exit.exe
1113 endif
1115 if POWERPC64
1116 # FIXME: These tests hang/fail for unknown reasons
1117 PLATFORM_DISABLED_TESTS += monitor.exe threadpool-exceptions5.exe appdomain-unload.exe \
1118         pinvoke2.exe pinvoke3.exe pinvoke11.exe threadpool-exceptions7.exe winx64structs.exe bug-10127.exe pinvoke_ppcc.exe \
1119         pinvoke_ppcs.exe pinvoke_ppci.exe pinvoke_ppcf.exe pinvoke_ppcd.exe abort-cctor.exe load-exceptions.exe \
1120         sgen-domain-unload-2.exe sgen-weakref-stress.exe sgen-cementing-stress.exe sgen-new-threads-dont-join-stw.exe \
1121         sgen-new-threads-dont-join-stw-2.exe sgen-new-threads-collect.exe sgen-bridge.exe
1122 PLATFORM_DISABLED_TESTS += appdomain-threadpool-unload.exe
1123 PLATFORM_DISABLED_TESTS += bug-60848.exe
1124 endif
1126 if ARM
1127 PLATFORM_DISABLED_TESTS += filter-stack.exe weak-fields.exe
1129 # Most ARM problems are due to extra_arg and cannot be easily fixed, except for easy
1130 # bitcode-specific fix which has been declined. A few are uncertain and should be investigated,
1131 # but still probably extra_arg.
1132 PLATFORM_DISABLED_TESTS += ivtail1.exe
1133 PLATFORM_DISABLED_TESTS += tailcall-generic-cast-conservestack-il.exe
1134 PLATFORM_DISABLED_TESTS += tailcall-mrgctx.exe
1135 PLATFORM_DISABLED_TESTS += tailcall-rgctxa.exe
1136 PLATFORM_DISABLED_TESTS += tailcall-virt.exe
1137 PLATFORM_DISABLED_TESTS += tailcall/coreclr/JIT/Directed/tailcall/tailcall.exe
1138 PLATFORM_DISABLED_TESTS += tailcall/2.exe
1139 PLATFORM_DISABLED_TESTS += tailcall/3.exe
1140 PLATFORM_DISABLED_TESTS += tailcall/4.exe
1141 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_string_.Method1_string_.exe
1143 # FIXME These presumably take an extra parameter though this should be confirmed.
1144 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_DateTime_.Method1_DateTime_.exe
1145 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_DateTime_.Method1_byte_.exe
1146 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_DateTime_.Method1_int_.exe
1147 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_DateTime_.Method1_string_.exe
1148 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_DatstringeTime_.Method1_string_.exe
1149 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_byte_.Method1_DateTime_.exe
1150 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_byte_.Method1_byte_.exe
1151 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_byte_.Method1_int_.exe
1152 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_byte_.Method1_string_.exe
1153 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_int_.Method1_DateTime_.exe
1154 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_int_.Method1_byte_.exe
1155 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_int_.Method1_int_.exe
1156 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_int_.Method1_string_.exe
1157 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_string_.Method1_DateTime_.exe
1158 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_string_.Method1_byte_.exe
1159 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_string_.Method1_int_.exe
1161 # Interface calls cannot be tailcalls on ARM due to extra_arg. Bitcode could easily work however.
1162 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail.exe
1163 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_DateTime_.Method1_DateTime_.exe
1164 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_DateTime_.Method1_byte_.exe
1165 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_DateTime_.Method1_int_.exe
1166 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_DateTime_.Method1_string_.exe
1167 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_DatstringeTime_.Method1_string_.exe
1168 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_byte_.Method1_DateTime_.exe
1169 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_byte_.Method1_byte_.exe
1170 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_byte_.Method1_int_.exe
1171 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_byte_.Method1_string_.exe
1172 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_int_.Method1_DateTime_.exe
1173 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_int_.Method1_byte_.exe
1174 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_int_.Method1_int_.exe
1175 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_int_.Method1_string_.exe
1176 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_string_.Method1_DateTime_.exe
1177 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_string_.Method1_byte_.exe
1178 PLATFORM_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_string_.Method1_int_.exe
1180 # Interface calls cannot be tailcalls on ARM due to extra_arg. Bitcode could easily work however.
1181 PLATFORM_DISABLED_TESTS += tailcall-interface-conservestack.exe
1182 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/1.exe
1183 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/10.exe
1184 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/11.exe
1185 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/12.exe
1186 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/13.exe
1187 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/14.exe
1188 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/15.exe
1189 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/16.exe
1190 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/17.exe
1191 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/18.exe
1192 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/19.exe
1193 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/2.exe
1194 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/20.exe
1195 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/21.exe
1196 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/22.exe
1197 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/23.exe
1198 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/24.exe
1199 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/25.exe
1200 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/26.exe
1201 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/27.exe
1202 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/28.exe
1203 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/29.exe
1204 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/3.exe
1205 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/30.exe
1206 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/31.exe
1207 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/32.exe
1208 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/33.exe
1209 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/34.exe
1210 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/35.exe
1211 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/36.exe
1212 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/37.exe
1213 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/38.exe
1214 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/39.exe
1215 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/4.exe
1216 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/40.exe
1217 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/41.exe
1218 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/42.exe
1219 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/43.exe
1220 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/44.exe
1221 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/45.exe
1222 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/46.exe
1223 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/47.exe
1224 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/48.exe
1225 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/49.exe
1226 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/5.exe
1227 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/50.exe
1228 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/51.exe
1229 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/52.exe
1230 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/6.exe
1231 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/7.exe
1232 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/8.exe
1233 PLATFORM_DISABLED_TESTS += tailcall/interface-conservestack/9.exe
1234 endif
1236 if ARM64
1237 PLATFORM_DISABLED_TESTS += weak-fields.exe
1238 endif
1240 if MIPS
1241 # monitor.exe is racy
1242 PLATFORM_DISABLED_TESTS += filter-stack.exe monitor.exe
1243 endif
1245 if S390X
1246 PLATFORM_DISABLED_TESTS += dynamic-method-resurrection.exe
1247 #PLATFORM_DISABLED_TESTS=dynamic-method-resurrection.exe exception17.exe
1249 PLATFORM_DISABLED_TESTS += \
1250         sgen-toggleref.exe \
1251         sgen-bridge.exe \
1252         sgen-bridge-major-fragmentation.exe \
1253         sgen-bridge-xref.exe
1254 endif
1256 PROFILE_DISABLED_TESTS= \
1257         $(TAILCALL_DISABLED_TESTS_RUN) \
1258         tailcall-member-function-in-valuetype.exe \
1259         tailcall-rgctxb.exe
1261 if FULL_AOT_TESTS
1262 # Tests which rely on TypeLoadExceptions or MemberAccessExceptions
1263 # In full-aot mode, these cause the relevant methods to be not AOTed.
1264 PROFILE_DISABLED_TESTS += \
1265         typeload-unaligned.exe \
1266         field-access.exe \
1267         invalid_generic_instantiation.exe \
1268         bug-481403.exe \
1269         array_ldelema.exe \
1270         array_load_exception.exe \
1271         bug445361.exe \
1272         generic-type-load-exception.2.exe \
1273         invalid-token.exe \
1274         call_missing_method.exe \
1275         call_missing_class.exe \
1276         custom-attr-errors.exe \
1277         ldfld_missing_field.exe \
1278         ldfld_missing_class.exe \
1279         vt-sync-method.exe \
1280         resolve_method_bug.2.exe \
1281         resolve_field_bug.2.exe \
1282         resolve_type_bug.2.exe \
1283         bug-81691.exe \
1284         bug-327438.2.exe \
1285         newobj-abstract.exe \
1286         invalid-isbyreflike.exe
1288 # Tests which rely on remoting
1289 PROFILE_DISABLED_TESTS += \
1290         context-static.exe \
1291         bug-415577.exe \
1292         generic-marshalbyref.2.exe \
1293         unhandled-exception-7.exe
1295 # Tests which use unsupported pinvoke+full aot
1296 # functionality
1297 PROFILE_DISABLED_TESTS += \
1298         marshal.exe \
1299         marshal2.exe \
1300         marshal6.exe \
1301         marshal7.exe \
1302         marshal8.exe \
1303         pinvoke-2.2.exe \
1304         pinvoke3.exe \
1305         thunks.exe \
1306         bug-58782-plain-throw.exe \
1307         bug-58782-capture-and-throw.exe
1309 # Tests which load assemblies which are not
1310 # in the testing_aot_full profile
1311 PROFILE_DISABLED_TESTS += \
1312         assembly-load-remap.exe
1314 # Test which needs remoting support
1315 PROFILE_DISABLED_TESTS += \
1316         remoting4.exe   \
1317         remoting1.exe   \
1318         remoting2.exe   \
1319         remoting3.exe   \
1320         remoting5.exe
1322 # Tests which needs AppDomain support
1323 PROFILE_DISABLED_TESTS += \
1324         appdomain.exe   \
1325         appdomain-client.exe    \
1326         appdomain-unload.exe    \
1327         appdomain-async-invoke.exe      \
1328         appdomain-thread-abort.exe      \
1329         appdomain1.exe  \
1330         appdomain2.exe  \
1331         appdomain-exit.exe      \
1332         appdomain-unload-asmload.exe \
1333         appdomain-unload-callback.exe   \
1334         appdomain-unload-doesnot-raise-pending-events.exe       \
1335         unload-appdomain-on-shutdown.exe        \
1336         appdomain-marshalbyref-assemblyload.exe \
1337         assemblyresolve_event2.2.exe    \
1338         assemblyresolve_event6.exe      \
1339         bug-544446.exe  \
1340         bug-36848.exe   \
1341         generic-marshalbyref.2.exe      \
1342         stackframes-async.2.exe \
1343         transparentproxy.exe    \
1344         bug-48015.exe   \
1345         delegate9.exe   \
1346         marshal-valuetypes.exe  \
1347         xdomain-threads.exe     \
1348         monitor.exe     \
1349         generic-xdomain.2.exe   \
1350         threadpool-exceptions7.exe      \
1351         cross-domain.exe        \
1352         generic-unloading.2.exe \
1353         appdomain-threadpool-unload.exe
1355 # Tests which needs System.Reflection.Emit support
1356 PROFILE_DISABLED_TESTS += \
1357         bug-47295.exe   \
1358         loader.exe      \
1359         pinvoke2.exe    \
1360         generic-type-builder.2.exe      \
1361         dynamic-generic-size.exe        \
1362         cominterop.exe  \
1363         dynamic-method-access.2.exe     \
1364         dynamic-method-finalize.2.exe   \
1365         dynamic-method-stack-traces.exe \
1366         generic_type_definition.2.exe   \
1367         bug-333798-tb.2.exe     \
1368         bug-335131.2.exe        \
1369         bug-322722_patch_bx.2.exe       \
1370         bug-322722_dyn_method_throw.2.exe       \
1371         bug-389886-2.exe        \
1372         bug-349190.2.exe        \
1373         bug-389886-sre-generic-interface-instances.exe  \
1374         custom-modifiers-inheritance.exe        \
1375         bug-462592.exe  \
1376         bug-575941.exe  \
1377         bug-389886-3.exe        \
1378         constant-division.exe   \
1379         dynamic-method-resurrection.exe \
1380         assembly_append_ordering.exe \
1381         assemblyresolve_event5.exe      \
1382         dynamic-method-churn.exe
1384 # Test which needs System.Web support
1385 PROFILE_DISABLED_TESTS += \
1386         bug-80307.exe
1388 # Tests which needs named Mutex support
1389 PROFILE_DISABLED_TESTS += \
1390         namedmutex-destroy-race.exe
1392 # ThreadAbortException doesn't have necessary field for this test
1393 PROFILE_DISABLED_TESTS += \
1394         thread6.exe
1396 # can't AOT the TestingReferenceAssembly.dll which is a dependency
1397 # of reference-loader.exe because it contains the [ReferenceAssemblyAttribute]
1398 # and the runtime errors out with "File does not contain a valid CIL image."
1399 PROFILE_DISABLED_TESTS += \
1400         reference-loader.exe
1402 # Tests which have no way of finding AOT images because they use Assembly.Load(byte[])
1403 PROFILE_DISABLED_TESTS += \
1404         assembly-load-bytes.exe \
1405         assembly-load-bytes-bindingredirect.exe
1407 # Tests which require AOT of a multi-netmodule assemblies
1408 PROFILE_DISABLED_TESTS += test-multi-netmodule-4-exe.exe
1410 # Tests which depend on a case-insensitive filesystem when using AOT
1411 if HOST_DARWIN
1412 else
1413 PROFILE_DISABLED_TESTS += \
1414         assembly-loadfrom-simplename.exe
1415 endif
1417 # constraints-load.il: 
1418 # Failed to load method 0x6000007 from '..../mono/tests/constraints-load.exe' due to 
1419 # Could not resolve type with token 01000002 assembly:mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 type:System.BrokenIComparable`1 member:<none>.
1420 PROFILE_DISABLED_TESTS += \
1421         constraints-load.exe \
1422         calli_sig_check.exe \
1423         bug-515884.exe
1425 PROFILE_DISABLED_TESTS += \
1426         generic-type-builder.2.exe
1428 PROFILE_DISABLED_TESTS += \
1429         sgen-domain-unload.exe  \
1430         sgen-domain-unload-2.exe
1432 PROFILE_DISABLED_TESTS += \
1433         appdomain-loader.exe \
1434         assemblyresolve_event3.exe \
1435         appdomain-serialize-exception.exe
1437 PROFILE_DISABLED_TESTS += \
1438         delegate15.exe
1440 # https://bugzilla.xamarin.com/show_bug.cgi?id=60973
1441 PROFILE_DISABLED_TESTS += \
1442         weak-fields.exe
1444 # Some, probably all, of these tests use gsharedvt.
1445 # gsharedvt is very much at odds with tailcall, and they fail as a result.
1446 # RegularAOT and HybridAOT should be ok.
1448 # The tests might be tweakable but then they will less resemble real world code.
1450 # FullAOT should probably be changed to intersect tailcall signatures called
1451 # and all generic signatures provided, and compile more functions.
1452 # As well, gsharedvt can probably be a tailcall sometimes, like if parameters
1453 # fit in registers and there is no out conversion. Maybe it already does that.
1455 # gsharedvt should be viable when only wrapping "in" but not "out",
1456 # as long as "in" does not expand parameter stack size, which it should never do.
1457 if MONO_ARCH_GSHAREDVT_SUPPORTED
1458 PROFILE_DISABLED_TESTS += tailcall-interface-conservestack.exe
1459 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail.exe
1460 PROFILE_DISABLED_TESTS += tailcall/interface-conservestack/20.exe
1461 PROFILE_DISABLED_TESTS += tailcall/interface-conservestack/26.exe
1462 PROFILE_DISABLED_TESTS += tailcall/interface-conservestack/31.exe
1463 PROFILE_DISABLED_TESTS += tailcall/interface-conservestack/33.exe
1464 PROFILE_DISABLED_TESTS += tailcall/interface-conservestack/34.exe
1465 PROFILE_DISABLED_TESTS += tailcall/interface-conservestack/35.exe
1466 PROFILE_DISABLED_TESTS += tailcall/interface-conservestack/36.exe
1467 PROFILE_DISABLED_TESTS += tailcall/interface-conservestack/37.exe
1468 PROFILE_DISABLED_TESTS += tailcall/interface-conservestack/41.exe
1469 PROFILE_DISABLED_TESTS += tailcall/interface-conservestack/43.exe
1470 PROFILE_DISABLED_TESTS += tailcall/interface-conservestack/44.exe
1471 PROFILE_DISABLED_TESTS += tailcall/interface-conservestack/45.exe
1472 PROFILE_DISABLED_TESTS += tailcall/interface-conservestack/46.exe
1473 PROFILE_DISABLED_TESTS += tailcall/interface-conservestack/47.exe
1474 PROFILE_DISABLED_TESTS += tailcall/interface-conservestack/51.exe
1475 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_string_.Method1_int_.exe
1476 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_int_.Method1_byte_.exe
1477 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_DateTime_.Method1_DateTime_.exe
1478 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_string_.Method1_int_.exe
1479 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_string_.Method1_DateTime_.exe
1480 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_byte_.Method1_int_.exe
1481 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_byte_.Method1_byte_.exe
1482 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_byte_.Method1_string_.exe
1483 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_byte_.Method1_byte_.exe
1484 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_int_.Method1_string_.exe
1485 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_byte_.Method1_int_.exe
1486 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_string_.Method1_byte_.exe
1487 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_byte_.Method1_DateTime_.exe
1488 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_DateTime_.Method1_byte_.exe
1489 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_int_.Method1_int_.exe
1490 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_DateTime_.Method1_string_.exe
1491 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_int_.Method1_byte_.exe
1492 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_byte_.Method1_string_.exe
1493 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_DateTime_.Method1_byte_.exe
1494 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_int_.Method1_DateTime_.exe
1495 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_DateTime_.Method1_int_.exe
1496 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_int_.Method1_DateTime_.exe
1497 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_string_.Method1_DateTime_.exe
1498 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_string_.Method1_byte_.exe
1499 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_byte_.Method1_DateTime_.exe
1500 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_DateTime_.Method1_int_.exe
1501 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_DateTime_.Method1_DateTime_.exe
1502 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_int_.Method1_int_.exe
1503 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_DateTime_.Method1_string_.exe
1504 PROFILE_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_int_.Method1_string_.exe
1506 endif # MONO_ARCH_GSHAREDVT_SUPPORTED
1508 if ARM64
1509 # Times out on ARM64.
1510 # https://github.com/mono/mono/issues/10783
1511 # https://jenkins.mono-project.com/job/test-mono-pull-request-arm64-fullaot+llvm/486/parsed_console/log.html
1512 # https://jenkins.mono-project.com/job/test-mono-pull-request-arm64-fullaot+llvm/471/parsed_console/log.html
1513 PLATFORM_DISABLED_TESTS += tailcall/2.exe
1514 endif # ARM64 FullAOT
1516 endif # FULL_AOT_TESTS
1518 if HYBRID_AOT_TESTS
1519 PROFILE_DISABLED_TESTS += \
1520         bug-80307.exe \
1521         namedmutex-destroy-race.exe
1522 endif
1524 if AOT_FULL_INTERP_TESTS
1526 # AppDomain tests
1527 PROFILE_DISABLED_TESTS += \
1528         appdomain1.exe \
1529         appdomain2.exe \
1530         appdomain-async-invoke.exe \
1531         appdomain.exe \
1532         appdomain-exit.exe \
1533         appdomain-loader.exe \
1534         appdomain-marshalbyref-assemblyload.exe \
1535         appdomain-serialize-exception.exe \
1536         appdomain-thread-abort.exe \
1537         appdomain-threadpool-unload.exe \
1538         appdomain-unload-asmload.exe \
1539         appdomain-unload-callback.exe \
1540         appdomain-unload-doesnot-raise-pending-events.exe \
1541         appdomain-unload.exe \
1542         assemblyresolve_event6.exe \
1543         bug-335131.2.exe \
1544         bug-415577.exe \
1545         cross-domain.exe \
1546         dataslot.exe \
1547         delegate9.exe \
1548         domain-stress.exe \
1549         generic-marshalbyref.2.exe \
1550         generic-unloading.2.exe \
1551         generic-xdomain.2.exe \
1552         hostname.exe \
1553         marshal-valuetypes.exe \
1554         monitor.exe \
1555         pinvoke3.exe \
1556         remoting4.exe \
1557         stackframes-async.2.exe \
1558         suspend-stress-test.exe \
1559         thread6.exe \
1560         threadpool-exceptions7.exe \
1561         unhandled-exception-7.exe \
1562         unhandled-exception-test-case.2.exe \
1563         unload-appdomain-on-shutdown.exe \
1564         xdomain-threads.exe
1566 # Tests which load assemblies which are not in the profile
1567 PROFILE_DISABLED_TESTS += \
1568         assembly-load-remap.exe
1570 # Tests which needs named Mutex support
1571 PROFILE_DISABLED_TESTS += \
1572         namedmutex-destroy-race.exe
1574 # Test which needs System.Web support
1575 PROFILE_DISABLED_TESTS += \
1576         bug-80307.exe
1578 PROFILE_DISABLED_TESTS += \
1579         transparentproxy.exe
1580 endif
1582 if AOT_FULL_INTERP_LLVM_TESTS
1583 # AppDomain tests
1584 PROFILE_DISABLED_TESTS += \
1585         appdomain1.exe \
1586         appdomain2.exe \
1587         appdomain-async-invoke.exe \
1588         appdomain.exe \
1589         appdomain-exit.exe \
1590         appdomain-loader.exe \
1591         appdomain-marshalbyref-assemblyload.exe \
1592         appdomain-serialize-exception.exe \
1593         appdomain-thread-abort.exe \
1594         appdomain-threadpool-unload.exe \
1595         appdomain-unload-asmload.exe \
1596         appdomain-unload-callback.exe \
1597         appdomain-unload-doesnot-raise-pending-events.exe \
1598         appdomain-unload.exe \
1599         assemblyresolve_event6.exe \
1600         bug-335131.2.exe \
1601         bug-415577.exe \
1602         cross-domain.exe \
1603         dataslot.exe \
1604         delegate9.exe \
1605         domain-stress.exe \
1606         generic-marshalbyref.2.exe \
1607         generic-unloading.2.exe \
1608         generic-xdomain.2.exe \
1609         hostname.exe \
1610         marshal-valuetypes.exe \
1611         monitor.exe \
1612         pinvoke3.exe \
1613         remoting4.exe \
1614         stackframes-async.2.exe \
1615         suspend-stress-test.exe \
1616         thread6.exe \
1617         threadpool-exceptions7.exe \
1618         unhandled-exception-7.exe \
1619         unhandled-exception-test-case.2.exe \
1620         unload-appdomain-on-shutdown.exe \
1621         xdomain-threads.exe
1623 # Tests which load assemblies which are not in the profile
1624 PROFILE_DISABLED_TESTS += \
1625         assembly-load-remap.exe
1627 # Tests which needs named Mutex support
1628 PROFILE_DISABLED_TESTS += \
1629         namedmutex-destroy-race.exe
1631 # Test which needs System.Web support
1632 PROFILE_DISABLED_TESTS += \
1633         bug-80307.exe
1635 PROFILE_DISABLED_TESTS += \
1636         bug-70561.exe \
1637         transparentproxy.exe \
1638         finalizer-exception.exe
1640 endif
1642 AOT_DISABLED_TESTS= \
1643         constraints-load.exe \
1644         calli_sig_check.exe
1646 CI_DISABLED_TESTS = \
1647         main-returns-background-resetabort.exe \
1648         main-returns-background-abort-resetabort.exe    \
1649         assemblyresolve_event3.exe \
1650         finally_guard.exe \
1651         generic-xdomain.2.exe
1653 # failing tests which we temporarily disable for PRs
1654 # so they don't interfere with other people's work
1655 CI_PR_DISABLED_TESTS =
1657 # FIXME Hybrid Suspend - see https://github.com/mono/mono/issues/9959
1658 # CI_PR_DISABLED_TESTS += sgen-new-threads-collect.exe
1660 # https://github.com/mono/mono/issues/8997
1661 CI_PR_DISABLED_TESTS += finalizer-thread.exe
1663 # https://github.com/mono/mono/issues/11392
1664 CI_PR_DISABLED_TESTS += appdomain-threadpool-unload.exe
1666 # https://github.com/mono/mono/issues/11415
1667 CI_PR_DISABLED_TESTS += finalizer-abort.exe
1669 # https://github.com/mono/mono/issues/11420
1670 CI_PR_DISABLED_TESTS += process-stress-2.exe
1672 # https://github.com/mono/mono/issues/11417
1673 CI_PR_DISABLED_TESTS += process-stress-3.exe
1675 # appdomain-threadpool-unload.exe creates 100 appdomains, takes too long with llvm
1676 LLVM_DISABLED_TESTS = \
1677         finally_block_ending_in_dead_bb.exe \
1678         appdomain-threadpool-unload.exe
1680 # https://github.com/mono/mono/issues/6490
1681 LLVM_DISABLED_TESTS += \
1682         weak-fields.exe
1684 LLVM = $(filter --llvm, $(MONO_ENV_OPTIONS) $(AOT_BUILD_FLAGS))
1686 # The two finalizer tests only work under sgen
1687 # gc-altstack.exe fails under boehm because it has no support for altstack
1688 # bug-459094.exe creates an extremely deep directory tree
1689 # delegate-invoke.exe depends on 929c6bc9b6d76a273f251e6f5dfacac36e9c38bd which was
1690 # reverted.
1691 # bug-Xamarin-5278.exe got broken by 5d26590e79da139a284459299aee95c25f4cd835
1692 # appdomain-thread-abort.exe: https://bugzilla.xamarin.com/show_bug.cgi?id=47054
1693 # abort-try-holes.exe is flaky due to unwinding failure to the finally block when aborting
1694 # appdomain-marshalbyref-assemblyload.exe: https://bugzilla.xamarin.com/show_bug.cgi?id=49308
1695 # threads-init.exe: runs out of system threads
1696 # dim-constrainedcall.exe: fails on dontnet as well (https://github.com/dotnet/coreclr/issues/15353)
1698 # tailcall-rgctxb.exe
1699 # tailcall-member-function-in-valuetype.exe
1700 #       Any time we have a byref/out parameter, be it
1701 #       an integer, or valuetype-this, we pessimistically
1702 #       will never tailcall.
1704 #       These two cases have valuetype-this.
1705 #       tailcall-rgctxb.exe strives for additional coverage
1706 #       related to generic context, but both tests suffer from
1707 #       the same problem.
1709 #       I suggest we insert range checks.
1710 #       If all parameters are outside the frame,
1711 #       do a tailcall. If any are not, regular call.
1713 #       It'll be a little bigger and have a slowdown,
1714 #       and a speedup (stack locality speeds things up),
1715 #       and enable code that does not work otherwise.
1717 #       Again, tailcall is not just an optimization.
1718 #       It lets code process large data within small stack.
1719 #       If it was just an optimization, desktop CLR would not
1720 #       go so far out of their way to implement it.
1722 # Some of the tailcall tests pass native pointers to locals.
1723 #   Mono does not yet allow that.
1724 #   tailcall "i" is either calli, or integer instead of pointer, and the latter sidesteps the matter.
1725 KNOWN_FAILING_TESTS = \
1726         delegate-async-exception.exe    \
1727         bug-348522.2.exe        \
1728         bug-459094.exe \
1729         delegate-invoke.exe \
1730         bug-Xamarin-5278.exe \
1731         appdomain-marshalbyref-assemblyload.exe \
1732         abort-try-holes.exe \
1733         threads-init.exe \
1734         dim-constrainedcall.exe \
1735         gptail1.exe \
1736         itaili1.exe \
1737         sirtail1.exe \
1738         srtail1.exe \
1739         stail1.exe \
1740         tail1.exe \
1741         taili1.exe \
1742         vtail1.exe \
1743         tailcall-member-function-in-valuetype.exe \
1744         tailcall-rgctxb.exe
1746 DISABLED_TESTS = \
1747         $(KNOWN_FAILING_TESTS) \
1748         $(PLATFORM_DISABLED_TESTS) \
1749         $(PROFILE_DISABLED_TESTS) \
1750         $(if $(AOT),$(AOT_DISABLED_TESTS)) \
1751         $(if $(CI),$(CI_DISABLED_TESTS)) \
1752         $(if $(CI_PR),$(CI_PR_DISABLED_TESTS)) \
1753         $(if $(LLVM),$(LLVM_DISABLED_TESTS))
1755 # Interpreter does not currently implement tailcall.
1756 # Disable all tailcall tests.
1757 INTERP_DISABLED_TESTS = $(DISABLED_TESTS) \
1758         gptail1.exe \
1759         itail1.exe \
1760         itaili1.exe \
1761         ivtail1.exe \
1762         sitail1.exe \
1763         sirtail1.exe \
1764         srtail1.exe \
1765         stail1.exe \
1766         tail1.exe \
1767         taili1.exe \
1768         vtail1.exe \
1769         tailcall-generic-cast-conservestack-il.exe \
1770         tailcall-interface-conservestack.exe \
1771         tailcall-mrgctx.exe \
1772         tailcall-rgctxa.exe \
1773         tailcall-rgctxb.exe \
1774         tailcall-rgctxb-static.exe \
1775         tailcall-virt.exe \
1776         tailcall-return-valuetype.exe \
1777         tailcall/fsharp-deeptail.exe \
1778         tailcall/2.exe \
1779         tailcall/3.exe \
1780         tailcall/4.exe \
1781         tailcall/8273.exe \
1782         $(TAILCALL_DISABLED_TESTS_RUN) \
1783         bug-60843.exe
1784 # FIXME
1785 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/Seq.filter-length1.exe
1786 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/Seq.filter-length2.exe
1787 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/Seq.filter-length3.exe
1788 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/StaticTailCallLoop_DateTime_.exe
1789 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/StaticTailCallLoop_int_.exe
1790 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_DateTime_.Method1_DateTime_.exe
1791 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_DateTime_.Method1_byte_.exe
1792 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_DateTime_.Method1_int_.exe
1793 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_DateTime_.Method1_string_.exe
1794 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_DatstringeTime_.Method1_string_.exe
1795 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_byte_.Method1_DateTime_.exe
1796 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_byte_.Method1_byte_.exe
1797 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_byte_.Method1_int_.exe
1798 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_byte_.Method1_string_.exe
1799 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_int_.Method1_DateTime_.exe
1800 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_int_.Method1_byte_.exe
1801 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_int_.Method1_int_.exe
1802 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_int_.Method1_string_.exe
1803 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_string_.Method1_DateTime_.exe
1804 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_string_.Method1_byte_.exe
1805 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractClass_string_.Method1_int_.exe
1806 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_DateTime_.Method1_DateTime_.exe
1807 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_DateTime_.Method1_byte_.exe
1808 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_DateTime_.Method1_int_.exe
1809 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_DateTime_.Method1_string_.exe
1810 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_DatstringeTime_.Method1_string_.exe
1811 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_byte_.Method1_DateTime_.exe
1812 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_byte_.Method1_byte_.exe
1813 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_byte_.Method1_int_.exe
1814 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_byte_.Method1_string_.exe
1815 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_int_.Method1_DateTime_.exe
1816 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_int_.Method1_byte_.exe
1817 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_int_.Method1_int_.exe
1818 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_int_.Method1_string_.exe
1819 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_string_.Method1_DateTime_.exe
1820 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_string_.Method1_byte_.exe
1821 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethodAbstractInterface_string_.Method1_int_.exe
1822 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_DateTime_.Method1_DateTime_.exe
1823 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_DateTime_.Method1_byte_.exe
1824 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_DateTime_.Method1_int_.exe
1825 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_DateTime_.Method1_string_.exe
1826 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_byte_.Method1_DateTime_.exe
1827 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_byte_.Method1_byte_.exe
1828 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_byte_.Method1_int_.exe
1829 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_byte_.Method1_string_.exe
1830 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_int_.Method1_DateTime_.exe
1831 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_int_.Method1_byte_.exe
1832 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_int_.Method1_int_.exe
1833 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_int_.Method1_string_.exe
1834 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_string_.Method1_DateTime_.exe
1835 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_string_.Method1_byte_.exe
1836 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_string_.Method1_int_.exe
1837 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClassAndMethod_string_.Method1_string_.exe
1838 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClass_DateTime_.exe
1839 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClass_int_.exe
1840 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoopGenericClass_string_.exe
1841 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoop_DateTime_.exe
1842 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/TailCallLoop_int_.exe
1843 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/mutualTail1IsEven.exe
1844 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/mutualTail1IsOdd.exe
1845 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/simpleTail1.exe
1846 INTERP_DISABLED_TESTS += tailcall/fsharp-deeptail/simpleTail2.exe
1848 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/1.exe
1849 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/10.exe
1850 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/11.exe
1851 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/12.exe
1852 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/13.exe
1853 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/14.exe
1854 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/15.exe
1855 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/16.exe
1856 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/17.exe
1857 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/18.exe
1858 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/19.exe
1859 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/2.exe
1860 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/20.exe
1861 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/21.exe
1862 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/22.exe
1863 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/23.exe
1864 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/24.exe
1865 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/25.exe
1866 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/26.exe
1867 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/27.exe
1868 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/28.exe
1869 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/29.exe
1870 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/3.exe
1871 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/30.exe
1872 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/31.exe
1873 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/32.exe
1874 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/33.exe
1875 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/34.exe
1876 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/35.exe
1877 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/36.exe
1878 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/37.exe
1879 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/38.exe
1880 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/39.exe
1881 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/4.exe
1882 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/40.exe
1883 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/41.exe
1884 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/42.exe
1885 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/43.exe
1886 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/44.exe
1887 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/45.exe
1888 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/46.exe
1889 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/47.exe
1890 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/48.exe
1891 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/49.exe
1892 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/5.exe
1893 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/50.exe
1894 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/51.exe
1895 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/52.exe
1896 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/53.exe
1897 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/6.exe
1898 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/7.exe
1899 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/8.exe
1900 INTERP_DISABLED_TESTS += tailcall/interface-conservestack/9.exe
1902 # expected InvalidProgramException not thrown
1903 INTERP_DISABLED_TESTS += calli_sig_check.exe
1906 # bug-48015.exe: be careful when re-enabling, it happens that it returns with exit code 0, but doesn't actually execute the test.
1907 # bug-60862.exe: missing support to map IP->method; only works on platforms with altstack support.
1908 # bug-60843.exe: something goes wrong when turning the decoded enum value into a boxed enum, so the loaded value ends up being random bytes
1910 if ARM
1911 INTERP_DISABLED_TESTS += \
1912         appdomain-unload-callback.exe \
1913         appdomain-unload.exe \
1914         assemblyresolve_event6.exe \
1915         async-with-cb-throws.exe \
1916         block_guard_restore_aligment_on_exit.exe \
1917         bug-323114.exe \
1918         bug-335131.2.exe \
1919         bug-415577.exe \
1920         bug-45841-fpstack-exceptions.exe \
1921         bug-48015.exe \
1922         bug-60862.exe \
1923         bug-80307.exe \
1924         bug-80392.2.exe \
1925         bug445361.exe \
1926         calliGenericTest.exe \
1927         cominterop.exe \
1928         context-static.exe \
1929         delegate-async-exit.exe \
1930         delegate-delegate-exit.exe \
1931         delegate-exit.exe \
1932         delegate1.exe \
1933         delegate3.exe \
1934         delegate5.exe \
1935         delegate8.exe \
1936         delegate9.exe \
1937         dim-diamondshape.exe \
1938         dynamic-method-stack-traces.exe \
1939         even-odd.exe \
1940         exception18.exe \
1941         field-access.exe \
1942         finalizer-exception.exe \
1943         handleref.exe \
1944         monitor-abort.exe \
1945         nullable_boxing.2.exe \
1946         pinvoke2.exe \
1947         pinvoke3.exe \
1948         remoting2.exe \
1949         remoting3.exe \
1950         safehandle.2.exe \
1951         stackframes-async.2.exe \
1952         static-constructor.exe \
1953         threadpool-exceptions2.exe \
1954         threadpool-exceptions3.exe \
1955         threadpool-exceptions4.exe \
1956         threadpool-exceptions5.exe \
1957         threadpool-exceptions6.exe \
1958         thunks.exe \
1959         typeload-unaligned.exe \
1960         vararg.exe \
1961         vararg2.exe \
1962         vararg3.exe
1963 endif
1965 if ARM64
1966 INTERP_DISABLED_TESTS += \
1967         bug-48015.exe \
1968         bug-80307.exe \
1969         dim-diamondshape.exe \
1970         pinvoke3.exe
1971 endif
1973 if AMD64
1974 INTERP_DISABLED_TESTS += \
1975         assemblyresolve_event6.exe \
1976         bug-48015.exe \
1977         bug-60862.exe \
1978         cominterop.exe \
1979         dim-diamondshape.exe \
1980         pinvoke3.exe
1981 endif
1983 TESTS_CS=$(filter-out $(DISABLED_TESTS),$(TESTS_CS_SRC:.cs=.exe))
1984 TESTS_IL=$(filter-out $(DISABLED_TESTS),$(TESTS_IL_SRC:.il=.exe))
1985 TESTS_BENCH=$(filter-out $(DISABLED_TESTS),$(TESTS_BENCH_SRC:.cs=.exe))
1986 TESTS_STRESS=$(filter-out $(DISABLED_TESTS),$(TESTS_STRESS_SRC:.cs=.exe))
1987 TESTS_GSHARED=$(filter-out $(DISABLED_TESTS),$(TESTS_GSHARED_SRC:.cs=.exe))
1988 TESTS_TAILCALL_COMPILE=$(filter-out $(TAILCALL_DISABLED_TESTS_COMPILE),$(TEST_TAILCALL_CS_SRC:.cs=.exe) $(TEST_TAILCALL_IL_SRC:.il=.exe))
1989 TESTS_TAILCALL_RUN=$(filter-out $(TAILCALL_DISABLED_TESTS_RUN),$(TESTS_TAILCALL_COMPILE))
1991 if FULL_AOT_TESTS
1992 TESTSAOT_CS=$(TESTS_CS:.exe=.exe$(PLATFORM_AOT_SUFFIX))
1993 TESTSAOT_IL=$(TESTS_IL:.exe=.exe$(PLATFORM_AOT_SUFFIX))
1994 TESTSAOT_BENCH=$(TESTS_BENCH:.exe=.exe$(PLATFORM_AOT_SUFFIX))
1995 TESTSAOT_STRESS=$(TESTS_STRESS:.exe=.exe$(PLATFORM_AOT_SUFFIX))
1996 TESTSAOT_GSHARED=$(TESTS_GSHARED:.exe=.exe$(PLATFORM_AOT_SUFFIX))
1997 # AOT tests are run by running the non-AOT files. Runtime probes for the AOT file.
1998 TESTSAOT_TAILCALL=$(TESTS_TAILCALL_COMPILE:.exe=.exe$(PLATFORM_AOT_SUFFIX))
1999 endif
2001 if HYBRID_AOT_TESTS
2002 TESTSAOT_CS=$(TESTS_CS:.exe=.exe$(PLATFORM_AOT_SUFFIX))
2003 TESTSAOT_IL=$(TESTS_IL:.exe=.exe$(PLATFORM_AOT_SUFFIX))
2004 TESTSAOT_BENCH=$(TESTS_BENCH:.exe=.exe$(PLATFORM_AOT_SUFFIX))
2005 TESTSAOT_STRESS=$(TESTS_STRESS:.exe=.exe$(PLATFORM_AOT_SUFFIX))
2006 TESTSAOT_GSHARED=$(TESTS_GSHARED:.exe=.exe$(PLATFORM_AOT_SUFFIX))
2007 TESTSAOT_TAILCALL=$(TESTS_TAILCALL_COMPILE:.exe=.exe$(PLATFORM_AOT_SUFFIX))
2008 endif
2010 EXTRA_DIST=test-driver test-runner.cs $(TESTS_CS_SRC) $(TESTS_IL_SRC) \
2011         $(TESTS_BENCH_SRC) $(TESTS_STRESS_SRC) stress-runner.pl \
2012         array-coop-1.cs array-coop-2.cs \
2013         array-coop-bigvt.cs array-coop-int.cs array-coop-smallvt.cs \
2014         array-coop-bigvt.sh array-coop-smallvt.sh array-coop-int.sh \
2015         tailcall-interface-conservestack.il tailcall/fsharp-deeptail.il \
2016         $(TEST_TAILCALL_CS_SRC) \
2017         $(TEST_TAILCALL_IL_SRC)
2019 # This test has extra sources.
2020 tailcall/coreclr/JIT/opt/Tailcall/TailcallVerifyWithPrefix.exe: \
2021                 tailcall/coreclr/JIT/opt/Tailcall/TailcallVerifyTransparentLibraryWithPrefix.il \
2022                 tailcall/coreclr/JIT/opt/Tailcall/TailcallVerifyVerifiableLibraryWithPrefix.il
2024 %.exe: %.il
2025         $(MKDIR_P) $(dir $@)
2026         $(ILASM) -out:$@ $^
2028 if !FULL_AOT_TESTS
2029 if !HYBRID_AOT_TESTS
2030 if !AOT_FULL_INTERP_TESTS
2031 if !AOT_FULL_INTERP_LLVM_TESTS
2032 TEST_DRIVER_HARD_KILL_FEATURE=-r:$(CLASS)/Mono.Posix.dll
2033 endif
2034 endif
2035 endif
2036 endif
2038 if FULL_AOT_TESTS
2039 TEST_DRIVER_DEPEND=TestDriver.dll$(PLATFORM_AOT_SUFFIX)
2040 else
2041 if HYBRID_AOT_TESTS
2042 TEST_DRIVER_DEPEND=TestDriver.dll$(PLATFORM_AOT_SUFFIX)
2043 else
2044 TEST_DRIVER_DEPEND=TestDriver.dll
2045 endif
2046 endif
2048 %.exe: %.cs $(TEST_DRIVER_DEPEND)
2049         $(MKDIR_P) $(dir $@)
2050         $(MCS) -r:$(CLASS)/System.dll -r:$(CLASS)/System.Xml.dll -r:$(CLASS)/System.Core.dll -r:TestDriver.dll $(TEST_DRIVER_HARD_KILL_FEATURE) -out:$@ $<
2052 # N.B. test-runner.exe references the TOOLS_RUNTIME versions of the framework assemblies
2053 test-runner.exe: test-runner.cs $(TEST_DRIVER_DEPEND)
2054         $(MCS) -r:System.dll -r:System.Xml.dll -r:System.Core.dll -r:TestDriver.dll $(TEST_DRIVER_HARD_KILL_FEATURE) -out:$@ $<
2056 %.dll: %.cs
2057         $(MKDIR_P) $(dir $@)
2058         $(MCS) -r:$(CLASS)/System.dll -target:library -out:$@ $<
2059 %.dll: %.il
2060         $(MKDIR_P) $(dir $@)
2061         $(ILASM) /dll /output:$@ $<
2063 reference-loader.exe: reference-loader.cs TestingReferenceAssembly.dll TestingReferenceReferenceAssembly.dll $(TEST_DRIVER_DEPEND)
2064         $(MCS) -r:$(CLASS)/System.dll -r:TestDriver.dll -r:TestingReferenceAssembly.dll -r:TestingReferenceReferenceAssembly.dll $(TEST_DRIVER_HARD_KILL_FEATURE) -out:$@ $(srcdir)/reference-loader.cs
2066 merp-json-valid.exe: merp-json-valid.cs
2067         $(MCS) -r:$(CLASS)/System.Web.Extensions.dll -r:$(CLASS)/System.dll -r:$(CLASS)/System.Xml.dll -r:$(CLASS)/System.Core.dll -out:$@ $<
2069 TestingReferenceAssembly.dll: TestingReferenceAssembly.cs
2070         $(MCS) -target:library -out:$@ $<
2072 TestingReferenceReferenceAssembly.dll: TestingReferenceReferenceAssembly.cs TestingReferenceAssembly.dll
2073         $(MCS) -r:TestingReferenceAssembly.dll -target:library -out:$@ $<
2075 %.exe$(PLATFORM_AOT_SUFFIX): %.exe 
2076         $(RUNTIME) $(TEST_AOT_BUILD_FLAGS) $<
2078 %.dll$(PLATFORM_AOT_SUFFIX): %.dll 
2079         $(RUNTIME) $(TEST_AOT_BUILD_FLAGS) $<
2081 # mkbundle works on ppc, but the pkg-config POC doesn't when run with make test
2082 if POWERPC
2083 test-platform:
2084 else
2085 # Can't use mkbundle on win32 since there is no static build there
2086 # Can't run test-unhandled-exception on Windows because of all the debug popups...
2087 if HOST_WIN32
2088 test-platform:
2089 else
2090 # mkbundle uses the installed mono-2.pc so it won't work if there is no system mono
2091 #test-platform: testbundle test-iomap-regression
2092 test-platform:  test-iomap-regression
2093 endif
2094 endif
2097 # Test that no symbols are missed in eglib-remap.h
2099 if HOST_LINUX
2100 test-platform: test-eglib-remap
2101 else
2102 if HOST_DARWIN
2103 test-platform: test-eglib-remap
2104 endif
2105 endif
2106 # The following regexp describes all symbols that start with "g_" but are not part of eglibc.
2107 # The optional underscore prepending symbol names may or may not appear depending on the
2108 # system and the state of the leading-underscore compiler flag.
2109 OK_G_SYMBOLS='\<_?g_(s?list_(pre|ap)pend_(image|mempool)|concat_dir_and_file|Ctoc)\>'
2110 test-eglib-remap:
2111         @echo "Testing eglib remap..."
2112         @if which nm > /dev/null; then if nm $(top_builddir)/mono/mini/mono | grep -Ev $(OK_G_SYMBOLS) | grep -E 't _?g_'; then exit 1; else exit 0; fi; fi
2114 test-env-options:
2115         MONO_ENV_OPTIONS="--version" $(RUNTIME) array-init.exe | grep -q Architecture:
2117 TESTS_REGULAR = $(TESTS_CS) $(TESTS_IL) $(TESTS_BENCH)
2118 TESTS_INCL_DEPS = $(shell find . -type f -name "*.exe" -o -name "*.dll" -o -name "*.netmodule" -o -name "*.config")
2120 # Target to precompile the test executables
2121 test-local: $(TESTS_REGULAR) $(TESTS_STRESS) $(TESTS_GSHARED) $(TESTSAOT_CS) $(TESTSAOT_IL) $(TESTSAOT_BENCH) $(TESTSAOT_STRESS) $(TESTSAOT_GSHARED) $(TESTS_TAILCALL) $(TESTSAOT_TAILCALL) compile-gac-loading compile-assembly-load-reference test-runner.exe
2123 test-bundle-local:
2124         mkdir -p $(addprefix $(TEST_BUNDLE_PATH)/tests/runtime/,$(sort $(dir $(TESTS_INCL_DEPS))))
2125         @echo $(TESTS_REGULAR) > $(TEST_BUNDLE_PATH)/tests/runtime/runtime-test-list.txt
2126         sed -e 's,$$mono_libdir,$$test_root_dir,g' tests-config > $(TEST_BUNDLE_PATH)/tests/runtime/tests-config.tmpl
2127         cp -L .libs/libtest$(libsuffix) $(TEST_BUNDLE_PATH)/tests/runtime/
2128         $(foreach asset,$(TESTS_INCL_DEPS),cp -L $(asset) $(TEST_BUNDLE_PATH)/tests/runtime/$(dir $(asset));)
2130 # Precompile the test assemblies in parallel
2131 compile-tests:
2132         $(MAKE) -j4 test
2134 # Remove empty .stdout and .stderr files for wrench
2135 rm-empty-logs:
2136         @echo "Removing empty logs..."
2137         find . '(' -name "*.stdout" -o -name "*.stderr" ')' -size 0 -exec rm {} \;
2139 TestDriver.dll:
2140         $(MCS) -target:library -out:$@ $(srcdir)/../mini/TestDriver.cs $(srcdir)/../mini/TestHelpers.cs
2142 runtest: compile-tests
2143         @failed=0; \
2144         passed=0; \
2145         failed_tests="";\
2146         if [ "x$$V" = "x1" ]; then dump_action="dump-output"; else dump_action="no-dump"; fi; \
2147         rm -f testlist testlist.sorted; \
2148         for i in $(TESTS_REGULAR); do echo $${i} >> testlist; sort testlist > testlist.sorted; done; \
2149         for i in `cat testlist.sorted`; do \
2150                 rm -f $${i}.so; \
2151                 $(with_mono_path) $(JITTEST_PROG_RUN) --aot $(TEST_AOT_BUILD_FLAGS) --debug $${i} > $${i}.aotlog 2>&1 || exit 1; \
2152                 if $(srcdir)/test-driver '$(with_mono_path) $(JITTEST_PROG_RUN)' $$i "$(DISABLED_TESTS)" "$${dump_action}" $(TEST_RUNTIME_ARGS) $(TEST_AOT_RUN_FLAGS) ; \
2153                 then \
2154                         passed=`expr $${passed} + 1`; \
2155                 else \
2156                         if [ $$? = 2 ]; then break; fi; \
2157                         failed=`expr $${failed} + 1`; \
2158                         failed_tests="$${failed_tests} $$i"; \
2159                 fi \
2160         done; \
2161         echo "$${passed} test(s) passed. $${failed} test(s) did not pass."; \
2162         rm -f testlist testlist.sorted; \
2163         if [ $${failed} != 0 ]; then \
2164           echo -e "\nFailed tests:\n"; \
2165           for i in $${failed_tests}; do \
2166             echo $${i}; \
2167             if [ "x$$V" = "x1" ]; then \
2168               cat $${i}.stdout; \
2169               cat $${i}.stderr; \
2170             fi; \
2171           done; \
2172           exit 1; \
2173         fi
2175 runtest-managed: test-runner.exe compile-tests
2176         $(TOOLS_RUNTIME) --debug $(TEST_RUNNER) -j a --testsuite-name "runtime" --timeout 300 --disabled "$(DISABLED_TESTS)" $(TESTS_REGULAR)
2178 runtest-managed-serial: test-runner.exe compile-tests
2179         $(TOOLS_RUNTIME) --debug $(TEST_RUNNER) -j 1 --testsuite-name "runtime" --disabled "$(DISABLED_TESTS)" $(TESTS_REGULAR)
2181 test-jit:
2182         @if test x$(M) != x0; then $(MAKE) runtest-managed; else $(MAKE) runtest; fi
2184 testaot:
2185         @$(MAKE) AOT=1 runtest
2187 testtrace:
2188         @$(MAKE) TEST_RUNTIME_ARGS="$${TEST_RUNTIME_ARGS} --trace" runtest
2190 testinterp: test-runner.exe compile-tests
2191         $(TOOLS_RUNTIME) --debug $(TEST_RUNNER) -j a --runtime-args "--interpreter" --testsuite-name "runtime-interp" --timeout 300 --disabled "$(INTERP_DISABLED_TESTS)" $(TESTS_REGULAR)
2193 testfullaotinterp: test-runner.exe compile-tests
2194         $(TOOLS_RUNTIME) --debug $(TEST_RUNNER) -j a --runtime-args "--full-aot-interp" --testsuite-name "runtime-aot-interp" --timeout 300 --disabled "$(INTERP_DISABLED_TESTS)" $(TESTS_REGULAR)
2196 testjitspeed: $(JITTEST_PROG) compile-tests
2197         for i in $(TESTS_BENCH); do     \
2198                 echo $$i;       \
2199                 time $(JITTEST_PROG) $$i;       \
2200         done
2202 test-iomap-regression: exists.exe
2203         @echo "Testing exists.exe..."
2204         @MONO_IOMAP=all $(RUNTIME) exists.exe
2206 stresstest: compile-tests
2207         @failed=0; \
2208         passed=0; \
2209         failed_tests="";\
2210         for i in $(TESTS_STRESS); do    \
2211                 if $(srcdir)/stress-runner.pl $$i ../mini/mono $(TEST_RUNTIME_ARGS); \
2212                 then \
2213                         passed=`expr $${passed} + 1`; \
2214                 else \
2215                         if [ $$? = 2 ]; then break; fi; \
2216                         failed=`expr $${failed} + 1`; \
2217                         failed_tests="$${failed_tests} $$i"; \
2218                 fi \
2219         done; \
2220         echo "$${passed} test(s) passed. $${failed} test(s) did not pass."; \
2221         if [ $${failed} != 0 ]; then echo -e "\nFailed tests:\n"; \
2222           for i in $${failed_tests}; do echo $${i}; done; exit 1; fi
2224 testbundle: console.exe
2225         @echo "Testing mkbundle..."
2226         @$(MKBUNDLE) --static console.exe > mkbundle.stdout
2227         @$(with_mono_path) MONO_CFG_DIR=$(mono_cfg_dir) ./a.out >> mkbundle.stdout
2228         @- rm -rf a.out
2230 EXTRA_DIST += load-missing.il t-missing.cs load-exceptions.cs
2232 load-missing.dll: load-missing.il
2233         $(Q) $(ILASM) /dll /output:$@ $<
2235 load-exceptions.exe t.dll: load-exceptions.cs t-missing.cs load-missing.dll $(TEST_DRIVER_DEPEND)
2236         $(Q) $(MCS) -t:library -out:t.dll -d:FOUND t-missing.cs
2237         $(Q) $(MCS) -r:TestDriver.dll -r:load-missing.dll -r:t.dll -out:$@ $<
2238         $(Q) $(MCS) -t:library -out:t.dll t-missing.cs
2240 test-type-load: load-exceptions.exe
2241 if !POWERPC64
2242         $(Q) $(RUNTIME) load-exceptions.exe > load-exceptions.exe.stdout 2> load-exceptions.exe.stderr
2243 endif
2245 EXTRA_DIST += test-multi-netmodule-1-netmodule.cs test-multi-netmodule-2-dll1.cs test-multi-netmodule-3-dll2.cs test-multi-netmodule-4-exe.cs
2247 test-multi-netmodule-1-netmodule.netmodule: test-multi-netmodule-1-netmodule.cs
2248         $(Q) $(MCS) -t:module -out:$@ $<
2249 test-multi-netmodule-2-dll1.dll: test-multi-netmodule-2-dll1.cs test-multi-netmodule-1-netmodule.netmodule
2250         $(Q) $(MCS) -addmodule:test-multi-netmodule-1-netmodule.netmodule -t:library  -out:$@ $<
2251 test-multi-netmodule-3-dll2.dll: test-multi-netmodule-3-dll2.cs test-multi-netmodule-1-netmodule.netmodule
2252         $(Q) $(MCS) -addmodule:test-multi-netmodule-1-netmodule.netmodule -t:library -out:$@ $<
2253 test-multi-netmodule-4-exe.exe: test-multi-netmodule-4-exe.cs test-multi-netmodule-2-dll1.dll test-multi-netmodule-3-dll2.dll
2254         $(Q) $(MCS) -r:test-multi-netmodule-2-dll1.dll -out:$@ $<
2256 test-multi-netmodule: test-multi-netmodule-4-exe.exe
2257         $(Q) $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --disabled "$(DISABLED_TESTS)" $<
2259 EXTRA_DIST += custom-attr-errors.cs custom-attr-errors-lib.cs
2261 custom-attr-errors.exe custom-attr-errors-lib.dll: custom-attr-errors.cs custom-attr-errors-lib.cs $(TEST_DRIVER_DEPEND)
2262         $(Q) $(MCS) /t:library -D:WITH_MEMBERS custom-attr-errors-lib.cs
2263         $(Q) $(MCS) -r:TestDriver.dll -r:custom-attr-errors-lib.dll custom-attr-errors.cs
2264         $(Q) $(MCS) /t:library custom-attr-errors-lib.cs
2266 test-cattr-type-load: custom-attr-errors.exe
2267         $(Q) $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --disabled "$(DISABLED_TESTS)" $<
2269 EXTRA_DIST += reflection-load-with-context-lib.cs reflection-load-with-context-second-lib.cs reflection-load-with-context.cs
2271 reflection-load-with-context-second-lib.dll: reflection-load-with-context-second-lib.cs
2272         $(Q) $(MCS) /t:library -out:$@ $<
2273 reflection-load-with-context-lib.dll: reflection-load-with-context-lib.cs reflection-load-with-context-second-lib.dll
2274         $(Q) $(MCS) /t:library -r:reflection-load-with-context-second-lib.dll -out:$@ $<
2275 reflection-load-with-context.exe: reflection-load-with-context-lib.dll
2277 test-reflection-load-with-context: reflection-load-with-context.exe
2278         $(Q) $(RUNTIME) reflection-load-with-context.exe > reflection-load-with-context.exe.stdout 2> reflection-load-with-context.exe.stderr
2281 EXTRA_DIST += debug-casts.cs
2282 # This depends on TLS, so its not ran by default
2283 debug-casts: debug-casts.exe
2284         $(Q) $(RUNTIME) --debug=casts debug-casts.exe
2286 EXTRA_DIST += sgen-bridge.cs sgen-descriptors.cs sgen-gshared-vtype.cs sgen-bridge-major-fragmentation.cs sgen-domain-unload.cs sgen-weakref-stress.cs sgen-cementing-stress.cs sgen-case-23400.cs      finalizer-wait.cs critical-finalizers.cs sgen-domain-unload-2.cs sgen-suspend.cs sgen-new-threads-dont-join-stw.cs sgen-new-threads-dont-join-stw-2.cs sgen-new-threads-collect.cs sgen-bridge-xref.cs bug-17590.cs sgen-toggleref.cs sgen-bridge-gchandle.cs
2288 test-sgen:
2289         ok=; \
2290         $(MAKE) test-sgen-regular || ok=false; \
2291         $(MAKE) test-sgen-toggleref || ok=false; \
2292         $(MAKE) test-sgen-bridge || ok=false; \
2293         $(MAKE) test-sgen-bridge2 || ok=false; \
2294         $(MAKE) test-sgen-bridge3 || ok=false; \
2295         $$ok
2297 test-stress-sgen:
2298         ok=; \
2299         $(MAKE) test-stress-sgen-regular || ok=false; \
2300         $(MAKE) test-stress-sgen-toggleref || ok=false; \
2301         $(MAKE) test-stress-sgen-bridge || ok=false; \
2302         $(MAKE) test-stress-sgen-bridge2 || ok=false; \
2303         $(MAKE) test-stress-sgen-bridge3 || ok=false; \
2304         $$ok
2306 TESTS_SGEN_REGULAR_SRC =        \
2307         finalizer-wait.cs       \
2308         critical-finalizers.cs  \
2309         sgen-descriptors.cs     \
2310         sgen-gshared-vtype.cs   \
2311         sgen-weakref-stress.cs  \
2312         sgen-cementing-stress.cs        \
2313         sgen-case-23400.cs      \
2314         sgen-new-threads-dont-join-stw.cs       \
2315         sgen-new-threads-dont-join-stw-2.cs     \
2316         sgen-new-threads-collect.cs     \
2317         gc-graystack-stress.cs  \
2318         bug-17590.cs    \
2319         sgen-domain-unload.cs   \
2320         sgen-domain-unload-2.cs
2322 TESTS_SGEN_REGULAR=$(filter-out $(DISABLED_TESTS),$(TESTS_SGEN_REGULAR_SRC:.cs=.exe))
2324 if FULL_AOT_TESTS
2325 TESTSAOT_SGEN_REGULAR=$(TESTS_SGEN_REGULAR:.exe=.exe$(PLATFORM_AOT_SUFFIX))
2326 endif
2328 if HYBRID_AOT_TESTS
2329 TESTSAOT_SGEN_REGULAR=$(TESTS_SGEN_REGULAR:.exe=.exe$(PLATFORM_AOT_SUFFIX))
2330 endif
2332 # The .cs tests are not interesting initially but should be later.
2334 #FIXME
2335 #coreclr/tailcall/CoreMangLib/system/span/SlowTailCallArgs.cs(124,13): error CS8107: Feature 'ref structs' is not available in C# 7.0. Please use language version 7.2 or greater.
2336 #coreclr/tailcall/CoreMangLib/cti/system/reflection/emit/opcodes/opcodestailcall.cs(17,9): error CS0103: The name 'TestLibrary' does not exist in the current context
2338 TEST_TAILCALL_CS_SRC=\
2339         tailcall/coreclr/JIT/CodeGenBringUpTests/RecursiveTailCall.cs \
2340         tailcall/coreclr/JIT/Methodical/tailcall/Desktop/thread-race.cs \
2341         tailcall/coreclr/JIT/Methodical/tailcall_v4/delegateParamCallTarget.cs \
2342         tailcall/coreclr/JIT/opt/FastTailCall/FastTailCallCandidates.cs \
2343         tailcall/coreclr/JIT/opt/FastTailCall/FastTailCallInlining.cs \
2344         tailcall/coreclr/JIT/opt/FastTailCall/GitHubIssue12479.cs \
2345         tailcall/coreclr/JIT/opt/FastTailCall/StackFixup.cs \
2346         tailcall/coreclr/JIT/opt/FastTailCall/StructPassingSimple.cs
2348 # At these locations we have .cs and .il.
2349 # The .il is clearly derived from the .cs, such as by running
2350 # csc + ildasm + edit.
2351 # The .cs is opportunistically optimizable, see https://github.com/mono/mono/issues/7259.
2352 # But for now we only want the .il.
2353 #tailcall/coreclr/JIT/Methodical/Boxing/misc/tailjump.cs
2354 #tailcall/coreclr/JIT/Methodical/Invoke/SEH/catchfinally_tail.cs
2355 #tailcall/coreclr/JIT/Methodical/nonvirtualcall/tailcall.cs
2356 #tailcall/coreclr/JIT/Methodical/tailcall/compat_i2_bool.il
2357 #tailcall/coreclr/JIT/Methodical/tailcall/compat_i4_i1.il
2358 #tailcall/coreclr/JIT/Methodical/tailcall/compat_i4_u.il
2359 #tailcall/coreclr/JIT/Methodical/tailcall/compat_i_u2.il
2360 #tailcall/coreclr/JIT/Methodical/tailcall/compat_r4_r8.il
2361 #tailcall/coreclr/JIT/Methodical/tailcall/compat_r8_r4.il
2363 TEST_TAILCALL_IL_SRC=\
2364         tailcall/coreclr/JIT/opt/Tailcall/TailcallVerifyWithPrefix.il \
2365         tailcall/coreclr/JIT/opt/Tailcall/TailcallVerifyTransparentLibraryWithPrefix.il \
2366         tailcall/coreclr/JIT/opt/Tailcall/TailcallVerifyVerifiableLibraryWithPrefix.il \
2367         tailcall/coreclr/JIT/Directed/coverage/importer/badtailcall.il \
2368         tailcall/coreclr/JIT/Directed/coverage/importer/Desktop/badtailcall.il \
2369         tailcall/coreclr/JIT/Directed/IL/mutualrecur-tailcall/MutualRecur-TailCall.il \
2370         tailcall/coreclr/JIT/Directed/IL/PInvokeTail/tailwinapi.il \
2371         tailcall/coreclr/JIT/Directed/IL/Tailcall/JitTailcall1.il \
2372         tailcall/coreclr/JIT/Directed/IL/Tailcall/Jittailcall2.il \
2373         tailcall/coreclr/JIT/Directed/pinvoke/tail.il \
2374         tailcall/coreclr/JIT/Directed/tailcall/tailcall.il \
2375         tailcall/coreclr/JIT/IL_Conformance/Old/Base/tailcall.il \
2376         tailcall/coreclr/JIT/Methodical/Boxing/boxunbox/tailcall.il \
2377         tailcall/coreclr/JIT/Methodical/Boxing/misc/tailjump.il \
2378         tailcall/coreclr/JIT/Methodical/Invoke/fptr/recurse_tail_call.il \
2379         tailcall/coreclr/JIT/Methodical/Invoke/fptr/recurse_tail_calli.il \
2380         tailcall/coreclr/JIT/Methodical/Invoke/SEH/catchfault_tail.il \
2381         tailcall/coreclr/JIT/Methodical/Invoke/SEH/catchfinally_tail.il \
2382         tailcall/coreclr/JIT/Methodical/nonvirtualcall/tailcall.il \
2383         tailcall/coreclr/JIT/Methodical/tailcall/compat_obj.il \
2384         tailcall/coreclr/JIT/Methodical/tailcall/compat_v.il \
2385         tailcall/coreclr/JIT/Methodical/tailcall/deep_array.il \
2386         tailcall/coreclr/JIT/Methodical/tailcall/deep_array_nz.il \
2387         tailcall/coreclr/JIT/Methodical/tailcall/deep_gc.il \
2388         tailcall/coreclr/JIT/Methodical/tailcall/deep_inst.il \
2389         tailcall/coreclr/JIT/Methodical/tailcall/deep_value.il \
2390         tailcall/coreclr/JIT/Methodical/tailcall/deep_virt.il \
2391         tailcall/coreclr/JIT/Methodical/tailcall/gcval.il \
2392         tailcall/coreclr/JIT/Methodical/tailcall/gcval_nested.il \
2393         tailcall/coreclr/JIT/Methodical/tailcall/gcval_sideeffect.il \
2394         tailcall/coreclr/JIT/Methodical/tailcall/pointer.il \
2395         tailcall/coreclr/JIT/Methodical/tailcall/pointer_i.il \
2396         tailcall/coreclr/JIT/Methodical/tailcall/recurse_ep.il \
2397         tailcall/coreclr/JIT/Methodical/tailcall/recurse_ep_void.il \
2398         tailcall/coreclr/JIT/Methodical/tailcall/reference_i.il \
2399         tailcall/coreclr/JIT/Methodical/tailcall/test_2a.il \
2400         tailcall/coreclr/JIT/Methodical/tailcall/test_2b.il \
2401         tailcall/coreclr/JIT/Methodical/tailcall/test_2c.il \
2402         tailcall/coreclr/JIT/Methodical/tailcall/test_3b.il \
2403         tailcall/coreclr/JIT/Methodical/tailcall/test_implicit.il \
2404         tailcall/coreclr/JIT/Methodical/tailcall/test_mutual_rec.il \
2405         tailcall/coreclr/JIT/Methodical/tailcall/test_switch.il \
2406         tailcall/coreclr/JIT/Methodical/tailcall/test_virt.il \
2407         tailcall/coreclr/JIT/Methodical/tailcall/test_void.il \
2408         tailcall/coreclr/JIT/Methodical/tailcall_v4/delegateTail.il \
2409         tailcall/coreclr/JIT/Methodical/tailcall_v4/hijacking.il \
2410         tailcall/coreclr/JIT/Methodical/tailcall_v4/smallFrame.il \
2411         tailcall/coreclr/JIT/Methodical/tailcall_v4/tailcall_AV.il \
2412         tailcall/coreclr/JIT/opt/ETW/TailCallCases.il \
2413         tailcall/coreclr/JIT/Regression/VS-ia64-JIT/V1.2-M02/b102844/tailcallcalli.il
2415 test-sgen-regular: $(TESTS_SGEN_REGULAR) $(TESTSAOT_SGEN_REGULAR)
2416         ok=; \
2417         $(MAKE) test-sgen-regular-ms-simple || ok=false; \
2418         $(MAKE) test-sgen-regular-ms-conc-simple || ok=false; \
2419         $$ok
2421 test-stress-sgen-regular: $(TESTS_SGEN_REGULAR) $(TESTSAOT_SGEN_REGULAR)
2422         ok=; \
2423         $(MAKE) test-sgen-regular-ms-simple MONO_TESTS_STRESS=1 || ok=false; \
2424         $(MAKE) test-sgen-regular-ms-conc-simple MONO_TESTS_STRESS=1 || ok=false; \
2425         $(MAKE) test-sgen-regular-ms-conc-par-simple MONO_TESTS_STRESS=1 || ok=false; \
2426         $(MAKE) test-sgen-regular-ms-conc-split MONO_TESTS_STRESS=1 || ok=false; \
2427         $(MAKE) test-sgen-regular-ms-conc-split-95-clear-at-gc MONO_TESTS_STRESS=1 || ok=false; \
2428         $(MAKE) test-sgen-regular-ms-conc-par-simple-par-dyn MONO_TESTS_STRESS=1 || ok=false; \
2429         $(MAKE) test-sgen-regular-ms-conc-par-simple-par-512k MONO_TESTS_STRESS=1 || ok=false; \
2430         $(MAKE) test-sgen-regular-ms-conc-par-simple-par-32m MONO_TESTS_STRESS=1 || ok=false; \
2431         $(MAKE) test-sgen-regular-ms-conc-par-simple-par-dyn-clear-at-gc MONO_TESTS_STRESS=1 || ok=false; \
2432         $$ok
2434 test-sgen-regular-ms-simple: $(TESTS_SGEN_REGULAR) $(TESTSAOT_SGEN_REGULAR) test-runner.exe
2435         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug= --gc-params=major=marksweep,minor=simple" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_REGULAR)
2436 test-sgen-regular-ms-conc-simple: $(TESTS_SGEN_REGULAR) $(TESTSAOT_SGEN_REGULAR) test-runner.exe
2437         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug= --gc-params=major=marksweep-conc,minor=simple" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_REGULAR)
2438 test-sgen-regular-ms-conc-par-simple: $(TESTS_SGEN_REGULAR) $(TESTSAOT_SGEN_REGULAR) test-runner.exe
2439         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug= --gc-params=major=marksweep-conc-par,minor=simple" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_REGULAR)
2440 test-sgen-regular-ms-conc-split: $(TESTS_SGEN_REGULAR) $(TESTSAOT_SGEN_REGULAR) test-runner.exe
2441         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug= --gc-params=major=marksweep-conc,minor=split" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_REGULAR)
2442 test-sgen-regular-ms-conc-split-95-clear-at-gc: $(TESTS_SGEN_REGULAR) $(TESTSAOT_SGEN_REGULAR) test-runner.exe
2443         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=clear-at-gc --gc-params=major=marksweep-conc,minor=split,alloc-ratio=95" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_REGULAR)
2444 test-sgen-regular-ms-conc-par-simple-par-dyn: $(TESTS_SGEN_REGULAR) $(TESTSAOT_SGEN_REGULAR) test-runner.exe
2445         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug= --gc-params=major=marksweep-conc-par,minor=simple-par,dynamic-nursery" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_REGULAR)
2446 test-sgen-regular-ms-conc-par-simple-par-512k: $(TESTS_SGEN_REGULAR) $(TESTSAOT_SGEN_REGULAR) test-runner.exe
2447         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug= --gc-params=major=marksweep-conc-par,minor=simple-par,nursery-size=512k" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_REGULAR)
2448 test-sgen-regular-ms-conc-par-simple-par-32m: $(TESTS_SGEN_REGULAR) $(TESTSAOT_SGEN_REGULAR) test-runner.exe
2449         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug= --gc-params=major=marksweep-conc-par,minor=simple-par,nursery-size=32m" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_REGULAR)
2450 test-sgen-regular-ms-conc-par-simple-par-dyn-clear-at-gc: $(TESTS_SGEN_REGULAR) $(TESTSAOT_SGEN_REGULAR) test-runner.exe
2451         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=clear-at-gc --gc-params=major=marksweep-conc-par,minor=simple-par,dynamic-nursery" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_REGULAR)
2453 TESTS_SGEN_TOGGLEREF_SRC=       \
2454         sgen-toggleref.cs
2456 TESTS_SGEN_TOGGLEREF=$(filter-out $(DISABLED_TESTS),$(TESTS_SGEN_TOGGLEREF_SRC:.cs=.exe))
2458 if FULL_AOT_TESTS
2459 TESTSAOT_SGEN_TOGGLEREF=$(TESTS_SGEN_TOGGLEREF:.exe=.exe$(PLATFORM_AOT_SUFFIX))
2460 endif
2462 if HYBRID_AOT_TESTS
2463 TESTSAOT_SGEN_TOGGLEREF=$(TESTS_SGEN_TOGGLEREF:.exe=.exe$(PLATFORM_AOT_SUFFIX))
2464 endif
2466 test-sgen-toggleref: $(TESTS_SGEN_TOGGLEREF) $(TESTSAOT_SGEN_TOGGLEREF)
2467         ok=; \
2468         $(MAKE) test-sgen-toggleref-ms-simple || ok=false; \
2469         $(MAKE) test-sgen-toggleref-ms-conc-simple || ok=false; \
2470         $$ok
2472 test-stress-sgen-toggleref: $(TESTS_SGEN_TOGGLEREF) $(TESTSAOT_SGEN_TOGGLEREF)
2473         ok=; \
2474         $(MAKE) test-sgen-toggleref-ms-simple MONO_TESTS_STRESS=1 || ok=false; \
2475         $(MAKE) test-sgen-toggleref-ms-conc-simple MONO_TESTS_STRESS=1 || ok=false; \
2476         $(MAKE) test-sgen-toggleref-ms-conc-par-simple MONO_TESTS_STRESS=1 || ok=false; \
2477         $(MAKE) test-sgen-toggleref-ms-conc-split MONO_TESTS_STRESS=1 || ok=false; \
2478         $(MAKE) test-sgen-toggleref-ms-conc-split-95-clear-at-gc MONO_TESTS_STRESS=1 || ok=false; \
2479         $(MAKE) test-sgen-toggleref-ms-conc-par-simple-par-dyn MONO_TESTS_STRESS=1 || ok=false; \
2480         $(MAKE) test-sgen-toggleref-ms-conc-par-simple-par-512k MONO_TESTS_STRESS=1 || ok=false; \
2481         $(MAKE) test-sgen-toggleref-ms-conc-par-simple-par-32m MONO_TESTS_STRESS=1 || ok=false; \
2482         $(MAKE) test-sgen-toggleref-ms-conc-par-simple-par-dyn-clear-at-gc MONO_TESTS_STRESS=1 || ok=false; \
2483         $$ok
2485 test-sgen-toggleref-ms-simple: $(TESTS_SGEN_TOGGLEREF) $(TESTSAOT_SGEN_TOGGLEREF) test-runner.exe
2486         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug= --gc-params=toggleref-test,major=marksweep,minor=simple" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_TOGGLEREF)
2487 test-sgen-toggleref-ms-conc-simple: $(TESTS_SGEN_TOGGLEREF) $(TESTSAOT_SGEN_TOGGLEREF) test-runner.exe
2488         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug= --gc-params=toggleref-test,major=marksweep-conc,minor=simple" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_TOGGLEREF)
2489 test-sgen-toggleref-ms-conc-par-simple: $(TESTS_SGEN_TOGGLEREF) $(TESTSAOT_SGEN_TOGGLEREF) test-runner.exe
2490         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug= --gc-params=toggleref-test,major=marksweep-conc-par,minor=simple" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_TOGGLEREF)
2491 test-sgen-toggleref-ms-conc-split: $(TESTS_SGEN_TOGGLEREF) $(TESTSAOT_SGEN_TOGGLEREF) test-runner.exe
2492         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug= --gc-params=toggleref-test,major=marksweep-conc,minor=split" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_TOGGLEREF)
2493 test-sgen-toggleref-ms-conc-split-95-clear-at-gc: $(TESTS_SGEN_TOGGLEREF) $(TESTSAOT_SGEN_TOGGLEREF) test-runner.exe
2494         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=clear-at-gc --gc-params=toggleref-test,major=marksweep-conc,minor=split,alloc-ratio=95" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_TOGGLEREF)
2495 test-sgen-toggleref-ms-conc-par-simple-par-dyn: $(TESTS_SGEN_TOGGLEREF) $(TESTSAOT_SGEN_TOGGLEREF) test-runner.exe
2496         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug= --gc-params=toggleref-test,major=marksweep-conc-par,minor=simple-par,dynamic-nursery" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_TOGGLEREF)
2497 test-sgen-toggleref-ms-conc-par-simple-par-512k: $(TESTS_SGEN_TOGGLEREF) $(TESTSAOT_SGEN_TOGGLEREF) test-runner.exe
2498         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug= --gc-params=toggleref-test,major=marksweep-conc-par,minor=simple-par,nursery-size=512k" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_TOGGLEREF)
2499 test-sgen-toggleref-ms-conc-par-simple-par-32m: $(TESTS_SGEN_TOGGLEREF) $(TESTSAOT_SGEN_TOGGLEREF) test-runner.exe
2500         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug= --gc-params=toggleref-test,major=marksweep-conc-par,minor=simple-par,nursery-size=32m" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_TOGGLEREF)
2501 test-sgen-toggleref-ms-conc-par-simple-par-dyn-clear-at-gc: $(TESTS_SGEN_TOGGLEREF) $(TESTSAOT_SGEN_TOGGLEREF) test-runner.exe
2502         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=clear-at-gc --gc-params=toggleref-test,major=marksweep-conc-par,minor=simple-par,dynamic-nursery" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_TOGGLEREF)
2504 TESTS_SGEN_BRIDGE_SRC=  \
2505         sgen-bridge.cs  \
2506         sgen-bridge-major-fragmentation.cs
2508 TESTS_SGEN_BRIDGE=$(filter-out $(DISABLED_TESTS),$(TESTS_SGEN_BRIDGE_SRC:.cs=.exe))
2510 if FULL_AOT_TESTS
2511 TESTSAOT_SGEN_BRIDGE=$(TESTS_SGEN_BRIDGE:.exe=.exe$(PLATFORM_AOT_SUFFIX))
2512 endif
2514 if HYBRID_AOT_TESTS
2515 TESTSAOT_SGEN_BRIDGE=$(TESTS_SGEN_BRIDGE:.exe=.exe$(PLATFORM_AOT_SUFFIX))
2516 endif
2518 test-sgen-bridge: $(TESTS_SGEN_BRIDGE) $(TESTSAOT_SGEN_BRIDGE)
2519         ok=; \
2520         $(MAKE) test-sgen-bridge-ms-simple-tarjan-bridge || ok=false; \
2521         $(MAKE) test-sgen-bridge-ms-conc-simple-tarjan-bridge || ok=false; \
2522         $$ok
2524 test-stress-sgen-bridge: $(TESTS_SGEN_BRIDGE) $(TESTSAOT_SGEN_BRIDGE)
2525         ok=; \
2526         $(MAKE) test-sgen-bridge-ms-simple-tarjan-bridge MONO_TESTS_STRESS=1 || ok=false; \
2527         $(MAKE) test-sgen-bridge-ms-conc-simple-tarjan-bridge MONO_TESTS_STRESS=1 || ok=false; \
2528         $(MAKE) test-sgen-bridge-ms-conc-split-tarjan-bridge MONO_TESTS_STRESS=1 || ok=false; \
2529         $(MAKE) test-sgen-bridge-ms-conc-simple-new-bridge MONO_TESTS_STRESS=1 || ok=false; \
2530         $(MAKE) test-sgen-bridge-ms-conc-simple-old-bridge MONO_TESTS_STRESS=1 || ok=false; \
2531         $(MAKE) test-sgen-bridge-ms-conc-par-simple-par-dyn-tarjan-bridge MONO_TESTS_STRESS=1 || ok=false; \
2532         $(MAKE) test-sgen-bridge-ms-conc-par-simple-par-512k-tarjan-bridge MONO_TESTS_STRESS=1 || ok=false; \
2533         $(MAKE) test-sgen-bridge-ms-conc-par-simple-par-32m-tarjan-bridge MONO_TESTS_STRESS=1 || ok=false; \
2534         $$ok
2536 test-sgen-bridge-ms-simple-tarjan-bridge: $(TESTS_SGEN_BRIDGE) $(TESTSAOT_SGEN_BRIDGE) test-runner.exe
2537         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=bridge=Bridge --gc-params=major=marksweep,minor=simple,bridge-implementation=tarjan" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_BRIDGE)
2538 test-sgen-bridge-ms-conc-simple-tarjan-bridge: $(TESTS_SGEN_BRIDGE) $(TESTSAOT_SGEN_BRIDGE) test-runner.exe
2539         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=bridge=Bridge --gc-params=major=marksweep-conc,minor=simple,bridge-implementation=tarjan" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_BRIDGE)
2540 test-sgen-bridge-ms-conc-split-tarjan-bridge: $(TESTS_SGEN_BRIDGE) $(TESTSAOT_SGEN_BRIDGE) test-runner.exe
2541         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=bridge=Bridge --gc-params=major=marksweep-conc,minor=split,bridge-implementation=tarjan" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_BRIDGE)
2542 test-sgen-bridge-ms-conc-simple-new-bridge: $(TESTS_SGEN_BRIDGE) $(TESTSAOT_SGEN_BRIDGE) test-runner.exe
2543         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=bridge=Bridge --gc-params=major=marksweep-conc,minor=simple,bridge-implementation=new" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_BRIDGE)
2544 test-sgen-bridge-ms-conc-simple-old-bridge: $(TESTS_SGEN_BRIDGE) $(TESTSAOT_SGEN_BRIDGE) test-runner.exe
2545         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=bridge=Bridge --gc-params=major=marksweep-conc,minor=simple,bridge-implementation=old" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_BRIDGE)
2546 test-sgen-bridge-ms-conc-par-simple-par-dyn-tarjan-bridge: $(TESTS_SGEN_BRIDGE) $(TESTSAOT_SGEN_BRIDGE) test-runner.exe
2547         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=bridge=Bridge --gc-params=major=marksweep-conc-par,minor=simple-par,dynamic-nursery,bridge-implementation=tarjan" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_BRIDGE)
2548 test-sgen-bridge-ms-conc-par-simple-par-512k-tarjan-bridge: $(TESTS_SGEN_BRIDGE) $(TESTSAOT_SGEN_BRIDGE) test-runner.exe
2549         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=bridge=Bridge --gc-params=major=marksweep-conc-par,minor=simple-par,nursery-size=512k,bridge-implementation=tarjan" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_BRIDGE)
2550 test-sgen-bridge-ms-conc-par-simple-par-32m-tarjan-bridge: $(TESTS_SGEN_BRIDGE) $(TESTSAOT_SGEN_BRIDGE) test-runner.exe
2551         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=bridge=Bridge --gc-params=major=marksweep-conc-par,minor=simple-par,nursery-size=32m,bridge-implementation=tarjan" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_BRIDGE)
2553 TESTS_SGEN_BRIDGE2_SRC= \
2554         sgen-bridge-xref.cs
2556 TESTS_SGEN_BRIDGE2=$(filter-out $(DISABLED_TESTS),$(TESTS_SGEN_BRIDGE2_SRC:.cs=.exe))
2558 if FULL_AOT_TESTS
2559 TESTSAOT_SGEN_BRIDGE2=$(TESTS_SGEN_BRIDGE2:.exe=.exe$(PLATFORM_AOT_SUFFIX))
2560 endif
2562 if HYBRID_AOT_TESTS
2563 TESTSAOT_SGEN_BRIDGE2=$(TESTS_SGEN_BRIDGE2:.exe=.exe$(PLATFORM_AOT_SUFFIX))
2564 endif
2566 test-sgen-bridge2: $(TESTS_SGEN_BRIDGE2) $(TESTSAOT_SGEN_BRIDGE2)
2567         ok=; \
2568         $(MAKE) test-sgen-bridge2-ms-simple-tarjan-bridge || ok=false; \
2569         $(MAKE) test-sgen-bridge2-ms-conc-simple-tarjan-bridge || ok=false; \
2570         $$ok
2572 test-stress-sgen-bridge2: $(TESTS_SGEN_BRIDGE2) $(TESTSAOT_SGEN_BRIDGE2)
2573         ok=; \
2574         $(MAKE) test-sgen-bridge2-ms-simple-tarjan-bridge MONO_TESTS_STRESS=1 || ok=false; \
2575         $(MAKE) test-sgen-bridge2-ms-conc-simple-tarjan-bridge MONO_TESTS_STRESS=1 || ok=false; \
2576         $(MAKE) test-sgen-bridge2-ms-conc-split-tarjan-bridge MONO_TESTS_STRESS=1 || ok=false; \
2577         $(MAKE) test-sgen-bridge2-ms-conc-simple-new-bridge MONO_TESTS_STRESS=1 || ok=false; \
2578         $(MAKE) test-sgen-bridge2-ms-conc-simple-old-bridge MONO_TESTS_STRESS=1 || ok=false; \
2579         $(MAKE) test-sgen-bridge2-ms-conc-par-simple-par-dyn-tarjan-bridge MONO_TESTS_STRESS=1 || ok=false; \
2580         $(MAKE) test-sgen-bridge2-ms-conc-par-simple-par-512k-tarjan-bridge MONO_TESTS_STRESS=1 || ok=false; \
2581         $(MAKE) test-sgen-bridge2-ms-conc-par-simple-par-32m-tarjan-bridge MONO_TESTS_STRESS=1 || ok=false; \
2582         $$ok
2584 test-sgen-bridge2-ms-simple-tarjan-bridge: $(TESTS_SGEN_BRIDGE2) $(TESTSAOT_SGEN_BRIDGE2) test-runner.exe
2585         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=bridge=2Bridge --gc-params=major=marksweep,minor=simple,bridge-implementation=tarjan" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_BRIDGE2)
2586 test-sgen-bridge2-ms-conc-simple-tarjan-bridge: $(TESTS_SGEN_BRIDGE2) $(TESTSAOT_SGEN_BRIDGE2) test-runner.exe
2587         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=bridge=2Bridge --gc-params=major=marksweep-conc,minor=simple,bridge-implementation=tarjan" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_BRIDGE2)
2588 test-sgen-bridge2-ms-conc-split-tarjan-bridge: $(TESTS_SGEN_BRIDGE2) $(TESTSAOT_SGEN_BRIDGE2) test-runner.exe
2589         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=bridge=2Bridge --gc-params=major=marksweep-conc,minor=split,bridge-implementation=tarjan" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_BRIDGE2)
2590 test-sgen-bridge2-ms-conc-simple-new-bridge: $(TESTS_SGEN_BRIDGE2) $(TESTSAOT_SGEN_BRIDGE2) test-runner.exe
2591         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=bridge=2Bridge --gc-params=major=marksweep-conc,minor=simple,bridge-implementation=new" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_BRIDGE2)
2592 test-sgen-bridge2-ms-conc-simple-old-bridge: $(TESTS_SGEN_BRIDGE2) $(TESTSAOT_SGEN_BRIDGE2) test-runner.exe
2593         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=bridge=2Bridge --gc-params=major=marksweep-conc,minor=simple,bridge-implementation=old" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_BRIDGE2)
2594 test-sgen-bridge2-ms-conc-par-simple-par-dyn-tarjan-bridge: $(TESTS_SGEN_BRIDGE2) $(TESTSAOT_SGEN_BRIDGE2) test-runner.exe
2595         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=bridge=2Bridge --gc-params=major=marksweep-conc-par,minor=simple-par,dynamic-nursery,bridge-implementation=tarjan" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_BRIDGE2)
2596 test-sgen-bridge2-ms-conc-par-simple-par-512k-tarjan-bridge: $(TESTS_SGEN_BRIDGE2) $(TESTSAOT_SGEN_BRIDGE2) test-runner.exe
2597         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=bridge=2Bridge --gc-params=major=marksweep-conc-par,minor=simple-par,nursery-size=512k,bridge-implementation=tarjan" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_BRIDGE2)
2598 test-sgen-bridge2-ms-conc-par-simple-par-32m-tarjan-bridge: $(TESTS_SGEN_BRIDGE2) $(TESTSAOT_SGEN_BRIDGE2) test-runner.exe
2599         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=bridge=2Bridge --gc-params=major=marksweep-conc-par,minor=simple-par,nursery-size=32m,bridge-implementation=tarjan" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_BRIDGE2)
2601 TESTS_SGEN_BRIDGE3_SRC= \
2602         sgen-bridge-gchandle.cs
2604 TESTS_SGEN_BRIDGE3=$(filter-out $(DISABLED_TESTS),$(TESTS_SGEN_BRIDGE3_SRC:.cs=.exe))
2606 if FULL_AOT_TESTS
2607 TESTSAOT_SGEN_BRIDGE3=$(TESTS_SGEN_BRIDGE3:.exe=.exe$(PLATFORM_AOT_SUFFIX))
2608 endif
2610 if HYBRID_AOT_TESTS
2611 TESTSAOT_SGEN_BRIDGE3=$(TESTS_SGEN_BRIDGE3:.exe=.exe$(PLATFORM_AOT_SUFFIX))
2612 endif
2614 test-sgen-bridge3: $(TESTS_SGEN_BRIDGE3) $(TESTSAOT_SGEN_BRIDGE3)
2615         ok=; \
2616         $(MAKE) test-sgen-bridge3-ms-simple-tarjan-bridge || ok=false; \
2617         $(MAKE) test-sgen-bridge3-ms-conc-simple-tarjan-bridge || ok=false; \
2618         $$ok
2620 test-stress-sgen-bridge3: $(TESTS_SGEN_BRIDGE3) $(TESTSAOT_SGEN_BRIDGE3)
2621         ok=; \
2622         $(MAKE) test-sgen-bridge3-ms-simple-tarjan-bridge MONO_TESTS_STRESS=1 || ok=false; \
2623         $(MAKE) test-sgen-bridge3-ms-conc-simple-tarjan-bridge MONO_TESTS_STRESS=1 || ok=false; \
2624         $(MAKE) test-sgen-bridge3-ms-conc-split-tarjan-bridge MONO_TESTS_STRESS=1 || ok=false; \
2625         $(MAKE) test-sgen-bridge3-ms-conc-simple-new-bridge MONO_TESTS_STRESS=1 || ok=false; \
2626         $(MAKE) test-sgen-bridge3-ms-conc-simple-old-bridge MONO_TESTS_STRESS=1 || ok=false; \
2627         $(MAKE) test-sgen-bridge3-ms-conc-par-simple-par-dyn-tarjan-bridge MONO_TESTS_STRESS=1 || ok=false; \
2628         $(MAKE) test-sgen-bridge3-ms-conc-par-simple-par-512k-tarjan-bridge MONO_TESTS_STRESS=1 || ok=false; \
2629         $(MAKE) test-sgen-bridge3-ms-conc-par-simple-par-32m-tarjan-bridge MONO_TESTS_STRESS=1 || ok=false; \
2630         $$ok
2632 test-sgen-bridge3-ms-simple-tarjan-bridge: $(TESTS_SGEN_BRIDGE3) $(TESTSAOT_SGEN_BRIDGE3) test-runner.exe
2633         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=bridge=3Bridge --gc-params=major=marksweep,minor=simple,bridge-implementation=tarjan" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_BRIDGE3)
2634 test-sgen-bridge3-ms-conc-simple-tarjan-bridge: $(TESTS_SGEN_BRIDGE3) $(TESTSAOT_SGEN_BRIDGE3) test-runner.exe
2635         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=bridge=3Bridge --gc-params=major=marksweep-conc,minor=simple,bridge-implementation=tarjan" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_BRIDGE3)
2636 test-sgen-bridge3-ms-conc-split-tarjan-bridge: $(TESTS_SGEN_BRIDGE3) $(TESTSAOT_SGEN_BRIDGE3) test-runner.exe
2637         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=bridge=3Bridge --gc-params=major=marksweep-conc,minor=split,bridge-implementation=tarjan" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_BRIDGE3)
2638 test-sgen-bridge3-ms-conc-simple-new-bridge: $(TESTS_SGEN_BRIDGE3) $(TESTSAOT_SGEN_BRIDGE3) test-runner.exe
2639         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=bridge=3Bridge --gc-params=major=marksweep-conc,minor=simple,bridge-implementation=new" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_BRIDGE3)
2640 test-sgen-bridge3-ms-conc-simple-old-bridge: $(TESTS_SGEN_BRIDGE3) $(TESTSAOT_SGEN_BRIDGE3) test-runner.exe
2641         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=bridge=3Bridge --gc-params=major=marksweep-conc,minor=simple,bridge-implementation=old" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_BRIDGE3)
2642 test-sgen-bridge3-ms-conc-par-simple-par-dyn-tarjan-bridge: $(TESTS_SGEN_BRIDGE3) $(TESTSAOT_SGEN_BRIDGE3) test-runner.exe
2643         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=bridge=3Bridge --gc-params=major=marksweep-conc-par,minor=simple-par,dynamic-nursery,bridge-implementation=tarjan" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_BRIDGE3)
2644 test-sgen-bridge3-ms-conc-par-simple-par-512k-tarjan-bridge: $(TESTS_SGEN_BRIDGE3) $(TESTSAOT_SGEN_BRIDGE3) test-runner.exe
2645         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=bridge=3Bridge --gc-params=major=marksweep-conc-par,minor=simple-par,nursery-size=512k,bridge-implementation=tarjan" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_BRIDGE3)
2646 test-sgen-bridge3-ms-conc-par-simple-par-32m-tarjan-bridge: $(TESTS_SGEN_BRIDGE3) $(TESTSAOT_SGEN_BRIDGE3) test-runner.exe
2647         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=bridge=3Bridge --gc-params=major=marksweep-conc-par,minor=simple-par,nursery-size=32m,bridge-implementation=tarjan" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_BRIDGE3)
2649 TESTS_SGEN_OOM_SRC =    \
2650         sgen-oom-cementing-stress.cs    \
2651         sgen-oom-new-threads-dont-join-stw-2.cs \
2652         sgen-oom-bridge-major-fragmentation.cs \
2653         gc-oom-handling.cs      \
2654         gc-oom-handling2.cs
2656 TESTS_SGEN_OOM=$(filter-out $(DISABLED_TESTS),$(TESTS_SGEN_OOM_SRC:.cs=.exe))
2658 if FULL_AOT_TESTS
2659 TESTSAOT_SGEN_OOM=$(TESTS_SGEN_OOM:.exe=.exe$(PLATFORM_AOT_SUFFIX))
2660 endif
2662 if HYBRID_AOT_TESTS
2663 TESTSAOT_SGEN_OOM=$(TESTS_SGEN_OOM:.exe=.exe$(PLATFORM_AOT_SUFFIX))
2664 endif
2666 tests-sgen-oom: $(TESTS_SGEN_OOM) $(TESTSAOT_SGEN_OOM) test-runner.exe sgen-cementing-stress.exe sgen-new-threads-dont-join-stw-2.exe sgen-bridge-major-fragmentation.exe
2667         $(TOOLS_RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) --testsuite-name $@ --runtime-args "--gc=sgen --gc-debug=max-valloc-size=50M,bridge=Bridge" --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_SGEN_OOM)
2669 AOT_CONFIGURATIONS=     \
2670         "|regular"      \
2671         "--gc=boehm|boehm"
2673 #LLVM crashes, got to fix it first.
2674 #       "--llvm|llvm"   \
2675 #       "--llvm --gc=boehm|llvm+boehm"
2678 test-aot:
2679         @failed=0; \
2680         passed=0; \
2681         failed_tests="";\
2682         profile=$(DEFAULT_PROFILE);     \
2683         tmpfile=`mktemp -t mono_aot_outputXXXXXX` || exit 1;    \
2684         rm -f test-aot-$${name}.stdout test-aot-$${name}.stderr; \
2685         for assembly in $(mcs_topdir)/class/lib/$$profile/*.dll ; do    \
2686                 asm_name=`basename $$assembly`; \
2687                 echo "... $$asm_name";  \
2688                 for conf in $(AOT_CONFIGURATIONS); do   \
2689                         name=`echo $$conf | cut -d\| -f 2`;     \
2690                         params=`echo $$conf | cut -d\| -f 1`;   \
2691                         test_name="$${asm_name}|$${name}";      \
2692                         echo "  $$test_name";   \
2693                         if MONO_PATH=$(mcs_topdir)/class/lib/$$profile $(JITTEST_PROG_RUN) $$params --aot=outfile=$$tmpfile $$assembly >> test-aot-$${name}.stdout 2>> test-aot-$${name}.stderr;        \
2694                         then \
2695                                 passed=`expr $${passed} + 1`; \
2696                         else \
2697                                 failed=`expr $${failed} + 1`; \
2698                                 failed_tests="$${failed_tests} $$test_name"; \
2699                         fi \
2700                 done;   \
2701         done;   \
2702         rm      $$tmpfile;      \
2703         echo "$${passed} test(s) passed. $${failed} test(s) did not pass."; \
2704         if [ $${failed} != 0 ]; then echo -e "\nFailed tests:\n"; \
2705         for i in $${failed_tests}; do echo $${i}; done; exit 1; fi
2708 # Generated tests for runtime invoke
2709 EXTRA_DIST += gen-runtime-invoke.cs
2711 runtime-invoke.gen.cs: gen-runtime-invoke.exe
2712         $(Q) $(RUNTIME) gen-runtime-invoke.exe > runtime-invoke.gen.cs
2714 EXTRA_DIST += make-imt-test.cs
2716 imt_big_iface_test.cs: make-imt-test.exe
2717         $(Q) $(RUNTIME) make-imt-test.exe > imt_big_iface_test.cs
2719 EXTRA_DIST += test-inline-call-stack-library.cs test-inline-call-stack.cs
2721 test-inline-call-stack-library.dll: $(srcdir)/test-inline-call-stack-library.cs
2722         $(MCS) -t:library -out:$@ $<
2724 test-inline-call-stack.exe$(PLATFORM_AOT_SUFFIX): test-inline-call-stack-library.dll$(PLATFORM_AOT_SUFFIX)
2725 test-inline-call-stack.exe: test-inline-call-stack.cs test-inline-call-stack-library.dll $(TEST_DRIVER_DEPEND)
2726         $(MCS) -r:TestDriver.dll -r:test-inline-call-stack-library.dll -out:$@ $<
2728 EXTRA_DIST += unhandled-exception-base-configuration.config
2729 EXTRA_DIST += unhandled-exception-legacy-configuration.config
2730 EXTRA_DIST += appdomain-unload.exe.config
2731 EXTRA_DIST += unhandled-exception-test-case.2.cs
2732 EXTRA_DIST += unhandled-exception-test-runner.2.cs
2733 unhandled-exception-test-case.1.cs: unhandled-exception-test-case.2.cs
2734         cp unhandled-exception-test-case.2.cs unhandled-exception-test-case.1.cs
2735 unhandled-exception-test-case-legacy.1.cs: unhandled-exception-test-case.1.cs
2736         cp unhandled-exception-test-case.1.cs unhandled-exception-test-case-legacy.1.cs
2737 unhandled-exception-test-case-legacy.2.cs: unhandled-exception-test-case.2.cs
2738         cp unhandled-exception-test-case.2.cs unhandled-exception-test-case-legacy.2.cs
2739 unhandled-exception-config_files: unhandled-exception-base-configuration.config unhandled-exception-legacy-configuration.config
2740         cp unhandled-exception-base-configuration.config unhandled-exception-test-case.1.exe.config
2741         cp unhandled-exception-base-configuration.config unhandled-exception-test-case.2.exe.config
2742         cp unhandled-exception-legacy-configuration.config unhandled-exception-test-case-legacy.1.exe.config
2743         cp unhandled-exception-legacy-configuration.config unhandled-exception-test-case-legacy.2.exe.config
2745 unhandled-exception-test-runner.2.exe: unhandled-exception-config_files unhandled-exception-test-case.1.exe unhandled-exception-test-case-legacy.1.exe  unhandled-exception-test-case.2.exe unhandled-exception-test-case-legacy.2.exe
2747 test-unhandled-exception: unhandled-exception-test-runner.2.exe
2748         $(Q) $(RUNTIME) unhandled-exception-test-runner.2.exe RUNTIME:../mini/mono,GTC:F
2750 safehandle.2.exe winx64structs.exe thunks.exe pinvoke3.exe pinvoke2.exe pinvoke-2.2.exe pinvoke17.exe pinvoke13.exe \
2751         pinvoke11.exe pinvoke_ppcs.exe pinvoke_ppci.exe pinvoke_ppcf.exe pinvoke_ppcd.exe pinvoke_ppcc.exe pinvoke.exe \
2752         marshalbool.exe marshal9.exe marshal5.exe marshal.exe handleref.exe cominterop.exe bug-Xamarin-5278.exe \
2753         bug-58782-plain-throw.exe bug-58782-capture-and-throw.exe install_eh_callback.exe: libtest.la
2755 event-get.2.exe$(PLATFORM_AOT_SUFFIX): event-il.exe$(PLATFORM_AOT_SUFFIX)
2756 event-get.2.exe: event-il.exe
2758 module-cctor-loader.2.exe$(PLATFORM_AOT_SUFFIX): module-cctor.exe$(PLATFORM_AOT_SUFFIX)
2759 module-cctor-loader.2.exe: module-cctor.exe
2761 reference-loader.exe$(PLATFORM_AOT_SUFFIX): TestingReferenceAssembly.dll$(PLATFORM_AOT_SUFFIX) TestingReferenceReferenceAssembly.dll$(PLATFORM_AOT_SUFFIX)
2762 reference-loader.exe: TestingReferenceAssembly.dll TestingReferenceReferenceAssembly.dll
2764 assemblyresolve_asm.dll$(PLATFORM_AOT_SUFFIX): assemblyresolve_asm.dll assemblyresolve_deps/Test.dll$(PLATFORM_AOT_SUFFIX)
2765         MONO_PATH="assemblyresolve_deps:$(CLASS)" $(top_builddir)/runtime/mono-wrapper $(TEST_AOT_BUILD_FLAGS) assemblyresolve_asm.dll
2766 assemblyresolve_deps/Test.dll$(PLATFORM_AOT_SUFFIX): assemblyresolve_deps/Test.dll assemblyresolve_deps/TestBase.dll$(PLATFORM_AOT_SUFFIX)
2768 EXTRA_DIST += assemblyresolve_TestBase.cs assemblyresolve_Test.cs assemblyresolve_asm.cs 
2769 assemblyresolve_deps:
2770         mkdir -p assemblyresolve_deps
2771 assemblyresolve_deps/TestBase.dll: assemblyresolve_deps $(srcdir)/assemblyresolve_TestBase.cs
2772         $(MCS) -target:library -out:assemblyresolve_deps/TestBase.dll $(srcdir)/assemblyresolve_TestBase.cs
2773 assemblyresolve_deps/Test.dll: assemblyresolve_deps assemblyresolve_deps/TestBase.dll $(srcdir)/assemblyresolve_Test.cs
2774         $(MCS) -target:library -r:assemblyresolve_deps/TestBase.dll -out:assemblyresolve_deps/Test.dll $(srcdir)/assemblyresolve_Test.cs
2775 assemblyresolve_asm.dll: assemblyresolve_deps/Test.dll $(srcdir)/assemblyresolve_asm.cs
2776         $(MCS) -target:library -r:assemblyresolve_deps/TestBase.dll -r:assemblyresolve_deps/Test.dll -out:assemblyresolve_asm.dll $(srcdir)/assemblyresolve_asm.cs
2778 assemblyresolve_event3.exe$(PLATFORM_AOT_SUFFIX): assemblyresolve_asm.dll$(PLATFORM_AOT_SUFFIX) assemblyresolve_deps/Test.dll$(PLATFORM_AOT_SUFFIX) assemblyresolve_deps/TestBase.dll$(PLATFORM_AOT_SUFFIX)
2779 assemblyresolve_event3.exe: assemblyresolve_asm.dll assemblyresolve_deps/Test.dll assemblyresolve_deps/TestBase.dll
2781 assemblyresolve_event4.exe$(PLATFORM_AOT_SUFFIX): assemblyresolve_deps/Test.dll$(PLATFORM_AOT_SUFFIX) assemblyresolve_deps/TestBase.dll$(PLATFORM_AOT_SUFFIX)
2782 assemblyresolve_event4.exe: assemblyresolve_deps/Test.dll assemblyresolve_deps/TestBase.dll
2784 EXTRA_DIST += assemblyresolve_event5_label.cs assemblyresolve_event5_helper.cs
2785 assemblyresolve_deps/assemblyresolve_event5_label.dll: assemblyresolve_event5_label.cs assemblyresolve_deps 
2786         $(MCS) -target:library -out:assemblyresolve_deps/assemblyresolve_event5_label.dll $(srcdir)/assemblyresolve_event5_label.cs
2787 assemblyresolve_event5_helper.dll: assemblyresolve_event5_helper.cs assemblyresolve_deps/assemblyresolve_event5_label.dll
2788         $(MCS) -target:library -out:assemblyresolve_event5_helper.dll -r:assemblyresolve_deps/assemblyresolve_event5_label.dll $(srcdir)/assemblyresolve_event5_helper.cs
2789 assemblyresolve_event5.exe: assemblyresolve_event5_helper.dll
2791 assemblyresolve_event6.exe$(PLATFORM_AOT_SUFFIX): assemblyresolve_asm.dll$(PLATFORM_AOT_SUFFIX) assemblyresolve_deps/Test.dll$(PLATFORM_AOT_SUFFIX) assemblyresolve_deps/TestBase.dll$(PLATFORM_AOT_SUFFIX)
2792 assemblyresolve_event6.exe: assemblyresolve_asm.dll assemblyresolve_deps/Test.dll assemblyresolve_deps/TestBase.dll
2794 # We use 'test-support-files' to handle an ordering issue between the 'mono/' and 'runtime/' directories
2795 bug-80307.exe: $(srcdir)/bug-80307.cs
2796         $(MCS) -r:$(CLASS)/System.Web.dll -out:$@ $(srcdir)/bug-80307.cs
2797         cd $(top_builddir)/runtime && $(MAKE) test-support-files
2799 EXTRA_DIST += bug-81673-interface.cs
2801 bug-81673.exe$(PLATFORM_AOT_SUFFIX): bug-81673-interface.dll$(PLATFORM_AOT_SUFFIX)
2802 bug-81673.exe bug-81673-interface.dll: $(srcdir)/bug-81673.cs $(srcdir)/bug-81673-interface.cs
2803         $(MCS) -target:library -out:bug-81673-interface.dll $(srcdir)/bug-81673-interface.cs
2804         $(MCS) -r:bug-81673-interface.dll -out:bug-81673.exe $(srcdir)/bug-81673.cs
2805         $(MCS) -define:WITH_STOP -target:library -out:bug-81673-interface.dll $(srcdir)/bug-81673-interface.cs
2807 EXTRA_DIST += bug-36848-a.cs
2809 bug-36848.exe$(PLATFORM_AOT_SUFFIX): bug-36848-a.dll$(PLATFORM_AOT_SUFFIX)
2810 bug-36848.exe bug-36848-a.dll: $(srcdir)/bug-36848.cs $(srcdir)/bug-36848-a.cs
2811         $(MCS) -target:library -out:bug-36848-a.dll $(srcdir)/bug-36848-a.cs
2812         $(MCS) -r:bug-36848-a.dll -out:bug-36848.exe $(srcdir)/bug-36848.cs
2813         $(MCS) -define:WITH_STOP -target:library -out:bug-36848-a.dll $(srcdir)/bug-36848-a.cs
2815 EXTRA_DIST += bug-81691-a.cs bug-81691-b.cs
2817 bug-81691.exe$(PLATFORM_AOT_SUFFIX): bug-81691-b.dll$(PLATFORM_AOT_SUFFIX)
2818 bug-81691.exe bug-81691-a.dll bug-81691-b.dll: $(srcdir)/bug-81691.cs $(srcdir)/bug-81691-a.cs $(srcdir)/bug-81691-b.cs
2819         $(MCS) -target:library -out:bug-81691-a.dll $(srcdir)/bug-81691-a.cs 
2820         $(MCS) -r:bug-81691-a.dll -target:library -out:bug-81691-b.dll $(srcdir)/bug-81691-b.cs
2821         $(MCS) -r:bug-81691-b.dll -out:bug-81691.exe $(srcdir)/bug-81691.cs
2822         rm -f bug-81691-a.dll
2824 EXTRA_DIST += bug-81466-lib.il
2826 bug-81466.exe$(PLATFORM_AOT_SUFFIX): bug-81466-lib.dll$(PLATFORM_AOT_SUFFIX)
2827 bug-81466.exe bug-81466-lib.dll: $(srcdir)/bug-81466.il $(srcdir)/bug-81466-lib.il
2828         $(ILASM) /dll /output:bug-81466-lib.dll $(srcdir)/bug-81466-lib.il
2829         $(ILASM) /exe /output:bug-81466.exe $(srcdir)/bug-81466.il
2831 EXTRA_DIST += bug-324535-il.il
2833 bug-324535.exe$(PLATFORM_AOT_SUFFIX): bug-324535-il.dll$(PLATFORM_AOT_SUFFIX)
2834 bug-324535.exe bug-324535-il.dll: $(srcdir)/bug-324535.cs $(srcdir)/bug-324535-il.il
2835         $(ILASM) /dll /output:bug-324535-il.dll $(srcdir)/bug-324535-il.il
2836         $(MCS) -r:bug-324535-il.dll -out:bug-324535.exe $(srcdir)/bug-324535.cs
2838 EXTRA_DIST += custom-modifiers.2.cs custom-modifiers-lib.il
2840 custom-modifiers.2.exe$(PLATFORM_AOT_SUFFIX): custom-modifiers-lib.dll$(PLATFORM_AOT_SUFFIX)
2841 custom-modifiers.2.exe custom-modifiers-lib.dll: $(srcdir)/custom-modifiers.2.cs $(srcdir)/custom-modifiers-lib.il
2842         $(ILASM) /dll /output:custom-modifiers-lib.dll $(srcdir)/custom-modifiers-lib.il
2843         $(MCS) -r:custom-modifiers-lib.dll -out:custom-modifiers.2.exe $(srcdir)/custom-modifiers.2.cs
2845 EXTRA_DIST += bug-382986-lib.cs
2847 bug-382986.exe$(PLATFORM_AOT_SUFFIX): bug-382986-lib.dll$(PLATFORM_AOT_SUFFIX)
2848 bug-382986.exe bug-382986-lib.dll: $(srcdir)/bug-382986.cs $(srcdir)/bug-382986-lib.cs
2849         $(MCS) -target:library -out:bug-382986-lib.dll $(srcdir)/bug-382986-lib.cs
2850         $(MCS) -r:bug-382986-lib.dll -out:bug-382986.exe $(srcdir)/bug-382986.cs
2852 EXTRA_DIST += bug-17537-helper.cs
2854 bug-17537.exe$(PLATFORM_AOT_SUFFIX): bug-17537-helper.exe$(PLATFORM_AOT_SUFFIX)
2855 bug-17537-helper.exe: $(srcdir)/bug-17537-helper.cs
2856         $(MCS) -out:$@ $<
2857         chmod -x $@
2858 bug-17537.exe: bug-17537-helper.exe
2860 EXTRA_DIST += coreclr-security.cs
2862 test-coreclr-security : coreclr-security.exe
2863         @$(RUNTIME_MOONLIGHT) --security=core-clr-test coreclr-security.exe
2865 EXTRA_DIST += generic-unboxing.2.il generic-boxing.2.il
2867 generic-unboxing.2.dll: $(srcdir)/generic-unboxing.2.il
2868         $(ILASM) /dll /output:$@ $<
2869 generic-boxing.2.dll: $(srcdir)/generic-boxing.2.il generic-unboxing.2.dll
2870         $(ILASM) /dll /output:$@ $<
2872 EXTRA_DIST += generic-unbox.2.cs
2874 generic-unbox.2.exe$(PLATFORM_AOT_SUFFIX): generic-unboxing.2.dll$(PLATFORM_AOT_SUFFIX)
2875 generic-unbox.2.exe: $(srcdir)/generic-unbox.2.cs generic-unboxing.2.dll
2876         $(MCS) -r:generic-unboxing.2.dll -out:$@ $<
2878 EXTRA_DIST += generic-box.2.cs
2880 generic-box.2.exe$(PLATFORM_AOT_SUFFIX): generic-unboxing.2.dll$(PLATFORM_AOT_SUFFIX) generic-boxing.2.dll$(PLATFORM_AOT_SUFFIX)
2881 generic-box.2.exe : $(srcdir)/generic-box.2.cs generic-unboxing.2.dll generic-boxing.2.dll
2882         $(MCS) -r:generic-unboxing.2.dll,generic-boxing.2.dll -out:$@ $<
2884 EXTRA_DIST += generic-delegate2.2.cs generic-delegate2-lib.2.il
2886 generic-delegate2-lib.2.dll: $(srcdir)/generic-delegate2-lib.2.il
2887         $(ILASM) /dll /output:$@ $<
2889 generic-delegate2.2.exe$(PLATFORM_AOT_SUFFIX): generic-delegate2-lib.2.dll$(PLATFORM_AOT_SUFFIX)
2890 generic-delegate2.2.exe: $(srcdir)/generic-delegate2.2.cs generic-delegate2-lib.2.dll
2891         $(MCS) -r:generic-delegate2-lib.2.dll -out:$@ $<
2893 bug-3903.exe: bug-3903.cs
2894         $(MCS_NO_LIB)  $(srcdir)/bug-3903.cs -nostdlib -r:$(srcdir)/../../external/binary-reference-assemblies/v2.0/mscorlib.dll -r:$(srcdir)/../../external/binary-reference-assemblies/v2.0/System.Core.dll -out:$@
2896 EXTRA_DIST += appdomain-marshalbyref-assemblyload-MidAssembly.cs appdomain-marshalbyref-assemblyload-LeafAssembly.cs
2898 LeafAssembly.dll: appdomain-marshalbyref-assemblyload-LeafAssembly.cs
2899         mkdir -p appdomain-marshalbyref-assemblyload1
2900         $(MCS) -target:library -out:$@ $<
2902 appdomain-marshalbyref-assemblyload2/LeafAssembly.dll: appdomain-marshalbyref-assemblyload-LeafAssembly.cs
2903         mkdir -p appdomain-marshalbyref-assemblyload2
2904         $(MCS) -target:library -out:$@ $< -define:UNDEFINE_OTHER_METHOD
2906 MidAssembly.dll: appdomain-marshalbyref-assemblyload-MidAssembly.cs LeafAssembly.dll
2907         mkdir -p appdomain-marshalbyref-assemblyload1
2908         $(MCS) -target:library -out:$@ $< -r:LeafAssembly.dll
2910 appdomain-marshalbyref-assemblyload.exe: appdomain-marshalbyref-assemblyload.cs MidAssembly.dll LeafAssembly.dll appdomain-marshalbyref-assemblyload2/LeafAssembly.dll
2911         $(MCS) -out:$@ $< -r:MidAssembly.dll -r:LeafAssembly.dll
2913 assembly-load-dir1/Lib.dll: assembly-load-dir1/Lib.cs
2914         $(MKDIR_P) $(dir $@)
2915         $(MCS) -target:library -out:$@ $<
2916 assembly-load-dir2/Lib.dll: assembly-load-dir2/Lib.cs
2917         $(MKDIR_P) $(dir $@)
2918         $(MCS) -target:library -out:$@ $<
2920 assembly-load-dir1/LibStrongName.dll: assembly-load-dir1/LibStrongName.cs testing_gac/testkey.snk
2921         $(MKDIR_P) $(dir $@)
2922         $(MCS) -target:library -out:$@ $< -keyfile:$(dir $<)../testing_gac/testkey.snk
2924 assembly-load-dir2/LibStrongName.dll: assembly-load-dir2/LibStrongName.cs testing_gac/testkey.snk
2925         $(MKDIR_P) $(dir $@)
2926         $(MCS) -target:library -out:$@ $< -keyfile:$(dir $<)../testing_gac/testkey.snk
2928 EXTRA_DIST += assembly-load-dir1/Lib.cs assembly-load-dir2/Lib.cs \
2929         assembly-load-dir1/LibStrongName.cs assembly-load-dir2/LibStrongName.cs
2931 assembly-load-bytes.exe: assembly-load-dir1/Lib.dll assembly-load-dir2/Lib.dll
2933 assembly-loadfrom.exe$(PLATFORM_AOT_SUFFIX): assembly-load-dir1/Lib.dll$(PLATFORM_AOT_SUFFIX) assembly-load-dir2/Lib.dll$(PLATFORM_AOT_SUFFIX)
2934 assembly-loadfrom.exe: assembly-load-dir1/Lib.dll assembly-load-dir2/Lib.dll
2936 assembly-loadfile.exe$(PLATFORM_AOT_SUFFIX): assembly-load-dir1/Lib.dll$(PLATFORM_AOT_SUFFIX) assembly-load-dir2/Lib.dll$(PLATFORM_AOT_SUFFIX)
2937 assembly-loadfile.exe: assembly-load-dir1/Lib.dll assembly-load-dir2/Lib.dll
2939 assembly-loadfrom-bindingredirect.exe$(PLATFORM_AOT_SUFFIX): assembly-load-dir1/LibStrongName.dll$(PLATFORM_AOT_SUFFIX) assembly-load-dir2/LibStrongName.dll$(PLATFORM_AOT_SUFFIX) assembly-loadfrom-bindingredirect.exe.config
2940 assembly-loadfrom-bindingredirect.exe: assembly-load-dir1/LibStrongName.dll assembly-load-dir2/LibStrongName.dll assembly-loadfrom-bindingredirect.exe.config
2942 assembly-loadfile-bindingredirect.exe$(PLATFORM_AOT_SUFFIX): assembly-load-dir1/LibStrongName.dll$(PLATFORM_AOT_SUFFIX) assembly-load-dir2/LibStrongName.dll$(PLATFORM_AOT_SUFFIX) assembly-loadfile-bindingredirect.exe.config
2943 assembly-loadfile-bindingredirect.exe: assembly-load-dir1/LibStrongName.dll assembly-load-dir2/LibStrongName.dll assembly-loadfile-bindingredirect.exe.config
2945 assembly-load-bytes-bindingredirect.exe: assembly-load-dir1/LibStrongName.dll assembly-load-dir2/LibStrongName.dll assembly-load-bytes-bindingredirect.exe.config
2947 EXTRA_DIST += assembly-loadfrom-bindingredirect.exe.config assembly-loadfile-bindingredirect.exe.config assembly-load-bytes-bindingredirect.exe.config
2950 assembly-load-dir1/LibSimpleName.dll: assembly-load-dir1/LibSimpleName.cs
2951         $(MKDIR_P) $(dir $@)
2952         $(MCS) -target:library -out:$@ $<
2954 # NOTE: unlike assembly-load-dir1/LibSimpleName.dll, the output name here is in all lower case!
2955 assembly-load-dir2/libsimplename.dll: assembly-load-dir2/LibSimpleName.cs
2956         $(MKDIR_P) $(dir $@)
2957         $(MCS) -target:library -out:$@ $<
2959 assembly-dep-simplename.dll: assembly-dep-simplename.cs assembly-load-dir1/LibSimpleName.dll
2960         $(MCS) -target:library -out:$@ $< -r:assembly-load-dir1/LibSimpleName.dll
2962 # NOTE: while we compile assembly-dep-simplename.dll using assembly-load-dir1, we AOT it using assembly-load-dir2
2963 #  (So that the AOT image has the right GUID of the referenced assembly baked in)
2964 assembly-dep-simplename.dll$(PLATFORM_AOT_SUFFIX): assembly-dep-simplename.dll assembly-load-dir2/libsimplename.dll$(PLATFORM_AOT_SUFFIX)
2965         MONO_PATH=$(CLASS):assembly-load-dir2 $(top_builddir)/runtime/mono-wrapper $(TEST_AOT_BUILD_FLAGS) --aot-path=assembly-load-dir2 assembly-dep-simplename.dll
2967 EXTRA_DIST += assembly-load-dir1/LibSimpleName.cs assembly-load-dir2/LibSimpleName.cs \
2968         assembly-dep-simplename.cs
2970 assembly-loadfrom-simplename.exe: assembly-dep-simplename.dll assembly-load-dir2/libsimplename.dll
2972 assembly-loadfrom-simplename.exe$(PLATFORM_AOT_SUFFIX): assembly-load-dir2/libsimplename.dll$(PLATFORM_AOT_SUFFIX) assembly-dep-simplename.dll$(PLATFORM_AOT_SUFFIX)
2974 gshared:
2975         $(MAKE) test-generic-sharing
2977 gshared-aot:
2978         @$(MAKE) AOT=1 gshared
2980 test-generic-sharing-normal: $(TESTS_GSHARED) $(TESTSAOT_GSHARED)
2981         @for fn in $+ ; do      \
2982                 echo "Testing $$fn ...";        \
2983                 $(RUNTIME) -O=gshared                $$fn > $$fn.stdout || exit 1;      \
2984                 $(RUNTIME) -O=gshared,shared         $$fn > $$fn.stdout || exit 1;      \
2985                 $(RUNTIME) -O=gshared,-inline        $$fn > $$fn.stdout || exit 1;      \
2986                 $(RUNTIME) -O=gshared,-inline,shared $$fn > $fn.stdout || exit 1;       \
2987                 if [ x$(AOT) = x1 ]; then $(with_mono_path) $(JITTEST_PROG_RUN) --aot --debug $$fn > /dev/null || exit 1; $(RUNTIME) $$fn > $$fn.stdout || exit 1; fi; \
2988         done
2990 test-generic-sharing-managed: test-runner.exe $(TESTS_GSHARED) $(TESTSAOT_GSHARED) 
2991         $(Q) $(TOOLS_RUNTIME) $(TEST_RUNNER) -j a --testsuite-name "gshared" --disabled "$(DISABLED_TESTS)" --opt-sets "gshared gshared,shared gshared,-inline gshared,-inline,shared" $(TESTS_GSHARED)
2993 test-generic-sharing:
2994         @if test x$(M) != x0; then $(MAKE) test-generic-sharing-managed; else $(MAKE) test-generic-sharing-normal; fi
2996 EXTRA_DIST += async-exceptions.cs
2997 async-exceptions.exe : async-exceptions.cs
2998         $(MCS) -out:async-exceptions.exe $(srcdir)/async-exceptions.cs
2999 test-async-exceptions : async-exceptions.exe
3000         for i in `echo 0 1 2 3 4 5 6 7 8 9 10`; do $(RUNTIME) --inject-async-exc Tests:foo $$i async-exceptions.exe || exit 1; done
3001         for i in `echo 0 1 2 3 4 5 6 7 8 9 10`; do $(RUNTIME) --inject-async-exc Tests:bar $$i async-exceptions.exe || exit 1; done
3003 EXTRA_DIST += modules.cs modules-m1.cs
3004 modules-m1.netmodule: modules-m1.cs
3005         $(MCS) -out:$@ /target:module $(srcdir)/modules-m1.cs
3006 modules.exe: modules.cs modules-m1.netmodule $(TEST_DRIVER_DEPEND) 
3007         $(MCS) -out:$@ /addmodule:modules-m1.netmodule -r:TestDriver.dll $(srcdir)/modules.cs
3009 # Useful if mono is compiled with --enable-shared=no
3010 patch-libtool:
3011         cp "../../libtool" .
3012         sed -e 's,build_libtool_libs=no,build_libtool_libs=yes,g' libtool > 2; mv 2 libtool
3013         sed -e 's,LIBTOOL =,LIBTOOL2 =,g' Makefile > 2 && echo "LIBTOOL = bash ./libtool" > 1 && cat 1 2 > Makefile
3014         touch libtest.c
3017 EXTRA_DIST += threadpool-in-processexit.cs threadpool-in-processexit.exe.stdout.expected
3018 test-process-exit:
3019         @$(MCS) $(srcdir)/threadpool-in-processexit.cs -out:threadpool-in-processexit.exe
3020         @echo "Testing threadpool-in-processexit.exe..."
3021         @$(RUNTIME) threadpool-in-processexit.exe > threadpool-in-processexit.exe.stdout
3022         @diff -w threadpool-in-processexit.exe.stdout $(srcdir)/threadpool-in-processexit.exe.stdout.expected
3024 # tests that expect a 1 exit code
3025 TESTS_UNHANDLED_EXCEPTION_1_SRC =       \
3026         unhandled-exception-1.cs        \
3027         unhandled-exception-9.cs
3029 # tests that expect a 255 exit code
3030 TESTS_UNHANDLED_EXCEPTION_255_SRC =     \
3031         unhandled-exception-2.cs        \
3032         unhandled-exception-3.cs        \
3033         unhandled-exception-4.cs        \
3034         unhandled-exception-5.cs        \
3035         unhandled-exception-6.cs        \
3036         unhandled-exception-7.cs        \
3037         unhandled-exception-8.cs        \
3038         threadpool-exceptions2.cs       \
3039         threadpool-exceptions5.cs
3041 TESTS_UNHANDLED_EXCEPTION_1=$(filter-out $(DISABLED_TESTS),$(TESTS_UNHANDLED_EXCEPTION_1_SRC:.cs=.exe))
3042 TESTS_UNHANDLED_EXCEPTION_255=$(filter-out $(DISABLED_TESTS),$(TESTS_UNHANDLED_EXCEPTION_255_SRC:.cs=.exe))
3044 if FULL_AOT_TESTS
3045 TESTSAOT_UNHANDLED_EXCEPTION_1=$(TESTS_UNHANDLED_EXCEPTION_1:.exe=.exe$(PLATFORM_AOT_SUFFIX))
3046 TESTSAOT_UNHANDLED_EXCEPTION_255=$(TESTS_UNHANDLED_EXCEPTION_255:.exe=.exe$(PLATFORM_AOT_SUFFIX))
3047 endif
3049 if HYBRID_AOT_TESTS
3050 TESTSAOT_UNHANDLED_EXCEPTION_1=$(TESTS_UNHANDLED_EXCEPTION_1:.exe=.exe$(PLATFORM_AOT_SUFFIX))
3051 TESTSAOT_UNHANDLED_EXCEPTION_255=$(TESTS_UNHANDLED_EXCEPTION_255:.exe=.exe$(PLATFORM_AOT_SUFFIX))
3052 endif
3054 test-unhandled-exception-2: $(TESTS_UNHANDLED_EXCEPTION_1) $(TESTS_UNHANDLED_EXCEPTION_255) $(TESTSAOT_UNHANDLED_EXCEPTION_1) $(TESTSAOT_UNHANDLED_EXCEPTION_255)
3055         ok=; \
3056         $(MAKE) test-unhandled-exception-2-1-with-managed-handler || ok=false; \
3057         $(MAKE) test-unhandled-exception-2-1-without-managed-handler || ok=false; \
3058         $(MAKE) test-unhandled-exception-2-255-with-managed-handler || ok=false; \
3059         $(MAKE) test-unhandled-exception-2-255-without-managed-handler || ok=false; \
3060         $$ok
3062 test-unhandled-exception-2-1-with-managed-handler: $(TESTS_UNHANDLED_EXCEPTION_1) $(TESTSAOT_UNHANDLED_EXCEPTION_1) test-runner.exe
3063         $(TOOLS_RUNTIME) $(TEST_RUNNER) -j a --testsuite-name $@ --disabled "$(DISABLED_TESTS)" --expected-exit-code 1 $(TESTS_UNHANDLED_EXCEPTION_1)
3064 test-unhandled-exception-2-1-without-managed-handler: $(TESTS_UNHANDLED_EXCEPTION_1) $(TESTSAOT_UNHANDLED_EXCEPTION_1) test-runner.exe
3065         TEST_UNHANDLED_EXCEPTION_HANDLER=1 $(TOOLS_RUNTIME) $(TEST_RUNNER) -j a --testsuite-name $@ --disabled "$(DISABLED_TESTS)" --expected-exit-code 1 $(TESTS_UNHANDLED_EXCEPTION_1)
3066 test-unhandled-exception-2-255-with-managed-handler: $(TESTS_UNHANDLED_EXCEPTION_255) $(TESTSAOT_UNHANDLED_EXCEPTION_255) test-runner.exe
3067         $(TOOLS_RUNTIME) $(TEST_RUNNER) -j a --testsuite-name $@ --disabled "$(DISABLED_TESTS)" --expected-exit-code 255 $(TESTS_UNHANDLED_EXCEPTION_255)
3068 test-unhandled-exception-2-255-without-managed-handler: $(TESTS_UNHANDLED_EXCEPTION_255) $(TESTSAOT_UNHANDLED_EXCEPTION_255) test-runner.exe
3069         TEST_UNHANDLED_EXCEPTION_HANDLER=1 $(TOOLS_RUNTIME) $(TEST_RUNNER) -j a --testsuite-name $@ --disabled "$(DISABLED_TESTS)" --expected-exit-code 255 $(TESTS_UNHANDLED_EXCEPTION_255)
3071 EXTRA_DIST += appdomain-loader.cs appdomain-tester.cs
3073 if FULL_AOT_TESTS
3074 test-appdomain-unload:
3075 else
3076 appdomain-loader.exe: appdomain-tester.exe
3078 test-appdomain-unload: appdomain-loader.exe appdomain-tester.exe
3079         $(RUNTIME) -O=gshared appdomain-loader.exe > appdomain-loader.exe.1.stdout || exit 1;
3080         $(RUNTIME) appdomain-loader.exe > appdomain-loader.exe.2.stdout || exit 1;
3081         MONO_DEBUG_ASSEMBLY_UNLOAD=1 $(RUNTIME) -O=gshared appdomain-loader.exe > appdomain-loader.exe.3.stdout || exit 1;
3082         MONO_DEBUG_ASSEMBLY_UNLOAD=1 $(RUNTIME) appdomain-loader.exe > appdomain-loader.exe.4.stdout || exit 1;
3083 endif
3085 EXTRA_DIST += console-output.cs console-output.exe.stderr.expected console-output.exe.stdout.expected
3086 test-console-output: console-output.exe
3087         @$(RUNTIME) console-output.exe 1>console-output.exe.stdout
3088         @$(RUNTIME) console-output.exe 2>console-output.exe.stderr
3089         @diff -w console-output.exe.stdout $(srcdir)/console-output.exe.stdout.expected \
3090                 && diff -w console-output.exe.stderr $(srcdir)/console-output.exe.stderr.expected
3092 test-pedump: test-runner.exe
3093         $(with_mono_path) $(mono_build_root)/tools/pedump/pedump --verify error test-runner.exe
3095 .PHONY: test-gac-loading test-eglib-remap
3097 runtest-gac-loading: test-runner.exe
3098         $(MAKE) -C testing_gac run-test
3100 compile-gac-loading:
3101         $(MAKE) -C testing_gac test
3103 runtest-assembly-load-reference: test-runner.exe
3104         $(MAKE) -C assembly-load-reference run-test
3106 compile-assembly-load-reference:
3107         $(MAKE) -C assembly-load-reference test
3110 TESTS_STRESS_PROCESS_SRC=       \
3111                 process-stress-1.cs     \
3112                 process-stress-2.cs     \
3113                 process-stress-3.cs     \
3114                 process-leak.cs
3116 TESTS_STRESS_PROCESS=$(filter-out $(DISABLED_TESTS),$(TESTS_STRESS_PROCESS_SRC:.cs=.exe))
3118 if FULL_AOT_TESTS
3119 TESTSAOT_STRESS_PROCESS=$(TESTS_STRESS_PROCESS:.exe=.exe$(PLATFORM_AOT_SUFFIX))
3120 endif
3122 if HYBRID_AOT_TESTS
3123 TESTSAOT_STRESS_PROCESS=$(TESTS_STRESS_PROCESS:.exe=.exe$(PLATFORM_AOT_SUFFIX))
3124 endif
3126 test-process-stress: $(TESTS_STRESS_PROCESS) $(TESTSAOT_STRESS_PROCESS) test-runner.exe
3127         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --disabled "$(DISABLED_TESTS)" --timeout 900 $(TESTS_STRESS_PROCESS)
3129 coreclr-gcstress:
3130         $(MAKE) -C $(mono_build_root)/acceptance-tests coreclr-gcstress
3132 # Tests for the Mono lldb plugin
3133 EXTRA_DIST += test_lldb.py test-lldb.cs
3134 test-lldb: test-lldb.exe
3135         python test_lldb.py $(JITTEST_PROG)
3137 noinst_LTLIBRARIES = libtest.la
3139 AM_CPPFLAGS = $(GLIB_CFLAGS)
3141 if HOST_WIN32
3142 # gcc-3.4.4 emits incorrect code when making indirect calls to stdcall functions using a tail call
3143 # This shows up when compiling mono_test_marshal_delegate ()
3144 libtest_la_CFLAGS=-fno-optimize-sibling-calls
3145 # the exported names created by gcc for stdcall functions are missing the leading _, so MS.NET
3146 # can't find them. So we use --kill-at to remove the @ suffix as well.
3147 libtest_la_LDFLAGS = -no-undefined -rpath `pwd` -Wl,--kill-at
3148 else
3149 libtest_la_LDFLAGS = -no-undefined -rpath `pwd`
3150 endif
3151 libtest_la_SOURCES = libtest.c
3152 libtest_la_LIBADD = $(top_builddir)/mono/eglib/libeglib.la
3154 INTERNALSVISIBLETO_TEST_SRC = \
3155         internalsvisibleto-runtimetest.cs \
3156         internalsvisibleto-compilertest.cs
3158 INTERNALSVISIBLETO_TEST_LIB_SRC = \
3159         internalsvisibleto-library.cs
3161 INTERNALSVISIBLETO_TEST_LIBS = \
3162         internalsvisibleto-correctcase.dll \
3163         internalsvisibleto-wrongcase.dll \
3164         internalsvisibleto-correctcase-2.dll \
3165         internalsvisibleto-wrongcase-2.dll \
3166         internalsvisibleto-correctcase-sign2048.dll \
3167         internalsvisibleto-wrongcase-sign2048.dll \
3168         internalsvisibleto-correctcase-2-sign2048.dll \
3169         internalsvisibleto-wrongcase-2-sign2048.dll
3172 INTERNALSVISIBLETO_TEST = \
3173         $(INTERNALSVISIBLETO_TEST_SRC:.cs=.exe) \
3174         $(INTERNALSVISIBLETO_TEST_SRC:.cs=-sign2048.exe)
3176 if FULL_AOT_TESTS
3177 INTERNALSVISIBLETO_TESTAOT = \
3178         $(INTERNALSVISIBLETO_TEST:.exe=.exe$(PLATFORM_AOT_SUFFIX))
3179 INTERNALSVISIBLETO_TESTAOT_LIBS = \
3180         $(INTERNALSVISIBLETO_TEST_LIBS:.dll=.dll$(PLATFORM_AOT_SUFFIX))
3181 endif
3183 if HYBRID_AOT_TESTS
3184 INTERNALSVISIBLETO_TESTAOT = \
3185         $(INTERNALSVISIBLETO_TEST:.exe=.exe$(PLATFORM_AOT_SUFFIX))
3186 INTERNALSVISIBLETO_TESTAOT_LIBS = \
3187         $(INTERNALSVISIBLETO_TEST_LIBS:.dll=.dll$(PLATFORM_AOT_SUFFIX))
3188 endif
3190 EXTRA_DIST += $(INTERNALSVISIBLETO_TEST_SRC) $(INTERNALSVISIBLETO_TEST_LIB_SRC)
3192 test-internalsvisibleto: test-runner.exe $(INTERNALSVISIBLETO_TEST) $(INTERNALSVISIBLETO_TESTAOT) $(INTERNALSVISIBLETO_TESTAOT_LIBS)
3193         $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ $(INTERNALSVISIBLETO_TEST)
3195 internalsvisibleto-correctcase.dll internalsvisibleto-wrongcase.dll internalsvisibleto-runtimetest.exe: internalsvisibleto-runtimetest.cs internalsvisibleto-library.cs
3196         $(Q) $(MCS_NO_UNSAFE) -out:internalsvisibleto-correctcase.dll -target:library -d:CORRECT_CASE -d:PERMISSIVE internalsvisibleto-library.cs       
3197         $(Q) $(MCS_NO_UNSAFE) -out:internalsvisibleto-wrongcase.dll -target:library -d:WRONG_CASE -d:PERMISSIVE internalsvisibleto-library.cs
3198         $(Q) $(MCS_NO_UNSAFE) -out:internalsvisibleto-runtimetest.exe -warn:0 -r:internalsvisibleto-correctcase.dll -r:internalsvisibleto-wrongcase.dll internalsvisibleto-runtimetest.cs
3199         $(Q) $(MCS_NO_UNSAFE) -out:internalsvisibleto-correctcase.dll -target:library -d:CORRECT_CASE internalsvisibleto-library.cs     
3200         $(Q) $(MCS_NO_UNSAFE) -out:internalsvisibleto-wrongcase.dll -target:library -d:WRONG_CASE internalsvisibleto-library.cs
3202 internalsvisibleto-correctcase-2.dll internalsvisibleto-wrongcase-2.dll  internalsvisibleto-compilertest.exe: internalsvisibleto-compilertest.cs internalsvisibleto-library.cs
3203         $(Q) $(MCS_NO_UNSAFE) -out:internalsvisibleto-correctcase-2.dll -target:library -d:CORRECT_CASE internalsvisibleto-library.cs   
3204         $(Q) $(MCS_NO_UNSAFE) -out:internalsvisibleto-wrongcase-2.dll -target:library -d:WRONG_CASE internalsvisibleto-library.cs
3205         $(Q) $(MCS_NO_UNSAFE) -out:internalsvisibleto-compilertest.exe -warn:0 -r:internalsvisibleto-correctcase-2.dll -r:internalsvisibleto-wrongcase-2.dll internalsvisibleto-compilertest.cs
3207 internalsvisibleto-correctcase-sign2048.dll internalsvisibleto-wrongcase-sign2048.dll internalsvisibleto-runtimetest-sign2048.exe: internalsvisibleto-runtimetest.cs internalsvisibleto-library.cs internalsvisibleto-2048.snk
3208         $(Q) $(MCS_NO_UNSAFE) -out:internalsvisibleto-correctcase-sign2048.dll -target:library -d:CORRECT_CASE -d:PERMISSIVE -d:SIGN2048 internalsvisibleto-library.cs
3209         $(Q) $(MCS_NO_UNSAFE) -out:internalsvisibleto-wrongcase-sign2048.dll -target:library -d:WRONG_CASE -d:PERMISSIVE -d:SIGN2048 internalsvisibleto-library.cs
3210         $(Q) $(MCS_NO_UNSAFE) -out:internalsvisibleto-runtimetest-sign2048.exe -warn:0 -r:internalsvisibleto-correctcase-sign2048.dll -r:internalsvisibleto-wrongcase-sign2048.dll -d:SIGN2048 internalsvisibleto-runtimetest.cs
3211         $(Q) $(MCS_NO_UNSAFE) -out:internalsvisibleto-correctcase-sign2048.dll -target:library -d:CORRECT_CASE -d:SIGN2048 internalsvisibleto-library.cs
3212         $(Q) $(MCS_NO_UNSAFE) -out:internalsvisibleto-wrongcase-sign2048.dll -target:library -d:WRONG_CASE -d:SIGN2048 internalsvisibleto-library.cs
3214 internalsvisibleto-correctcase-2-sign2048.dll internalsvisibleto-wrongcase-2-sign2048.dll internalsvisibleto-compilertest-sign2048.exe: internalsvisibleto-compilertest.cs internalsvisibleto-library.cs internalsvisibleto-2048.snk
3215         $(Q) $(MCS_NO_UNSAFE) -out:internalsvisibleto-correctcase-2-sign2048.dll -target:library -d:CORRECT_CASE -d:SIGN2048 internalsvisibleto-library.cs      
3216         $(Q) $(MCS_NO_UNSAFE) -out:internalsvisibleto-wrongcase-2-sign2048.dll -target:library -d:WRONG_CASE -d:SIGN2048 internalsvisibleto-library.cs
3217         $(Q) $(MCS_NO_UNSAFE) -out:internalsvisibleto-compilertest-sign2048.exe -warn:0 -r:internalsvisibleto-correctcase-2-sign2048.dll -r:internalsvisibleto-wrongcase-2-sign2048.dll -d:SIGN2048 internalsvisibleto-compilertest.cs
3219 EXTRA_DIST += weakattribute.cs
3221 # Contains copies of types which don't exist in the desktop profile so tests can use them
3222 Mono.Runtime.Testing.dll: weakattribute.cs
3223         $(MCS) -target:library -out:$@ $<
3225 weak-fields.exe: weak-fields.cs Mono.Runtime.Testing.dll
3226         $(MCS) -r:Mono.Runtime.Testing.dll -r:$(CLASS)/System.dll -r:$(CLASS)/System.Xml.dll -r:$(CLASS)/System.Core.dll -r:TestDriver.dll $(TEST_DRIVER_HARD_KILL_FEATURE) -out:$@ $<
3228 CLEANFILES = $(TESTS_REGULAR) $(TESTS_STRESS) $(TESTSAOT_CS) $(TESTSAOT_IL) $(TESTSAOT_BENCH) $(TESTSAOT_STRESS) *.dll *.stdout *.aotlog *.exe stest.dat LeafAssembly.dll MidAssembly.dll appdomain-marshalbyref-assemblyload2/*.dll 
3229 CLEANFILES += $(TESTS_TAILCALL_COMPILE) $(TESTSAOT_TAILCALL)
3230 CLEANFILES += $(BUILT_SOURCES)