Mercurial > hg
changeset 29256:1f8b861ba15c stable
tests-subrepo-git: make the "pwned" message output in a stable order
The "pwned" message from this test gets gets sent to stderr, and so may get
emitted in different places from run to run in the rest of mercurial's
output. This patch forces the message to go to a specific file instead,
whose existence and contents we can examine at a stable point in the test's
execution.
author | Danek Duvall <danek.duvall@oracle.com> |
---|---|
date | Fri, 27 May 2016 15:10:38 -0700 |
parents | b0b85d8695cb |
children | a9764ab80e11 |
files | tests/test-subrepo-git.t |
diffstat | 1 files changed, 8 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/test-subrepo-git.t Fri May 27 11:14:29 2016 -0700 +++ b/tests/test-subrepo-git.t Fri May 27 15:10:38 2016 -0700 @@ -1135,7 +1135,7 @@ test for Git CVE-2016-3068 $ hg init malicious-subrepository $ cd malicious-subrepository - $ echo "s = [git]ext::sh -c echo% pwned% >&2" > .hgsub + $ echo "s = [git]ext::sh -c echo% pwned% >pwned.txt" > .hgsub $ git init s Initialized empty Git repository in $TESTTMP/tc/malicious-subrepository/s/.git/ $ cd s @@ -1145,23 +1145,27 @@ $ hg add .hgsub $ hg commit -m "add subrepo" $ cd .. + $ rm -f pwned.txt $ env -u GIT_ALLOW_PROTOCOL hg clone malicious-subrepository malicious-subrepository-protected Cloning into '$TESTTMP/tc/malicious-subrepository-protected/s'... (glob) fatal: transport 'ext' not allowed updating to branch default - cloning subrepo s from ext::sh -c echo% pwned% >&2 + cloning subrepo s from ext::sh -c echo% pwned% >pwned.txt abort: git clone error 128 in s (in subrepo s) [255] + $ test -f pwned.txt && cat pwned.txt || true whitelisting of ext should be respected (that's the git submodule behaviour) + $ rm -f pwned.txt $ env GIT_ALLOW_PROTOCOL=ext hg clone malicious-subrepository malicious-subrepository-clone-allowed Cloning into '$TESTTMP/tc/malicious-subrepository-clone-allowed/s'... (glob) - pwned fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. updating to branch default - cloning subrepo s from ext::sh -c echo% pwned% >&2 + cloning subrepo s from ext::sh -c echo% pwned% >pwned.txt abort: git clone error 128 in s (in subrepo s) [255] + $ cat pwned.txt + pwned