thisdir = class/System.Web
SUBDIRS = Test
include ../../build/rules.make

LIBRARY = System.Web.dll

RESOURCE_FILES_1= \
	resources/WebUIValidation.js

RESOURCE_FILES_2 = \
	resources/folder.gif \
	resources/file.gif \
	resources/computer.gif \
	resources/arrow_minus.gif \
	resources/arrow_noexpand.gif \
	resources/arrow_plus.gif \
	resources/arrow_up.gif \
	resources/arrow_down.gif \
	resources/box_full.gif \
	resources/box_empty.gif \
	resources/box_minus.gif \
	resources/box_noexpand.gif \
	resources/box_plus.gif \
	resources/contact.gif \
	resources/dot_empty.gif \
	resources/dot_full.gif \
	resources/dots.gif \
	resources/inbox.gif \
	resources/star_empty.gif \
	resources/star_full.gif \
	resources/warning.gif \
	resources/TreeView_noexpand.gif \
	resources/TreeView_dash.gif \
	resources/TreeView_dashminus.gif \
	resources/TreeView_dashplus.gif \
	resources/TreeView_i.gif \
	resources/TreeView_l.gif \
	resources/TreeView_lminus.gif \
	resources/TreeView_lplus.gif \
	resources/TreeView_minus.gif \
	resources/TreeView_plus.gif \
	resources/TreeView_r.gif \
	resources/TreeView_rminus.gif \
	resources/TreeView_rplus.gif \
	resources/TreeView_t.gif \
	resources/TreeView_tminus.gif \
	resources/TreeView_tplus.gif \
	resources/transparent.gif \
	resources/webform.js \
	resources/WebUIValidation_2.0.js \
	resources/ErrorTemplateCommon_Top.html \
	resources/DefaultErrorTemplate_CustomErrorDefault.html \
	resources/ErrorTemplateCommon_Bottom.html \
	resources/DefaultErrorTemplate_StandardPage.html \
	resources/HtmlizedExceptionPage_Top.html \
	resources/HtmlizedExceptionPage_FileLongSource.html \
	resources/HtmlizedExceptionPage_FileShortSource.html \
	resources/HtmlizedExceptionPage_CompilerOutput.html \
	System.Web.UI.WebControls/GridView.js \
	System.Web.UI.WebControls/DetailsView.js \
	System.Web.UI.WebControls/TreeView.js \
	System.Web.UI.WebControls/Menu.js

RESOURCE_FILES_4 = \
	System.Web.UI.WebControls/MenuModern.js

OTHER_RES = $(RESOURCE_FILES_1)
TEST_APP_CODE_FILES = \
	Test/mainsoft/NunitWebResources/App_Code/EnumConverterControl.cs \
	Test/mainsoft/NunitWebResources/App_Code/MyContainer.cs \
	Test/mainsoft/NunitWebResources/App_Code/CustomCheckBoxColumn.cs

TEST_APP_GLOBALRESOURCES_FILES = \
	Test/mainsoft/NunitWebResources/App_GlobalResources/Common.resx \
	Test/mainsoft/NunitWebResources/App_GlobalResources/Common.fr-FR.resx \
	Test/mainsoft/NunitWebResources/App_GlobalResources/Resource1.resx

