diff options
author | Bruce Forstall <brucefo@microsoft.com> | 2017-09-18 13:16:48 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-18 13:16:48 -0700 |
commit | 77594c567e80b22ef1b3e14c69adc50c9c163b27 (patch) | |
tree | 607e695f331302293d6a271f5eb85c17377bbe12 | |
parent | 4aca96e9f2572e66a687d1f4d418e9545c6cb4cb (diff) | |
parent | 61ee6475d642447578c8c8870648a2d00fa34352 (diff) | |
download | coreclr-77594c567e80b22ef1b3e14c69adc50c9c163b27.tar.gz coreclr-77594c567e80b22ef1b3e14c69adc50c9c163b27.tar.bz2 coreclr-77594c567e80b22ef1b3e14c69adc50c9c163b27.zip |
Merge pull request #13664 from BruceForstall/WinRyuArm32CI
First step to enable Windows RyuJIT/arm32 testing
-rwxr-xr-x | netci.groovy | 106 | ||||
-rw-r--r-- | tests/arm/Tests.lst | 64 | ||||
-rw-r--r-- | tests/scripts/arm64_post_build.py | 29 |
3 files changed, 112 insertions, 87 deletions
diff --git a/netci.groovy b/netci.groovy index 0b1daa632e..67503c88d8 100755 --- a/netci.groovy +++ b/netci.groovy @@ -141,7 +141,7 @@ class Constants { def static configurationList = ['Debug', 'Checked', 'Release'] // This is the set of architectures - def static architectureList = ['arm', 'arm64', 'x64', 'x86', 'x86lb'] + def static architectureList = ['arm', 'armlb', 'arm64', 'x64', 'x86', 'x86lb'] } def static setMachineAffinity(def job, def os, def architecture, def options = null) { @@ -153,9 +153,9 @@ def static setMachineAffinity(def job, def os, def architecture, def options = n Utilities.setMachineAffinity(job, os, 'arm64-huge-page-size'); } else if (architecture == 'arm64' && os != 'Windows_NT' && options['is_build_only'] == true) { Utilities.setMachineAffinity(job, os, 'arm64-cross-latest'); - } else if ((architecture == 'arm') && (os == 'Ubuntu' || os == 'Ubuntu16.04' || os == 'Tizen')) { + } else if ((architecture == 'armlb') && (os == 'Ubuntu' || os == 'Ubuntu16.04' || os == 'Tizen')) { Utilities.setMachineAffinity(job, 'Ubuntu', 'arm-cross-latest'); - } else if ((architecture == 'arm') && (os == 'Windows_NT') && options['use_arm64_build_machine'] == true) { + } else if ((architecture == 'arm' || architecture == 'armlb') && (os == 'Windows_NT') && options['use_arm64_build_machine'] == true) { Utilities.setMachineAffinity(job, os, 'latest-arm64'); }else { Utilities.setMachineAffinity(job, os, 'latest-or-auto'); @@ -353,6 +353,9 @@ def static getJobName(def configuration, def architecture, def os, def scenario, } break case 'arm': + baseName = architecture.toLowerCase() + '_cross_' + configuration.toLowerCase() + '_' + os.toLowerCase() + break + case 'armlb': // These are cross builds if (os == 'Tizen') { // ABI: softfp @@ -391,6 +394,7 @@ def static addNonPRTriggers(def job, def branch, def isPR, def architecture, def } break case 'arm': + case 'armlb': Utilities.addGithubPushTrigger(job) break case 'arm64': @@ -686,18 +690,14 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os, 'JosephTremoulet', 'pgodeq', 'pgavlin', + 'rartemev', 'russellhadley', 'RussKeldorph', 'sandreenko', 'sdmaclea', - 'sivarv', 'swaroop-sridhar', - 'gkhanna79', 'jkotas', 'markwilkie', - 'rahku', - 'ramarag', - 'tzwlai', 'weshaggard' ] @@ -1086,42 +1086,47 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os, } break // editor brace matching: } + case 'armlb': case 'arm': // editor brace matching: { switch (os) { case 'Ubuntu': case 'Ubuntu16.04': - assert scenario == 'default' - job.with { - publishers { - azureVMAgentPostBuildAction { - agentPostBuildAction('Delete agent if the build was not successful (when idle).') + if (architecture == 'armlb') { // Ubuntu arm is only for armlb currently + assert scenario == 'default' + job.with { + publishers { + azureVMAgentPostBuildAction { + agentPostBuildAction('Delete agent if the build was not successful (when idle).') + } } } + if ((os == 'Ubuntu' && configuration == 'Release') || (os == 'Ubuntu16.04' && configuration == 'Debug')) { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} Cross ${configuration} Build") + } + else { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} Cross ${configuration} Build", "(?i).*test\\W+${os}\\W+${architecture}\\W+Cross\\W+${configuration}\\W+Build.*") + } } - if ((os == 'Ubuntu' && configuration == 'Release') || (os == 'Ubuntu16.04' && configuration == 'Debug')) { - Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} Cross ${configuration} Build") - } - else { - Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} Cross ${configuration} Build", "(?i).*test\\W+${os}\\W+${architecture}\\W+Cross\\W+${configuration}\\W+Build.*") - } - break; + break case 'Tizen': - architecture='armel' - job.with { - publishers { - azureVMAgentPostBuildAction { - agentPostBuildAction('Delete agent if the build was not successful (when idle).') + if (architecture == 'armlb') { // Ubuntu arm is only for armlb currently + architecture='armel' + job.with { + publishers { + azureVMAgentPostBuildAction { + agentPostBuildAction('Delete agent if the build was not successful (when idle).') + } } } + // Removing the regex will cause this to run on each PR. + if (configuration == 'Release' || configuration == 'Debug') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} Cross ${configuration} Build") + } + else { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} Cross ${configuration} Build", "(?i).*test\\W+${os}\\W+${architecture}\\W+Cross\\W+${configuration}\\W+Build.*") + } } - // Removing the regex will cause this to run on each PR. - if (configuration == 'Release' || configuration == 'Debug') { - Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} Cross ${configuration} Build") - } - else { - Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} Cross ${configuration} Build", "(?i).*test\\W+${os}\\W+${architecture}\\W+Cross\\W+${configuration}\\W+Build.*") - } - break; + break case 'Windows_NT': // Set up a private trigger def contextString = "${os} ${architecture} Cross ${configuration}" @@ -1649,6 +1654,7 @@ def static calculateBuildCommands(def newJob, def scenario, def branch, def isPR } } break + case 'armlb': case 'arm': def validArmWindowsScenarios = [ "default", "pri1r2r", @@ -1670,9 +1676,11 @@ def static calculateBuildCommands(def newJob, def scenario, def branch, def isPR // Set time out setTestJobTimeOut(newJob, scenario) + def buildArchitecture = 'arm' + if ( lowerConfiguration == "debug" ) { // For Debug builds, we will do a P1 test build - buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${architecture} -priority=1" + buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${buildArchitecture} -priority=1" } else if (lowerConfiguration == "checked") { @@ -1686,11 +1694,11 @@ def static calculateBuildCommands(def newJob, def scenario, def branch, def isPR def machineAffinityOptions = ['use_arm64_build_machine' : true] setMachineAffinity(newJob, os, architecture, machineAffinityOptions) // For checked runs we will also run testing. - buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${architecture} -priority=1" - buildCommands += "python tests\\scripts\\arm64_post_build.py -repo_root %WORKSPACE% -arch ${architecture} -build_type ${lowerConfiguration} -scenario ${scenario} -key_location C:\\tools\\key.txt" + buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${buildArchitecture} -priority=1" + buildCommands += "python tests\\scripts\\arm64_post_build.py -repo_root %WORKSPACE% -arch ${buildArchitecture} -build_type ${lowerConfiguration} -scenario ${scenario} -testarch ${architecture} -key_location C:\\tools\\key.txt" } else if (lowerConfiguration == "release") { - buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${architecture}" + buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${buildArchitecture}" } // Add archival. Utilities.addArchival(newJob, "bin/Product/**", "bin/Product/**/.nuget/**") @@ -1715,7 +1723,7 @@ def static calculateBuildCommands(def newJob, def scenario, def branch, def isPR buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${architecture} toolset_dir C:\\ats2 -priority=1" // Test build and run are launched together. - buildCommands += "python tests\\scripts\\arm64_post_build.py -repo_root %WORKSPACE% -arch ${architecture} -build_type ${lowerConfiguration} -scenario ${scenario} -key_location C:\\tools\\key.txt" + buildCommands += "python tests\\scripts\\arm64_post_build.py -repo_root %WORKSPACE% -arch ${architecture} -build_type ${lowerConfiguration} -scenario ${scenario} -testarch ${architecture} -key_location C:\\tools\\key.txt" //Utilities.addXUnitDotNETResults(newJob, 'bin/tests/testResults.xml') } @@ -1745,7 +1753,7 @@ def static calculateBuildCommands(def newJob, def scenario, def branch, def isPR // build and PAL test buildCommands += "./tests/scripts/x86_ci_script.sh --buildConfig=${lowerConfiguration}" Utilities.addXUnitDotNETResults(newJob, '**/pal_tests.xml') - break; + break } if (scenario == 'formatting') { @@ -1826,7 +1834,7 @@ def static calculateBuildCommands(def newJob, def scenario, def branch, def isPR Utilities.addArchival(newJob, "bin/Product/**,bin/obj/*/tests/**/*.dylib,bin/obj/*/tests/**/*.so", "bin/Product/**/.nuget/**") } break - case 'arm': + case 'armlb': // Cross builds for ARM runs on Ubuntu, Ubuntu16.04 and Tizen currently assert (os == 'Ubuntu') || (os == 'Ubuntu16.04') || (os == 'Tizen') @@ -1901,8 +1909,8 @@ combinedScenarios.each { scenario -> os = 'Windows_NT' } - // Tizen is only supported for arm architecture - if (os == 'Tizen' && architecture != 'arm') { + // Tizen is only supported for arm legacy_backend architecture + if (os == 'Tizen' && architecture != 'armlb') { return } @@ -1918,11 +1926,16 @@ combinedScenarios.each { scenario -> return } break - case 'arm': + case 'armlb': if ((os != 'Ubuntu') && (os != 'Ubuntu16.04') && (os != 'Tizen') && (os != 'Windows_NT')) { return } break + case 'arm': + if (os != 'Windows_NT') { + return + } + break case 'x86': if ((os != 'Ubuntu') && (os != 'Windows_NT')) { return @@ -1960,6 +1973,7 @@ combinedScenarios.each { scenario -> } switch (architecture) { + case 'armlb': case 'arm': if ((scenario != 'gcstress0x3') && (scenario != 'gcstress0xc') && @@ -2060,7 +2074,7 @@ combinedScenarios.each { scenario -> return } if (architecture != 'x64') { - if ((architecture != 'arm64' && architecture != 'arm') || (configuration == 'Debug')) { + if ((architecture != 'arm64' && architecture != 'armlb' && architecture != 'arm') || (configuration == 'Debug')) { return } } @@ -2170,7 +2184,7 @@ combinedScenarios.each { scenario -> def newJob = job(Utilities.getFullJobName(project, jobName, isPR, folderName)) {} def machineAffinityOptions = architecture == 'arm64' ? ['is_build_only': true] : null - machineAffinityOptions = architecture == 'arm' ? ['use_arm64_build_machine': false] : machineAffinityOptions + machineAffinityOptions = (architecture == 'arm' || architecture == 'armlb') ? ['use_arm64_build_machine': false] : machineAffinityOptions setMachineAffinity(newJob, os, architecture, machineAffinityOptions) // Add all the standard options @@ -2189,7 +2203,7 @@ combinedScenarios.each { scenario -> } else { // Setup corefx and Windows test binaries for Linux cross build for ubuntu-arm, ubuntu16.04-arm and tizen-armel - if ( architecture == 'arm' && ( os == 'Ubuntu' || os == 'Ubuntu16.04' || os == 'Tizen')) { + if ( architecture == 'armlb' && ( os == 'Ubuntu' || os == 'Ubuntu16.04' || os == 'Tizen')) { // Cross build for ubuntu-arm, ubuntu16.04-arm and tizen-armel // Define the Windows Tests and Corefx build job names def WindowTestsName = projectFolder + '/' + diff --git a/tests/arm/Tests.lst b/tests/arm/Tests.lst index a9cf99cf8f..7babd91ff4 100644 --- a/tests/arm/Tests.lst +++ b/tests/arm/Tests.lst @@ -2001,7 +2001,7 @@ RelativePath=Loader\classloader\TypeGeneratorTests\TypeGeneratorTest772\Generate WorkingDir=Loader\classloader\TypeGeneratorTests\TypeGeneratorTest772\Generated772 Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS;Pri1 +Categories=EXPECTED_FAIL;13731;Pri1 HostStyle=0 [_il_dbgldc_mul.cmd_252] @@ -5705,7 +5705,7 @@ RelativePath=CoreMangLib\cti\system\reflection\emit\opcodes\OpCodesLdc_I4_3\OpCo WorkingDir=CoreMangLib\cti\system\reflection\emit\opcodes\OpCodesLdc_I4_3 Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS;Pri1 +Categories=EXPECTED_FAIL;13731;Pri1 HostStyle=0 [_relnative.cmd_718] @@ -13185,7 +13185,7 @@ RelativePath=Loader\classloader\TypeGeneratorTests\TypeGeneratorTest759\Generate WorkingDir=Loader\classloader\TypeGeneratorTests\TypeGeneratorTest759\Generated759 Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS;Pri1 +Categories=EXPECTED_FAIL;13731;Pri1 HostStyle=0 [GCSimulator_26.cmd_1659] @@ -17897,7 +17897,7 @@ RelativePath=Loader\classloader\TypeGeneratorTests\TypeGeneratorTest1387\Generat WorkingDir=Loader\classloader\TypeGeneratorTests\TypeGeneratorTest1387\Generated1387 Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS;Pri1 +Categories=EXPECTED_FAIL;13731;Pri1 HostStyle=0 [_il_dbgtest_2b.cmd_2249] @@ -21833,7 +21833,7 @@ RelativePath=JIT\SIMD\VectorConvert_r\VectorConvert_r.cmd WorkingDir=JIT\SIMD\VectorConvert_r Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS +Categories=EXPECTED_FAIL;13422 HostStyle=0 [b13466.cmd_2743] @@ -22169,7 +22169,7 @@ RelativePath=JIT\Methodical\explicit\rotate\_relrotarg_valref\_relrotarg_valref. WorkingDir=JIT\Methodical\explicit\rotate\_relrotarg_valref Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS +Categories=EXPECTED_FAIL;13731 HostStyle=0 [r8rem_cs_r.cmd_2785] @@ -27033,7 +27033,7 @@ RelativePath=Loader\classloader\regressions\dev10_720779\dev10_720779\dev10_7207 WorkingDir=Loader\classloader\regressions\dev10_720779\dev10_720779 Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS;Pri1 +Categories=EXPECTED_FAIL;13731;Pri1 HostStyle=0 [StringConcat4.cmd_3396] @@ -33401,7 +33401,7 @@ RelativePath=baseservices\exceptions\regressions\whidbeym3.3\302680\302680\30268 WorkingDir=baseservices\exceptions\regressions\whidbeym3.3\302680\302680 Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS;Pri1 +Categories=EXPECTED_FAIL;13731;Pri1 HostStyle=0 [lim_002.cmd_4194] @@ -35201,7 +35201,7 @@ RelativePath=JIT\jit64\mcc\interop\mcc_i66\mcc_i66.cmd WorkingDir=JIT\jit64\mcc\interop\mcc_i66 Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS +Categories=EXPECTED_FAIL;13730 HostStyle=0 [Generated202.cmd_4419] @@ -35609,7 +35609,7 @@ RelativePath=Loader\classloader\TypeGeneratorTests\TypeGeneratorTest1219\Generat WorkingDir=Loader\classloader\TypeGeneratorTests\TypeGeneratorTest1219\Generated1219 Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS;Pri1 +Categories=EXPECTED_FAIL;13731;Pri1 HostStyle=0 [instance_equalnull_class01.cmd_4470] @@ -35921,7 +35921,7 @@ RelativePath=JIT\Regression\CLR-x86-JIT\V1-M12-Beta2\b52840\b52840\b52840.cmd WorkingDir=JIT\Regression\CLR-x86-JIT\V1-M12-Beta2\b52840\b52840 Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS +Categories=EXPECTED_FAIL;13731 HostStyle=0 [gcincatch_r.cmd_4509] @@ -36705,7 +36705,7 @@ RelativePath=JIT\Methodical\tailcall\_il_relcompat_i_u2\_il_relcompat_i_u2.cmd WorkingDir=JIT\Methodical\tailcall\_il_relcompat_i_u2 Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS;Pri1 +Categories=EXPECTED_FAIL;13731;Pri1 HostStyle=0 [SByteEquals2.cmd_4607] @@ -36745,7 +36745,7 @@ RelativePath=JIT\jit64\regress\vsw\373472\test\test.cmd WorkingDir=JIT\jit64\regress\vsw\373472\test Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS +Categories=EXPECTED_FAIL;13731 HostStyle=0 [specific_struct_instance01.cmd_4612] @@ -37233,7 +37233,7 @@ RelativePath=JIT\Regression\Dev11\External\dev11_239804\ShowLocallocAlignment\Sh WorkingDir=JIT\Regression\Dev11\External\dev11_239804\ShowLocallocAlignment Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS;Pri1 +Categories=EXPECTED_FAIL;13731;Pri1 HostStyle=0 [JTrueGeDbl.cmd_4673] @@ -37465,7 +37465,7 @@ RelativePath=Loader\classloader\TypeGeneratorTests\TypeGeneratorTest1493\Generat WorkingDir=Loader\classloader\TypeGeneratorTests\TypeGeneratorTest1493\Generated1493 Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS;Pri1 +Categories=EXPECTED_FAIL;13731;Pri1 HostStyle=0 [Double_No_Op_cs_r.cmd_4702] @@ -43017,7 +43017,7 @@ RelativePath=JIT\SIMD\VectorConvert_ro\VectorConvert_ro.cmd WorkingDir=JIT\SIMD\VectorConvert_ro Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS +Categories=EXPECTED_FAIL;13422 HostStyle=0 [b53650.cmd_5397] @@ -44025,7 +44025,7 @@ RelativePath=JIT\Directed\tailcall\tailcall\tailcall.cmd WorkingDir=JIT\Directed\tailcall\tailcall Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS;GCSTRESS_FAIL;13200 +Categories=EXPECTED_FAIL;13604;GCSTRESS_FAIL;13200 HostStyle=0 [b47093.cmd_5523] @@ -47889,7 +47889,7 @@ RelativePath=JIT\Regression\CLR-x86-JIT\V1-M12-Beta2\b77713\b77713\b77713.cmd WorkingDir=JIT\Regression\CLR-x86-JIT\V1-M12-Beta2\b77713\b77713 Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS;Pri1 +Categories=EXPECTED_FAIL;13731;Pri1 HostStyle=0 [invocation_do.cmd_6009] @@ -53649,7 +53649,7 @@ RelativePath=CoreMangLib\cti\system\collections\generic\dictionary\DictionaryICo WorkingDir=CoreMangLib\cti\system\collections\generic\dictionary\DictionaryICollectionIsReadOnly2 Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS;Pri1 +Categories=EXPECTED_FAIL;13731;Pri1 HostStyle=0 [PulseNull.cmd_6730] @@ -59201,7 +59201,7 @@ RelativePath=JIT\jit64\mcc\interop\mcc_i76\mcc_i76.cmd WorkingDir=JIT\jit64\mcc\interop\mcc_i76 Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS +Categories=EXPECTED_FAIL;13730 HostStyle=0 [GCSimulator_88.cmd_7429] @@ -62201,7 +62201,7 @@ RelativePath=JIT\Regression\CLR-x86-JIT\V1-M11-Beta1\b47610\b47610\b47610.cmd WorkingDir=JIT\Regression\CLR-x86-JIT\V1-M11-Beta1\b47610\b47610 Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS;Pri1 +Categories=EXPECTED_FAIL;13731;Pri1 HostStyle=0 [b92713.cmd_7805] @@ -70001,7 +70001,7 @@ RelativePath=JIT\jit64\mcc\interop\mcc_i86\mcc_i86.cmd WorkingDir=JIT\jit64\mcc\interop\mcc_i86 Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS +Categories=EXPECTED_FAIL;13730 HostStyle=0 [b35486.cmd_8783] @@ -70993,7 +70993,7 @@ RelativePath=CoreMangLib\cti\system\runtime\interopservices\safehandle\SafeHandl WorkingDir=CoreMangLib\cti\system\runtime\interopservices\safehandle\SafeHandleHandle_PSC Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS;Pri1 +Categories=EXPECTED_FAIL;13731;Pri1 HostStyle=0 [b62498.cmd_8908] @@ -71833,7 +71833,7 @@ RelativePath=Loader\classloader\TypeGeneratorTests\TypeGeneratorTest574\Generate WorkingDir=Loader\classloader\TypeGeneratorTests\TypeGeneratorTest574\Generated574 Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS;Pri1 +Categories=EXPECTED_FAIL;13731;Pri1 HostStyle=0 [_il_relisinst_calli.cmd_9013] @@ -83185,7 +83185,7 @@ RelativePath=JIT\Regression\CLR-x86-JIT\V1-M09\b15783\b15783\b15783.cmd WorkingDir=JIT\Regression\CLR-x86-JIT\V1-M09\b15783\b15783 Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS;Pri1 +Categories=EXPECTED_FAIL;13604;Pri1 HostStyle=0 [bne_opt.cmd_10443] @@ -83569,7 +83569,7 @@ RelativePath=JIT\jit64\mcc\interop\mcc_i56\mcc_i56.cmd WorkingDir=JIT\jit64\mcc\interop\mcc_i56 Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS +Categories=EXPECTED_FAIL;13730 HostStyle=0 [NestedGenericClasses.cmd_10491] @@ -83641,7 +83641,7 @@ RelativePath=JIT\Methodical\Boxing\misc\_dbgenum_cs\_dbgenum_cs.cmd WorkingDir=JIT\Methodical\Boxing\misc\_dbgenum_cs Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS +Categories=EXPECTED_FAIL;13731 HostStyle=0 [throwinnestedtryfinally_d.cmd_10500] @@ -83713,7 +83713,7 @@ RelativePath=Loader\classloader\TypeGeneratorTests\TypeGeneratorTest323\Generate WorkingDir=Loader\classloader\TypeGeneratorTests\TypeGeneratorTest323\Generated323 Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS;Pri1 +Categories=EXPECTED_FAIL;13731;Pri1 HostStyle=0 [ListInsertRange.cmd_10510] @@ -84065,7 +84065,7 @@ RelativePath=JIT\jit64\mcc\interop\mcc_i36\mcc_i36.cmd WorkingDir=JIT\jit64\mcc\interop\mcc_i36 Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS +Categories=EXPECTED_FAIL;13730 HostStyle=0 [IEnumerableGetEnumerator.cmd_10554] @@ -86505,7 +86505,7 @@ RelativePath=JIT\IL_Conformance\Old\Conformance_Base\ldarg_r4\ldarg_r4.cmd WorkingDir=JIT\IL_Conformance\Old\Conformance_Base\ldarg_r4 Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS;Pri1 +Categories=EXPECTED_FAIL;13731;Pri1 HostStyle=0 [Class2_ImplicitOverrideVirtual.cmd_10859] @@ -87617,7 +87617,7 @@ RelativePath=JIT\Methodical\Invoke\fptr\_speed_relrecurse\_speed_relrecurse.cmd WorkingDir=JIT\Methodical\Invoke\fptr\_speed_relrecurse Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS;Pri1 +Categories=EXPECTED_FAIL;13731;Pri1 HostStyle=0 [jaggedarr_cs_d.cmd_10999] @@ -88841,7 +88841,7 @@ RelativePath=CoreMangLib\cti\system\convert\ConvertToInt32_5\ConvertToInt32_5.cm WorkingDir=CoreMangLib\cti\system\convert\ConvertToInt32_5 Expected=0 MaxAllowedDurationSeconds=600 -Categories=EXPECTED_PASS;Pri1 +Categories=EXPECTED_FAIL;13731;Pri1 HostStyle=0 [Generated1317.cmd_11153] diff --git a/tests/scripts/arm64_post_build.py b/tests/scripts/arm64_post_build.py index 338063a2f5..b923ed559d 100644 --- a/tests/scripts/arm64_post_build.py +++ b/tests/scripts/arm64_post_build.py @@ -50,6 +50,7 @@ parser.add_argument("--force_update", dest="force_update", action="store_true", parser.add_argument("-repo_root", dest="repo_root", nargs='?', default=None) parser.add_argument("-arch", dest="arch", nargs='?', default=None) +parser.add_argument("-testarch", dest="testarch", nargs='?', default=None) parser.add_argument("-build_type", dest="build_type", nargs='?', default=None) parser.add_argument("-scenario", dest="scenario", nargs='?', default=None) parser.add_argument("-key_location", dest="key_location", nargs='?', default=None) @@ -210,12 +211,12 @@ def validate_args(args): Args: args (argparser.ArgumentParser): Args parsed by the argument parser. Returns: - (workspace, arch, build_type, scenario, force_update): (str, - str, - str, - str, - str, - bool) + (workspace, arch, testarch, build_type, scenario, force_update): (str, + str, + str, + str, + str, + bool) Notes: If the arguments are valid then return them all in a tuple. If not, raise an exception stating x argument is incorrect. @@ -223,6 +224,7 @@ def validate_args(args): repo_root = args.repo_root arch = args.arch + testarch = args.testarch build_type = args.build_type scenario = args.scenario key_location = args.key_location @@ -245,6 +247,7 @@ def validate_args(args): raise Exception("Argument: %s is not valid." % (arg)) valid_arches = ["arm", "arm64"] + valid_testarches = ["arm", "armlb", "arm64"] valid_build_types = ["debug", "checked", "release"] valid_jit_stress_regs_numbers = ["1", "2", "3", "4", "8", "10", "80"] @@ -287,23 +290,26 @@ def validate_args(args): validate_arg(repo_root, lambda item: os.path.isdir(item)) validate_arg(arch, lambda item: item.lower() in valid_arches) + validate_arg(testarch, lambda item: item.lower() in valid_testarches) validate_arg(build_type, lambda item: item.lower() in valid_build_types) validate_arg(scenario, lambda item: item.lower() in valid_scenarios) validate_arg(key_location, lambda item: os.path.isfile(item)) validate_arg(force_update, lambda item: isinstance(item, bool)) arch = arch.lower() + testarch = testarch.lower() build_type = build_type.lower() scenario = scenario.lower() - args = (repo_root, arch, build_type, scenario, key_location, force_update) + args = (repo_root, arch, testarch, build_type, scenario, key_location, force_update) log("Passed args: " "Repo Root: %s, " "Build Arch: %s, " + "Test Arch: %s, " "Config: %s, " "Scenario: %s, " - "Key Location: %s" % (repo_root, arch, build_type, scenario, key_location)) + "Key Location: %s" % (repo_root, arch, testarch, build_type, scenario, key_location)) return args @@ -314,7 +320,7 @@ def validate_args(args): def main(args): global g_arm64ci_path - repo_root, arch, build_type, scenario, key_location, force_update = validate_args(args) + repo_root, arch, testarch, build_type, scenario, key_location, force_update = validate_args(args) cwd = os.getcwd() os.chdir(repo_root) @@ -354,6 +360,11 @@ def main(args): shutil.copy2(lst_file, core_root) log("Copied %s to %s." % (lst_file, core_root)) + # The x64_client has logic to set the appropriate AltJit environment variables for + # RyuJIT/arm32, set by prepending the scenario name with "ryujit_". + if testarch == "arm": + scenario = "ryujit_" + scenario + args = ["dotnet", os.path.join(g_arm64ci_path, "x64_client.dll"), arch, |