[System] UriKind.RelativeOrAbsolute workaround.
[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
15 nunit_MONO_PATH="../../../../../class/lib/net_4_5"
16 CSCOMPILE=MONO_PATH=../../../../../class/lib/net_4_5 ../../../../../../runtime/mono-wrapper ../../../../../class/lib/build/mcs.exe
17
18 TEST_ARCHIVE = xslt-testsuite-03.ZIP
19 CATALOG = testsuite/TESTS/catalog.xml
20 FIXED_CATALOG = testsuite/TESTS/catalog-fixed.xml
21
22 mono_wrapper_PATH="../../../../../../runtime/mono-wrapper"
23 NUNIT_CONSOLE=$(mono_wrapper_PATH) --debug $(nunit_MONO_PATH)/nunit-console.exe
24
25 FIXTURE=MonoTests.oasis_xslt.SuiteBuilder
26 CLEAN_NUNIT_FLAGS=-fixture:$(FIXTURE) -xml=TestResult.xml -include=Clean
27 FAILED_NUNIT_FLAGS=-fixture:$(FIXTURE) -xml=FailedTestResult.xml -include=KnownFailures
28 ALL_NUNIT_FLAGS=-fixture:$(FIXTURE) -xml=AllTestResult.xml -out=AllTestResult.log -include=KnownFailures,Clean
29
30 TEST_PROG=xslttest.dll
31 GENERATE_EXE=generate.exe
32
33 ifdef TEST_DOM
34 REFERENCE_RESULTS_NAME=domresults
35 else
36 REFERENCE_RESULTS_NAME=results
37 endif
38 REFERENCE_RESULTS_ARCHIVE=xslt-reference-$(REFERENCE_RESULTS_NAME).tar.gz
39 REFERENCE_RESULTS_URL=https://github.com/mono/release/raw/master/test-ext/xslt-standalone/$(REFERENCE_RESULTS_ARCHIVE)
40 REFERENCE_RESULTS=$(REFERENCE_RESULTS_NAME)/timestamp
41
42 test : $(TEST_PROG) $(FIXED_CATALOG) $(REFERENCE_RESULTS)
43
44 run-test : $(TEST_PROG) $(FIXED_CATALOG) $(REFERENCE_RESULTS)
45         MONO_PATH="$(nunit_MONO_PATH);$(MONO_PATH)" $(NUNIT_CONSOLE) $(TEST_PROG) $(CLEAN_NUNIT_FLAGS)
46         
47 run-all-test : $(TEST_PROG) $(FIXED_CATALOG) $(REFERENCE_RESULTS)
48         MONO_PATH="$(nunit_MONO_PATH);$(MONO_PATH)" $(NUNIT_CONSOLE) $(TEST_PROG) $(ALL_NUNIT_FLAGS)
49         
50 run-failed-test : $(TEST_PROG) $(FIXED_CATALOG) $(REFERENCE_RESULTS)
51         XSLTTEST_INVERSE_RESULTS="" MONO_PATH="$(nunit_MONO_PATH);$(MONO_PATH)" $(NUNIT_CONSOLE) $(TEST_PROG) $(FAILED_NUNIT_FLAGS)
52         
53
54 clean :
55         rm -f *TestResult.xml failed.lst missing.lst AllTestResult.log
56         rm -f $(TEST_PROG) $(GENERATE_EXE)
57
58 # Be careful to use it!
59 distclean : clean
60         rm -rf testsuite
61         rm -rf results domresults
62         rm -f $(TEST_ARCHIVE) $(REFERENCE_RESULTS_ARCHIVE) $(REFERENCE_LIST)
63
64 # Check that we are running on MS.NET - otherwise the reference output can be
65 # created on mono - and we will compare mono with mono
66 must-be-dotnet:
67 ifdef GENERATE_REFERENCE_ON_MONO
68         true
69 else
70         uname | grep CYGWIN || uname | grep Windows
71 endif
72         
73 create-reference-output : must-be-dotnet $(GENERATE_EXE) $(FIXED_CATALOG)
74         rm -rf $(REFERENCE_RESULTS_NAME)
75 ifdef GENERATE_REFERENCE_ON_MONO
76         $(RUNTIME) ./$(GENERATE_EXE) $(TEST_DOM)
77 else
78         ./generate.exe $(TEST_DOM)
79 endif
80 # Must cd to work with any path separator symbols
81         cd $(REFERENCE_RESULTS_NAME); echo "$(TEST_DOM)" > generate_options 
82         tar -c $(REFERENCE_RESULTS_NAME) | gzip > $(REFERENCE_RESULTS_ARCHIVE)
83         @echo "Now you can upload $(REFERENCE_RESULTS_ARCHIVE) to $(REFERENCE_RESULTS_URL)"
84
85 $(GENERATE_EXE) : generate.cs XsltTestUtils.cs
86         $(CSCOMPILE) generate.cs XsltTestUtils.cs -out:$@
87         # It somehow does not work fine unless nunit-console.exe is here ...
88         cp $(nunit_MONO_PATH)/nunit-console.exe .
89 $(TEST_PROG) : xslttest.cs XsltTestUtils.cs
90         $(CSCOMPILE) xslttest.cs XsltTestUtils.cs XmlCompare.cs -r:nunit.core -r:nunit.core.interfaces -r:nunit.framework -out:$@ -t:library
91
92 catalog-fixed : $(FIXED_CATALOG)
93
94 $(FIXED_CATALOG) : $(CATALOG) catalog.sed catalog-fixed.diff
95         sed -f catalog.sed $(CATALOG) > $(FIXED_CATALOG)
96         patch -p0 -i catalog-fixed.diff
97
98 catalog : $(CATALOG)
99
100 $(CATALOG) : $(TEST_ARCHIVE)
101         unzip -un $(TEST_ARCHIVE)
102         touch $(CATALOG)
103
104 $(TEST_ARCHIVE) :
105         wget http://www.oasis-open.org/committees/download.php/9584/$(TEST_ARCHIVE)
106
107 $(REFERENCE_RESULTS) : $(REFERENCE_RESULTS_ARCHIVE)
108         tar -xzf $<
109         touch $@
110
111 $(REFERENCE_RESULTS_ARCHIVE) :
112         wget -O $(REFERENCE_RESULTS_ARCHIVE) $(REFERENCE_RESULTS_URL)
113