TEST_RESOURCE_FILES = \
	Test/mainsoft/NunitWeb/NunitWeb/Resources/Global.asax \
	Test/mainsoft/NunitWeb/NunitWeb/Resources/My.ashx \
	Test/mainsoft/NunitWeb/NunitWeb/Resources/My.master \
	Test/mainsoft/NunitWeb/NunitWeb/Resources/MyPage.aspx \
	Test/mainsoft/NunitWeb/NunitWeb/Resources/MyPage.aspx.cs \
	Test/mainsoft/NunitWeb/NunitWeb/Resources/MyPageWithMaster.aspx \
	Test/mainsoft/NunitWeb/NunitWeb/Resources/Web.mono.config \
	Test/mainsoft/NunitWeb/NunitWeb/Resources/Web.mono.config.4.0 \
	Test/mainsoft/NunitWeb/NunitWeb/Resources/sub_map_01.sitemap \
	Test/mainsoft/NunitWeb/NunitWeb/Resources/test_map_01.sitemap \
	Test/mainsoft/NunitWeb/NunitWeb/Resources/test_map_02.sitemap \
	Test/mainsoft/NunitWeb/NunitWeb/Resources/test_map_03.sitemap \
	Test/mainsoft/NunitWeb/NunitWeb/Resources/test_map_04.sitemap \
	Test/mainsoft/NunitWeb/NunitWeb/Resources/test_map_05.sitemap \
	Test/mainsoft/NunitWeb/NunitWeb/Resources/test_map_06.sitemap \
	Test/mainsoft/NunitWeb/NunitWeb/Resources/test_map_07.sitemap \
	Test/mainsoft/NunitWeb/NunitWeb/Resources/test_map_08.sitemap \
	Test/mainsoft/NunitWeb/NunitWeb/Resources/test_map_09.sitemap \
	Test/mainsoft/NunitWebResources/menuclass.aspx \
	Test/mainsoft/NunitWebResources/FormView.aspx \
	Test/mainsoft/NunitWebResources/PostBackMenuTest.aspx \
	Test/mainsoft/NunitWebResources/PageWithStyleSheet.aspx \
	Test/mainsoft/NunitWebResources/PageWithTheme.aspx \
	Test/mainsoft/NunitWebResources/ResolveUrl.ascx \
	Test/mainsoft/NunitWebResources/ResolveUrl.aspx \
	Test/mainsoft/NunitWebResources/RunTimeSetTheme.aspx \
	Test/mainsoft/NunitWebResources/ReadOnlyPropertyBind.aspx \
	Test/mainsoft/NunitWebResources/ReadOnlyPropertyControl.ascx \
	Test/mainsoft/NunitWebResources/Theme1.skin \
	Test/mainsoft/NunitWebResources/Theme2.skin \
	Test/mainsoft/NunitWebResources/UrlProperty.aspx \
	Test/mainsoft/NunitWebResources/UrlProperty.ascx \
	Test/mainsoft/NunitWebResources/UrlProperty.ascx.cs \
	Test/mainsoft/NunitWebResources/Web.sitemap \
	Test/mainsoft/NunitWebResources/WizardTest.skin \
	Test/mainsoft/NunitWebResources/FooterTemplateTest.aspx \
	Test/mainsoft/NunitWebResources/DataGrid.aspx \
	Test/mainsoft/NunitWebResources/DetailsViewTemplates.aspx \
	Test/mainsoft/NunitWebResources/DetailsViewTemplates_2.aspx \
	Test/mainsoft/NunitWebResources/DetailsViewTemplates_3.aspx \
	Test/mainsoft/NunitWebResources/DetailsViewDataActions.aspx \
	Test/mainsoft/NunitWebResources/DetailsViewProperties1.aspx \
	Test/mainsoft/NunitWebResources/Bluehills.jpg \
	Test/mainsoft/NunitWebResources/FormViewTest1.aspx \
	Test/mainsoft/NunitWebResources/FormViewTest1_2.aspx \
	Test/mainsoft/NunitWebResources/FormViewTest1_3.aspx \
	Test/mainsoft/NunitWebResources/FormViewTest1_4.aspx \
	Test/mainsoft/NunitWebResources/FormViewInsertEditDelete.aspx \
	Test/mainsoft/NunitWebResources/GridViewUpdate.aspx \
	Test/mainsoft/NunitWebResources/XMLDataSourceTest.xml \
	Test/mainsoft/NunitWebResources/XMLDataSourceTest.xsl \
	Test/mainsoft/NunitWebResources/XMLDataSourceTest1.aspx \
	Test/mainsoft/NunitWebResources/XMLDataSourceTest2.aspx \
	Test/mainsoft/NunitWebResources/XMLDataSourceTest3.aspx \
	Test/mainsoft/NunitWebResources/XMLDataSourceTest4.aspx \
	Test/mainsoft/NunitWebResources/LoginViewTest1.aspx \
	Test/mainsoft/NunitWebResources/WebControl.config \
	Test/mainsoft/NunitWebResources/WebLogin.config \
	Test/mainsoft/NunitWebResources/CallbackTest1.aspx \
	Test/mainsoft/NunitWebResources/CallbackTest2.aspx \
	Test/mainsoft/NunitWebResources/EventValidationTest2.aspx \
	Test/mainsoft/NunitWebResources/EventValidationTest1.aspx \
	Test/mainsoft/NunitWebResources/ClientScript.js \
	Test/mainsoft/NunitWebResources/EvalTest.aspx \
	Test/mainsoft/NunitWebResources/TemplateUserControl.ascx \
	Test/mainsoft/NunitWebResources/WebMapping.config \
	Test/mainsoft/NunitWebResources/Mapping.aspx \
	Test/mainsoft/NunitWebResources/Mapping1.aspx \
	Test/mainsoft/NunitWebResources/CrossPagePosting1.aspx \
	Test/mainsoft/NunitWebResources/CrossPagePosting2.aspx \
	Test/mainsoft/NunitWebResources/MyDerived.master \
	Test/mainsoft/NunitWebResources/MyPageWithDerivedMaster.aspx \
	Test/mainsoft/NunitWebResources/MasterTypeTest1.aspx \
	Test/mainsoft/NunitWebResources/MasterTypeTest2.aspx \
	Test/mainsoft/NunitWebResources/PageLifecycleTest.aspx \
	Test/mainsoft/NunitWebResources/PageValidationTest.aspx \
	Test/mainsoft/NunitWebResources/AsyncPage.aspx \
	Test/mainsoft/NunitWebResources/PageCultureTest.aspx \
	Test/mainsoft/NunitWebResources/adapters.browser \
	Test/mainsoft/NunitWebResources/NoEventValidation.aspx \
	Test/mainsoft/NunitWebResources/ListControlPage.aspx \
	Test/mainsoft/NunitWebResources/TextBoxTestlPage.aspx \
	Test/mainsoft/NunitWebResources/ClearErrorOnError.aspx \
	Test/mainsoft/NunitWebResources/RedirectOnError.aspx \
	Test/mainsoft/NunitWebResources/TestCapability.browser \
	Test/mainsoft/NunitWebResources/PageWithAdapter.aspx \
	Test/mainsoft/NunitWebResources/InvalidPropertyBind1.aspx \
	Test/mainsoft/NunitWebResources/InvalidPropertyBind2.aspx \
	Test/mainsoft/NunitWebResources/InvalidPropertyBind3.aspx \
	Test/mainsoft/NunitWebResources/InvalidPropertyBind4.aspx \
	Test/mainsoft/NunitWebResources/ValidPropertyBind1.aspx \
	Test/mainsoft/NunitWebResources/ValidPropertyBind2.aspx \
	Test/mainsoft/NunitWebResources/ValidPropertyBind3.aspx \
	Test/mainsoft/NunitWebResources/ValidPropertyBind4.aspx \
	Test/mainsoft/NunitWebResources/ValidPropertyBind5.aspx \
	Test/mainsoft/NunitWebResources/ReadWritePropertyControl.ascx \
	Test/mainsoft/MainsoftWebTest/nunitweb_config.xml \
	Test/mainsoft/NunitWebResources/TemplateControlParsingTest.aspx \
	Test/mainsoft/NunitWebResources/ContentPlaceHolderInTemplate.aspx \
	Test/mainsoft/NunitWebResources/ContentPlaceHolderInTemplate.master \
	Test/mainsoft/NunitWebResources/MissingMasterFile.aspx \
	Test/mainsoft/NunitWebResources/CustomSectionEmptyCollection.aspx \
	Test/mainsoft/NunitWebResources/NoDoubleOnInitOnRemoveAdd.aspx \
	Test/mainsoft/NunitWebResources/NoDoubleOnInitOnRemoveAdd.aspx.cs \
	Test/mainsoft/NunitWebResources/LoginDisplayRememberMe.aspx \
	Test/mainsoft/NunitWebResources/NoBindForMethodsWithBindInName.aspx \
	Test/mainsoft/NunitWebResources/LinkInHeadWithEmbeddedExpression.aspx \
	Test/mainsoft/NunitWebResources/ExpressionInListControl.aspx \
	Test/mainsoft/NunitWebResources/ServerSideControlsInScriptBlock.aspx \
	Test/mainsoft/NunitWebResources/ServerControlInClientSideComment.aspx \
	Test/mainsoft/NunitWebResources/PreprocessorDirectivesInMarkup.aspx \
	Test/mainsoft/NunitWebResources/UnquotedAngleBrackets.aspx \
	Test/mainsoft/NunitWebResources/FullTagsInText.aspx \
	Test/mainsoft/NunitWebResources/TagsExpressionsAndCommentsInText.aspx \
	Test/mainsoft/NunitWebResources/NewlineInCodeExpression.aspx \
	Test/mainsoft/NunitWebResources/DuplicateControlsInClientComment.aspx \
	Test/mainsoft/NunitWebResources/TagsNestedInClientTag.aspx \
	Test/mainsoft/NunitWebResources/ConditionalClientComments.aspx \
	Test/mainsoft/NunitWebResources/OneLetterIdentifierInCodeRender.aspx \
	Test/mainsoft/NunitWebResources/GlobalResourcesLocalization.aspx \
	Test/mainsoft/NunitWebResources/TableSections_Bug551666.aspx \
	Test/mainsoft/NunitWebResources/TableSections_Bug551666.aspx.cs \
	Test/mainsoft/NunitWebResources/NestedParserFileText.aspx \
	Test/mainsoft/NunitWebResources/StateFormatter_CorrectConverter.aspx \
	Test/mainsoft/NunitWebResources/StateFormatter_CollectionConverter.aspx \
	Test/mainsoft/NunitWebResources/StateFormatter_CollectionConverter.aspx.cs \
	Test/mainsoft/NunitWebResources/ChangePasswordContainer_FindControl.aspx \
	Test/mainsoft/NunitWebResources/TagWithExpressionWithinAttribute.aspx \
	Test/mainsoft/NunitWebResources/CheckBoxList_Bug377703_1.aspx \
	Test/mainsoft/NunitWebResources/CheckBoxList_Bug377703_2.aspx \
	Test/mainsoft/NunitWebResources/CheckBoxList_Bug578770.aspx \
	Test/mainsoft/NunitWebResources/EnumConverter_Bug578586.aspx \
	Test/mainsoft/NunitWebResources/ButtonColor_Bug325489.aspx \
	Test/mainsoft/NunitWebResources/SqlDataSource_OnInit_Bug572781.aspx \
	Test/mainsoft/NunitWebResources/FormViewPagerVisibility.aspx \
	Test/mainsoft/NunitWebResources/OverridenControlsPropertyAndPostBack_Bug594238.aspx \
	Test/mainsoft/NunitWebResources/GlobalizationEncodingName.aspx \
	Test/mainsoft/NunitWebResources/CheckBoxField_Bug595568_0.aspx \
	Test/mainsoft/NunitWebResources/CheckBoxField_Bug595568_1.aspx \
	Test/mainsoft/NunitWebResources/CheckBoxField_Bug595568_2.aspx \
	Test/mainsoft/NunitWebResources/CheckBoxField_Bug595568_5.aspx \
	Test/mainsoft/NunitWebResources/CheckBoxField_Bug595568_6.aspx \
	Test/mainsoft/NunitWebResources/CheckBoxField_Bug595568_7.aspx \
	Test/mainsoft/NunitWebResources/GridView_Bug595567.aspx \
	Test/mainsoft/NunitWebResources/CheckBoxList_Bug600415.aspx \
	Test/mainsoft/NunitWebResources/BoundField_Bug646505.aspx \
	Test/mainsoft/NunitWebResources/BoundField_Bug646505.aspx.cs \
	Test/mainsoft/NunitWebResources/HtmlTitleCodeRender_Bug662918.aspx \
	Test/mainsoft/NunitWebResources/CheckBoxList_CustomValues.aspx

