diff --git a/test/runner/local_test.d/.kitchen.yml b/test/runner/.kitchen.yml similarity index 96% rename from test/runner/local_test.d/.kitchen.yml rename to test/runner/.kitchen.yml index 646cafd52..e486781d0 100644 --- a/test/runner/local_test.d/.kitchen.yml +++ b/test/runner/.kitchen.yml @@ -4,7 +4,7 @@ driver: provisioner: name: chef_solo - data_path: ../../../. + data_path: ../../. platforms: - name: centos-7.1 diff --git a/test/runner/local_test.d/chefignore b/test/runner/chefignore similarity index 100% rename from test/runner/local_test.d/chefignore rename to test/runner/chefignore diff --git a/test/runner/local_test.d/cookbooks/test/recipes/default.rb b/test/runner/cookbooks/test/recipes/default.rb similarity index 67% rename from test/runner/local_test.d/cookbooks/test/recipes/default.rb rename to test/runner/cookbooks/test/recipes/default.rb index 83eebbed3..48b5a9731 100644 --- a/test/runner/local_test.d/cookbooks/test/recipes/default.rb +++ b/test/runner/cookbooks/test/recipes/default.rb @@ -5,6 +5,6 @@ execute 'bundle install' do end execute 'run tests' do - command '/opt/chef/embedded/bin/ruby -I lib test/runner/local_test.d/test.rb' + command '/opt/chef/embedded/bin/ruby -I lib test/runner/test.rb' cwd '/tmp/kitchen/data' end diff --git a/test/runner/local_test.d/test.rb b/test/runner/local_test.d/test.rb deleted file mode 100644 index 7ee7d8407..000000000 --- a/test/runner/local_test.d/test.rb +++ /dev/null @@ -1,47 +0,0 @@ -require 'minitest/autorun' -require 'minitest/spec' -require 'vulcano/backend' - -backends = { - :local => proc { - backend_conf = Vulcano::Backend.target_config({}) - backend_class = Vulcano::Backend.registry['local'] - backend_class.new(backend_conf) - }, - :specinfra_local => proc { - backend_conf = Vulcano::Backend.target_config({ - 'backend' => 'exec', - }) - backend_class = Vulcano::Backend.registry['specinfra'] - backend_class.new(backend_conf) - }, -} - -backends.each do |type, get_backend| - puts "run on backend #{type.to_s}" - - describe 'run_command' do - let(:backend) { get_backend.call() } - - it 'can echo commands' do - res = backend.run_command('echo hello world') - res.stdout.must_equal("hello world\n") - res.stderr.must_equal('') - res.exit_status.must_equal(0) - end - - it 'can echo commands to stderr' do - res = backend.run_command('>&2 echo hello world') - res.stdout.must_equal('') - res.stderr.must_equal("hello world\n") - res.exit_status.must_equal(0) - end - - it 'prints a correct exit status' do - res = backend.run_command('exit 123') - res.stdout.must_equal('') - res.stderr.must_equal('') - res.exit_status.must_equal(123) - end - end -end diff --git a/test/runner/test.rb b/test/runner/test.rb new file mode 100644 index 000000000..119fa77f0 --- /dev/null +++ b/test/runner/test.rb @@ -0,0 +1,28 @@ +require 'minitest/autorun' +require 'minitest/spec' +require 'vulcano/backend' + +backends = {} + +backends[:local] = proc { + backend_conf = Vulcano::Backend.target_config({}) + backend_class = Vulcano::Backend.registry['local'] + backend_class.new(backend_conf) +} + +backends[:specinfra_local] = proc { + backend_conf = Vulcano::Backend.target_config({ + 'backend' => 'exec', + }) + backend_class = Vulcano::Backend.registry['specinfra'] + backend_class.new(backend_conf) +} + +tests = ARGV + +backends.each do |type, get_backend| + puts "run on backend #{type.to_s}" + tests.each do |test| + instance_eval(File.read(test)) + end +end diff --git a/test/runner/tests/run_command_test.rb b/test/runner/tests/run_command_test.rb new file mode 100644 index 000000000..35c137e61 --- /dev/null +++ b/test/runner/tests/run_command_test.rb @@ -0,0 +1,25 @@ + +describe 'run_command' do + let(:backend) { get_backend.call() } + + it 'can echo commands' do + res = backend.run_command('echo hello world') + res.stdout.must_equal("hello world\n") + res.stderr.must_equal('') + res.exit_status.must_equal(0) + end + + it 'can echo commands to stderr' do + res = backend.run_command('>&2 echo hello world') + res.stdout.must_equal('') + res.stderr.must_equal("hello world\n") + res.exit_status.must_equal(0) + end + + it 'prints a correct exit status' do + res = backend.run_command('exit 123') + res.stdout.must_equal('') + res.stderr.must_equal('') + res.exit_status.must_equal(123) + end +end