This should fix #76928. This fix incorporates ideas from a patch
[mono.git] / mcs / class / System.XML / Test / System.Xml.Xsl / standalone_tests / Makefile
1 #
2 # "make" prepares automated download and build for all tests.
3 #
4 # "make run-test" executes both existing xslttest and MainSoft's new test
5 # and reports the total diff numbers:
6 #
7 #       - For xslttest, it is "TestResult.xml" and the list of the failed tests
8 #       is in failed.lst
9 #
10
11 .SUFFIXES: .cs .exe .dll
12
13 RUNTIME = mono
14 CSCOMPILE = mcs
15
16 TEST_ARCHIVE = xslt-testsuite-03.ZIP
17 CATALOG = testsuite/TESTS/catalog.xml
18 FIXED_CATALOG = testsuite/TESTS/catalog-fixed.xml
19
20 nunit_MONO_PATH="../../../../../class/lib/default"
21 mono_wrapper_PATH="../../../../../../mono/runtime/mono-wrapper"
22 NUNIT_CONSOLE=$(mono_wrapper_PATH) --debug $(nunit_MONO_PATH)/nunit-console.exe
23
24 FIXTURE=MonoTests.oasis_xslt.SuiteBuilder
25 CLEAN_NUNIT_FLAGS=/fixture:$(FIXTURE) /xml=TestResult.xml /include=Clean
26 FAILED_NUNIT_FLAGS=/fixture:$(FIXTURE) /xml=FailedTestResult.xml /include=KnownFailures
27 ALL_NUNIT_FLAGS=/fixture:$(FIXTURE) /xml=AllTestResult.xml /out=AllTestResult.log /include=KnownFailures,Clean
28
29 TEST_PROG=xslttest.dll
30 GENERATE_EXE=generate.exe
31
32 ifdef TEST_DOM
33 REFERENCE_RESULTS_NAME=domresults
34 else
35 REFERENCE_RESULTS_NAME=results
36 endif
37 REFERENCE_RESULTS_ARCHIVE=xslt-reference-$(REFERENCE_RESULTS_NAME).tar.gz
38 REFERENCE_RESULTS_URL=http://svn.myrealbox.com/source/trunk/release/test-ext/xslt-standalone/$(REFERENCE_RESULTS_ARCHIVE)
39 REFERENCE_RESULTS=$(REFERENCE_RESULTS_NAME)/timestamp
40
41 test : $(TEST_PROG) $(FIXED_CATALOG) $(REFERENCE_RESULTS)
42
43 run-test : $(TEST_PROG) $(FIXED_CATALOG) $(REFERENCE_RESULTS)
44         MONO_PATH="$(nunit_MONO_PATH);$(MONO_PATH)" $(NUNIT_CONSOLE) $(TEST_PROG) $(CLEAN_NUNIT_FLAGS)
45         
46 run-all-test : $(TEST_PROG) $(FIXED_CATALOG) $(REFERENCE_RESULTS)
47         MONO_PATH="$(nunit_MONO_PATH);$(MONO_PATH)" $(NUNIT_CONSOLE) $(TEST_PROG) $(ALL_NUNIT_FLAGS)
48         
49 run-failed-test : $(TEST_PROG) $(FIXED_CATALOG) $(REFERENCE_RESULTS)
50         XSLTTEST_INVERSE_RESULTS="" MONO_PATH="$(nunit_MONO_PATH);$(MONO_PATH)" $(NUNIT_CONSOLE) $(TEST_PROG) $(FAILED_NUNIT_FLAGS)
51         
52
53 clean :
54         rm -f *TestResult.xml failed.lst missing.lst AllTestResult.log
55         rm -f $(TEST_PROG) $(GENERATE_EXE)
56
57 # Be careful to use it!
58 distclean : clean
59         rm -rf testsuite
60         rm -rf results domresults
61         rm -f $(TEST_ARCHIVE) $(REFERENCE_RESULTS_ARCHIVE) $(REFERENCE_LIST)
62
63 # Check that we are running on MS.NET - otherwise the reference output can be
64 # created on mono - and we will compare mono with mono
65 must-be-dotnet:
66 ifdef GENERATE_REFERENCE_ON_MONO
67         true
68 else
69         uname | grep CYGWIN || uname | grep Windows
70 endif
71         
72 create-reference-output : must-be-dotnet $(GENERATE_EXE) $(FIXED_CATALOG)
73         rm -rf $(REFERENCE_RESULTS_NAME)
74 ifdef GENERATE_REFERENCE_ON_MONO
75         $(RUNTIME) ./$(GENERATE_EXE) $(TEST_DOM)
76 else
77         ./generate.exe $(TEST_DOM)
78 endif
79 # Must cd to work with any path separator symbols
80         cd $(REFERENCE_RESULTS_NAME); echo "$(TEST_DOM)" > generate_options 
81         tar -c $(REFERENCE_RESULTS_NAME) | gzip > $(REFERENCE_RESULTS_ARCHIVE)
82         @echo "Now you can upload $(REFERENCE_RESULTS_ARCHIVE) to $(REFERENCE_RESULTS_URL)"
83
84 $(GENERATE_EXE) : generate.cs XsltTestUtils.cs
85         $(CSCOMPILE) generate.cs XsltTestUtils.cs -out:$@
86 $(TEST_PROG) : xslttest.cs XsltTestUtils.cs
87         $(CSCOMPILE) xslttest.cs XsltTestUtils.cs XmlCompare.cs -r:nunit.core -r:nunit.framework -out:$@ -t:library
88
89 catalog-fixed : $(FIXED_CATALOG)
90
91 $(FIXED_CATALOG) : $(CATALOG) catalog.sed catalog-fixed.diff
92         sed -f catalog.sed $(CATALOG) > $(FIXED_CATALOG)
93         patch -p0 -i catalog-fixed.diff
94
95 catalog : $(CATALOG)
96
97 $(CATALOG) : $(TEST_ARCHIVE)
98         unzip -un $(TEST_ARCHIVE)
99         touch $(CATALOG)
100
101 $(TEST_ARCHIVE) :
102         wget http://www.oasis-open.org/committees/download.php/9584/$(TEST_ARCHIVE)
103
104 $(REFERENCE_RESULTS) : $(REFERENCE_RESULTS_ARCHIVE)
105         tar -xzf $<
106         touch $@
107
108 $(REFERENCE_RESULTS_ARCHIVE) :
109         wget $(REFERENCE_RESULTS_URL)
110