RESOURCE_DEFS = \
	TranslationResources,resources/TranslationResources.resx

NUNIT_RESOURCE_FILES = $(TEST_RESOURCE_FILES)
NUNIT_APP_CODE_FILES = $(TEST_APP_CODE_FILES)
NUNIT_APP_GLOBALRESOURCES_FILES = $(TEST_APP_GLOBALRESOURCES_FILES)

OTHER_RES += $(RESOURCE_FILES_2)
OTHER_LIB_MCS_FLAGS = -d:INSIDE_SYSTEM_WEB -nowarn:436,618

ifeq (4, $(FRAMEWORK_VERSION_MAJOR))
OTHER_RES += $(RESOURCE_FILES_4)
endif

TXT_RESOURCE_STRINGS = ../referencesource/System.Web/System.Web.txt

LIB_REFS = System System.Core System.Drawing System.Data System.Xml System.EnterpriseServices System.Runtime.Serialization.Formatters.Soap \
	System.ComponentModel.DataAnnotations System.Web.ApplicationServices System.Configuration Mono.Data.Sqlite System.Web.Services System.Design
KEYFILE = ../msfinal.pub
LIB_MCS_FLAGS = \
	-unsafe \
	-nowarn:612,618	\
	$(OTHER_LIB_MCS_FLAGS) \
	$(RESX_RES:%=/resource:%) \
	$(OTHER_RES:%=/resource:%)

