diff options
Diffstat (limited to 'spec/acceptance/beaker')
5 files changed, 211 insertions, 0 deletions
| diff --git a/spec/acceptance/beaker/clone/clone_over_different_exiting_repo_with_force.rb b/spec/acceptance/beaker/clone/clone_over_different_exiting_repo_with_force.rb new file mode 100644 index 0000000..2d755fc --- /dev/null +++ b/spec/acceptance/beaker/clone/clone_over_different_exiting_repo_with_force.rb @@ -0,0 +1,44 @@ +test_name 'C3511 - clone over an existing repo with force' + +# Globals +repo_name = 'testrepo_already_exists' + +hosts.each do |host| +  tmpdir = host.tmpdir('vcsrepo') +  step 'setup - create repo' do +    install_package(host, 'git') +    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") +    on(host, "mkdir #{tmpdir}/#{repo_name}") +    on(host, "cd #{tmpdir}/#{repo_name} && git init") +    on(host, "cd #{tmpdir}/#{repo_name} && touch a && git add a && git commit -m 'a'") +  end + +  teardown do +    on(host, "rm -fr #{tmpdir}") +  end + +  step 'clone over existing repo with force using puppet' do +    on(host, "cd #{tmpdir}/#{repo_name} && git log --pretty=format:\"%h\"") do |res| +      @existing_sha = res.stdout +    end +    pp = <<-EOS +    vcsrepo { "#{tmpdir}/#{repo_name}": +      ensure => present, +      source => "file://#{tmpdir}/testrepo.git", +      provider => git, +      force => true, +    } +    EOS + +    apply_manifest_on(host, pp) +  end + +  step 'verify new repo has replaced old one' do +    on(host, "cd #{tmpdir}/#{repo_name} && git log --pretty=format:\"%h\"") do |res| +      fail_test('original repo not replaced by force') if res.stdout.include? "#{@existing_sha}" +    end +  end + +end diff --git a/spec/acceptance/beaker/clone/clone_repo_with_excludes_in_repo.rb b/spec/acceptance/beaker/clone/clone_repo_with_excludes_in_repo.rb new file mode 100644 index 0000000..1252e3b --- /dev/null +++ b/spec/acceptance/beaker/clone/clone_repo_with_excludes_in_repo.rb @@ -0,0 +1,42 @@ +test_name 'C3507 - clone repo with excludes in repo' + +# Globals +repo_name = 'testrepo_with_excludes_in_repo' +exclude1 = 'file1.txt' +exclude2 ='file2.txt' + +hosts.each do |host| +  tmpdir = host.tmpdir('vcsrepo') +  step 'setup - create repo' do +    install_package(host, 'git') +    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 + +  teardown do +    on(host, "rm -fr #{tmpdir}") +  end + +  step 'clone repo with excludes in repo with puppet' do +    pp = <<-EOS +    vcsrepo { "#{tmpdir}/#{repo_name}": +      ensure => present, +      source => "file://#{tmpdir}/testrepo.git", +      provider => git, +      excludes => [ '#{exclude1}', '#{exclude2}' ], +    } +    EOS + +    apply_manifest_on(host, pp) +    apply_manifest_on(host, pp) +  end + +  step 'verify exludes are known to git' do +    on(host, "cat #{tmpdir}/#{repo_name}/.git/info/exclude") do |res| +      fail_test('exclude not found') unless res.stdout.include? "#{exclude1}" +      fail_test('exclude not found') unless res.stdout.include? "#{exclude2}" +    end +  end + +end diff --git a/spec/acceptance/beaker/clone/clone_repo_with_excludes_not_in_repo.rb b/spec/acceptance/beaker/clone/clone_repo_with_excludes_not_in_repo.rb new file mode 100644 index 0000000..ce173fd --- /dev/null +++ b/spec/acceptance/beaker/clone/clone_repo_with_excludes_not_in_repo.rb @@ -0,0 +1,42 @@ +test_name 'C3508 - clone repo with excludes not in repo' + +# Globals +repo_name = 'testrepo_with_excludes_not_in_repo' +exclude1 = 'worh02o' +exclude2 ='ho398b' + +hosts.each do |host| +  tmpdir = host.tmpdir('vcsrepo') +  step 'setup - create repo' do +    install_package(host, 'git') +    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 + +  teardown do +    on(host, "rm -fr #{tmpdir}") +  end + +  step 'clone repo with excludes not in repo with puppet' do +    pp = <<-EOS +    vcsrepo { "#{tmpdir}/#{repo_name}": +      ensure => present, +      source => "file://#{tmpdir}/testrepo.git", +      provider => git, +      excludes => [ '#{exclude1}', '#{exclude2}' ], +    } +    EOS + +    apply_manifest_on(host, pp) +    apply_manifest_on(host, pp) +  end + +  step 'verify exludes are known to git' do +    on(host, "cat #{tmpdir}/#{repo_name}/.git/info/exclude") do |res| +      fail_test('exclude not found') unless res.stdout.include? "#{exclude1}" +      fail_test('exclude not found') unless res.stdout.include? "#{exclude2}" +    end +  end + +end diff --git a/spec/acceptance/beaker/clone/negative/clone_over_different_exiting_repo.rb b/spec/acceptance/beaker/clone/negative/clone_over_different_exiting_repo.rb new file mode 100644 index 0000000..7821ce2 --- /dev/null +++ b/spec/acceptance/beaker/clone/negative/clone_over_different_exiting_repo.rb @@ -0,0 +1,43 @@ +test_name 'C3482 - clone over an existing repo' + +# Globals +repo_name = 'testrepo_already_exists' + +hosts.each do |host| +  tmpdir = host.tmpdir('vcsrepo') +  step 'setup - create repo' do +    install_package(host, 'git') +    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") +    on(host, "mkdir #{tmpdir}/#{repo_name}") +    on(host, "cd #{tmpdir}/#{repo_name} && git init") +    on(host, "cd #{tmpdir}/#{repo_name} && touch a && git add a && git commit -m 'a'") +  end + +  teardown do +    on(host, "rm -fr #{tmpdir}") +  end + +  step 'clone over existing repo using puppet' do +    on(host, "cd #{tmpdir}/#{repo_name} && git log --pretty=format:\"%h\"") do |res| +      @existing_sha = res.stdout +    end +    pp = <<-EOS +    vcsrepo { "#{tmpdir}/#{repo_name}": +      ensure => present, +      source => "file://#{tmpdir}/testrepo.git", +      provider => git, +    } +    EOS + +    apply_manifest_on(host, pp) +  end + +  step 'verify original repo was not replaced' do +    on(host, "cd #{tmpdir}/#{repo_name} && git log --pretty=format:\"%h\"") do |res| +      fail_test('original repo was replaced without force') unless res.stdout.include? "#{@existing_sha}" +    end +  end + +end diff --git a/spec/acceptance/beaker/clone/negative/clone_repo_with_hostile_excludes.rb b/spec/acceptance/beaker/clone/negative/clone_repo_with_hostile_excludes.rb new file mode 100644 index 0000000..4e04c78 --- /dev/null +++ b/spec/acceptance/beaker/clone/negative/clone_repo_with_hostile_excludes.rb @@ -0,0 +1,40 @@ +test_name 'C3509 - clone repo with excludes not in repo' + +# Globals +repo_name = 'testrepo_with_excludes_not_in_repo' +exclude1 = 'rm -rf /tmp' + +hosts.each do |host| +  tmpdir = host.tmpdir('vcsrepo') +  step 'setup - create repo' do +    install_package(host, 'git') +    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 + +  teardown do +    on(host, "rm -fr #{tmpdir}") +  end + +  step 'clone repo with excludes not in repo with puppet' do +    pp = <<-EOS +    vcsrepo { "#{tmpdir}/#{repo_name}": +      ensure => present, +      source => "file://#{tmpdir}/testrepo.git", +      provider => git, +      excludes => [ '#{exclude1}' ], +    } +    EOS + +    apply_manifest_on(host, pp) +    apply_manifest_on(host, pp) +  end + +  step 'verify excludes are known to git' do +    on(host, "cat #{tmpdir}/#{repo_name}/.git/info/exclude") do |res| +      fail_test('exclude not found') unless res.stdout.include? "#{exclude1}" +    end +  end + +end | 
