From c1543dacba2971e14ce81b2c4304e5b591ce9672 Mon Sep 17 00:00:00 2001 From: Katya Sokolova Date: Mon, 27 Sep 2021 20:06:44 +0200 Subject: [PATCH 1/7] uninstall app after timeout --- .../Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 b/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 index 8c0a4e21a9b..dcd6c167cb8 100644 --- a/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 +++ b/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 @@ -47,6 +47,7 @@ if ($ev) { $process.WaitForExit() [Console]::Out.Flush() Write-Output "User command timed out after $command_timeout seconds!" + & "C:\adb\platform-tools\adb.exe" uninstall `"$package_name`" } else { $exit_code = $process.ExitCode Write-Output "User command ended with $exit_code" From fc2e059b363e331916d0180ec53a054aa0486ea3 Mon Sep 17 00:00:00 2001 From: Katya Sokolova Date: Tue, 19 Oct 2021 16:56:30 +0200 Subject: [PATCH 2/7] address feedback --- .../tools/xharness-runner/xharness-helix-job.android.ps1 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 b/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 index dcd6c167cb8..b9cc747283f 100644 --- a/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 +++ b/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 @@ -47,7 +47,12 @@ if ($ev) { $process.WaitForExit() [Console]::Out.Flush() Write-Output "User command timed out after $command_timeout seconds!" - & "C:\adb\platform-tools\adb.exe" uninstall `"$package_name`" + $adb_path=dotnet xharness android state --adb + $packages=& $adb_path shell pm list packages net.dot + $split_packages=$packages.split(':') + For ($i=1; $i -lt $split_packages.Length; $i+=2) { + echo $split_packages[$i] | %{&$adb_path uninstall $_} + } } else { $exit_code = $process.ExitCode Write-Output "User command ended with $exit_code" From 989daabde91396778ee0a043f109b6093bbd629d Mon Sep 17 00:00:00 2001 From: Katya Sokolova Date: Tue, 19 Oct 2021 17:35:26 +0200 Subject: [PATCH 3/7] Update src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Přemek Vysoký --- .../Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 b/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 index b9cc747283f..200eb93bc6d 100644 --- a/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 +++ b/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 @@ -51,7 +51,7 @@ if ($ev) { $packages=& $adb_path shell pm list packages net.dot $split_packages=$packages.split(':') For ($i=1; $i -lt $split_packages.Length; $i+=2) { - echo $split_packages[$i] | %{&$adb_path uninstall $_} + echo $split_packages[$i] | %{&$adb_path uninstall $_} } } else { $exit_code = $process.ExitCode From 00918af1f71d856fff10c9e12e9dd20f32298a81 Mon Sep 17 00:00:00 2001 From: Katya Sokolova Date: Tue, 19 Oct 2021 17:42:08 +0200 Subject: [PATCH 4/7] remove apps in case of installation failure --- .../tools/xharness-runner/xharness-helix-job.android.ps1 | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 b/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 index 200eb93bc6d..3e8c9ae2f15 100644 --- a/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 +++ b/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 @@ -76,6 +76,14 @@ switch ($exit_code) 78 { Write-Error "Encountered PACKAGE_INSTALLATION_FAILURE. This is typically not a failure of the work item. We will try it again on another Helix agent" Write-Error "If this occurs repeatedly, please check for architectural mismatch, e.g. requesting installation on arm64_v8a-only queue for x86 or x86_64 APKs." + + $adb_path=dotnet xharness android state --adb + $packages=& $adb_path shell pm list packages net.dot + $split_packages=$packages.split(':') + For ($i=1; $i -lt $split_packages.Length; $i+=2) { + echo $split_packages[$i] | %{&$adb_path uninstall $_} + } + $retry=$true Break } From cc6f064f8afaf85bb8c3268e3b92738b2f659f8a Mon Sep 17 00:00:00 2001 From: Katya Sokolova Date: Thu, 21 Oct 2021 11:31:10 +0200 Subject: [PATCH 5/7] add function Remove-Apps --- .../xharness-helix-job.android.ps1 | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 b/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 index 7bda9048f43..24a069295c1 100644 --- a/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 +++ b/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 @@ -41,18 +41,22 @@ $process.Start() Wait-Process -InputObject $process -TimeOut $command_timeout -ErrorVariable ev -ErrorAction SilentlyContinue -if ($ev) { - $exit_code = -3 - Stop-Process -InputObject $process -Force - $process.WaitForExit() - [Console]::Out.Flush() - Write-Output "User command timed out after $command_timeout seconds!" +function Remove-Apps { $adb_path=dotnet xharness android state --adb $packages=& $adb_path shell pm list packages net.dot $split_packages=$packages.split(':') For ($i=1; $i -lt $split_packages.Length; $i+=2) { echo $split_packages[$i] | %{&$adb_path uninstall $_} } +} + +if ($ev) { + $exit_code = -3 + Stop-Process -InputObject $process -Force + $process.WaitForExit() + [Console]::Out.Flush() + Write-Output "User command timed out after $command_timeout seconds!" + Remove-Apps } else { $exit_code = $process.ExitCode Write-Output "User command ended with $exit_code" @@ -77,12 +81,7 @@ switch ($exit_code) Write-Error "Encountered PACKAGE_INSTALLATION_FAILURE. This is typically not a failure of the work item. We will try it again on another Helix agent" Write-Error "If this occurs repeatedly, please check for architectural mismatch, e.g. requesting installation on arm64_v8a-only queue for x86 or x86_64 APKs." - $adb_path=dotnet xharness android state --adb - $packages=& $adb_path shell pm list packages net.dot - $split_packages=$packages.split(':') - For ($i=1; $i -lt $split_packages.Length; $i+=2) { - echo $split_packages[$i] | %{&$adb_path uninstall $_} - } + Remove-Apps $retry = $true Break From 04dffc5fa00574394eaf5b593063574d226a0f21 Mon Sep 17 00:00:00 2001 From: Katya Sokolova Date: Thu, 21 Oct 2021 11:32:12 +0200 Subject: [PATCH 6/7] formatting --- .../tools/xharness-runner/xharness-helix-job.android.ps1 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 b/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 index 24a069295c1..1ccfe091b9a 100644 --- a/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 +++ b/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 @@ -42,10 +42,10 @@ $process.Start() Wait-Process -InputObject $process -TimeOut $command_timeout -ErrorVariable ev -ErrorAction SilentlyContinue function Remove-Apps { - $adb_path=dotnet xharness android state --adb - $packages=& $adb_path shell pm list packages net.dot - $split_packages=$packages.split(':') - For ($i=1; $i -lt $split_packages.Length; $i+=2) { + $adb_path = dotnet xharness android state --adb + $packages = & $adb_path shell pm list packages net.dot + $split_packages = $packages.split(':') + For ($i = 1; $i -lt $split_packages.Length; $i += 2) { echo $split_packages[$i] | %{&$adb_path uninstall $_} } } From 5f1247bde0897dacdccf688f001497cfd9538c82 Mon Sep 17 00:00:00 2001 From: Katya Sokolova Date: Thu, 21 Oct 2021 13:01:56 +0200 Subject: [PATCH 7/7] print message before removing apps --- .../Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 b/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 index 1ccfe091b9a..d27714f9af6 100644 --- a/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 +++ b/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-helix-job.android.ps1 @@ -42,6 +42,7 @@ $process.Start() Wait-Process -InputObject $process -TimeOut $command_timeout -ErrorVariable ev -ErrorAction SilentlyContinue function Remove-Apps { + Write-Output "Removing installed apps after unsuccessful run" $adb_path = dotnet xharness android state --adb $packages = & $adb_path shell pm list packages net.dot $split_packages = $packages.split(':')