#all-local: System.Web/UplevelHelper.cs 

TEST_LIB_REFS = SystemWebTestShim
TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -doc:$(test_lib:.dll=.xml) -nowarn:219,169,1591 \
	$(NUNIT_RESOURCE_FILES:%=/resource:%) \
	$(foreach file,$(NUNIT_APP_CODE_FILES),$(shell echo $(file) | sed -e 's;\(.*\)/\(.*\);/resource:\1/\2,App_Code/\2 ;g')) \
	$(foreach file,$(NUNIT_APP_GLOBALRESOURCES_FILES),$(shell echo $(file) | sed -e 's;\(.*\)/\(.*\);/resource:\1/\2,App_GlobalResources/\2 ;g'))

EXTRA_DISTFILES = \
	$(RESOURCE_FILES_4) \
	$(RESOURCE_FILES_2) \
	$(RESOURCE_FILES_1) \
	$(TEST_RESOURCE_FILES) \
	$(TEST_APP_CODE_FILES) \
	$(TEST_APP_GLOBALRESOURCES_FILES) \
	UplevelHelperDefinitions.xml \
	SQLiteProviders_DatabaseSchema.sql \
	$(shell find Test/standalone-runner-support/ -name "*.cs" -type f -printf "'%p' ") \
	$(shell find Test/standalone-tests/ -name "*.cs" -type f -printf "'%p' " -o -name "*.cs.in" -type f -printf "'%p' ") \
	$(shell find Test/standalone/ -path '*/.svn' -prune -o -type f -printf "'%p' ") \
	$(shell find Test/tools/ -path '*/.svn' -prune -o -type f -printf "'%p' ") \
	$(shell find Test/System.Web.Caching/CacheItemPriorityQueueTestData/ -name "Sequence*.*" -type f -printf "'%p' ") \
	ASPState.sql

