# HG changeset patch # User Martin Geisler # Date 1281745618 -7200 # Node ID 054b0d9c3f0ca3ae48980887e4283530721a78f4 # Parent aa2abde72da1577d9c7cfacd953a6b31ac3fcce5 tests: unify test-audit-path diff -r aa2abde72da1 -r 054b0d9c3f0c tests/test-audit-path --- a/tests/test-audit-path Sat Aug 14 02:26:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -#!/bin/sh - -hg init - -echo % should fail -hg add .hg/00changelog.i - -mkdir a -echo a > a/a -hg ci -Ama -ln -s a b -echo b > a/b - -echo % should fail -hg add b/b - -echo % should succeed -hg add b - -echo % should still fail - maybe -hg add b/b - -echo % unbundle tampered bundle -hg init target -cd target -hg unbundle $TESTDIR/tampered.hg - -echo % attack .hg/test -hg manifest -r0 -hg update -Cr0 - -echo % attack foo/.hg/test -hg manifest -r1 -hg update -Cr1 - -echo % attack back/test where back symlinks to .. -hg manifest -r2 -hg update -Cr2 - -echo % attack ../test -hg manifest -r3 -hg update -Cr3 - -echo % attack /tmp/test -hg manifest -r4 -hg update -Cr4 2>&1 | sed -e "s|/.*/test-audit-path|[HGTMP]/test-audit-path|" - -exit 0 diff -r aa2abde72da1 -r 054b0d9c3f0c tests/test-audit-path.out --- a/tests/test-audit-path.out Sat Aug 14 02:26:53 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -% should fail -abort: path contains illegal component: .hg/00changelog.i -adding a/a -% should fail -abort: path 'b/b' traverses symbolic link 'b' -% should succeed -% should still fail - maybe -abort: path 'b/b' traverses symbolic link 'b' -% unbundle tampered bundle -adding changesets -adding manifests -adding file changes -added 5 changesets with 6 changes to 6 files (+4 heads) -(run 'hg heads' to see heads, 'hg merge' to merge) -% attack .hg/test -.hg/test -abort: path contains illegal component: .hg/test -% attack foo/.hg/test -foo/.hg/test -abort: path 'foo/.hg/test' is inside repo 'foo' -% attack back/test where back symlinks to .. -back -back/test -abort: path 'back/test' traverses symbolic link 'back' -% attack ../test -../test -abort: path contains illegal component: ../test -% attack /tmp/test -/tmp/test -abort: No such file or directory: [HGTMP]/test-audit-path/target//tmp/test diff -r aa2abde72da1 -r 054b0d9c3f0c tests/test-audit-path.t --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-audit-path.t Sat Aug 14 02:26:58 2010 +0200 @@ -0,0 +1,76 @@ + $ hg init + +should fail + + $ hg add .hg/00changelog.i + abort: path contains illegal component: .hg/00changelog.i + + $ mkdir a + $ echo a > a/a + $ hg ci -Ama + adding a/a + $ ln -s a b + $ echo b > a/b + +should fail + + $ hg add b/b + abort: path 'b/b' traverses symbolic link 'b' + +should succeed + + $ hg add b + +should still fail - maybe + + $ hg add b/b + abort: path 'b/b' traverses symbolic link 'b' + +unbundle tampered bundle + + $ hg init target + $ cd target + $ hg unbundle $TESTDIR/tampered.hg + adding changesets + adding manifests + adding file changes + added 5 changesets with 6 changes to 6 files (+4 heads) + (run 'hg heads' to see heads, 'hg merge' to merge) + +attack .hg/test + + $ hg manifest -r0 + .hg/test + $ hg update -Cr0 + abort: path contains illegal component: .hg/test + +attack foo/.hg/test + + $ hg manifest -r1 + foo/.hg/test + $ hg update -Cr1 + abort: path 'foo/.hg/test' is inside repo 'foo' + +attack back/test where back symlinks to .. + + $ hg manifest -r2 + back + back/test + $ hg update -Cr2 + abort: path 'back/test' traverses symbolic link 'back' + +attack ../test + + $ hg manifest -r3 + ../test + $ hg update -Cr3 + abort: path contains illegal component: ../test + +attack /tmp/test + + $ hg manifest -r4 + /tmp/test + $ hg update -Cr4 + abort: No such file or directory: .*/test-audit-path.t/target//tmp/test + + $ exit 0