summaryrefslogtreecommitdiff
path: root/tests/test-audit-path.t
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-audit-path.t')
-rw-r--r--tests/test-audit-path.t92
1 files changed, 92 insertions, 0 deletions
diff --git a/tests/test-audit-path.t b/tests/test-audit-path.t
new file mode 100644
index 0000000..d105e94
--- /dev/null
+++ b/tests/test-audit-path.t
@@ -0,0 +1,92 @@
+ $ hg init
+
+audit of .hg
+
+ $ hg add .hg/00changelog.i
+ abort: path contains illegal component: .hg/00changelog.i (glob)
+ [255]
+
+#if symlink
+
+Symlinks
+
+ $ mkdir a
+ $ echo a > a/a
+ $ hg ci -Ama
+ adding a/a
+ $ ln -s a b
+ $ echo b > a/b
+ $ hg add b/b
+ abort: path 'b/b' traverses symbolic link 'b' (glob)
+ [255]
+ $ hg add b
+
+should still fail - maybe
+
+ $ hg add b/b
+ abort: path 'b/b' traverses symbolic link 'b' (glob)
+ [255]
+
+#endif
+
+
+unbundle tampered bundle
+
+ $ hg init target
+ $ cd target
+ $ hg unbundle "$TESTDIR/bundles/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 (glob)
+ [255]
+
+attack foo/.hg/test
+
+ $ hg manifest -r1
+ foo/.hg/test
+ $ hg update -Cr1
+ abort: path 'foo/.hg/test' is inside nested repo 'foo' (glob)
+ [255]
+
+attack back/test where back symlinks to ..
+
+ $ hg manifest -r2
+ back
+ back/test
+#if symlink
+ $ hg update -Cr2
+ abort: path 'back/test' traverses symbolic link 'back'
+ [255]
+#else
+('back' will be a file and cause some other system specific error)
+ $ hg update -Cr2
+ abort: * (glob)
+ [255]
+#endif
+
+attack ../test
+
+ $ hg manifest -r3
+ ../test
+ $ hg update -Cr3
+ abort: path contains illegal component: ../test (glob)
+ [255]
+
+attack /tmp/test
+
+ $ hg manifest -r4
+ /tmp/test
+ $ hg update -Cr4
+ abort: *: $TESTTMP/target//tmp/test (glob)
+ [255]
+
+ $ cd ..