diff options
author | varac <varacanero@zeromail.org> | 2016-02-23 14:48:19 +0100 |
---|---|---|
committer | varac <varacanero@zeromail.org> | 2016-02-23 14:48:19 +0100 |
commit | 4e23209eaccf1ab504d35158f4141b3053327c2f (patch) | |
tree | e9c325ad24a732b6bdb13801ef2997f10f99e02e /spec/acceptance/beaker/git/tag_checkout/tag_checkout_git.rb | |
parent | f92d09226cfddb0c7e5e342dd199d8ea05b497cb (diff) | |
parent | 6262d046c6993a6ae7112746210b91d46f94165e (diff) |
Merge branch 'master' of https://github.com/puppetlabs/puppetlabs-vcsrepo
Diffstat (limited to 'spec/acceptance/beaker/git/tag_checkout/tag_checkout_git.rb')
-rw-r--r-- | spec/acceptance/beaker/git/tag_checkout/tag_checkout_git.rb | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/spec/acceptance/beaker/git/tag_checkout/tag_checkout_git.rb b/spec/acceptance/beaker/git/tag_checkout/tag_checkout_git.rb new file mode 100644 index 0000000..42e689c --- /dev/null +++ b/spec/acceptance/beaker/git/tag_checkout/tag_checkout_git.rb @@ -0,0 +1,59 @@ +test_name 'C3443 - checkout a tag (git protocol)' + +# Globals +repo_name = 'testrepo_tag_checkout' +tag = '0.0.2' + +hosts.each do |host| + tmpdir = host.tmpdir('vcsrepo') + step 'setup - create repo' do + git_pkg = 'git' + if host['platform'] =~ /ubuntu-10/ + git_pkg = 'git-core' + end + install_package(host, git_pkg) + my_root = File.expand_path(File.join(File.dirname(__FILE__), '../../../..')) + scp_to(host, "#{my_root}/acceptance/files/create_git_repo.sh", tmpdir) + on(host, "cd #{tmpdir} && ./create_git_repo.sh") + end + step 'setup - start git daemon' do + install_package(host, 'git-daemon') unless host['platform'] =~ /debian|ubuntu/ + on(host, "git daemon --base-path=#{tmpdir} --export-all --reuseaddr --verbose --detach") + end + + teardown do + on(host, "rm -fr #{tmpdir}") + on(host, 'pkill -9 git-daemon ; sleep 1') + end + + step 'get tag sha from repo' do + on(host, "git --git-dir=#{tmpdir}/testrepo.git rev-list HEAD | tail -1") do |res| + @sha = res.stdout.chomp + end + end + + step 'checkout a tag with puppet' do + pp = <<-EOS + vcsrepo { "#{tmpdir}/#{repo_name}": + ensure => present, + source => "git://#{host}/testrepo.git", + provider => git, + revision => '#{tag}', + } + EOS + + apply_manifest_on(host, pp, :catch_failures => true) + apply_manifest_on(host, pp, :catch_changes => true) + end + + step "verify checkout out tag is #{tag}" do + on(host, "ls #{tmpdir}/#{repo_name}/.git/") do |res| + fail_test('checkout not found') unless res.stdout.include? "HEAD" + end + + on(host,"git --git-dir=#{tmpdir}/#{repo_name}/.git name-rev HEAD") do |res| + fail_test('tag not found') unless res.stdout.include? "#{tag}" + end + end + +end |