From a2edf546f8feb8fab092e65bcd27930d2ee43b53 Mon Sep 17 00:00:00 2001 From: Gareth Rees Date: Thu, 27 Mar 2014 15:19:42 +0000 Subject: [PATCH] Test case database now notes which test cases use threads. New test suite "testansi" consists of test cases that run on the generic ("ANSI") platform. New target "ansi" builds the MPS with the CONFIG_PF_ANSI CONFIG_THREAD_SINGLE and CONFIG_PROTECTION_NONE settings. Build and test the "ansi" target as part of "make test" for the benefit of the buildbots (just Linux and FreeBSD for the moment). Copied from Perforce Change: 185050 ServerID: perforce.ravenbrook.com --- mps/Makefile.in | 7 ++- mps/code/comm.gmk | 3 +- mps/code/commpost.nmk | 4 +- mps/code/mps.xcodeproj/project.pbxproj | 70 ++++++++++++++++++++++++++ mps/tool/testcases.txt | 9 ++-- mps/tool/testrun.bat | 7 +-- mps/tool/testrun.sh | 7 +-- 7 files changed, 92 insertions(+), 15 deletions(-) diff --git a/mps/Makefile.in b/mps/Makefile.in index 960903ba43a..e77813f19d5 100644 --- a/mps/Makefile.in +++ b/mps/Makefile.in @@ -67,11 +67,14 @@ make-install-dirs: install: @INSTALL_TARGET@ -test-make-build: @BUILD_TARGET@ +test-make-build: + $(MAKE) clean + $(MAKE) $(TARGET_OPTS) VARIETY=hot CFLAGS="-DCONFIG_PF_ANSI -DCONFIG_THREAD_SINGLE -DCONFIG_PROTECTION_NONE" testansi + $(MAKE) clean $(MAKE) $(TARGET_OPTS) testci test-xcode-build: - $(XCODEBUILD) -config Release -target testci $(XCODEBUILD) -config Debug -target testci + $(XCODEBUILD) -config Release -target testci test: @TEST_TARGET@ diff --git a/mps/code/comm.gmk b/mps/code/comm.gmk index 837b025e974..64ce520b560 100644 --- a/mps/code/comm.gmk +++ b/mps/code/comm.gmk @@ -284,8 +284,9 @@ all: $(ALL_TARGETS) # testrun = "smoke test", fast enough to run before every commit # testci = continuous integration tests, must be known good # testall = all test cases, for ensuring quality of a release +# testansi = tests that run on the generic ("ANSI") platform -TEST_SUITES=testrun testci testall +TEST_SUITES=testrun testci testall testansi $(addprefix $(PFM)/$(VARIETY)/,$(TEST_SUITES)): $(TEST_TARGETS) ../tool/testrun.sh "$(PFM)/$(VARIETY)" "$(notdir $@)" diff --git a/mps/code/commpost.nmk b/mps/code/commpost.nmk index 46203a321a3..6c9966efe03 100644 --- a/mps/code/commpost.nmk +++ b/mps/code/commpost.nmk @@ -53,10 +53,10 @@ variety: $(PFM)\$(VARIETY)\$(TARGET) !ENDIF !ENDIF -# testrun testci testall +# testrun testci testall testansi # Runs automated test cases. -testrun testci testall: $(TEST_TARGETS) +testrun testci testall testansi: $(TEST_TARGETS) !IFDEF VARIETY ..\tool\testrun.bat $(PFM) $(VARIETY) $@ !ELSE diff --git a/mps/code/mps.xcodeproj/project.pbxproj b/mps/code/mps.xcodeproj/project.pbxproj index 1c9f39ff0f1..cd178d5f855 100644 --- a/mps/code/mps.xcodeproj/project.pbxproj +++ b/mps/code/mps.xcodeproj/project.pbxproj @@ -31,6 +31,18 @@ name = testall; productName = testrun; }; + 2291B6E318E4754D0004B79C /* testansi */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 2291B6E718E4754D0004B79C /* Build configuration list for PBXAggregateTarget "testansi" */; + buildPhases = ( + 2291B6E618E4754D0004B79C /* ShellScript */, + ); + dependencies = ( + 2291B6E418E4754D0004B79C /* PBXTargetDependency */, + ); + name = testansi; + productName = testrun; + }; 22CDE8EF16E9E97D00366D0A /* testrun */ = { isa = PBXAggregateTarget; buildConfigurationList = 22CDE8F016E9E97E00366D0A /* Build configuration list for PBXAggregateTarget "testrun" */; @@ -407,6 +419,13 @@ remoteGlobalIDString = 2291A5C1175CAFCA001D4920; remoteInfo = expt825; }; + 2291B6E518E4754D0004B79C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 31EEABDA156AAE9E00714D05 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 3104AFF1156D37A0000A585A; + remoteInfo = all; + }; 22B2BC3818B643AD00C33E63 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 31EEABDA156AAE9E00714D05 /* Project object */; @@ -3286,6 +3305,7 @@ 22CDE8EF16E9E97D00366D0A /* testrun */, 225F0AFC18E4453A003F2183 /* testci */, 225F0B0418E44549003F2183 /* testall */, + 2291B6E318E4754D0004B79C /* testansi */, 31EEABFA156AAF9D00714D05 /* mps */, 3114A632156E94DB001E0AA3 /* abqtest */, 22FACEE018880983000FDBC1 /* airtest */, @@ -3365,6 +3385,20 @@ shellScript = "../tool/testrun.sh \"$TARGET_BUILD_DIR\" \"$TARGET_NAME\""; showEnvVarsInLog = 0; }; + 2291B6E618E4754D0004B79C /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "../tool/testrun.sh \"$TARGET_BUILD_DIR\" \"$TARGET_NAME\""; + showEnvVarsInLog = 0; + }; 22CDE8F416E9E9D400366D0A /* ShellScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -3938,6 +3972,11 @@ target = 2291A5C1175CAFCA001D4920 /* expt825 */; targetProxy = 2291A5E7175CB20E001D4920 /* PBXContainerItemProxy */; }; + 2291B6E418E4754D0004B79C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 3104AFF1156D37A0000A585A /* all */; + targetProxy = 2291B6E518E4754D0004B79C /* PBXContainerItemProxy */; + }; 22B2BC3918B643AD00C33E63 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 31FCAE0917692403008C034C /* scheme */; @@ -4446,6 +4485,27 @@ }; name = Release; }; + 2291B6E818E4754D0004B79C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "testall copy"; + }; + name = Debug; + }; + 2291B6E918E4754D0004B79C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "testall copy"; + }; + name = Release; + }; + 2291B6EA18E4754D0004B79C /* RASH */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "testall copy"; + }; + name = RASH; + }; 22B2BC3318B6434F00C33E63 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -5652,6 +5712,16 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 2291B6E718E4754D0004B79C /* Build configuration list for PBXAggregateTarget "testansi" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2291B6E818E4754D0004B79C /* Debug */, + 2291B6E918E4754D0004B79C /* Release */, + 2291B6EA18E4754D0004B79C /* RASH */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 22B2BC3218B6434F00C33E63 /* Build configuration list for PBXNativeTarget "scheme-advanced" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/mps/tool/testcases.txt b/mps/tool/testcases.txt index 96d3a4d2cff..c60e79d8ccd 100644 --- a/mps/tool/testcases.txt +++ b/mps/tool/testcases.txt @@ -5,14 +5,14 @@ abqtest airtest amcss amcsshe -amcssth =B =X job003561, job003703 +amcssth =B =T =X job003561, job003703 amsss amssshe apss arenacv awlut awluthe -awlutth =X +awlutth =T =X btcv bttest =N interactive djbench =N benchmark @@ -25,7 +25,7 @@ fotest gcbench =N benchmark locbwcss lockcov -lockutw3 =W +lockutw3 =T =W locusss locv messtest @@ -40,7 +40,7 @@ segsmss steptest teletest =N interactive walkt0 -zcoll =B =L +zcoll =B =L job003658 zmess ============= ================ ========================================== @@ -50,5 +50,6 @@ Key to flags B -- known Bad L -- Long runtime N -- Not an automated test case + T -- multi-Threaded W -- Windows-only X -- Unix-only diff --git a/mps/tool/testrun.bat b/mps/tool/testrun.bat index 06f947a25e3..6b683762136 100755 --- a/mps/tool/testrun.bat +++ b/mps/tool/testrun.bat @@ -33,9 +33,10 @@ mkdir %LOGDIR% @rem Determine which tests to run. set EXCLUDE= -if "%TESTSUITE%"=="testrun" set EXCLUDE=LNX -if "%TESTSUITE%"=="testci" set EXCLUDE=BNX -if "%TESTSUITE%"=="testall" set EXCLUDE=NX +if "%TESTSUITE%"=="testrun" set EXCLUDE=LNX +if "%TESTSUITE%"=="testci" set EXCLUDE=BNX +if "%TESTSUITE%"=="testall" set EXCLUDE=NX +if "%TESTSUITE%"=="testansi" set EXCLUDE=LNTX @rem Ensure that test cases don't pop up dialog box on abort() set MPS_TESTLIB_NOABORT=true diff --git a/mps/tool/testrun.sh b/mps/tool/testrun.sh index 35197dd879c..f5d54699cae 100755 --- a/mps/tool/testrun.sh +++ b/mps/tool/testrun.sh @@ -30,9 +30,10 @@ if [ $# -eq 1 ]; then TEST_SUITE=$1 echo "Test suite: $TEST_SUITE" case $TEST_SUITE in - testrun) EXCLUDE="LNW" ;; - testci) EXCLUDE="BNW" ;; - testall) EXCLUDE="NW" ;; + testrun) EXCLUDE="LNW" ;; + testci) EXCLUDE="BNW" ;; + testall) EXCLUDE="NW" ;; + testansi) EXCLUDE="LNTW" ;; *) echo "Test suite $TEST_SUITE not recognized." exit 1 ;;