@ -71,13 +71,12 @@ func TestProvisionerPrepare_Defaults(t *testing.T) {
t . Error ( "expected elevated_password to be empty" )
}
if p . config . ExecuteCommand != executeCommand ( ` . {{ .Vars }} ` , ` {{ .Path }} ` ) {
t . Fatalf ( ` Default command should be %s, but got '%s'` , executeCommand ( ` . {{ .Vars }} ` , ` {{ .Path }} ` ) , p . config . ExecuteCommand )
if p . config . ExecuteCommand != ` powershell -executionpolicy bypass "& { if (Test-Path variable:global:ProgressPreference) { set-variable -name variable:global:ProgressPreference -value 'SilentlyContinue'};. {{ .Vars }} ; &' {{ .Path }} '; exit $LastExitCode }" ` {
t . Fatalf ( ` Default command should be 'powershell -executionpolicy bypass "& { if (Test-Path variable:global:ProgressPreference) { set-variable -name variable:global:ProgressPreference -value 'SilentlyContinue'};. {{ .Vars }} ; &' {{ .Path }} '; exit $LastExitCode }"', but got '%s' ` , p . config . ExecuteCommand )
}
if p . config . ElevatedExecuteCommand != executeCommand ( ` . {{ .Vars }} ` , ` {{ .Path }} ` ) {
t . Fatalf ( ` Default command should be %s, but got '%s' ` , executeCommand ( ` . {{ .Vars }} ` , ` {{ .Path }} ` ) , p . config . ElevatedExecuteCommand )
if p . config . ElevatedExecuteCommand != ` powershell -executionpolicy bypass "& { if (Test-Path variable:global:ProgressPreference) { set-variable -name variable:global:ProgressPreference -value 'SilentlyContinue'};. {{ .Vars }} ; &' {{ .Path }} '; exit $LastExitCode }" ` {
t . Fatalf ( ` Default command should be 'powershell -executionpolicy bypass "& { if (Test-Path variable:global:ProgressPreference) { set-variable -name variable:global:ProgressPreference -value 'SilentlyContinue'};. {{ .Vars }} ; &' {{ .Path }} '; exit $LastExitCode }"', but got '%s' ` , p . config . ElevatedExecuteCommand )
}
if p . config . ElevatedEnvVarFormat != ` $env:%s="%s"; ` {
@ -118,7 +117,7 @@ func TestProvisionerPrepare_DebugMode(t *testing.T) {
t . Fatalf ( "err: %s" , err )
}
command := executeCommand ( ` Set-PsDebug -Trace 1;. {{ .Vars }} ` , ` {{ .Path }} ` )
command := ` powershell -executionpolicy bypass "& { if (Test-Path variable:global:ProgressPreference) { set-variable -name variable:global:ProgressPreference -value 'SilentlyContinue'};Set-PsDebug -Trace 1;. {{ .Vars }} ; &' {{ .Path }} '; exit $LastExitCode }" `
if p . config . ExecuteCommand != command {
t . Fatalf ( fmt . Sprintf ( ` Expected command should be '%s' but got '%s' ` , command , p . config . ExecuteCommand ) )
}
@ -427,7 +426,7 @@ func TestProvisionerProvision_Inline(t *testing.T) {
}
cmd := comm . StartCmd . Command
re := regexp . MustCompile ( ` \. c:/Windows/Temp/packer-ps-env-vars-[[:alnum:]]{ 8}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 12}\.ps1; try { & 'c:/Windows/Temp/inlineScript\ .ps1' }` )
re := regexp . MustCompile ( ` powershell -executionpolicy bypass "& { if \(Test-Path variable:global:ProgressPreference\) { set-variable -name variable:global:ProgressPreference -value 'SilentlyContinue'}; \. c:/Windows/Temp/packer-ps-env-vars-[[:alnum:]]{ 8}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 12}\.ps1; &'c:/Windows/Temp/inlineScript.ps1'; exit \$LastExitCode }" ` )
matched := re . MatchString ( cmd )
if ! matched {
t . Fatalf ( "Got unexpected command: %s" , cmd )
@ -447,7 +446,7 @@ func TestProvisionerProvision_Inline(t *testing.T) {
}
cmd = comm . StartCmd . Command
re = regexp . MustCompile ( ` \. c:/Windows/Temp/packer-ps-env-vars-[[:alnum:]]{ 8}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 12}\.ps1; try { & 'c:/Windows/Temp/inlineScript\ .ps1' }` )
re = regexp . MustCompile ( ` powershell -executionpolicy bypass "& { if \(Test-Path variable:global:ProgressPreference\) { set-variable -name variable:global:ProgressPreference -value 'SilentlyContinue'}; \. c:/Windows/Temp/packer-ps-env-vars-[[:alnum:]]{ 8}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 12}\.ps1; &'c:/Windows/Temp/inlineScript.ps1'; exit \$LastExitCode }" ` )
matched = re . MatchString ( cmd )
if ! matched {
t . Fatalf ( "Got unexpected command: %s" , cmd )
@ -477,7 +476,7 @@ func TestProvisionerProvision_Scripts(t *testing.T) {
}
cmd := comm . StartCmd . Command
re := regexp . MustCompile ( ` \. c:/Windows/Temp/packer-ps-env-vars-[[:alnum:]]{ 8}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 12}\.ps1; try { & 'c:/Windows/Temp/script\ .ps1' }` )
re := regexp . MustCompile ( ` powershell -executionpolicy bypass "& { if \(Test-Path variable:global:ProgressPreference\) { set-variable -name variable:global:ProgressPreference -value 'SilentlyContinue'}; \. c:/Windows/Temp/packer-ps-env-vars-[[:alnum:]]{ 8}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 12}\.ps1; &'c:/Windows/Temp/script.ps1'; exit \$LastExitCode }" ` )
matched := re . MatchString ( cmd )
if ! matched {
t . Fatalf ( "Got unexpected command: %s" , cmd )
@ -514,7 +513,7 @@ func TestProvisionerProvision_ScriptsWithEnvVars(t *testing.T) {
}
cmd := comm . StartCmd . Command
re := regexp . MustCompile ( ` \. c:/Windows/Temp/packer-ps-env-vars-[[:alnum:]]{ 8}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 12}\.ps1; try { & 'c:/Windows/Temp/script\ .ps1' }` )
re := regexp . MustCompile ( ` powershell -executionpolicy bypass "& { if \(Test-Path variable:global:ProgressPreference\) { set-variable -name variable:global:ProgressPreference -value 'SilentlyContinue'}; \. c:/Windows/Temp/packer-ps-env-vars-[[:alnum:]]{ 8}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 12}\.ps1; &'c:/Windows/Temp/script.ps1'; exit \$LastExitCode }" ` )
matched := re . MatchString ( cmd )
if ! matched {
t . Fatalf ( "Got unexpected command: %s" , cmd )
@ -539,11 +538,11 @@ func TestProvisionerProvision_SkipClean(t *testing.T) {
} {
{
SkipClean : true ,
LastExecutedCommandRegex : ` \. c:/Windows/Temp/packer-ps-env-vars-[[:alnum:]]{ 8}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 12}\.ps1; try { & 'c:/Windows/Temp/script.ps1' }` ,
LastExecutedCommandRegex : ` powershell -executionpolicy bypass "& { if \(Test-Path variable:global:ProgressPreference\) { set-variable -name variable:global:ProgressPreference -value 'SilentlyContinue'}; \. c:/Windows/Temp/packer-ps-env-vars-[[:alnum:]]{ 8}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 12}\.ps1; &'c:/Windows/Temp/script.ps1'; exit \$LastExitCode }" ` ,
} ,
{
SkipClean : false ,
LastExecutedCommandRegex : ` \. c:/Windows/Temp/packer-ps-env-vars-[[:alnum:]]{ 8}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 12}\.ps1; try { & 'c:/Windows/Temp/packer-cleanup-[[:alnum:]]{ 8}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 12}\.ps1' }` ,
LastExecutedCommandRegex : ` powershell -executionpolicy bypass "& { if \(Test-Path variable:global:ProgressPreference\) { set-variable -name variable:global:ProgressPreference -value 'SilentlyContinue'}; \. c:/Windows/Temp/packer-ps-env-vars-[[:alnum:]]{ 8}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 12}\.ps1; &'c:/Windows/Temp/packer-cleanup-[[:alnum:]]{ 8}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 12}\.ps1' ; exit \$LastExitCode }" ` ,
} ,
}
@ -803,7 +802,7 @@ func TestProvision_createCommandText(t *testing.T) {
p . generatedData = make ( map [ string ] interface { } )
cmd , _ := p . createCommandText ( )
re := regexp . MustCompile ( ` \. c:/Windows/Temp/packer-ps-env-vars-[[:alnum:]]{ 8}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 12}\.ps1; try { & 'c:/Windows/Temp/script\ .ps1' }` )
re := regexp . MustCompile ( ` powershell -executionpolicy bypass "& { if \(Test-Path variable:global:ProgressPreference\) { set-variable -name variable:global:ProgressPreference -value 'SilentlyContinue'}; \. c:/Windows/Temp/packer-ps-env-vars-[[:alnum:]]{ 8}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 4}-[[:alnum:]] { 12}\.ps1; &'c:/Windows/Temp/script.ps1'; exit \$LastExitCode }" ` )
matched := re . MatchString ( cmd )
if ! matched {
t . Fatalf ( "Got unexpected command: %s" , cmd )
@ -862,7 +861,3 @@ func generatedData() map[string]interface{} {
"PackerHTTPPort" : common . HttpPortNotImplemented ,
}
}
func executeCommand ( varsStr , pathStr string ) string {
return fmt . Sprintf ( ` powershell -executionpolicy bypass "& { if (Test-Path variable:global:ProgressPreference) { set-variable -name variable:global:ProgressPreference -value 'SilentlyContinue'}; { set-variable -name variable:global:ErrorActionPreference -value 'Continue'};%s;try { & '%s' } catch { Write-Error $Error[0]; exit 1 }; if ($LastExitCode) { exit $LastExitCode }}" ` , varsStr , pathStr )
}