beaker 4.41.2 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +9 -0
- data/.github/workflows/release.yml +2 -2
- data/.github/workflows/test.yml +26 -13
- data/.rubocop.yml +23 -10
- data/.rubocop_todo.yml +34 -10
- data/CHANGELOG.md +16 -52
- data/Gemfile +12 -7
- data/HISTORY.md +605 -0
- data/Rakefile +99 -111
- data/acceptance/config/acceptance-options.rb +1 -1
- data/acceptance/config/base/acceptance-options.rb +2 -2
- data/acceptance/config/hypervisor/acceptance-options.rb +2 -2
- data/acceptance/config/subcommands/acceptance-options.rb +2 -2
- data/acceptance/fixtures/module/Rakefile +1 -1
- data/acceptance/fixtures/module/spec/acceptance/demo_spec.rb +8 -12
- data/acceptance/fixtures/module/spec/classes/init_spec.rb +0 -1
- data/acceptance/fixtures/module/spec/spec_helper_acceptance.rb +3 -5
- data/acceptance/lib/helpers/test_helper.rb +6 -5
- data/acceptance/pre_suite/subcommands/05_install_ruby.rb +2 -3
- data/acceptance/pre_suite/subcommands/08_install_beaker.rb +1 -2
- data/acceptance/tests/base/dsl/helpers/configuration_test.rb +4 -4
- data/acceptance/tests/base/dsl/helpers/hocon_helpers_test.rb +1 -2
- data/acceptance/tests/base/dsl/helpers/host_helpers/add_system32_hosts_entry_test.rb +0 -3
- data/acceptance/tests/base/dsl/helpers/host_helpers/archive_file_from_test.rb +3 -1
- data/acceptance/tests/base/dsl/helpers/host_helpers/backup_the_file_test.rb +9 -9
- data/acceptance/tests/base/dsl/helpers/host_helpers/check_for_package_test.rb +0 -4
- data/acceptance/tests/base/dsl/helpers/host_helpers/create_remote_file_test.rb +19 -26
- data/acceptance/tests/base/dsl/helpers/host_helpers/curl_on_test.rb +2 -2
- data/acceptance/tests/base/dsl/helpers/host_helpers/curl_with_retries_test.rb +0 -1
- data/acceptance/tests/base/dsl/helpers/host_helpers/on_test.rb +18 -13
- data/acceptance/tests/base/dsl/helpers/host_helpers/retry_on_test.rb +3 -3
- data/acceptance/tests/base/dsl/helpers/host_helpers/rsync_to_test.rb +22 -27
- data/acceptance/tests/base/dsl/helpers/host_helpers/run_cron_on_test.rb +12 -16
- data/acceptance/tests/base/dsl/helpers/host_helpers/run_script_on_test.rb +3 -4
- data/acceptance/tests/base/dsl/helpers/host_helpers/run_script_test.rb +3 -3
- data/acceptance/tests/base/dsl/helpers/host_helpers/scp_from_test.rb +4 -4
- data/acceptance/tests/base/dsl/helpers/host_helpers/scp_to_test.rb +3 -4
- data/acceptance/tests/base/dsl/helpers/host_helpers/shell_test.rb +5 -5
- data/acceptance/tests/base/dsl/helpers/host_helpers/upgrade_package_test.rb +3 -5
- data/acceptance/tests/base/dsl/platform_tag_confiner_test.rb +14 -17
- data/acceptance/tests/base/dsl/structure_test.rb +5 -11
- data/acceptance/tests/base/host/file_test.rb +2 -2
- data/acceptance/tests/base/host/group_test.rb +0 -1
- data/acceptance/tests/base/host/host_test.rb +66 -63
- data/acceptance/tests/base/host/packages.rb +1 -2
- data/acceptance/tests/base/host/packages_unix.rb +0 -55
- data/acceptance/tests/base/host/user_test.rb +0 -1
- data/acceptance/tests/base/host_prebuilt_steps/ssh_environment_test.rb +1 -2
- data/acceptance/tests/base/test_suite/export.rb +6 -9
- data/acceptance/tests/install/from_file.rb +2 -4
- data/acceptance/tests/load_path_bootstrap.rb +1 -1
- data/acceptance/tests/subcommands/destroy.rb +19 -21
- data/acceptance/tests/subcommands/exec.rb +0 -1
- data/acceptance/tests/subcommands/init.rb +2 -3
- data/acceptance/tests/subcommands/provision.rb +0 -1
- data/beaker.gemspec +4 -7
- data/docs/concepts/argument_processing_and_precedence.md +1 -10
- data/docs/how_to/debug_beaker_tests.md +12 -12
- data/docs/how_to/hosts/eos.md +2 -12
- data/docs/how_to/install_puppet.md +0 -18
- data/docs/how_to/the_beaker_dsl.md +0 -2
- data/lib/beaker/cli.rb +59 -68
- data/lib/beaker/command.rb +20 -28
- data/lib/beaker/command_factory.rb +3 -2
- data/lib/beaker/dsl/assertions.rb +6 -18
- data/lib/beaker/dsl/helpers/hocon_helpers.rb +3 -7
- data/lib/beaker/dsl/helpers/host_helpers.rb +62 -123
- data/lib/beaker/dsl/helpers/test_helpers.rb +3 -5
- data/lib/beaker/dsl/helpers/web_helpers.rb +19 -39
- data/lib/beaker/dsl/helpers.rb +2 -4
- data/lib/beaker/dsl/outcomes.rb +13 -15
- data/lib/beaker/dsl/patterns.rb +1 -3
- data/lib/beaker/dsl/roles.rb +17 -20
- data/lib/beaker/dsl/structure.rb +53 -65
- data/lib/beaker/dsl/test_tagging.rb +7 -10
- data/lib/beaker/dsl/wrappers.rb +15 -16
- data/lib/beaker/dsl.rb +2 -3
- data/lib/beaker/host/aix/exec.rb +1 -1
- data/lib/beaker/host/aix/file.rb +0 -1
- data/lib/beaker/host/aix/group.rb +1 -1
- data/lib/beaker/host/aix/user.rb +1 -1
- data/lib/beaker/host/aix.rb +3 -4
- data/lib/beaker/host/cisco.rb +27 -39
- data/lib/beaker/host/eos.rb +4 -30
- data/lib/beaker/host/freebsd/exec.rb +1 -1
- data/lib/beaker/host/freebsd/pkg.rb +3 -3
- data/lib/beaker/host/freebsd.rb +9 -12
- data/lib/beaker/host/mac/exec.rb +4 -4
- data/lib/beaker/host/mac/group.rb +7 -7
- data/lib/beaker/host/mac/pkg.rb +3 -106
- data/lib/beaker/host/mac/user.rb +2 -2
- data/lib/beaker/host/mac.rb +8 -9
- data/lib/beaker/host/pswindows/exec.rb +66 -70
- data/lib/beaker/host/pswindows/file.rb +3 -5
- data/lib/beaker/host/pswindows/group.rb +3 -3
- data/lib/beaker/host/pswindows/pkg.rb +12 -12
- data/lib/beaker/host/pswindows/user.rb +3 -3
- data/lib/beaker/host/pswindows.rb +4 -3
- data/lib/beaker/host/unix/exec.rb +81 -83
- data/lib/beaker/host/unix/file.rb +40 -45
- data/lib/beaker/host/unix/group.rb +1 -1
- data/lib/beaker/host/unix/pkg.rb +138 -401
- data/lib/beaker/host/unix/user.rb +2 -2
- data/lib/beaker/host/unix.rb +8 -11
- data/lib/beaker/host/windows/exec.rb +17 -17
- data/lib/beaker/host/windows/file.rb +3 -3
- data/lib/beaker/host/windows/group.rb +3 -3
- data/lib/beaker/host/windows/pkg.rb +3 -54
- data/lib/beaker/host/windows/user.rb +3 -3
- data/lib/beaker/host/windows.rb +12 -12
- data/lib/beaker/host.rb +76 -133
- data/lib/beaker/host_prebuilt_steps.rb +88 -196
- data/lib/beaker/hypervisor/noop.rb +2 -4
- data/lib/beaker/hypervisor.rb +44 -61
- data/lib/beaker/local_connection.rb +2 -4
- data/lib/beaker/logger.rb +68 -76
- data/lib/beaker/logger_junit.rb +21 -25
- data/lib/beaker/network_manager.rb +39 -42
- data/lib/beaker/options/command_line_parser.rb +12 -23
- data/lib/beaker/options/hosts_file_parser.rb +16 -25
- data/lib/beaker/options/options_file_parser.rb +3 -6
- data/lib/beaker/options/options_hash.rb +2 -7
- data/lib/beaker/options/parser.rb +86 -102
- data/lib/beaker/options/presets.rb +114 -123
- data/lib/beaker/options/subcommand_options_file_parser.rb +3 -6
- data/lib/beaker/options/validator.rb +26 -31
- data/lib/beaker/perf.rb +25 -30
- data/lib/beaker/platform.rb +26 -37
- data/lib/beaker/result.rb +7 -6
- data/lib/beaker/shared/error_handler.rb +8 -10
- data/lib/beaker/shared/fog_credentials.rb +5 -9
- data/lib/beaker/shared/host_manager.rb +36 -41
- data/lib/beaker/shared/options_resolver.rb +3 -7
- data/lib/beaker/shared/repetition.rb +2 -4
- data/lib/beaker/shared/semvar.rb +37 -41
- data/lib/beaker/shared/timed.rb +0 -3
- data/lib/beaker/shared.rb +1 -1
- data/lib/beaker/ssh_connection.rb +38 -47
- data/lib/beaker/subcommand.rb +17 -24
- data/lib/beaker/subcommands/subcommand_util.rb +4 -4
- data/lib/beaker/tasks/quick_start.rb +4 -9
- data/lib/beaker/tasks/rake_task.rb +25 -27
- data/lib/beaker/tasks/test.rb +4 -4
- data/lib/beaker/test_case.rb +16 -28
- data/lib/beaker/test_suite.rb +35 -39
- data/lib/beaker/test_suite_result.rb +45 -47
- data/lib/beaker/version.rb +1 -1
- data/lib/beaker.rb +6 -7
- data/spec/beaker/cli_spec.rb +121 -142
- data/spec/beaker/command_spec.rb +55 -59
- data/spec/beaker/dsl/assertions_spec.rb +36 -36
- data/spec/beaker/dsl/helpers/host_helpers_spec.rb +110 -131
- data/spec/beaker/dsl/helpers/test_helpers_spec.rb +9 -10
- data/spec/beaker/dsl/helpers/web_helpers_spec.rb +22 -31
- data/spec/beaker/dsl/outcomes_spec.rb +14 -14
- data/spec/beaker/dsl/roles_spec.rb +125 -130
- data/spec/beaker/dsl/structure_spec.rb +172 -161
- data/spec/beaker/dsl/test_tagging_spec.rb +89 -90
- data/spec/beaker/dsl/wrappers_spec.rb +32 -33
- data/spec/beaker/host/aix_spec.rb +14 -14
- data/spec/beaker/host/cisco_spec.rb +84 -94
- data/spec/beaker/host/eos_spec.rb +15 -36
- data/spec/beaker/host/freebsd/exec_spec.rb +3 -6
- data/spec/beaker/host/freebsd/pkg_spec.rb +24 -27
- data/spec/beaker/host/mac/exec_spec.rb +2 -3
- data/spec/beaker/host/mac/group_spec.rb +48 -57
- data/spec/beaker/host/mac/user_spec.rb +54 -63
- data/spec/beaker/host/pswindows/exec_spec.rb +30 -32
- data/spec/beaker/host/pswindows/file_spec.rb +16 -16
- data/spec/beaker/host/pswindows/user_spec.rb +17 -23
- data/spec/beaker/host/pswindows_spec.rb +13 -13
- data/spec/beaker/host/unix/exec_spec.rb +75 -80
- data/spec/beaker/host/unix/file_spec.rb +66 -71
- data/spec/beaker/host/unix/pkg_spec.rb +150 -411
- data/spec/beaker/host/unix_spec.rb +11 -207
- data/spec/beaker/host/windows/exec_spec.rb +30 -32
- data/spec/beaker/host/windows/file_spec.rb +18 -19
- data/spec/beaker/host/windows/group_spec.rb +10 -12
- data/spec/beaker/host/windows/pkg_spec.rb +6 -9
- data/spec/beaker/host/windows/user_spec.rb +17 -23
- data/spec/beaker/host/windows_spec.rb +39 -39
- data/spec/beaker/host_prebuilt_steps_spec.rb +168 -349
- data/spec/beaker/host_spec.rb +204 -284
- data/spec/beaker/hypervisor/hypervisor_spec.rb +36 -61
- data/spec/beaker/localhost_connection_spec.rb +10 -11
- data/spec/beaker/logger_junit_spec.rb +19 -30
- data/spec/beaker/logger_spec.rb +153 -136
- data/spec/beaker/network_manager_spec.rb +23 -23
- data/spec/beaker/options/command_line_parser_spec.rb +20 -23
- data/spec/beaker/options/hosts_file_parser_spec.rb +30 -32
- data/spec/beaker/options/options_file_parser_spec.rb +4 -7
- data/spec/beaker/options/options_hash_spec.rb +4 -6
- data/spec/beaker/options/parser_spec.rb +167 -167
- data/spec/beaker/options/presets_spec.rb +7 -9
- data/spec/beaker/options/subcommand_options_parser_spec.rb +13 -14
- data/spec/beaker/options/validator_spec.rb +10 -11
- data/spec/beaker/perf_spec.rb +18 -21
- data/spec/beaker/platform_spec.rb +25 -50
- data/spec/beaker/shared/error_handler_spec.rb +7 -16
- data/spec/beaker/shared/fog_credentials_spec.rb +29 -29
- data/spec/beaker/shared/host_manager_spec.rb +50 -84
- data/spec/beaker/shared/options_resolver_spec.rb +9 -12
- data/spec/beaker/shared/repetition_spec.rb +17 -24
- data/spec/beaker/shared/semvar_spec.rb +21 -26
- data/spec/beaker/ssh_connection_spec.rb +76 -83
- data/spec/beaker/subcommand/subcommand_util_spec.rb +31 -33
- data/spec/beaker/subcommand_spec.rb +75 -77
- data/spec/beaker/test_case_spec.rb +25 -50
- data/spec/beaker/test_suite_spec.rb +147 -154
- data/spec/helpers.rb +39 -45
- data/spec/matchers.rb +8 -7
- data/spec/mocks.rb +1 -6
- data/spec/spec_helper.rb +0 -1
- metadata +8 -24
- data/acceptance/tests/base/dsl/helpers/host_helpers/deploy_package_repo_test.rb +0 -142
- data/acceptance/tests/base/external_resources_test.rb +0 -31
- data/spec/beaker/host/mac_spec.rb +0 -113
|
@@ -3,14 +3,14 @@ require "helpers/test_helper"
|
|
|
3
3
|
test_name "dsl::helpers::host_helpers #backup_the_file" do
|
|
4
4
|
step "#backup_the_file CURRENTLY will return nil if the file does not exist in the source directory" do
|
|
5
5
|
# NOTE: would expect this to fail with Beaker::Host::CommandFailure
|
|
6
|
-
remote_source = default.tmpdir
|
|
7
|
-
remote_destination = default.tmpdir
|
|
6
|
+
remote_source = default.tmpdir
|
|
7
|
+
remote_destination = default.tmpdir
|
|
8
8
|
result = backup_the_file default, remote_source, remote_destination
|
|
9
9
|
assert_nil result
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
step "#backup_the_file will fail if the destination directory does not exist" do
|
|
13
|
-
remote_source = default.tmpdir
|
|
13
|
+
remote_source = default.tmpdir
|
|
14
14
|
create_remote_file_from_fixture("simple_text_file", default, remote_source, "puppet.conf")
|
|
15
15
|
|
|
16
16
|
assert_raises Beaker::Host::CommandFailure do
|
|
@@ -19,10 +19,10 @@ test_name "dsl::helpers::host_helpers #backup_the_file" do
|
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
step "#backup_the_file copies `puppet.conf` from the source to the destination directory" do
|
|
22
|
-
remote_source = default.tmpdir
|
|
22
|
+
remote_source = default.tmpdir
|
|
23
23
|
_remote_filename, contents = create_remote_file_from_fixture("simple_text_file", default, remote_source, "puppet.conf")
|
|
24
24
|
|
|
25
|
-
remote_destination = default.tmpdir
|
|
25
|
+
remote_destination = default.tmpdir
|
|
26
26
|
remote_destination_filename = File.join(remote_destination, "puppet.conf.bak")
|
|
27
27
|
|
|
28
28
|
result = backup_the_file default, remote_source, remote_destination
|
|
@@ -33,10 +33,10 @@ test_name "dsl::helpers::host_helpers #backup_the_file" do
|
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
step "#backup_the_file copies a named file from the source to the destination directory" do
|
|
36
|
-
remote_source = default.tmpdir
|
|
36
|
+
remote_source = default.tmpdir
|
|
37
37
|
_remote_filename, contents = create_remote_file_from_fixture("simple_text_file", default, remote_source, "testfile.txt")
|
|
38
38
|
|
|
39
|
-
remote_destination = default.tmpdir
|
|
39
|
+
remote_destination = default.tmpdir
|
|
40
40
|
remote_destination_filename = File.join(remote_destination, "testfile.txt.bak")
|
|
41
41
|
|
|
42
42
|
result = backup_the_file default, remote_source, remote_destination, "testfile.txt"
|
|
@@ -47,9 +47,9 @@ test_name "dsl::helpers::host_helpers #backup_the_file" do
|
|
|
47
47
|
end
|
|
48
48
|
|
|
49
49
|
step "#backup_the_file CURRENTLY will fail if given a hosts array" do
|
|
50
|
-
remote_source = default.tmpdir
|
|
50
|
+
remote_source = default.tmpdir
|
|
51
51
|
create_remote_file_from_fixture("simple_text_file", default, remote_source, "testfile.txt")
|
|
52
|
-
remote_destination = default.tmpdir
|
|
52
|
+
remote_destination = default.tmpdir
|
|
53
53
|
|
|
54
54
|
assert_raises NoMethodError do
|
|
55
55
|
backup_the_file hosts, remote_source, remote_destination
|
|
@@ -15,10 +15,8 @@ def known_installed_package
|
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
test_name "dsl::helpers::host_helpers #check_for_package" do
|
|
18
|
-
|
|
19
18
|
# NOTE: there does not appear to be a way to confine just to cygwin hosts
|
|
20
19
|
confine_block :to, :platform => /windows/ do
|
|
21
|
-
|
|
22
20
|
# NOTE: check_for_package on windows currently fails as follows:
|
|
23
21
|
#
|
|
24
22
|
# ArgumentError: wrong number of arguments (3 for 1..2)
|
|
@@ -43,7 +41,6 @@ test_name "dsl::helpers::host_helpers #check_for_package" do
|
|
|
43
41
|
end
|
|
44
42
|
|
|
45
43
|
confine_block :to, :platform => /solaris/ do
|
|
46
|
-
|
|
47
44
|
step "#check_for_package will return false if the specified package is not installed on the remote host" do
|
|
48
45
|
result = check_for_package default, "non-existent-package-name"
|
|
49
46
|
assert !result
|
|
@@ -70,7 +67,6 @@ test_name "dsl::helpers::host_helpers #check_for_package" do
|
|
|
70
67
|
end
|
|
71
68
|
|
|
72
69
|
confine_block :except, :platform => /windows|solaris|osx/ do
|
|
73
|
-
|
|
74
70
|
step "#check_for_package will return false if the specified package is not installed on the remote host" do
|
|
75
71
|
result = check_for_package default, "non-existent-package-name"
|
|
76
72
|
assert !result
|
|
@@ -1,23 +1,16 @@
|
|
|
1
1
|
require "helpers/test_helper"
|
|
2
2
|
|
|
3
3
|
test_name "dsl::helpers::host_helpers #create_remote_file" do
|
|
4
|
-
|
|
5
|
-
def create_remote_file_with_backups host, remote_filename, contents, opts={}
|
|
4
|
+
def create_remote_file_with_backups host, remote_filename, contents, opts = {}
|
|
6
5
|
result = nil
|
|
7
6
|
repeat_fibonacci_style_for(10) do
|
|
8
7
|
begin
|
|
9
8
|
result = create_remote_file(
|
|
10
9
|
host, remote_filename, contents, opts
|
|
11
10
|
) # return of block is whether or not we're done repeating
|
|
12
|
-
if result.is_a?(Rsync::Result) || result.is_a?(Beaker::Result)
|
|
13
|
-
return result.success?
|
|
14
|
-
end
|
|
11
|
+
return result.success? if result.is_a?(Rsync::Result) || result.is_a?(Beaker::Result)
|
|
15
12
|
|
|
16
|
-
result.
|
|
17
|
-
next if individual_result.success?
|
|
18
|
-
return false
|
|
19
|
-
end
|
|
20
|
-
true
|
|
13
|
+
result.all? { |individual_result| individual_result.success? }
|
|
21
14
|
rescue Beaker::Host::CommandFailure => e
|
|
22
15
|
logger.info("create_remote_file threw command failure, details: ")
|
|
23
16
|
logger.info(" #{e}")
|
|
@@ -102,13 +95,15 @@ test_name "dsl::helpers::host_helpers #create_remote_file" do
|
|
|
102
95
|
end
|
|
103
96
|
end
|
|
104
97
|
|
|
105
|
-
|
|
106
98
|
confine_block :except, :platform => /windows/ do
|
|
107
99
|
# these tests exercise the rsync backend
|
|
108
100
|
# NOTE: rsync works fine on Windows as long as you use POSIX-style paths.
|
|
109
101
|
# However, these tests use Host#tmpdir which outputs mixed-style paths
|
|
110
102
|
# e.g. C:/cygwin64/tmp/beaker.Rp9G6L - Fix me with BKR-1503
|
|
111
103
|
|
|
104
|
+
# rsync is broken on beaker-docker
|
|
105
|
+
confine :except, :hypervisor => 'docker'
|
|
106
|
+
|
|
112
107
|
confine_block :except, :platform => /osx/ do
|
|
113
108
|
# packages are unsupported on OSX
|
|
114
109
|
step "installing rsync on hosts if needed" do
|
|
@@ -138,19 +133,18 @@ test_name "dsl::helpers::host_helpers #create_remote_file" do
|
|
|
138
133
|
remote_filename = File.join(remote_tmpdir, "testfile.txt")
|
|
139
134
|
contents = fixture_contents("simple_text_file")
|
|
140
135
|
|
|
141
|
-
create_remote_file_with_backups(
|
|
136
|
+
result = create_remote_file_with_backups(
|
|
142
137
|
default, remote_filename, contents, { :protocol => "rsync" }
|
|
143
138
|
)
|
|
144
139
|
|
|
145
140
|
fails_intermittently("https://tickets.puppetlabs.com/browse/BKR-612",
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
)
|
|
152
|
-
|
|
153
|
-
assert_equal contents, remote_contents
|
|
141
|
+
"default" => default,
|
|
142
|
+
"remote_tmpdir" => remote_tmpdir,
|
|
143
|
+
"remote_filename" => remote_filename,
|
|
144
|
+
"contents" => contents,
|
|
145
|
+
"result" => result) do
|
|
146
|
+
remote_contents = on(default, "cat #{remote_filename}").stdout
|
|
147
|
+
assert_equal contents, remote_contents
|
|
154
148
|
end
|
|
155
149
|
end
|
|
156
150
|
|
|
@@ -171,12 +165,11 @@ test_name "dsl::helpers::host_helpers #create_remote_file" do
|
|
|
171
165
|
|
|
172
166
|
hosts.each do |host|
|
|
173
167
|
fails_intermittently("https://tickets.puppetlabs.com/browse/BKR-612",
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
) do
|
|
168
|
+
"host" => host,
|
|
169
|
+
"remote_tmpdir" => remote_tmpdir,
|
|
170
|
+
"remote_filename" => remote_filename,
|
|
171
|
+
"contents" => contents,
|
|
172
|
+
"result" => result) do
|
|
180
173
|
remote_contents = on(host, "cat #{remote_filename}").stdout
|
|
181
174
|
assert_equal contents, remote_contents
|
|
182
175
|
end
|
|
@@ -17,7 +17,7 @@ test_name "dsl::helpers::host_helpers #curl_on" do
|
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
step "#curl_on can retrieve the contents of a URL, using standard curl options" do
|
|
20
|
-
remote_tmpdir = default.tmpdir
|
|
20
|
+
remote_tmpdir = default.tmpdir
|
|
21
21
|
remote_filename, contents = create_remote_file_from_fixture("simple_text_file", default, remote_tmpdir, "testfile.txt")
|
|
22
22
|
remote_targetfilename = File.join remote_tmpdir, "outfile.txt"
|
|
23
23
|
|
|
@@ -29,7 +29,7 @@ test_name "dsl::helpers::host_helpers #curl_on" do
|
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
step "#curl_on can retrieve the contents of a URL, when given a hosts array" do
|
|
32
|
-
remote_tmpdir = default.tmpdir
|
|
32
|
+
remote_tmpdir = default.tmpdir
|
|
33
33
|
on hosts, "mkdir -p #{remote_tmpdir}"
|
|
34
34
|
|
|
35
35
|
remote_filename = contents = nil
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
require "helpers/test_helper"
|
|
2
2
|
|
|
3
3
|
test_name "dsl::helpers::host_helpers #curl_with_retries" do
|
|
4
|
-
|
|
5
4
|
step "#curl_with_retries CURRENTLY fails with a RuntimeError if retries are exhausted without fetching the specified URL" do
|
|
6
5
|
# NOTE: would expect that this would raise Beaker::Host::CommandFailure
|
|
7
6
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
require "helpers/test_helper"
|
|
2
2
|
|
|
3
3
|
test_name "dsl::helpers::host_helpers #on" do
|
|
4
|
-
|
|
5
4
|
step "#on raises an exception when remote command fails" do
|
|
6
5
|
assert_raises(Beaker::Host::CommandFailure) do
|
|
7
6
|
on default, "/bin/nonexistent-command"
|
|
@@ -9,7 +8,7 @@ test_name "dsl::helpers::host_helpers #on" do
|
|
|
9
8
|
end
|
|
10
9
|
|
|
11
10
|
step "#on makes command output available via `.stdout` on success" do
|
|
12
|
-
output = on(default, %
|
|
11
|
+
output = on(default, %{echo "echo via on"}).stdout
|
|
13
12
|
assert_equal "echo via on\n", output
|
|
14
13
|
end
|
|
15
14
|
|
|
@@ -19,7 +18,7 @@ test_name "dsl::helpers::host_helpers #on" do
|
|
|
19
18
|
end
|
|
20
19
|
|
|
21
20
|
step "#on makes exit status available via `.exit_code`" do
|
|
22
|
-
status = on(default, %
|
|
21
|
+
status = on(default, %{echo "echo via on"}).exit_code
|
|
23
22
|
assert_equal 0, status
|
|
24
23
|
end
|
|
25
24
|
|
|
@@ -33,7 +32,7 @@ test_name "dsl::helpers::host_helpers #on" do
|
|
|
33
32
|
|
|
34
33
|
step "#on with :acceptable_exit_codes will fail for other exit codes" do
|
|
35
34
|
assert_raises(Beaker::Host::CommandFailure) do
|
|
36
|
-
on default, %
|
|
35
|
+
on default, %{echo "echo via on"}, :acceptable_exit_codes => [127]
|
|
37
36
|
end
|
|
38
37
|
end
|
|
39
38
|
|
|
@@ -48,7 +47,7 @@ test_name "dsl::helpers::host_helpers #on" do
|
|
|
48
47
|
# Run a command which is (basically) guaranteed to have distinct output
|
|
49
48
|
# on every host, and only requires bash to be present to run on any of
|
|
50
49
|
# our platforms.
|
|
51
|
-
results = on hosts, %
|
|
50
|
+
results = on hosts, %{echo "${RANDOM}:${RANDOM}:${RANDOM}"}
|
|
52
51
|
|
|
53
52
|
# assert that we got results back for every host
|
|
54
53
|
assert_equal hosts.size, results.size
|
|
@@ -67,7 +66,7 @@ test_name "dsl::helpers::host_helpers #on" do
|
|
|
67
66
|
# Run a command which is (basically) guaranteed to have distinct output
|
|
68
67
|
# on every host, and only requires bash to be present to run on any of
|
|
69
68
|
# our platforms.
|
|
70
|
-
results = on :agent, %
|
|
69
|
+
results = on :agent, %{echo "${RANDOM}:${RANDOM}:${RANDOM}"}
|
|
71
70
|
|
|
72
71
|
# assert that we got results back for every host
|
|
73
72
|
assert_equal hosts.size, results.size
|
|
@@ -86,7 +85,7 @@ test_name "dsl::helpers::host_helpers #on" do
|
|
|
86
85
|
# Run a command which is (basically) guaranteed to have distinct output
|
|
87
86
|
# on every host, and only requires bash to be present to run on any of
|
|
88
87
|
# our platforms.
|
|
89
|
-
results = on "agent", %
|
|
88
|
+
results = on "agent", %{echo "${RANDOM}:${RANDOM}:${RANDOM}"}
|
|
90
89
|
|
|
91
90
|
# assert that we got results back for every host
|
|
92
91
|
assert_equal hosts.size, results.size
|
|
@@ -102,16 +101,19 @@ test_name "dsl::helpers::host_helpers #on" do
|
|
|
102
101
|
end
|
|
103
102
|
|
|
104
103
|
step "#on allows assertions to be used in the optional block" do
|
|
105
|
-
on hosts, %
|
|
106
|
-
assert_match(/\d+:\d+/, stdout)
|
|
104
|
+
on hosts, %{echo "${RANDOM}:${RANDOM}"} do |result|
|
|
105
|
+
assert_match(/\d+:\d+/, result.stdout)
|
|
107
106
|
end
|
|
108
107
|
end
|
|
109
108
|
|
|
110
109
|
step "#on executes in parallel with :run_in_parallel => true" do
|
|
110
|
+
# beaker-docker can't deal with closing the connection
|
|
111
|
+
confine :except, :hypervisor => 'docker'
|
|
112
|
+
|
|
111
113
|
parent_pid = Process.pid
|
|
112
|
-
results = on(
|
|
114
|
+
results = on(hosts, %{echo "${RANDOM}:${RANDOM}:${RANDOM}"}, :run_in_parallel => true) do
|
|
113
115
|
assert(Process.pid != parent_pid)
|
|
114
|
-
|
|
116
|
+
end
|
|
115
117
|
|
|
116
118
|
# assert that we got results back for every host
|
|
117
119
|
assert_equal hosts.size, results.size
|
|
@@ -127,14 +129,17 @@ test_name "dsl::helpers::host_helpers #on" do
|
|
|
127
129
|
end
|
|
128
130
|
|
|
129
131
|
step "#on in parallel exits after all processes complete if an exception is raised in one process" do
|
|
132
|
+
# beaker-docker can't deal with closing the connection
|
|
133
|
+
confine :except, :hypervisor => 'docker'
|
|
134
|
+
|
|
130
135
|
start = Time.now
|
|
131
136
|
|
|
132
137
|
tmp = nil
|
|
133
138
|
assert_raises NoMethodError do
|
|
134
|
-
on(
|
|
139
|
+
on(hosts, %{echo "blah"}, :run_in_parallel => true) do
|
|
135
140
|
sleep(1)
|
|
136
141
|
tmp.blah
|
|
137
|
-
|
|
142
|
+
end
|
|
138
143
|
end
|
|
139
144
|
assert(Time.now > start + 1)
|
|
140
145
|
end
|
|
@@ -4,7 +4,7 @@ test_name "dsl::helpers::host_helpers #retry_on" do
|
|
|
4
4
|
step "#retry_on CURRENTLY fails with a RuntimeError if command does not pass after all retries" do
|
|
5
5
|
# NOTE: would have expected this to fail with Beaker::Hosts::CommandFailure
|
|
6
6
|
|
|
7
|
-
remote_tmpdir = default.tmpdir
|
|
7
|
+
remote_tmpdir = default.tmpdir
|
|
8
8
|
remote_script_file = File.join(remote_tmpdir, "test.sh")
|
|
9
9
|
create_remote_file_from_fixture("retry_script", default, remote_tmpdir, "test.sh")
|
|
10
10
|
|
|
@@ -14,7 +14,7 @@ test_name "dsl::helpers::host_helpers #retry_on" do
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
step "#retry_on succeeds if command passes before retries are exhausted" do
|
|
17
|
-
remote_tmpdir = default.tmpdir
|
|
17
|
+
remote_tmpdir = default.tmpdir
|
|
18
18
|
remote_script_file = File.join(remote_tmpdir, "test.sh")
|
|
19
19
|
create_remote_file_from_fixture("retry_script", default, remote_tmpdir, "test.sh")
|
|
20
20
|
|
|
@@ -27,7 +27,7 @@ test_name "dsl::helpers::host_helpers #retry_on" do
|
|
|
27
27
|
# NOTE: would expect this to work across hosts, or be better documented and
|
|
28
28
|
# to raise Beaker::Host::CommandFailure
|
|
29
29
|
|
|
30
|
-
remote_tmpdir = default.tmpdir
|
|
30
|
+
remote_tmpdir = default.tmpdir
|
|
31
31
|
remote_script_file = File.join(remote_tmpdir, "test.sh")
|
|
32
32
|
|
|
33
33
|
hosts.each do |host|
|
|
@@ -2,7 +2,6 @@ require "helpers/test_helper"
|
|
|
2
2
|
require "rsync"
|
|
3
3
|
|
|
4
4
|
test_name "dsl::helpers::host_helpers #rsync_to" do
|
|
5
|
-
|
|
6
5
|
def rsync_to_with_backups hosts, local_filename, remote_dir
|
|
7
6
|
result = nil
|
|
8
7
|
repeat_fibonacci_style_for(10) do
|
|
@@ -12,11 +11,7 @@ test_name "dsl::helpers::host_helpers #rsync_to" do
|
|
|
12
11
|
) # return of block is whether or not we're done repeating
|
|
13
12
|
return result.success? if result.is_a? Rsync::Result
|
|
14
13
|
|
|
15
|
-
result.
|
|
16
|
-
next if individual_result.success?
|
|
17
|
-
return false
|
|
18
|
-
end
|
|
19
|
-
true
|
|
14
|
+
result.all? { |individual_result| individual_result.success? }
|
|
20
15
|
rescue Beaker::Host::CommandFailure => e
|
|
21
16
|
logger.info("create_remote_file threw command failure, details: ")
|
|
22
17
|
logger.info(" #{e}")
|
|
@@ -29,7 +24,6 @@ test_name "dsl::helpers::host_helpers #rsync_to" do
|
|
|
29
24
|
|
|
30
25
|
# NOTE: there does not seem to be a reliable way to confine to cygwin hosts.
|
|
31
26
|
confine_block :to, :platform => /windows/ do
|
|
32
|
-
|
|
33
27
|
# NOTE: rsync works fine on Windows as long as you use POSIX-style paths.
|
|
34
28
|
# However, these tests use Host#tmpdir which outputs mixed-style paths
|
|
35
29
|
# e.g. C:/cygwin64/tmp/beaker.Rp9G6L - Fix me with BKR-1503
|
|
@@ -37,7 +31,7 @@ test_name "dsl::helpers::host_helpers #rsync_to" do
|
|
|
37
31
|
step "#rsync_to CURRENTLY fails on windows systems" do
|
|
38
32
|
Dir.mktmpdir do |local_dir|
|
|
39
33
|
local_filename, _contents = create_local_file_from_fixture("simple_text_file", local_dir, "testfile.txt")
|
|
40
|
-
remote_tmpdir = default.tmpdir
|
|
34
|
+
remote_tmpdir = default.tmpdir
|
|
41
35
|
|
|
42
36
|
assert_raises Beaker::Host::CommandFailure do
|
|
43
37
|
rsync_to default, local_filename, remote_tmpdir
|
|
@@ -56,8 +50,11 @@ test_name "dsl::helpers::host_helpers #rsync_to" do
|
|
|
56
50
|
# However, these tests use Host#tmpdir which outputs mixed-style paths
|
|
57
51
|
# e.g. C:/cygwin64/tmp/beaker.Rp9G6L - Fix me with BKR-1503
|
|
58
52
|
|
|
53
|
+
# rsync is broken on beaker-docker
|
|
54
|
+
confine :except, :hypervisor => 'docker'
|
|
55
|
+
|
|
59
56
|
step "#rsync_to fails if the local file cannot be found" do
|
|
60
|
-
remote_tmpdir = default.tmpdir
|
|
57
|
+
remote_tmpdir = default.tmpdir
|
|
61
58
|
assert_raises IOError do
|
|
62
59
|
rsync_to default, "/non/existent/file.txt", remote_tmpdir
|
|
63
60
|
end
|
|
@@ -119,20 +116,19 @@ test_name "dsl::helpers::host_helpers #rsync_to" do
|
|
|
119
116
|
step "#rsync_to creates the file on the remote system" do
|
|
120
117
|
Dir.mktmpdir do |local_dir|
|
|
121
118
|
local_filename, contents = create_local_file_from_fixture("simple_text_file", local_dir, "testfile.txt")
|
|
122
|
-
remote_tmpdir = default.tmpdir
|
|
119
|
+
remote_tmpdir = default.tmpdir
|
|
123
120
|
remote_filename = File.join(remote_tmpdir, "testfile.txt")
|
|
124
121
|
|
|
125
122
|
result = rsync_to_with_backups default, local_filename, remote_tmpdir
|
|
126
123
|
|
|
127
124
|
fails_intermittently("https://tickets.puppetlabs.com/browse/QENG-3053",
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
) do
|
|
125
|
+
"default" => default,
|
|
126
|
+
"contents" => contents,
|
|
127
|
+
"local_filename" => local_filename,
|
|
128
|
+
"local_dir" => local_dir,
|
|
129
|
+
"remote_filename" => remote_filename,
|
|
130
|
+
"remote_tmdir" => remote_tmpdir,
|
|
131
|
+
"result" => result.inspect) do
|
|
136
132
|
remote_contents = on(default, "cat #{remote_filename}").stdout
|
|
137
133
|
assert_equal contents, remote_contents
|
|
138
134
|
end
|
|
@@ -142,7 +138,7 @@ test_name "dsl::helpers::host_helpers #rsync_to" do
|
|
|
142
138
|
step "#rsync_to creates the file on all remote systems when a host array is provided" do
|
|
143
139
|
Dir.mktmpdir do |local_dir|
|
|
144
140
|
local_filename, contents = create_local_file_from_fixture("simple_text_file", local_dir, "testfile.txt")
|
|
145
|
-
remote_tmpdir = default.tmpdir
|
|
141
|
+
remote_tmpdir = default.tmpdir
|
|
146
142
|
on hosts, "mkdir -p #{remote_tmpdir}"
|
|
147
143
|
remote_filename = File.join(remote_tmpdir, "testfile.txt")
|
|
148
144
|
|
|
@@ -150,14 +146,13 @@ test_name "dsl::helpers::host_helpers #rsync_to" do
|
|
|
150
146
|
|
|
151
147
|
hosts.each do |host|
|
|
152
148
|
fails_intermittently("https://tickets.puppetlabs.com/browse/QENG-3053",
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
) do
|
|
149
|
+
"host" => host,
|
|
150
|
+
"contents" => contents,
|
|
151
|
+
"local_filename" => local_filename,
|
|
152
|
+
"local_dir" => local_dir,
|
|
153
|
+
"remote_filename" => remote_filename,
|
|
154
|
+
"remote_tmdir" => remote_tmpdir,
|
|
155
|
+
"result" => result.inspect) do
|
|
161
156
|
remote_contents = on(host, "cat #{remote_filename}").stdout
|
|
162
157
|
assert_equal contents, remote_contents
|
|
163
158
|
end
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
require "helpers/test_helper"
|
|
2
2
|
|
|
3
3
|
test_name "dsl::helpers::host_helpers #run_cron_on" do
|
|
4
|
-
|
|
5
4
|
confine_block :to, :platform => /windows/ do
|
|
6
|
-
|
|
7
5
|
step "#run_cron_on fails on windows platforms when listing cron jobs for a user on a host" do
|
|
8
6
|
assert_raises Beaker::Host::CommandFailure do
|
|
9
7
|
run_cron_on default, :list, default['user']
|
|
@@ -12,7 +10,6 @@ test_name "dsl::helpers::host_helpers #run_cron_on" do
|
|
|
12
10
|
end
|
|
13
11
|
|
|
14
12
|
confine_block :to, :platform => /solaris/ do
|
|
15
|
-
|
|
16
13
|
step "#run_cron_on CURRENTLY does nothing and returns `nil` when an unknown command is provided" do
|
|
17
14
|
# NOTE: would have expected this to raise Beaker::Host::CommandFailure instead
|
|
18
15
|
|
|
@@ -39,7 +36,7 @@ test_name "dsl::helpers::host_helpers #run_cron_on" do
|
|
|
39
36
|
end
|
|
40
37
|
|
|
41
38
|
step "#run_cron_on CURRENTLY does not fail, but returns nil, when adding cron jobs for an unknown user" do
|
|
42
|
-
result = run_cron_on default, :add, "nonexistentuser", %
|
|
39
|
+
result = run_cron_on default, :add, "nonexistentuser", %{* * * * * /bin/echo "hello" >/dev/null}
|
|
43
40
|
assert_nil result
|
|
44
41
|
end
|
|
45
42
|
|
|
@@ -49,7 +46,7 @@ test_name "dsl::helpers::host_helpers #run_cron_on" do
|
|
|
49
46
|
end
|
|
50
47
|
|
|
51
48
|
step "#run_cron_on can add a cron job for a user on a host" do
|
|
52
|
-
run_cron_on default, :add, default['user'], %
|
|
49
|
+
run_cron_on default, :add, default['user'], %{* * * * * /bin/echo "hello" >/dev/null}
|
|
53
50
|
result = run_cron_on default, :list, default['user']
|
|
54
51
|
assert_equal 0, result.exit_code
|
|
55
52
|
assert_match %r{/bin/echo}, result.stdout
|
|
@@ -60,13 +57,13 @@ test_name "dsl::helpers::host_helpers #run_cron_on" do
|
|
|
60
57
|
# cron entries. See also: https://github.com/puppetlabs/beaker/pull/937#discussion_r38338494
|
|
61
58
|
|
|
62
59
|
1.upto(3) do |job_number|
|
|
63
|
-
run_cron_on default, :add, default['user'], %
|
|
60
|
+
run_cron_on default, :add, default['user'], %{* * * * * /bin/echo "job :#{job_number}:" >/dev/null}
|
|
64
61
|
end
|
|
65
62
|
|
|
66
63
|
result = run_cron_on default, :list, default['user']
|
|
67
64
|
|
|
68
|
-
|
|
69
|
-
|
|
65
|
+
refute_match %r{job :1:}, result.stdout
|
|
66
|
+
refute_match %r{job :2:}, result.stdout
|
|
70
67
|
assert_match %r{job :3:}, result.stdout
|
|
71
68
|
end
|
|
72
69
|
|
|
@@ -74,7 +71,7 @@ test_name "dsl::helpers::host_helpers #run_cron_on" do
|
|
|
74
71
|
# NOTE: would have expected a more granular approach to removing cron jobs
|
|
75
72
|
# for a user on a host. This should otherwise be better documented.
|
|
76
73
|
|
|
77
|
-
run_cron_on default, :add, default['user'], %
|
|
74
|
+
run_cron_on default, :add, default['user'], %{* * * * * /bin/echo "quality: job 1" >/dev/null}
|
|
78
75
|
result = run_cron_on default, :list, default['user']
|
|
79
76
|
assert_match %r{quality: job 1}, result.stdout
|
|
80
77
|
|
|
@@ -125,7 +122,6 @@ test_name "dsl::helpers::host_helpers #run_cron_on" do
|
|
|
125
122
|
end
|
|
126
123
|
|
|
127
124
|
confine_block :except, :platform => /windows|solaris/ do
|
|
128
|
-
|
|
129
125
|
step "#run_cron_on CURRENTLY does nothing and returns `nil` when an unknown command is provided" do
|
|
130
126
|
# NOTE: would have expected this to raise Beaker::Host::CommandFailure instead
|
|
131
127
|
|
|
@@ -154,7 +150,7 @@ test_name "dsl::helpers::host_helpers #run_cron_on" do
|
|
|
154
150
|
|
|
155
151
|
step "#run_cron_on fails when adding cron jobs for an unknown user" do
|
|
156
152
|
assert_raises Beaker::Host::CommandFailure do
|
|
157
|
-
run_cron_on default, :add, "nonexistentuser", %
|
|
153
|
+
run_cron_on default, :add, "nonexistentuser", %{* * * * * /bin/echo "hello" >/dev/null}
|
|
158
154
|
end
|
|
159
155
|
end
|
|
160
156
|
|
|
@@ -165,7 +161,7 @@ test_name "dsl::helpers::host_helpers #run_cron_on" do
|
|
|
165
161
|
end
|
|
166
162
|
|
|
167
163
|
step "#run_cron_on can add a cron job for a user on a host" do
|
|
168
|
-
run_cron_on default, :add, default['user'], %
|
|
164
|
+
run_cron_on default, :add, default['user'], %{* * * * * /bin/echo "hello" >/dev/null}
|
|
169
165
|
result = run_cron_on default, :list, default['user']
|
|
170
166
|
assert_equal 0, result.exit_code
|
|
171
167
|
assert_match %r{/bin/echo}, result.stdout
|
|
@@ -176,13 +172,13 @@ test_name "dsl::helpers::host_helpers #run_cron_on" do
|
|
|
176
172
|
# cron entries. See also: https://github.com/puppetlabs/beaker/pull/937#discussion_r38338494
|
|
177
173
|
|
|
178
174
|
1.upto(3) do |job_number|
|
|
179
|
-
run_cron_on default, :add, default['user'], %
|
|
175
|
+
run_cron_on default, :add, default['user'], %{* * * * * /bin/echo "job :#{job_number}:" >/dev/null}
|
|
180
176
|
end
|
|
181
177
|
|
|
182
178
|
result = run_cron_on default, :list, default['user']
|
|
183
179
|
|
|
184
|
-
|
|
185
|
-
|
|
180
|
+
refute_match %r{job :1:}, result.stdout
|
|
181
|
+
refute_match %r{job :2:}, result.stdout
|
|
186
182
|
assert_match %r{job :3:}, result.stdout
|
|
187
183
|
end
|
|
188
184
|
|
|
@@ -190,7 +186,7 @@ test_name "dsl::helpers::host_helpers #run_cron_on" do
|
|
|
190
186
|
# NOTE: would have expected a more granular approach to removing cron jobs
|
|
191
187
|
# for a user on a host. This should otherwise be better documented.
|
|
192
188
|
|
|
193
|
-
run_cron_on default, :add, default['user'], %
|
|
189
|
+
run_cron_on default, :add, default['user'], %{* * * * * /bin/echo "quality: job 1" >/dev/null}
|
|
194
190
|
result = run_cron_on default, :list, default['user']
|
|
195
191
|
assert_match %r{quality: job 1}, result.stdout
|
|
196
192
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
require "helpers/test_helper"
|
|
2
2
|
|
|
3
3
|
test_name "dsl::helpers::host_helpers #run_script_on" do
|
|
4
|
-
|
|
5
4
|
step "#run_script_on fails when the local script cannot be found" do
|
|
6
5
|
assert_raises IOError do
|
|
7
6
|
run_script_on default, "/non/existent/testfile.sh"
|
|
@@ -41,9 +40,9 @@ test_name "dsl::helpers::host_helpers #run_script_on" do
|
|
|
41
40
|
Dir.mktmpdir do |local_dir|
|
|
42
41
|
local_filename, _contents = create_local_file_from_fixture("shell_script_with_output", local_dir, "testfile.sh", "a+x")
|
|
43
42
|
|
|
44
|
-
run_script_on default, local_filename do
|
|
45
|
-
assert_equal 0, exit_code
|
|
46
|
-
assert_equal "output\n", stdout
|
|
43
|
+
run_script_on default, local_filename do |result|
|
|
44
|
+
assert_equal 0, result.exit_code
|
|
45
|
+
assert_equal "output\n", result.stdout
|
|
47
46
|
end
|
|
48
47
|
end
|
|
49
48
|
end
|
|
@@ -40,9 +40,9 @@ test_name "dsl::helpers::host_helpers #run_script" do
|
|
|
40
40
|
Dir.mktmpdir do |local_dir|
|
|
41
41
|
local_filename, _contents = create_local_file_from_fixture("shell_script_with_output", local_dir, "testfile.sh", "a+x")
|
|
42
42
|
|
|
43
|
-
run_script local_filename do
|
|
44
|
-
assert_equal 0, exit_code
|
|
45
|
-
assert_equal "output\n", stdout
|
|
43
|
+
run_script local_filename do |result|
|
|
44
|
+
assert_equal 0, result.exit_code
|
|
45
|
+
assert_equal "output\n", result.stdout
|
|
46
46
|
end
|
|
47
47
|
end
|
|
48
48
|
end
|
|
@@ -3,7 +3,7 @@ require "helpers/test_helper"
|
|
|
3
3
|
test_name "dsl::helpers::host_helpers #scp_from" do
|
|
4
4
|
if test_scp_error_on_close?
|
|
5
5
|
step "#scp_from fails if the local path cannot be found" do
|
|
6
|
-
remote_tmpdir = default.tmpdir
|
|
6
|
+
remote_tmpdir = default.tmpdir
|
|
7
7
|
remote_filename, _contents = create_remote_file_from_fixture("simple_text_file", default, remote_tmpdir, "testfile.txt")
|
|
8
8
|
|
|
9
9
|
assert_raises Beaker::Host::CommandFailure do
|
|
@@ -22,7 +22,7 @@ test_name "dsl::helpers::host_helpers #scp_from" do
|
|
|
22
22
|
|
|
23
23
|
step "#scp_from creates the file on the local system" do
|
|
24
24
|
Dir.mktmpdir do |local_dir|
|
|
25
|
-
remote_tmpdir = default.tmpdir
|
|
25
|
+
remote_tmpdir = default.tmpdir
|
|
26
26
|
remote_filename, contents = create_remote_file_from_fixture("simple_text_file", default, remote_tmpdir, "testfile.txt")
|
|
27
27
|
|
|
28
28
|
scp_from default, remote_filename, local_dir
|
|
@@ -37,10 +37,10 @@ test_name "dsl::helpers::host_helpers #scp_from" do
|
|
|
37
37
|
# file repeatedly to generate an error
|
|
38
38
|
|
|
39
39
|
Dir.mktmpdir do |local_dir|
|
|
40
|
-
remote_tmpdir = default.tmpdir
|
|
40
|
+
remote_tmpdir = default.tmpdir
|
|
41
41
|
remote_filename = File.join(remote_tmpdir, "testfile.txt")
|
|
42
42
|
on hosts, "mkdir -p #{remote_tmpdir}"
|
|
43
|
-
on hosts, %
|
|
43
|
+
on hosts, %{echo "${RANDOM}:${RANDOM}:${RANDOM}" > #{remote_filename}}
|
|
44
44
|
|
|
45
45
|
scp_from hosts, remote_filename, local_dir
|
|
46
46
|
remote_contents = on(hosts.last, "cat #{remote_filename}").stdout
|
|
@@ -2,7 +2,7 @@ require "helpers/test_helper"
|
|
|
2
2
|
|
|
3
3
|
test_name "dsl::helpers::host_helpers #scp_to" do
|
|
4
4
|
step "#scp_to fails if the local file cannot be found" do
|
|
5
|
-
remote_tmpdir = default.tmpdir
|
|
5
|
+
remote_tmpdir = default.tmpdir
|
|
6
6
|
assert_raises IOError do
|
|
7
7
|
scp_to default, "/non/existent/file.txt", remote_tmpdir
|
|
8
8
|
end
|
|
@@ -24,7 +24,7 @@ test_name "dsl::helpers::host_helpers #scp_to" do
|
|
|
24
24
|
step "#scp_to creates the file on the remote system" do
|
|
25
25
|
Dir.mktmpdir do |local_dir|
|
|
26
26
|
local_filename, contents = create_local_file_from_fixture("simple_text_file", local_dir, "testfile.txt")
|
|
27
|
-
remote_tmpdir = default.tmpdir
|
|
27
|
+
remote_tmpdir = default.tmpdir
|
|
28
28
|
|
|
29
29
|
scp_to default, local_filename, remote_tmpdir
|
|
30
30
|
|
|
@@ -38,7 +38,7 @@ test_name "dsl::helpers::host_helpers #scp_to" do
|
|
|
38
38
|
Dir.mktmpdir do |local_dir|
|
|
39
39
|
local_filename, contents = create_local_file_from_fixture("simple_text_file", local_dir, "testfile.txt")
|
|
40
40
|
|
|
41
|
-
remote_tmpdir = default.tmpdir
|
|
41
|
+
remote_tmpdir = default.tmpdir
|
|
42
42
|
on hosts, "mkdir -p #{remote_tmpdir}"
|
|
43
43
|
remote_filename = File.join(remote_tmpdir, "testfile.txt")
|
|
44
44
|
|
|
@@ -50,5 +50,4 @@ test_name "dsl::helpers::host_helpers #scp_to" do
|
|
|
50
50
|
end
|
|
51
51
|
end
|
|
52
52
|
end
|
|
53
|
-
|
|
54
53
|
end
|