beaker 4.40.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 +17 -28
- data/Gemfile +12 -7
- 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 +80 -82
- data/lib/beaker/host/unix/file.rb +38 -43
- data/lib/beaker/host/unix/group.rb +1 -1
- data/lib/beaker/host/unix/pkg.rb +154 -417
- 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 +93 -198
- 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 -24
- 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 +22 -27
- data/lib/beaker/platform.rb +38 -46
- 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 -73
- data/spec/beaker/host/unix/pkg_spec.rb +155 -401
- 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 +172 -326
- 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 -36
- 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 +48 -53
- data/spec/matchers.rb +8 -7
- data/spec/mocks.rb +1 -6
- data/spec/spec_helper.rb +0 -1
- metadata +7 -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
|
@@ -8,7 +8,7 @@ test_name "dsl::helpers::host_helpers #shell" do
|
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
step "#shell makes command output available via `.stdout` on success" do
|
|
11
|
-
output = shell(%
|
|
11
|
+
output = shell(%{echo "echo via on"}).stdout
|
|
12
12
|
assert_equal "echo via on\n", output
|
|
13
13
|
end
|
|
14
14
|
|
|
@@ -18,7 +18,7 @@ test_name "dsl::helpers::host_helpers #shell" do
|
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
step "#shell makes exit status available via `.exit_code`" do
|
|
21
|
-
status = shell(%
|
|
21
|
+
status = shell(%{echo "echo via on"}).exit_code
|
|
22
22
|
assert_equal 0, status
|
|
23
23
|
end
|
|
24
24
|
|
|
@@ -32,7 +32,7 @@ test_name "dsl::helpers::host_helpers #shell" do
|
|
|
32
32
|
|
|
33
33
|
step "#shell with :acceptable_exit_codes will fail for other exit codes" do
|
|
34
34
|
assert_raises(Beaker::Host::CommandFailure) do
|
|
35
|
-
shell %
|
|
35
|
+
shell %{echo "echo via on"}, :acceptable_exit_codes => [127]
|
|
36
36
|
end
|
|
37
37
|
end
|
|
38
38
|
|
|
@@ -44,8 +44,8 @@ test_name "dsl::helpers::host_helpers #shell" do
|
|
|
44
44
|
end
|
|
45
45
|
|
|
46
46
|
step "#shell allows assertions to be used in the optional block" do
|
|
47
|
-
shell %
|
|
48
|
-
assert_match(/\d+:\d+/, stdout)
|
|
47
|
+
shell %{echo "${RANDOM}:${RANDOM}"} do |result|
|
|
48
|
+
assert_match(/\d+:\d+/, result.stdout)
|
|
49
49
|
end
|
|
50
50
|
end
|
|
51
51
|
end
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
require "helpers/test_helper"
|
|
2
2
|
|
|
3
3
|
test_name "dsl::helpers::host_helpers #upgrade_package" do
|
|
4
|
-
|
|
5
4
|
# NOTE: there does not appear to be a way to confine just to cygwin hosts
|
|
6
5
|
confine_block :to, :platform => /windows/ do
|
|
7
|
-
|
|
8
6
|
# NOTE: check_for_package on windows currently fails as follows:
|
|
9
7
|
#
|
|
10
8
|
# ArgumentError: wrong number of arguments (3 for 1..2)
|
|
@@ -20,7 +18,6 @@ test_name "dsl::helpers::host_helpers #upgrade_package" do
|
|
|
20
18
|
end
|
|
21
19
|
|
|
22
20
|
confine_block :to, :platform => /osx/ do
|
|
23
|
-
|
|
24
21
|
step "#upgrade_package CURRENTLY fails with a RuntimeError on OS X" do
|
|
25
22
|
# NOTE: documentation could be better on this method
|
|
26
23
|
assert_raises RuntimeError do
|
|
@@ -30,8 +27,10 @@ test_name "dsl::helpers::host_helpers #upgrade_package" do
|
|
|
30
27
|
end
|
|
31
28
|
|
|
32
29
|
confine_block :except, :platform => /windows|osx/ do
|
|
33
|
-
|
|
30
|
+
# rsync is broken on beaker-docker
|
|
31
|
+
confine :except, :hypervisor => 'docker'
|
|
34
32
|
|
|
33
|
+
confine_block :to, :platform => /centos|el-\d/ do
|
|
35
34
|
step "#upgrade_package CURRENTLY does not fail on CentOS if unknown package is specified" do
|
|
36
35
|
# NOTE: I would expect this to fail with an Beaker::Host::CommandFailure,
|
|
37
36
|
# but maybe it's because yum doesn't really care:
|
|
@@ -48,7 +47,6 @@ test_name "dsl::helpers::host_helpers #upgrade_package" do
|
|
|
48
47
|
end
|
|
49
48
|
|
|
50
49
|
confine_block :except, :platform => /centos|el-\d/ do
|
|
51
|
-
|
|
52
50
|
step "#upgrade_package fails if package is not already installed" do
|
|
53
51
|
assert_raises Beaker::Host::CommandFailure do
|
|
54
52
|
upgrade_package default, "non-existent-package-name"
|
|
@@ -13,32 +13,29 @@ test_name "DSL::Structure::PlatformTagConfiner" do
|
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
step "#{pstc_method_name} can remove hosts from a test, or be skipped if empty" do
|
|
16
|
-
assert hosts.length
|
|
16
|
+
assert hosts.length > 0, "#{pstc_method_name} did not have enough hosts to test"
|
|
17
17
|
previous_hosts = hosts.dup
|
|
18
18
|
|
|
19
19
|
options[:platform_tag_confines] = [
|
|
20
20
|
:platform => /#{default[:platform]}/,
|
|
21
21
|
:tag_reason_hash => {
|
|
22
|
-
'tag1' => 'reason1'
|
|
23
|
-
}
|
|
22
|
+
'tag1' => 'reason1',
|
|
23
|
+
},
|
|
24
24
|
]
|
|
25
25
|
|
|
26
26
|
begin
|
|
27
|
-
tag(
|
|
27
|
+
tag('tag1')
|
|
28
28
|
rescue Beaker::DSL::Outcomes::SkipTest => e
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
else
|
|
38
|
-
fail "#{pstc_method_name} raised unexpected SkipTest exception: #{e}"
|
|
39
|
-
end
|
|
29
|
+
fail "#{pstc_method_name} raised unexpected SkipTest exception: #{e}" unless /^No\ suitable\ hosts\ found/.match?(e.message)
|
|
30
|
+
# SkipTest is raised in the case when there are no hosts leftover for a test
|
|
31
|
+
# after confining. It's a very common acceptance test case where all of the
|
|
32
|
+
# hosts involved are of the same platform, and are thus all confined
|
|
33
|
+
# away by the code being run here. In this case, the hosts object will not
|
|
34
|
+
# be altered, but should be considered a pass, since the fact that SkipTest
|
|
35
|
+
# is being raised confirms that a lower number of hosts are coming out of
|
|
36
|
+
# the confine (0) than came in (>0, according to our pre-condition assertion)
|
|
40
37
|
else
|
|
41
|
-
assert hosts.length
|
|
38
|
+
assert hosts.length < previous_hosts.length, "#{pstc_method_name} did not change hosts array"
|
|
42
39
|
end
|
|
43
40
|
|
|
44
41
|
# cleanup
|
|
@@ -46,4 +43,4 @@ test_name "DSL::Structure::PlatformTagConfiner" do
|
|
|
46
43
|
options[:platform_tag_confines] = nil
|
|
47
44
|
@hosts = previous_hosts
|
|
48
45
|
end
|
|
49
|
-
end
|
|
46
|
+
end
|
|
@@ -3,11 +3,10 @@ test_name "dsl::structure" do
|
|
|
3
3
|
begin
|
|
4
4
|
@in_confine = 0
|
|
5
5
|
confine_block :to, :platform => default["platform"] do
|
|
6
|
-
@in_confine +=1
|
|
6
|
+
@in_confine += 1
|
|
7
7
|
end
|
|
8
8
|
|
|
9
9
|
assert_equal 1, @in_confine, "#confine_block did not run the supplied block"
|
|
10
|
-
|
|
11
10
|
rescue Beaker::DSL::Outcomes::SkipTest => e
|
|
12
11
|
fail "#confine_block raised unexpected SkipTest exception: #{e}"
|
|
13
12
|
end
|
|
@@ -17,12 +16,11 @@ test_name "dsl::structure" do
|
|
|
17
16
|
begin
|
|
18
17
|
@in_confine = 0
|
|
19
18
|
confine_block :to, :platform => default["platform"] do
|
|
20
|
-
@in_confine +=1
|
|
19
|
+
@in_confine += 1
|
|
21
20
|
end
|
|
22
21
|
|
|
23
22
|
assert_equal 1, @in_confine, "#confine_block did not run the supplied block"
|
|
24
23
|
assert_equal hosts.dup, hosts, "#confine_block did not preserve the hosts array"
|
|
25
|
-
|
|
26
24
|
rescue Beaker::DSL::Outcomes::SkipTest => e
|
|
27
25
|
fail "#confine_block raised unexpected SkipTest exception: #{e}"
|
|
28
26
|
end
|
|
@@ -32,11 +30,10 @@ test_name "dsl::structure" do
|
|
|
32
30
|
begin
|
|
33
31
|
@in_confine = 0
|
|
34
32
|
confine_block :except, :platform => default["platform"] do
|
|
35
|
-
@in_confine +=1
|
|
33
|
+
@in_confine += 1
|
|
36
34
|
end
|
|
37
35
|
|
|
38
36
|
assert_equal 0, @in_confine, "#confine_block did not skip the supplied block"
|
|
39
|
-
|
|
40
37
|
rescue Beaker::DSL::Outcomes::SkipTest => e
|
|
41
38
|
fail "#confine_block raised unexpected SkipTest exception: #{e}"
|
|
42
39
|
end
|
|
@@ -46,12 +43,11 @@ test_name "dsl::structure" do
|
|
|
46
43
|
begin
|
|
47
44
|
@in_confine = 0
|
|
48
45
|
confine_block :except, :platform => default["platform"] do
|
|
49
|
-
@in_confine +=1
|
|
46
|
+
@in_confine += 1
|
|
50
47
|
end
|
|
51
48
|
|
|
52
49
|
assert_equal 0, @in_confine, "#confine_block did not skip the supplied block"
|
|
53
50
|
assert_equal hosts.dup, hosts, "#confine_block did not preserve the hosts array"
|
|
54
|
-
|
|
55
51
|
rescue Beaker::DSL::Outcomes::SkipTest => e
|
|
56
52
|
fail "#confine_block raised unexpected SkipTest exception: #{e}"
|
|
57
53
|
end
|
|
@@ -61,7 +57,7 @@ test_name "dsl::structure" do
|
|
|
61
57
|
begin
|
|
62
58
|
@in_confine = 0
|
|
63
59
|
confine_block :to, :platform => default["platform"] do
|
|
64
|
-
@in_confine +=1
|
|
60
|
+
@in_confine += 1
|
|
65
61
|
skip_test "this block raises a skip"
|
|
66
62
|
end
|
|
67
63
|
rescue Beaker::DSL::Outcomes::SkipTest => e
|
|
@@ -76,7 +72,6 @@ test_name "dsl::structure" do
|
|
|
76
72
|
confine :to, { :platform => 'test' }
|
|
77
73
|
|
|
78
74
|
fail "#confine did not skip test but should have."
|
|
79
|
-
|
|
80
75
|
rescue Beaker::DSL::Outcomes::SkipTest => e
|
|
81
76
|
assert_match(/No suitable hosts found with {:platform=>"test"}/, e.message, "#confine raised an unexpected skip_test")
|
|
82
77
|
end
|
|
@@ -87,7 +82,6 @@ test_name "dsl::structure" do
|
|
|
87
82
|
confine :except, { :platform => default['platform'] }
|
|
88
83
|
|
|
89
84
|
fail "#confine did not skip test but should have."
|
|
90
|
-
|
|
91
85
|
rescue Beaker::DSL::Outcomes::SkipTest => e
|
|
92
86
|
assert_match(/No suitable hosts found without {:platform=>"#{default['platform']}"}/, e.message, "#confine raised an unexpected
|
|
93
87
|
# skip_test")
|
|
@@ -21,7 +21,7 @@ test_name 'File Test' do
|
|
|
21
21
|
tmpdir = host.tmpdir('beaker')
|
|
22
22
|
# ensure we have a user to chown to
|
|
23
23
|
host.chgrp('testgroup', tmpdir)
|
|
24
|
-
assert_match(/testgroup/, host.ls_ld(tmpdir), "Should have found testgroup in `ls -ld` output
|
|
24
|
+
assert_match(/testgroup/, host.ls_ld(tmpdir), "Should have found testgroup in `ls -ld` output")
|
|
25
25
|
end
|
|
26
26
|
end
|
|
27
27
|
|
|
@@ -78,4 +78,4 @@ test_name 'File Test' do
|
|
|
78
78
|
host.user_absent('testuser')
|
|
79
79
|
host.group_absent('testgroup')
|
|
80
80
|
end
|
|
81
|
-
end
|
|
81
|
+
end
|
|
@@ -34,7 +34,7 @@ hosts.each do |host|
|
|
|
34
34
|
env_value1 = "#{env_prefix}_v1"
|
|
35
35
|
|
|
36
36
|
host.clear_env_var(env_param1)
|
|
37
|
-
host.add_env_var(env_param1,env_value1)
|
|
37
|
+
host.add_env_var(env_param1, env_value1)
|
|
38
38
|
|
|
39
39
|
val = host.get_env_var(env_param1)
|
|
40
40
|
|
|
@@ -57,12 +57,12 @@ hosts.each do |host|
|
|
|
57
57
|
host.clear_env_var(env_param1)
|
|
58
58
|
host.clear_env_var(env_param2)
|
|
59
59
|
host.clear_env_var(env_param3)
|
|
60
|
-
host.add_env_var(env_param1,env_value1)
|
|
61
|
-
host.add_env_var(env_param1,env_value2)
|
|
62
|
-
host.add_env_var(env_param1,env_value3)
|
|
60
|
+
host.add_env_var(env_param1, env_value1)
|
|
61
|
+
host.add_env_var(env_param1, env_value2)
|
|
62
|
+
host.add_env_var(env_param1, env_value3)
|
|
63
63
|
|
|
64
64
|
val = host.get_env_var(env_id)
|
|
65
|
-
assert('' == val,'get_env_var should not match a partial env key name')
|
|
65
|
+
assert('' == val, 'get_env_var should not match a partial env key name')
|
|
66
66
|
end
|
|
67
67
|
|
|
68
68
|
step "#get_env_var : should not return a match from a key\'s value"
|
|
@@ -72,10 +72,10 @@ hosts.each do |host|
|
|
|
72
72
|
env_value1 = "#{env_prefix}_v1"
|
|
73
73
|
|
|
74
74
|
host.clear_env_var(env_param1)
|
|
75
|
-
host.add_env_var(env_param1,env_value1)
|
|
75
|
+
host.add_env_var(env_param1, env_value1)
|
|
76
76
|
|
|
77
77
|
val = host.get_env_var(env_value1)
|
|
78
|
-
assert('' == val,'get_env_var should not return a match from a key\'s value')
|
|
78
|
+
assert('' == val, 'get_env_var should not return a match from a key\'s value')
|
|
79
79
|
end
|
|
80
80
|
|
|
81
81
|
step "#clear_env_var : should only remove the specified key"
|
|
@@ -92,9 +92,9 @@ hosts.each do |host|
|
|
|
92
92
|
env_param3 = "#{env_id}"
|
|
93
93
|
env_value3 = "#{env_id}"
|
|
94
94
|
|
|
95
|
-
host.add_env_var(env_param1,env_value1)
|
|
96
|
-
host.add_env_var(env_param2,env_value2)
|
|
97
|
-
host.add_env_var(env_param3,env_value3)
|
|
95
|
+
host.add_env_var(env_param1, env_value1)
|
|
96
|
+
host.add_env_var(env_param2, env_value2)
|
|
97
|
+
host.add_env_var(env_param3, env_value3)
|
|
98
98
|
|
|
99
99
|
host.clear_env_var(env_param3)
|
|
100
100
|
|
|
@@ -103,7 +103,7 @@ hosts.each do |host|
|
|
|
103
103
|
val = host.get_env_var(env_param2)
|
|
104
104
|
assert_match(/^#{env_param2}=#{env_value2}$/, val, "#{env_param2} should exist after calling clear_env_var")
|
|
105
105
|
val = host.get_env_var(env_param3)
|
|
106
|
-
assert('' == val,"#{env_param3} should not exist after calling clear_env_var")
|
|
106
|
+
assert('' == val, "#{env_param3} should not exist after calling clear_env_var")
|
|
107
107
|
end
|
|
108
108
|
|
|
109
109
|
step "#add_env_var : can add a unique environment variable"
|
|
@@ -121,9 +121,9 @@ hosts.each do |host|
|
|
|
121
121
|
host.clear_env_var(env_param1)
|
|
122
122
|
host.clear_env_var(env_param2)
|
|
123
123
|
host.clear_env_var(env_param3)
|
|
124
|
-
host.add_env_var(env_param1,env_value1)
|
|
125
|
-
host.add_env_var(env_param2,env_value2)
|
|
126
|
-
host.add_env_var(env_param3,env_value3)
|
|
124
|
+
host.add_env_var(env_param1, env_value1)
|
|
125
|
+
host.add_env_var(env_param2, env_value2)
|
|
126
|
+
host.add_env_var(env_param3, env_value3)
|
|
127
127
|
|
|
128
128
|
val = host.get_env_var(env_param1)
|
|
129
129
|
assert_match(/^#{env_param1}=#{env_value1}$/, val, "#{env_param1} should exist")
|
|
@@ -150,23 +150,27 @@ hosts.each do |host|
|
|
|
150
150
|
assert_match(/TEST=3(;|:)2(;|:)1$/, val, "add_env_var can correctly add env vars")
|
|
151
151
|
end
|
|
152
152
|
|
|
153
|
-
step "#add_env_var : can preserve an environment between ssh connections"
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
153
|
+
step "#add_env_var : can preserve an environment between ssh connections" do
|
|
154
|
+
# beaker-docker can't deal with closing the connection
|
|
155
|
+
confine :except, :hypervisor => 'docker'
|
|
156
|
+
|
|
157
|
+
hosts.each do |host|
|
|
158
|
+
host.clear_env_var("TEST")
|
|
159
|
+
logger.debug("add TEST=1")
|
|
160
|
+
host.add_env_var("TEST", "1")
|
|
161
|
+
logger.debug("add TEST=1 again (shouldn't create duplicate entry)")
|
|
162
|
+
host.add_env_var("TEST", "1")
|
|
163
|
+
logger.debug("add TEST=2")
|
|
164
|
+
host.add_env_var("TEST", "2")
|
|
165
|
+
logger.debug("ensure that TEST env var has correct setting")
|
|
166
|
+
logger.debug("add TEST=3")
|
|
167
|
+
host.add_env_var("TEST", "3")
|
|
168
|
+
logger.debug("close the connection")
|
|
169
|
+
host.close
|
|
170
|
+
logger.debug("ensure that TEST env var has correct setting")
|
|
171
|
+
val = host.get_env_var("TEST")
|
|
172
|
+
assert_match(/TEST=3(;|:)2(;|:)1$/, val, "can preserve an environment between ssh connections")
|
|
173
|
+
end
|
|
170
174
|
end
|
|
171
175
|
|
|
172
176
|
step "#delete_env_var : can delete an environment"
|
|
@@ -187,9 +191,9 @@ end
|
|
|
187
191
|
|
|
188
192
|
step "#mkdir_p : can recursively create a directory structure on a host"
|
|
189
193
|
hosts.each do |host|
|
|
190
|
-
#clean up first!
|
|
194
|
+
# clean up first!
|
|
191
195
|
host.rm_rf("test1")
|
|
192
|
-
#test dir construction
|
|
196
|
+
# test dir construction
|
|
193
197
|
logger.debug("create test1/test2/test3/test4")
|
|
194
198
|
assert_equal(true, host.mkdir_p("test1/test2/test3/test4"), "can create directory structure")
|
|
195
199
|
logger.debug("should be able to create a file in the new dir")
|
|
@@ -197,23 +201,23 @@ hosts.each do |host|
|
|
|
197
201
|
end
|
|
198
202
|
|
|
199
203
|
step "#do_scp_to : can copy a directory to the host with no ignores"
|
|
200
|
-
current_dir =
|
|
204
|
+
current_dir = __dir__
|
|
201
205
|
module_fixture = File.join(current_dir, "../../../fixtures/module")
|
|
202
206
|
hosts.each do |host|
|
|
203
207
|
logger.debug("can recursively copy a module over")
|
|
204
|
-
#make sure that we are clean on the test host
|
|
208
|
+
# make sure that we are clean on the test host
|
|
205
209
|
host.rm_rf("module")
|
|
206
210
|
host.do_scp_to(module_fixture, ".", {})
|
|
207
211
|
Dir.mktmpdir do |tmp_dir|
|
|
208
|
-
#grab copy from host
|
|
212
|
+
# grab copy from host
|
|
209
213
|
host.do_scp_from("module", tmp_dir, {})
|
|
210
|
-
#compare to local copy
|
|
214
|
+
# compare to local copy
|
|
211
215
|
local_paths = Dir.glob(File.join(module_fixture, "**/*")).select { |f| File.file?(f) }
|
|
212
216
|
host_paths = Dir.glob(File.join(File.join(tmp_dir, "module"), "**/*")).select { |f| File.file?(f) }
|
|
213
|
-
#each local file should have a single match on the host
|
|
217
|
+
# each local file should have a single match on the host
|
|
214
218
|
local_paths.each do |path|
|
|
215
|
-
search_name = path.gsub(/^.*fixtures\//, '') #reduce down to the path that should match
|
|
216
|
-
matched = host_paths.select{ |check| /#{Regexp.escape(search_name)}$/.match?(check) }
|
|
219
|
+
search_name = path.gsub(/^.*fixtures\//, '') # reduce down to the path that should match
|
|
220
|
+
matched = host_paths.select { |check| /#{Regexp.escape(search_name)}$/.match?(check) }
|
|
217
221
|
assert_equal(1, matched.length, "should have found a single instance of path #{search_name}, found #{matched.length}: \n #{matched}")
|
|
218
222
|
host_paths = host_paths - matched
|
|
219
223
|
end
|
|
@@ -222,24 +226,24 @@ hosts.each do |host|
|
|
|
222
226
|
end
|
|
223
227
|
|
|
224
228
|
step "#do_scp_to with :ignore : can copy a dir to the host, excluding ignored patterns that DO NOT appear in the source absolute path"
|
|
225
|
-
current_dir =
|
|
229
|
+
current_dir = __dir__
|
|
226
230
|
module_fixture = File.expand_path(File.join(current_dir, "../../../fixtures/module"))
|
|
227
231
|
hosts.each do |host|
|
|
228
232
|
logger.debug("can recursively copy a module over, ignoring some files/dirs")
|
|
229
|
-
#make sure that we are clean on the test host
|
|
233
|
+
# make sure that we are clean on the test host
|
|
230
234
|
host.rm_rf("module")
|
|
231
|
-
host.do_scp_to(module_fixture, ".", {:ignore => [
|
|
235
|
+
host.do_scp_to(module_fixture, ".", { :ignore => %w[tests Gemfile] })
|
|
232
236
|
Dir.mktmpdir do |tmp_dir|
|
|
233
|
-
#grab copy from host
|
|
237
|
+
# grab copy from host
|
|
234
238
|
host.do_scp_from("module", tmp_dir, {})
|
|
235
|
-
#compare to local copy
|
|
239
|
+
# compare to local copy
|
|
236
240
|
local_paths = Dir.glob(File.join(module_fixture, "**/*")).select { |f| File.file?(f) }
|
|
237
241
|
host_paths = Dir.glob(File.join(File.join(tmp_dir, "module"), "**/*")).select { |f| File.file?(f) }
|
|
238
|
-
#each local file should have a single match on the host
|
|
242
|
+
# each local file should have a single match on the host
|
|
239
243
|
local_paths.each do |path|
|
|
240
|
-
search_name = path.gsub(/^.*fixtures\//, '') #reduce down to the path that should match
|
|
241
|
-
matched = host_paths.select{ |check| /#{Regexp.escape(search_name)}$/.match?(check) }
|
|
242
|
-
re =
|
|
244
|
+
search_name = path.gsub(/^.*fixtures\//, '') # reduce down to the path that should match
|
|
245
|
+
matched = host_paths.select { |check| /#{Regexp.escape(search_name)}$/.match?(check) }
|
|
246
|
+
re = /((\/|\A)tests(\/|\z))|((\/|\A)Gemfile(\/|\z))/
|
|
243
247
|
if !path&.match?(re)
|
|
244
248
|
assert_equal(1, matched.length, "should have found a single instance of path #{search_name}, found #{matched.length}: \n #{matched}")
|
|
245
249
|
else
|
|
@@ -252,24 +256,25 @@ hosts.each do |host|
|
|
|
252
256
|
end
|
|
253
257
|
|
|
254
258
|
step "#do_scp_to with :ignore : can copy a dir to the host, excluding ignored patterns that DO appear in the source absolute path"
|
|
255
|
-
current_dir =
|
|
259
|
+
current_dir = __dir__
|
|
256
260
|
module_fixture = File.expand_path(File.join(current_dir, "../../../fixtures/module"))
|
|
257
261
|
hosts.each do |host|
|
|
258
262
|
logger.debug("can recursively copy a module over, ignoring some sub-files/sub-dirs that also appear in the absolute path")
|
|
259
|
-
#make sure that we are clean on the test host
|
|
263
|
+
# make sure that we are clean on the test host
|
|
260
264
|
host.rm_rf("module")
|
|
261
|
-
host.do_scp_to(module_fixture, ".", {:ignore => [
|
|
265
|
+
host.do_scp_to(module_fixture, ".", { :ignore => %w[module Gemfile] })
|
|
262
266
|
Dir.mktmpdir do |tmp_dir|
|
|
263
|
-
#grab copy from host
|
|
267
|
+
# grab copy from host
|
|
264
268
|
host.do_scp_from("module", tmp_dir, {})
|
|
265
|
-
#compare to local copy
|
|
269
|
+
# compare to local copy
|
|
266
270
|
local_paths = Dir.glob(File.join(module_fixture, "**/*")).select { |f| File.file?(f) }
|
|
267
271
|
host_paths = Dir.glob(File.join(File.join(tmp_dir, "module"), "**/*")).select { |f| File.file?(f) }
|
|
268
|
-
#each local file should have a single match on the host
|
|
272
|
+
# each local file should have a single match on the host
|
|
269
273
|
local_paths.each do |path|
|
|
270
|
-
search_name = path.gsub(/^.*fixtures\/module\//, '') #reduce down to the path that should match
|
|
271
|
-
|
|
272
|
-
|
|
274
|
+
search_name = path.gsub(/^.*fixtures\/module\//, '') # reduce down to the path that should match
|
|
275
|
+
search_name_regex = /#{Regexp.escape(search_name)}$/
|
|
276
|
+
matched = host_paths.select { |check| search_name_regex.match?(check) }
|
|
277
|
+
re = /((\/|\A)module(\/|\z))|((\/|\A)Gemfile(\/|\z))/
|
|
273
278
|
if !path.gsub(/^.*module\//, '')&.match?(re)
|
|
274
279
|
assert_equal(1, matched.length, "should have found a single instance of path #{search_name}, found #{matched.length}: \n #{matched}")
|
|
275
280
|
else
|
|
@@ -282,9 +287,10 @@ hosts.each do |host|
|
|
|
282
287
|
end
|
|
283
288
|
|
|
284
289
|
step "Ensure scp errors close the ssh connection" do
|
|
290
|
+
# beaker-docker can't deal with closing the connection
|
|
291
|
+
confine :except, :hypervisor => 'docker'
|
|
285
292
|
|
|
286
293
|
step 'Attempt to generate a remote file that does not exist' do
|
|
287
|
-
|
|
288
294
|
# This assert relies on the behavior of the net-scp library to
|
|
289
295
|
# raise an error when #channel.on_close is called, which is called by
|
|
290
296
|
# indirectly called by beaker's own SshConnection #close mehod. View
|
|
@@ -301,7 +307,6 @@ step "Ensure scp errors close the ssh connection" do
|
|
|
301
307
|
end
|
|
302
308
|
|
|
303
309
|
step 'Attempt to scp from a resource on the SUT that does not exist' do
|
|
304
|
-
|
|
305
310
|
# This assert relies on the behavior of the net-scp library to
|
|
306
311
|
# use the Dir.mkdir method in the #download_start_state method.
|
|
307
312
|
# See the source for further info:
|
|
@@ -318,7 +323,7 @@ step "Ensure scp errors close the ssh connection" do
|
|
|
318
323
|
end
|
|
319
324
|
|
|
320
325
|
step 'Ensure that a long 128+ character string with UTF-8 characters does not break net-ssh' do
|
|
321
|
-
long_string = 'a' * 128 + "\u06FF"
|
|
326
|
+
long_string = ('a' * 128) + "\u06FF"
|
|
322
327
|
on(default, "mkdir /tmp/#{long_string}")
|
|
323
328
|
result = on(default, 'ls /tmp')
|
|
324
329
|
assert(result.stdout.include?(long_string), 'Error in folder creation with long string + UTF-8 characters')
|
|
@@ -327,6 +332,4 @@ step 'Ensure that a long 128+ character string with UTF-8 characters does not br
|
|
|
327
332
|
on(default, "rm -rf /tmp/#{long_string}")
|
|
328
333
|
result = on(default, 'ls /tmp')
|
|
329
334
|
assert(!result.stdout.include?(long_string), 'Error in folder deletion with long string + UTF-8 characters')
|
|
330
|
-
|
|
331
335
|
end
|
|
332
|
-
|
|
@@ -22,7 +22,6 @@ def get_host_pkg(host)
|
|
|
22
22
|
else
|
|
23
23
|
Beaker::HostPrebuiltSteps::UNIX_PACKAGES
|
|
24
24
|
end
|
|
25
|
-
|
|
26
25
|
end
|
|
27
26
|
|
|
28
27
|
step '#check_for_command : can determine where a command exists'
|
|
@@ -49,6 +48,7 @@ hosts.each do |host|
|
|
|
49
48
|
# a lot of dependencies.
|
|
50
49
|
# skipping this test for windows since it requires a restart
|
|
51
50
|
next if host['platform'].include?('windows')
|
|
51
|
+
|
|
52
52
|
package = 'zsh'
|
|
53
53
|
package = 'CSWzsh' if host['platform'].include?('solaris-10')
|
|
54
54
|
package = 'git' if /opensuse|sles/.match?(host['platform'])
|
|
@@ -78,5 +78,4 @@ hosts.each do |host|
|
|
|
78
78
|
assert_equal(false, host.check_for_package(package), "'#{package}' should not be installed")
|
|
79
79
|
end
|
|
80
80
|
end
|
|
81
|
-
|
|
82
81
|
end
|
|
@@ -1,62 +1,7 @@
|
|
|
1
1
|
test_name 'confirm unix-specific package methods work'
|
|
2
2
|
confine :except, :platform => %w(windows solaris osx)
|
|
3
3
|
|
|
4
|
-
current_dir = File.dirname(__FILE__)
|
|
5
|
-
pkg_fixtures = File.expand_path(File.join(current_dir, '../../../fixtures/package'))
|
|
6
|
-
pkg_name = 'puppetserver'
|
|
7
|
-
|
|
8
|
-
def clean_file(host, file)
|
|
9
|
-
unless file.nil?
|
|
10
|
-
filename = pkg_file(host, file)
|
|
11
|
-
|
|
12
|
-
if !filename.nil? && host.file_exist?(filename)
|
|
13
|
-
on(host, "rm -rf #{filename}")
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def pkg_file(host, pkg_name)
|
|
19
|
-
if /debian|ubuntu/.match?(host['platform'])
|
|
20
|
-
"/etc/apt/sources.list.d/#{pkg_name}.list"
|
|
21
|
-
elsif host['platform'].include?('el')
|
|
22
|
-
"/etc/yum.repos.d/#{pkg_name}.repo"
|
|
23
|
-
else
|
|
24
|
-
nil
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
|
|
28
4
|
step '#update_apt_if_needed : can execute without raising an error'
|
|
29
5
|
hosts.each do |host|
|
|
30
6
|
host.update_apt_if_needed
|
|
31
7
|
end
|
|
32
|
-
|
|
33
|
-
step '#deploy_apt_repo : deploy puppet-server nightly repo'
|
|
34
|
-
hosts.each do |host|
|
|
35
|
-
|
|
36
|
-
if /debian|ubuntu/.match?(host['platform'])
|
|
37
|
-
clean_file(host, pkg_name)
|
|
38
|
-
host.deploy_apt_repo(pkg_fixtures, pkg_name, 'latest')
|
|
39
|
-
assert(host.file_exist?(pkg_file(host, pkg_name)), 'apt file should exist')
|
|
40
|
-
clean_file(host, pkg_name)
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
step '#deploy_yum_repo : deploy puppet-server nightly repo'
|
|
46
|
-
hosts.each do |host|
|
|
47
|
-
|
|
48
|
-
if host['platform'].include?('el')
|
|
49
|
-
clean_file(host, pkg_name)
|
|
50
|
-
host.deploy_yum_repo(pkg_fixtures, pkg_name, 'latest')
|
|
51
|
-
assert(host.file_exist?(pkg_file(host, pkg_name)), 'yum file should exist')
|
|
52
|
-
clean_file(host, pkg_name)
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
step '#deploy_package_repo : deploy puppet-server nightly repo'
|
|
58
|
-
hosts.each do |host|
|
|
59
|
-
next if host['platform'].variant == 'sles' && Integer(host['platform'].version) < 12
|
|
60
|
-
host.deploy_package_repo(pkg_fixtures, pkg_name, 'latest')
|
|
61
|
-
clean_file(host, pkg_name)
|
|
62
|
-
end
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
test_name "confirm host prebuilt steps behave correctly" do
|
|
2
|
-
|
|
3
2
|
confine_block :except, :platform => /f5|windows/ do
|
|
4
3
|
step "confirm ssh environment file existence" do
|
|
5
4
|
hosts.each do |host|
|
|
@@ -29,4 +28,4 @@ test_name "confirm host prebuilt steps behave correctly" do
|
|
|
29
28
|
end
|
|
30
29
|
end
|
|
31
30
|
end
|
|
32
|
-
end
|
|
31
|
+
end
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
test_name 'ensure tests can export arbitrary data' do
|
|
2
|
-
|
|
3
2
|
step 'export nested hash' do
|
|
4
|
-
export({'middle earth' => {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export({'another' => 'author'})
|
|
3
|
+
export({ 'middle earth' => {
|
|
4
|
+
'Hobbits' => %w[Bilbo Frodo],
|
|
5
|
+
'Elves' => 'Arwen',
|
|
6
|
+
:total => { 'numbers' => 42 },
|
|
7
|
+
} })
|
|
8
|
+
export({ 'another' => 'author' })
|
|
11
9
|
end
|
|
12
|
-
|
|
13
10
|
end
|
|
@@ -6,15 +6,13 @@ step 'install arbitrary msi via url' do
|
|
|
6
6
|
hosts.each do |host|
|
|
7
7
|
if host['platform'].include?('win')
|
|
8
8
|
# this should be implemented at the host/win/pkg.rb level someday
|
|
9
|
-
generic_install_msi_on(host, 'https://releases.hashicorp.com/vagrant/1.8.4/vagrant_1.8.4.msi', {}, {:debug => true})
|
|
9
|
+
generic_install_msi_on(host, 'https://releases.hashicorp.com/vagrant/1.8.4/vagrant_1.8.4.msi', {}, { :debug => true })
|
|
10
10
|
end
|
|
11
11
|
end
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
step 'install arbitrary dmg via url' do
|
|
15
15
|
hosts.each do |host|
|
|
16
|
-
if host['platform'].include?('osx')
|
|
17
|
-
host.generic_install_dmg('https://releases.hashicorp.com/vagrant/1.8.4/vagrant_1.8.4.dmg', 'Vagrant', 'Vagrant.pkg')
|
|
18
|
-
end
|
|
16
|
+
host.generic_install_dmg('https://releases.hashicorp.com/vagrant/1.8.4/vagrant_1.8.4.dmg', 'Vagrant', 'Vagrant.pkg') if host['platform'].include?('osx')
|
|
19
17
|
end
|
|
20
18
|
end
|