| #!/usr/bin/env bash |
| |
| # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # Tests the "preupload and predcommit hooks" functionality, which lets you run |
| # hooks by installing a script into .git/hooks/pre-cl-* first. |
| |
| set -e |
| |
| . ./test-lib.sh |
| |
| setup_initsvn |
| setup_gitsvn |
| |
| setup_hooks() { |
| upload_retval=$1 |
| dcommit_retval=$2 |
| |
| echo > PRESUBMIT.py <<END |
| def CheckChangeOnUpload(input_api, output_api): |
| return $upload_retval |
| |
| def CheckChangeOnCommit(input_api, output_api): |
| return $dcommit_retval |
| END |
| } |
| |
| ( |
| set -e |
| cd git-svn |
| |
| # We need a server set up, but we don't use it. git config rietveld.server localhost:1 |
| |
| # Install hooks that will fail on upload and commit |
| setup_hooks 1 1 |
| |
| echo "some work done" >> test |
| git add test; git commit -q -m "work" |
| |
| # Verify git cl upload fails. |
| test_expect_failure "git-cl upload hook fails" "$GIT_CL upload master" |
| |
| # Verify git cl dcommit fails. |
| test_expect_failure "git-cl dcommit hook fails" "$GIT_CL dcommit master" |
| ) |
| SUCCESS=$? |
| |
| #cleanup |
| |
| if [ $SUCCESS == 0 ]; then |
| echo PASS |
| fi |