BUILT_SOURCES = System.Web/UplevelHelper.cs 

include ../../build/library.make

ifdef DEBUG
LIB_MCS_FLAGS += -define:DEBUG
endif

ifdef TRACE
LIB_MCS_FLAGS += -define:TRACE
endif

ifdef MONO_TRACE
LIB_MCS_FLAGS += -define:TRACE -define:MONO_TRACE
endif

ifdef PIPELINE_TIMER
LIB_MCS_FLAGS += -define:PIPELINE_TIMER
endif

ifdef DEVEL
LIB_MCS_FLAGS += -define:DEVEL
endif

CLASSLIB_DIR = $(topdir)/class/lib/$(PROFILE)

STANDALONE_RUNNER_SUPPORT_MCS_FLAGS = $(LIB_MCS_FLAGS) $(PROFILE_MCS_FLAGS) -d:STANDALONE_TEST -r:$(topdir)/class/lib/$(PROFILE)/System.Web.dll -r:$(topdir)/class/lib/$(PROFILE)/nunit.framework.dll
STANDALONE_RUNNER_SUPPORT_ASSEMBLY = $(CLASSLIB_DIR)/standalone-runner-support.dll
STANDALONE_RUNNER_SUPPORT_MAKEFRAG = $(depsdir)/$(PROFILE)_standalone-runner-support.dll.makefrag

