summaryrefslogtreecommitdiff
path: root/spec/functional/resource/powershell_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/functional/resource/powershell_spec.rb')
-rw-r--r--spec/functional/resource/powershell_spec.rb43
1 files changed, 21 insertions, 22 deletions
diff --git a/spec/functional/resource/powershell_spec.rb b/spec/functional/resource/powershell_spec.rb
index 4d31eb3ef1..6bd3b3c1e5 100644
--- a/spec/functional/resource/powershell_spec.rb
+++ b/spec/functional/resource/powershell_spec.rb
@@ -6,9 +6,9 @@
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
-#
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -17,11 +17,10 @@
#
require 'spec_helper'
-require 'functional/resource/batch_spec.rb'
describe Chef::Resource::WindowsScript::PowershellScript, :windows_only do
- include_context Chef::Resource::WindowsScript
+ include_context Chef::Resource::WindowsScript
let(:successful_executable_script_content) { "#{ENV['SystemRoot']}\\system32\\attrib.exe $env:systemroot" }
let(:failed_executable_script_content) { "#{ENV['SystemRoot']}\\system32\\attrib.exe /badargument" }
@@ -36,7 +35,7 @@ describe Chef::Resource::WindowsScript::PowershellScript, :windows_only do
let(:arbitrary_nonzero_process_exit_code) { 4193 }
let(:arbitrary_nonzero_process_exit_code_content) { "exit #{arbitrary_nonzero_process_exit_code}" }
let(:invalid_powershell_interpreter_flag) { "/thisflagisinvalid" }
- let(:valid_powershell_interpreter_flag) { "-Sta" }
+ let(:valid_powershell_interpreter_flag) { "-Sta" }
let!(:resource) do
r = Chef::Resource::WindowsScript::PowershellScript.new("Powershell resource functional test", @run_context)
r.code(successful_executable_script_content)
@@ -53,31 +52,31 @@ describe Chef::Resource::WindowsScript::PowershellScript, :windows_only do
it "returns the process exit code" do
resource.code(arbitrary_nonzero_process_exit_code_content)
resource.returns(arbitrary_nonzero_process_exit_code)
- resource.run_action(:run)
+ resource.run_action(:run)
end
it "returns 0 if the last command was a cmdlet that succeeded" do
resource.code(cmdlet_exit_code_success_content)
resource.returns(0)
- resource.run_action(:run)
+ resource.run_action(:run)
end
it "returns 0 if the last command was a cmdlet that succeeded and was preceded by a non-cmdlet Windows binary that failed" do
resource.code([windows_process_exit_code_not_found_content, cmdlet_exit_code_success_content].join(';'))
resource.returns(0)
- resource.run_action(:run)
+ resource.run_action(:run)
end
-
+
it "returns 1 if the last command was a cmdlet that failed" do
resource.code(cmdlet_exit_code_not_found_content)
resource.returns(1)
- resource.run_action(:run)
+ resource.run_action(:run)
end
it "returns 1 if the last command was a cmdlet that failed and was preceded by a successfully executed non-cmdlet Windows binary" do
resource.code([windows_process_exit_code_success_content, cmdlet_exit_code_not_found_content].join(';'))
resource.returns(1)
- resource.run_action(:run)
+ resource.run_action(:run)
end
# This somewhat ambiguous case, two failures of different types,
@@ -91,34 +90,34 @@ describe Chef::Resource::WindowsScript::PowershellScript, :windows_only do
it "returns 1 if the last command was a cmdlet that failed and was preceded by an unsuccessfully executed non-cmdlet Windows binary" do
resource.code([arbitrary_nonzero_process_exit_code_content,cmdlet_exit_code_not_found_content].join(';'))
resource.returns(arbitrary_nonzero_process_exit_code)
- resource.run_action(:run)
+ resource.run_action(:run)
end
it "returns 0 if the last command was a non-cmdlet Windows binary that succeeded and was preceded by a failed cmdlet" do
resource.code([cmdlet_exit_code_success_content, arbitrary_nonzero_process_exit_code_content].join(';'))
resource.returns(arbitrary_nonzero_process_exit_code)
- resource.run_action(:run)
+ resource.run_action(:run)
end
-
+
it "returns a specific error code if the last command was a non-cmdlet Windows binary that failed and was preceded by cmdlet that succeeded" do
resource.code([cmdlet_exit_code_success_content, arbitrary_nonzero_process_exit_code_content].join(';'))
resource.returns(arbitrary_nonzero_process_exit_code)
- resource.run_action(:run)
+ resource.run_action(:run)
end
it "returns a specific error code if the last command was a non-cmdlet Windows binary that failed and was preceded by cmdlet that failed" do
resource.code([cmdlet_exit_code_not_found_content, arbitrary_nonzero_process_exit_code_content].join(';'))
resource.returns(arbitrary_nonzero_process_exit_code)
- resource.run_action(:run)
+ resource.run_action(:run)
end
-
+
it "executes a script with a 64-bit process on a 64-bit OS, otherwise a 32-bit process" do
resource.code(processor_architecture_script_content + " | out-file -encoding ASCII #{script_output_path}")
resource.returns(0)
resource.run_action(:run)
is_64_bit = (ENV['PROCESSOR_ARCHITECTURE'] == 'AMD64') || (ENV['PROCESSOR_ARCHITEW6432'] == 'AMD64')
-
+
detected_64_bit = source_contains_case_insensitive_content?( get_script_output, 'AMD64' )
is_64_bit.should == detected_64_bit
@@ -128,15 +127,15 @@ describe Chef::Resource::WindowsScript::PowershellScript, :windows_only do
resource.code(cmdlet_exit_code_success_content)
resource.flags(invalid_powershell_interpreter_flag)
resource.returns(1)
- resource.run_action(:run)
+ resource.run_action(:run)
end
it "returns 0 if a valid flag is passed to the interpreter" do
resource.code(cmdlet_exit_code_success_content)
resource.flags(valid_powershell_interpreter_flag)
resource.returns(0)
- resource.run_action(:run)
- end
+ resource.run_action(:run)
+ end
end
context "when running on a 32-bit version of Windows", :windows32_only do
@@ -167,7 +166,7 @@ describe Chef::Resource::WindowsScript::PowershellScript, :windows_only do
source_contains_case_insensitive_content?( get_script_output, 'AMD64' ).should == true
end
-
+
it "executes a script with a 32-bit process if :i386 arch is specified" do
resource.code(processor_architecture_script_content + " | out-file -encoding ASCII #{script_output_path}")
resource.architecture(:i386)