automation: avoid '~' in the temp directory on Windows stable
authorMatt Harbison <matt_harbison@yahoo.com>
Thu, 17 Oct 2019 16:46:13 -0400
branchstable
changeset 43411 a77338d2bdab
parent 43410 9bab6407c2c9
child 43412 ca0cd0a13514
automation: avoid '~' in the temp directory on Windows If a long-ish username is used, the environment variable ends up with a '~' to be 8.3 path compatible. That in turn causes a handful of tests (mostly ssh related) to add quotes around $TESTMP. I have no AWS experience, so I have no idea if this is the proper way to do it. But I've hit this problem locally, and redirecting the directory is a workaround. I don't recall if the directory is created on demand by the test harness, but presumably if this is configured before the machine boots, Windows will do it for us. Differential Revision: https://phab.mercurial-scm.org/D7130
contrib/automation/hgautomation/aws.py
--- a/contrib/automation/hgautomation/aws.py	Mon Nov 04 20:33:38 2019 -0800
+++ b/contrib/automation/hgautomation/aws.py	Thu Oct 17 16:46:13 2019 -0400
@@ -191,6 +191,10 @@
 $Setting = 'LocalAccountTokenFilterPolicy'
 Set-ItemProperty -Path $Key -Name $Setting -Value 1 -Force
 
+# Avoid long usernames in the temp directory path because the '~' causes extra quoting in ssh output
+[System.Environment]::SetEnvironmentVariable('TMP', 'C:\Temp', [System.EnvironmentVariableTarget]::User)
+[System.Environment]::SetEnvironmentVariable('TEMP', 'C:\Temp', [System.EnvironmentVariableTarget]::User)
+
 # Configure and restart the WinRM Service; Enable the required firewall exception
 Stop-Service -Name WinRM
 Set-Service -Name WinRM -StartupType Automatic