[PATCH 6 of 6] adding tests/test-fncache and test-hybridencode.py

Adrian Buehlmann adrian at cadifra.com
Thu Jul 31 04:47:07 CDT 2008


# HG changeset patch
# User Adrian Buehlmann <adrian at cadifra.com>
# Date 1217492042 -7200
# Node ID 4fbd04177e8e4d562db19aa6218e4c2837479635
# Parent  31913bc2a85fd2c9d8c9731483c14ff0acd7db4d
adding tests/test-fncache and test-hybridencode.py

diff --git a/tests/test-fncache b/tests/test-fncache
new file mode 100755
--- /dev/null
+++ b/tests/test-fncache
@@ -0,0 +1,76 @@
+#!/bin/sh
+
+echo "% init repo1; verify"
+hg init repo1
+cd repo1
+hg verify -q
+
+echo
+echo "% add z.txt; ci"
+echo "some text" > z.txt
+hg add
+hg ci -d '0 0' -m first
+
+echo
+echo "% add y.txt; ci"
+echo "some text" > y.txt
+hg add
+hg ci -d '0 0' -m first
+
+echo
+echo "% add x.txt; ci"
+echo "another text" > x.txt
+hg add
+hg ci -d '0 0' -m second
+
+echo
+echo "% cat .hg/store/fncache"
+cat .hg/store/fncache
+
+echo
+echo % rollback
+hg rollback
+
+echo
+echo "% cat .hg/store/fncache (shows that x.txt is still in fncache, despite rollback)"
+cat .hg/store/fncache
+
+echo
+echo "% ci (creates duplicate entry for x.txt in fncache)"
+hg ci -d '0 0' -m third
+
+echo
+echo "% cat .hg/store/fncache (shows duplicate entry for x.txt)"
+cat .hg/store/fncache
+
+echo
+echo "% add w.txt; ci"
+echo "another text" > w.txt
+hg add
+hg ci -d '0 0' -m second
+
+echo
+echo "% add v.txt; ci"
+echo "another text" > v.txt
+hg add
+hg ci -d '0 0' -m second
+
+echo
+echo "% cat .hg/store/fncache (we now have w.txt and v.txt in fncache)"
+cat .hg/store/fncache
+
+echo
+echo % rollback
+hg rollback
+
+echo
+echo "% cat .hg/store/fncache (v.txt still there, despite rollback)"
+cat .hg/store/fncache
+
+echo
+echo "% verify (removes duplicates and nonexistent entries from fncache)"
+hg verify
+
+echo
+echo "% cat .hg/store/fncache (one x.txt and v.txt has been removed, order is preserved)"
+cat .hg/store/fncache
diff --git a/tests/test-fncache.out b/tests/test-fncache.out
new file mode 100644
--- /dev/null
+++ b/tests/test-fncache.out
@@ -0,0 +1,69 @@
+% init repo1; verify
+
+% add z.txt; ci
+adding z.txt
+
+% add y.txt; ci
+adding y.txt
+
+% add x.txt; ci
+adding x.txt
+
+% cat .hg/store/fncache
+data/z.txt.i
+data/y.txt.i
+data/x.txt.i
+
+% rollback
+rolling back last transaction
+
+% cat .hg/store/fncache (shows that x.txt is still in fncache, despite rollback)
+data/z.txt.i
+data/y.txt.i
+data/x.txt.i
+
+% ci (creates duplicate entry for x.txt in fncache)
+
+% cat .hg/store/fncache (shows duplicate entry for x.txt)
+data/z.txt.i
+data/y.txt.i
+data/x.txt.i
+data/x.txt.i
+
+% add w.txt; ci
+adding w.txt
+
+% add v.txt; ci
+adding v.txt
+
+% cat .hg/store/fncache (we now have w.txt and v.txt in fncache)
+data/z.txt.i
+data/y.txt.i
+data/x.txt.i
+data/x.txt.i
+data/w.txt.i
+data/v.txt.i
+
+% rollback
+rolling back last transaction
+
+% cat .hg/store/fncache (v.txt still there, despite rollback)
+data/z.txt.i
+data/y.txt.i
+data/x.txt.i
+data/x.txt.i
+data/w.txt.i
+data/v.txt.i
+
+% verify (removes duplicates and nonexistent entries from fncache)
+checking changesets
+checking manifests
+crosschecking files in changesets and manifests
+checking files
+4 files, 4 changesets, 4 total revisions
+
+% cat .hg/store/fncache (one x.txt and v.txt has been removed, order is preserved)
+data/z.txt.i
+data/y.txt.i
+data/x.txt.i
+data/w.txt.i
diff --git a/tests/test-hybridencode.py b/tests/test-hybridencode.py
new file mode 100755
--- /dev/null
+++ b/tests/test-hybridencode.py
@@ -0,0 +1,16 @@
+#!/usr/bin/env python
+
+from mercurial import store
+
+enc = store.hybridencode
+
+def show(s):
+    print "A = '%s'" % s
+    print "B = '%s'" % enc(s)
+    print
+
+show('data/aux.bla/bla.aux/prn/PRN/lpt/com3/nul/coma/foo.NUL/normal.c.i')
+
+show('data/AUX/SECOND/X.PRN/FOURTH/FI:FTH/SIXTH/SEVENTH/EIGHTH/NINETH/TENTH/ELEVENTH/LOREMIPSUM.TXT.i')
+show('data/enterprise/openesbaddons/contrib-imola/corba-bc/netbeansplugin/wsdlExtension/src/main/java/META-INF/services/org.netbeans.modules.xml.wsdl.bindingsupport.spi.ExtensibilityElementTemplateProvider.i')
+show('data/AUX.THE-QUICK-BROWN-FOX-JU:MPS-OVER-THE-LAZY-DOG-THE-QUICK-BROWN-FOX-JUMPS-OVER-THE-LAZY-DOG.TXT.i')
diff --git a/tests/test-hybridencode.py.out b/tests/test-hybridencode.py.out
new file mode 100644
--- /dev/null
+++ b/tests/test-hybridencode.py.out
@@ -0,0 +1,12 @@
+A = 'data/aux.bla/bla.aux/prn/PRN/lpt/com3/nul/coma/foo.NUL/normal.c.i'
+B = 'df/au~78.bla/bla.aux/pr~6e/_p_r_n/lpt/co~6d3/nu~6c/coma/foo._n_u_l/normal.c.i'
+
+A = 'data/AUX/SECOND/X.PRN/FOURTH/FI:FTH/SIXTH/SEVENTH/EIGHTH/NINETH/TENTH/ELEVENTH/LOREMIPSUM.TXT.i'
+B = 'dh/au~78/second/x.prn/fourth/fi~3afth/sixth/seventh/eighth/nineth/tenth/loremia20419e358ddff1bf8751e38288aff1d7c32ec05.i'
+
+A = 'data/enterprise/openesbaddons/contrib-imola/corba-bc/netbeansplugin/wsdlExtension/src/main/java/META-INF/services/org.netbeans.modules.xml.wsdl.bindingsupport.spi.ExtensibilityElementTemplateProvider.i'
+B = 'dh/enterpri/openesba/contrib-/corba-bc/netbeans/wsdlexte/src/main/java/org.net7018f27961fdf338a598a40c4683429e7ffb9743.i'
+
+A = 'data/AUX.THE-QUICK-BROWN-FOX-JU:MPS-OVER-THE-LAZY-DOG-THE-QUICK-BROWN-FOX-JUMPS-OVER-THE-LAZY-DOG.TXT.i'
+B = 'dh/au~78.the-quick-brown-fox-ju~3amps-over-the-lazy-dog-the-quick-brown-fox-jud4dcadd033000ab2b26eb66bae1906bcb15d4a70.i'
+


More information about the Mercurial-devel mailing list