STANDALONE_TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) $(PROFILE_MCS_FLAGS) -r:$(STANDALONE_RUNNER_SUPPORT_ASSEMBLY) -r:$(topdir)/class/lib/$(PROFILE)/System.Web.dll -r:$(topdir)/class/lib/$(PROFILE)/nunit.framework.dll
STANDALONE_TEST_ASSEMBLY = System.Web_standalone_test_$(PROFILE).dll
STANDALONE_TEST_MAKEFRAG = $(depsdir)/$(STANDALONE_TEST_ASSEMBLY).makefrag

ifeq (4, $(FRAMEWORK_VERSION_MAJOR))
STANDALONE_TEST_COMPILABLE_TESTS = \
	ApplicationPreStartMethods/test_01 \
	ApplicationPreStartMethods/test_02 \
	ApplicationPreStartMethods/test_03 \
	ApplicationPreStartMethods/test_04 \
	ApplicationPreStartMethods/test_05 \
	ApplicationPreStartMethods/test_06 \
	ApplicationPreStartMethods/test_07 \
	ApplicationPreStartMethods/test_08 \
	EnableFormsAuthentication/Test_01 \
	EnableFormsAuthentication/Test_02 \
	EnableFormsAuthentication/Test_03 \
	EnableFormsAuthentication/Test_04 \
	EnableFormsAuthentication/Test_05 \
	EnableFormsAuthentication/Test_06 \
	EnableFormsAuthentication/Test_07 \
	EnableFormsAuthentication/Test_08 \
	EnableFormsAuthentication/Test_09 \
	RegisterBuildProvider \
	PageParserDefaultTypeProperties
endif

STANDALONE_TEST_RUNNER = Test/tools/standalone-runner.exe
ifeq (2, $(FRAMEWORK_VERSION_MAJOR))
RUN_STANDALONE = MONO_TESTS_IN_PROGRESS=yes
endif
RUN_STANDALONE += $(TEST_RUNTIME) $(TEST_RUNTIME_FLAGS) $(STANDALONE_TEST_RUNNER) --output=StandaloneTestResult-$(PROFILE).log 
ifdef TESTNAME
RUN_STANDALONE += --test=$(TESTNAME)
endif
ifdef STANDALONE_VERBOSE
RUN_STANDALONE += --verbose
endif

$(build_lib): $(RESX_RES) $(RESOURCE_FILES_2) $(RESOURCE_FILES_1)

$(RESX_RES): %.resources: %.resx
	$(RESGEN) `echo $< | $(PLATFORM_CHANGE_SEPARATOR_CMD)`

System.Web/UplevelHelper.cs: UplevelHelperDefinitions.xml
	MONO_PATH="$(topdir)/class/lib/$(BOOTSTRAP_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(RUNTIME_FLAGS) $(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)/culevel.exe -o $@ $^

