tests/test-audit-path.t
changeset 11855 054b0d9c3f0c
parent 7681 c6f3ff294fe0
child 12316 4134686b83e1
--- /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