summaryrefslogtreecommitdiff
path: root/tests/test-casecollision-i18n.t
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-casecollision-i18n.t')
-rw-r--r--tests/test-casecollision-i18n.t43
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/test-casecollision-i18n.t b/tests/test-casecollision-i18n.t
new file mode 100644
index 0000000..6be2dcc
--- /dev/null
+++ b/tests/test-casecollision-i18n.t
@@ -0,0 +1,43 @@
+run only on case-insensitive filesystems, because collision check at
+"hg update" is done only on case-insensitive filesystems
+
+ $ "$TESTDIR/hghave" icasefs || exit 80
+
+setup repository, and target files
+
+ $ HGENCODING=cp932
+ $ export HGENCODING
+ $ hg init t
+ $ cd t
+ $ python << EOF
+ > names = ["\x83\x41", # cp932(0x83, 0x41='A'), UNICODE(0x30a2)
+ > "\x83\x5A", # cp932(0x83, 0x5A='Z'), UNICODE(0x30bb)
+ > "\x83\x61", # cp932(0x83, 0x61='a'), UNICODE(0x30c2)
+ > "\x83\x7A", # cp932(0x83, 0x7A='z'), UNICODE(0x30db)
+ > ]
+ > for num, name in zip(range(len(names)), names):
+ > # file for getting target filename of "hg add"
+ > f = file(str(num), 'w'); f.write(name); f.close()
+ > # target file of "hg add"
+ > f = file(name, 'w'); f.write(name); f.close()
+ > EOF
+
+test filename collison check at "hg add"
+
+ $ hg add --config ui.portablefilenames=abort `cat 0`
+ $ hg add --config ui.portablefilenames=abort `cat 1`
+ $ hg add --config ui.portablefilenames=abort `cat 2`
+ $ hg add --config ui.portablefilenames=abort `cat 3`
+ $ hg status -a
+ A \x83A (esc)
+ A \x83Z (esc)
+ A \x83a (esc)
+ A \x83z (esc)
+
+test filename collision check at "hg update"
+
+ $ hg commit -m 'revision 0'
+ $ hg update null
+ 0 files updated, 0 files merged, 4 files removed, 0 files unresolved
+ $ hg update tip
+ 4 files updated, 0 files merged, 0 files removed, 0 files unresolved