diff --git a/tests/test-audit-path.out b/tests/test-audit-path.out deleted file mode 100644 --- a/tests/test-audit-path.out +++ /dev/null @@ -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 --git a/tests/test-audit-path b/tests/test-audit-path.t old mode 100755 new mode 100644 rename from tests/test-audit-path rename to tests/test-audit-path.t --- a/tests/test-audit-path +++ b/tests/test-audit-path.t @@ -1,48 +1,76 @@ -#!/bin/sh + $ hg init + +should fail + + $ hg add .hg/00changelog.i + abort: path contains illegal component: .hg/00changelog.i -hg init - -echo % should fail -hg add .hg/00changelog.i + $ mkdir a + $ echo a > a/a + $ hg ci -Ama + adding a/a + $ ln -s a b + $ echo b > a/b -mkdir a -echo a > a/a -hg ci -Ama -ln -s a b -echo b > a/b +should fail + + $ hg add b/b + abort: path 'b/b' traverses symbolic link 'b' + +should succeed -echo % should fail -hg add b/b + $ hg add b + +should still fail - maybe -echo % should succeed -hg add b + $ hg add b/b + abort: path 'b/b' traverses symbolic link 'b' -echo % should still fail - maybe -hg add b/b +unbundle tampered bundle -echo % unbundle tampered bundle -hg init target -cd target -hg unbundle $TESTDIR/tampered.hg + $ 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 -echo % attack .hg/test -hg manifest -r0 -hg update -Cr0 + $ hg manifest -r0 + .hg/test + $ hg update -Cr0 + abort: path contains illegal component: .hg/test -echo % attack foo/.hg/test -hg manifest -r1 -hg update -Cr1 +attack foo/.hg/test + + $ hg manifest -r1 + foo/.hg/test + $ hg update -Cr1 + abort: path 'foo/.hg/test' is inside repo 'foo' -echo % attack back/test where back symlinks to .. -hg manifest -r2 -hg update -Cr2 +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 -echo % attack ../test -hg manifest -r3 -hg update -Cr3 + $ hg manifest -r3 + ../test + $ hg update -Cr3 + abort: path contains illegal component: ../test + +attack /tmp/test -echo % attack /tmp/test -hg manifest -r4 -hg update -Cr4 2>&1 | sed -e "s|/.*/test-audit-path|[HGTMP]/test-audit-path|" + $ hg manifest -r4 + /tmp/test + $ hg update -Cr4 + abort: No such file or directory: .*/test-audit-path.t/target//tmp/test -exit 0 + $ exit 0