##// END OF EJS Templates
convert: test for shell injection in git calls (SEC)...
convert: test for shell injection in git calls (SEC) CVE-2016-3069 (5/5) Before recent refactoring we were not escaping calls to git at all which made such injections possible. Let's have a test for that to avoid this problem in the future. Reported by Blake Burkhart.

File last commit:

r22046:7a9cbb31 default
r28663:ae279d4a 3.7.3 stable
Show More
test-convert-darcs.t
107 lines | 2.6 KiB | text/troff | Tads3Lexer
/ tests / test-convert-darcs.t
Matt Mackall
tests: replace exit 80 with #require
r22046 #require darcs
Matt Mackall
tests: unify test-convert-darcs
r12524
$ echo "[extensions]" >> $HGRCPATH
$ echo "convert=" >> $HGRCPATH
$ DARCS_EMAIL='test@example.org'; export DARCS_EMAIL
initialize darcs repo
$ mkdir darcs-repo
$ cd darcs-repo
$ darcs init
$ echo a > a
$ darcs record -a -l -m p0
Finished recording patch 'p0'
$ cd ..
branch and update
Bryan O'Sullivan
tests: make test-convert-darcs.t happier with darcs 2.8.0
r16698 $ darcs get -q darcs-repo darcs-clone >/dev/null
Matt Mackall
tests: unify test-convert-darcs
r12524 $ cd darcs-clone
$ echo c >> a
$ echo c > c
$ darcs record -a -l -m p1.1
Finished recording patch 'p1.1'
$ cd ..
Patrick Mezard
test-convert-darcs.t: fix elementtree test...
r17448 skip if we can't import elementtree
$ if hg convert darcs-repo darcs-dummy 2>&1 | grep ElementTree > /dev/null; then
> echo 'skipped: missing feature: elementtree module'
> exit 80
> fi
Matt Mackall
tests: unify test-convert-darcs
r12524 update source
$ cd darcs-repo
$ echo b >> a
$ echo b > b
$ darcs record -a -l -m p1.2
Finished recording patch 'p1.2'
Bryan O'Sullivan
tests: make test-convert-darcs.t happier with darcs 2.8.0
r16698 $ darcs pull -q -a --no-set-default ../darcs-clone
Backing up ./a(*) (glob)
Matt Mackall
tests: unify test-convert-darcs
r12524 We have conflicts in the following files:
./a
$ sleep 1
$ echo e > a
$ echo f > f
$ mkdir dir
$ echo d > dir/d
$ echo d > dir/d2
$ darcs record -a -l -m p2
Finished recording patch 'p2'
test file and directory move
$ darcs mv f ff
Test remove + move
$ darcs remove dir/d2
$ rm dir/d2
$ darcs mv dir dir2
$ darcs record -a -l -m p3
Finished recording patch 'p3'
The converter does not currently handle patch conflicts very well.
When they occur, it reverts *all* changes and moves forward,
letting the conflict resolving patch fix collisions.
Unfortunately, non-conflicting changes, like the addition of the
"c" file in p1.1 patch are reverted too.
Just to say that manifest not listing "c" here is a bug.
Matt Mackall
tests: darcs > 2.5 got "smart" about encoding, disable encoding tests...
r15335 $ cd ..
$ hg convert darcs-repo darcs-repo-hg
initializing destination darcs-repo-hg repository
scanning source...
sorting...
converting...
4 p0
3 p1.2
2 p1.1
1 p2
0 p3
$ hg log -R darcs-repo-hg -g --template '{rev} "{desc|firstline}" ({author}) files: {files}\n' "$@"
4 "p3" (test@example.org) files: dir/d dir/d2 dir2/d f ff
3 "p2" (test@example.org) files: a dir/d dir/d2 f
2 "p1.1" (test@example.org) files:
1 "p1.2" (test@example.org) files: a b
0 "p0" (test@example.org) files: a
Matt Mackall
merge with stable
r12718
Matt Mackall
tests: unify test-convert-darcs
r12524 $ hg up -q -R darcs-repo-hg
$ hg -R darcs-repo-hg manifest --debug
7225b30cdf38257d5cc7780772c051b6f33e6d6b 644 a
1e88685f5ddec574a34c70af492f95b6debc8741 644 b
37406831adc447ec2385014019599dfec953c806 644 dir2/d
b783a337463792a5c7d548ad85a7d3253c16ba8c 644 ff
Patrick Mezard
test-convert-darcs.t: fix elementtree test...
r17448
#if no-outer-repo
try converting darcs1 repository
$ hg clone -q "$TESTDIR/bundles/darcs1.hg" darcs
$ hg convert -s darcs darcs/darcs1 2>&1 | grep darcs-1.0
darcs-1.0 repository format is unsupported, please upgrade
#endif