diff --git a/tests/test-encoding b/tests/test-encoding new file mode 100755 --- /dev/null +++ b/tests/test-encoding @@ -0,0 +1,46 @@ +#!/bin/sh + +hg init t +cd t + +# we need a repo with some legacy latin-1 changesets +printf 'HG10BZh91AY&SY\x90\x8e\xff\xaa\x00\x00\t\xff\xff\xde\x99' > b.hg +printf '\xc4\x02T\x9a\x7f\xf0\x14\x10\xa2\x14\x7fgL\x08\x00(\x00' >> b.hg +printf '\x04Pr\x06\xae\x11\xc0 b\x88!I\x020\x00\xb8\xd8j\x93@h\x00' >> b.hg +printf '\xd0z\x86\x83@\x01\x90\x01\xa6\x81\xa3M\x1a4\xd3M=B\xa4' >> b.hg +printf '\xc9\xa1\xe4F \r2\x03@\x01\xa1\xa1\x84\xd0\xc8\xc9\x91\xa6' >> b.hg +printf '\x83 ji\x27\xa4\xd0\xd0\x00\x86h\x010\x1a\x06\xa6=F\x80\x01' >> b.hg +printf '\xa2`\x8cW\xb9O7\x7f\x27A\x80\xb0\xf0\xe0\x18\x1c\xb5\x12' >> b.hg +printf '\xe4g\xc4f\x101\xcb\\\xb79\xe2\xb8\x0c\x81\xa1Z>\x00\xb3' >> b.hg +printf '\xce\t\xb0\xdc\x8a\xc3\x7f\xa0RLd\xc1\xbb\x7f\xe6\xf3\xb6' >> b.hg +printf 'R\xa2\xd7Q\r\x04t\x12O}\x0fI\x08P\x82\xf3\x9f\xaa\xb3\xe5' >> b.hg +printf 'Z:\xe7\xbd\x1f\x10\x10\x80\xff\xde\x03\x80q\x03(\r\x80\xe2' >> b.hg +printf 'M\xc9\xa6\xff&g\xfa\x8d\xaf\x87\xc2\x8e\xbe\xd8t\x81\xe4\"M' >> b.hg +printf '\x84l\xf3\x10\xb3\xa4<\xa0\\\xcd2\xf5\xf0\x98D\x8db\x0e' >> b.hg +printf '\x02\xa8\x14\x13\x19\x00\x0f\x15o\xbdY7\xb1&\xd4\x8f\xca' >> b.hg +printf '\x9d|\xbf \x04\x01\x80\x19\xf6\xc0\x14l6\xe4\x86\x99L\x06' >> b.hg +printf '\xfe\x00\xd1]\x00\xbff\x15\xdf\xc5\xa9\x9f\xf8\xbb\x92)' >> b.hg +printf '\xc2\x84\x84\x84w\xfdP' >> b.hg + +hg unbundle b.hg +hg co + +echo % should fail with encoding error +echo "plain old ascii" > a +hg st +HGENCODING=ascii hg ci -m "`printf "ascii 0xe9: \xe9"`" -d "0 0" + +echo % these should work +echo "latin-1" > a +HGENCODING=latin-1 hg ci -m "`printf "latin-1 e' encoded: \xe9"`" -d "0 0" +echo "utf-8" > a +HGENCODING=utf-8 hg ci -m "`printf "utf-8 e': \xc3\xa9"`" -d "0 0" + +HGENCODING=latin-1 hg tag -d "0 0" "`printf "\xe9"`" + +hg --encoding ascii log +hg --encoding latin-1 log +hg --encoding utf-8 log +HGENCODING=ascii hg tags +HGENCODING=latin-1 hg tags +HGENCODING=utf-8 hg tags