From b362b35825638c27a7a19da97bd14bc9d7e133b4 Mon Sep 17 00:00:00 2001 From: John Duarte Date: Mon, 12 May 2014 11:24:16 -0700 Subject: Fix exec test for shallow clone --- .../negative/shallow_clone_exec_depth.rb | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 spec/acceptance/beaker/git/shallow_clone/negative/shallow_clone_exec_depth.rb (limited to 'spec/acceptance/beaker/git/shallow_clone/negative/shallow_clone_exec_depth.rb') diff --git a/spec/acceptance/beaker/git/shallow_clone/negative/shallow_clone_exec_depth.rb b/spec/acceptance/beaker/git/shallow_clone/negative/shallow_clone_exec_depth.rb new file mode 100644 index 0000000..caef5a6 --- /dev/null +++ b/spec/acceptance/beaker/git/shallow_clone/negative/shallow_clone_exec_depth.rb @@ -0,0 +1,39 @@ +test_name 'C3608 - shallow clone repo depth hostile input' + +# Globals +repo_name = 'testrepo_shallow_clone' + +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 'shallow clone repo with puppet (bad input ignored, full clone checkedout)' do + pp = <<-EOS + vcsrepo { "#{tmpdir}/#{repo_name}": + ensure => present, + source => "file://#{tmpdir}/testrepo.git", + provider => git, + depth => "exec 'rm -rf /tmp'", + } + EOS + + apply_manifest_on(host, pp) + apply_manifest_on(host, pp) + end + + step 'verify checkout is NOT shallow' do + on(host, "ls #{tmpdir}/#{repo_name}/.git/") do |res| + fail_test('shallow not found') if res.stdout.include? "shallow" + end + end + +end -- cgit v1.2.3