run-aaa: test
	$(TEST_RUNTIME) $(TEST_RUNTIME_FLAGS) $(TEST_HARNESS) $(TEST_HARNESS_FLAGS) $(LOCAL_TEST_HARNESS_FLAGS) \
	/output:TestResult-$(PROFILE).log /include:aaa /xml:TestResult-$(PROFILE).xml $(test_assemblies) || ok=false; \
	(echo ''; cat TestResult-$(PROFILE).log) | sed '1,/^Tests run: /d'; \
	$$ok

run-nunitweb: test
	$(TEST_RUNTIME) $(TEST_RUNTIME_FLAGS) $(TEST_HARNESS) $(TEST_HARNESS_FLAGS) $(LOCAL_TEST_HARNESS_FLAGS) \
	/output:TestResult-$(PROFILE).log /include:NunitWeb /xml:TestResult-$(PROFILE).xml $(test_assemblies) || ok=false; \
	(echo ''; cat TestResult-$(PROFILE).log) | sed '1,/^Tests run: /d'; \
	$$ok

run-nunitweb-ondotnet: test
	$(TEST_HARNESS) $(TEST_HARNESS_FLAGS) $(LOCAL_TEST_HARNESS_FLAGS) \
	/output:TestResult-ondotnet-$(PROFILE).log /include:NunitWeb /xml:TestResult-ondotnet-$(PROFILE).xml $(test_assemblies) || ok=false; \
	(echo ''; cat TestResult-ondotnet-$(PROFILE).log) | sed '1,/^Tests run: /d'; \
	$$ok

run-standalone-test: $(STANDALONE_TEST_MAKEFRAG) $(STANDALONE_RUNNER_SUPPORT_MAKEFRAG) $(STANDALONE_TEST_ASSEMBLY)
	$(MAKE) -C Test/tools/ STANDALONE_SUPPORT_BUILT=1 standalone-runner.exe
	$(RUN_STANDALONE) $(STANDALONE_TEST_ASSEMBLY)

standalone-runner-support: $(STANDALONE_RUNNER_SUPPORT_MAKEFRAG) $(STANDALONE_RUNNER_SUPPORT_ASSEMBLY)

$(STANDALONE_TEST_MAKEFRAG): System.Web_standalone_test.dll.sources
	@echo Creating $@ ...
	@sed 's,^,$(STANDALONE_TEST_ASSEMBLY): ,' $< > $@

$(STANDALONE_RUNNER_SUPPORT_MAKEFRAG): standalone-runner-support.dll.sources
	@echo Creating $@ ...
	@sed 's,^,$(STANDALONE_RUNNER_SUPPORT_ASSEMBLY): ,' $< > $@

include $(STANDALONE_TEST_MAKEFRAG)
include $(STANDALONE_RUNNER_SUPPORT_MAKEFRAG)

$(STANDALONE_TEST_ASSEMBLY): $(the_assembly) $(STANDALONE_RUNNER_SUPPORT_ASSEMBLY) Test/standalone-tests/Consts.cs standalone-compilable-tests
	$(CSCOMPILE) $(STANDALONE_TEST_MCS_FLAGS) -out:$@ -target:library @System.Web_standalone_test.dll.sources

standalone-compilable-tests:
ifdef STANDALONE_TEST_COMPILABLE_TESTS
	for d in $(STANDALONE_TEST_COMPILABLE_TESTS); do \
		$(MAKE) -C Test/standalone/$$d ; \
	done
endif

$(STANDALONE_RUNNER_SUPPORT_ASSEMBLY): 
	$(CSCOMPILE) $(STANDALONE_RUNNER_SUPPORT_MCS_FLAGS) -out:$(STANDALONE_RUNNER_SUPPORT_ASSEMBLY) -target:library @standalone-runner-support.dll.sources

Test/standalone-tests/Consts.cs: Test/standalone-tests/Consts.cs.in
	@sed 's,@SystemWebClassDir@,$(shell pwd),' $< > $@

clean-local:
ifdef STANDALONE_TEST_COMPILABLE_TESTS
	for d in $(STANDALONE_TEST_COMPILABLE_TESTS); do \
		$(MAKE) -C Test/standalone/$$d clean ; \
	done
endif