2 # "make" prepares automated download and build for all tests.
4 # "make run-test" executes both existing xslttest and MainSoft's new test
5 # and reports the total diff numbers:
7 # - For xslttest, it is "TestResult.xml" and the list of the failed tests
11 .SUFFIXES: .cs .exe .dll
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
18 TEST_ARCHIVE = xslt-testsuite-03.ZIP
19 CATALOG = testsuite/TESTS/catalog.xml
20 FIXED_CATALOG = testsuite/TESTS/catalog-fixed.xml
22 mono_wrapper_PATH="../../../../../../runtime/mono-wrapper"
23 NUNIT_CONSOLE=$(mono_wrapper_PATH) --debug $(nunit_MONO_PATH)/nunit-console.exe
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
30 TEST_PROG=xslttest.dll
31 GENERATE_EXE=generate.exe
34 REFERENCE_RESULTS_NAME=domresults
36 REFERENCE_RESULTS_NAME=results
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
42 test : $(TEST_PROG) $(FIXED_CATALOG) $(REFERENCE_RESULTS)
44 run-test : $(TEST_PROG) $(FIXED_CATALOG) $(REFERENCE_RESULTS)
45 MONO_PATH="$(nunit_MONO_PATH);$(MONO_PATH)" $(NUNIT_CONSOLE) $(TEST_PROG) $(CLEAN_NUNIT_FLAGS)
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)
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)
55 rm -f *TestResult.xml failed.lst missing.lst AllTestResult.log
56 rm -f $(TEST_PROG) $(GENERATE_EXE)
58 # Be careful to use it!
61 rm -rf results domresults
62 rm -f $(TEST_ARCHIVE) $(REFERENCE_RESULTS_ARCHIVE) $(REFERENCE_LIST)
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
67 ifdef GENERATE_REFERENCE_ON_MONO
70 uname | grep CYGWIN || uname | grep Windows
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)
78 ./generate.exe $(TEST_DOM)
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)"
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
92 catalog-fixed : $(FIXED_CATALOG)
94 $(FIXED_CATALOG) : $(CATALOG) catalog.sed catalog-fixed.diff
95 sed -f catalog.sed $(CATALOG) > $(FIXED_CATALOG)
96 patch -p0 -i catalog-fixed.diff
100 $(CATALOG) : $(TEST_ARCHIVE)
101 unzip -un $(TEST_ARCHIVE)
105 wget http://www.oasis-open.org/committees/download.php/9584/$(TEST_ARCHIVE)
107 $(REFERENCE_RESULTS) : $(REFERENCE_RESULTS_ARCHIVE)
111 $(REFERENCE_RESULTS_ARCHIVE) :
112 wget -O $(REFERENCE_RESULTS_ARCHIVE) $(REFERENCE_RESULTS_URL)