##// END OF EJS Templates
tests: remove unneeded -d flags...
tests: remove unneeded -d flags Many tests fixed the commit date of their changesets at '1000000 0' or similar. However testing with "Mon Jan 12 13:46:40 1970 +0000" is not better than testing with "Thu Jan 01 00:00:00 1970 +0000", which is the default run-tests.py installs. Removing the unnecessary flag removes some clutter and will hopefully make it clearer what the tests are really trying to test. Some tests did not even change their output when the dates were changed, in which case the -d flag was truly irrelevant. Dates used in sequence (such as '0 0', '1 0', etc...) were left alone since they may make the test easier to understand.

File last commit:

r8759:f584d63c default
r12156:4c94b6d0 default
Show More
test-win32text
144 lines | 2.5 KiB | text/plain | TextLexer
#!/bin/sh
hg init t
cd t
cat > unix2dos.py <<EOF
import sys
for path in sys.argv[1:]:
data = file(path, 'rb').read()
data = data.replace('\n', '\r\n')
file(path, 'wb').write(data)
EOF
cat > print.py <<EOF
import sys
print(sys.stdin.read().replace('\n', '<LF>').replace('\r', '<CR>').replace('\0', '<NUL>'))
EOF
echo '[hooks]' >> .hg/hgrc
echo 'pretxncommit.crlf = python:hgext.win32text.forbidcrlf' >> .hg/hgrc
echo 'pretxnchangegroup.crlf = python:hgext.win32text.forbidcrlf' >> .hg/hgrc
cat .hg/hgrc
echo
echo hello > f
hg add f
echo commit should succeed
hg ci -m 1
echo
hg clone . ../zoz
cp .hg/hgrc ../zoz/.hg
python unix2dos.py f
echo commit should fail
hg ci -m 2.1
echo
mv .hg/hgrc .hg/hgrc.bak
echo commits should succeed
hg ci -m 2
hg cp f g
hg ci -m 2.2
echo
echo push should fail
hg push ../zoz
echo
mv .hg/hgrc.bak .hg/hgrc
echo hello > f
hg rm g
echo commit should succeed
hg ci -m 2.3
echo
echo push should succeed
hg push ../zoz
echo
echo and now for something completely different
mkdir d
echo hello > d/f2
python unix2dos.py d/f2
hg add d/f2
hg ci -m 3
hg revert -a
rm d/f2
echo
hg rem f
hg ci -m 4
echo
python -c 'file("bin", "wb").write("hello\x00\x0D\x0A")'
hg add bin
hg ci -m 5
hg log -v
echo
hg clone . dupe
echo
for x in a b c d; do echo content > dupe/$x; done
hg -R dupe add
python unix2dos.py dupe/b dupe/c dupe/d
hg -R dupe ci -m a dupe/a
hg -R dupe ci -m b/c dupe/[bc]
hg -R dupe ci -m d dupe/d
hg -R dupe log -v
echo
hg pull dupe
echo
hg log -v
echo
rm .hg/hgrc
(echo some; echo text) > f3
python -c 'file("f4.bat", "wb").write("rem empty\x0D\x0A")'
hg add f3 f4.bat
hg ci -m 6
python print.py < bin
python print.py < f3
python print.py < f4.bat
echo
echo '[extensions]' >> .hg/hgrc
echo 'win32text = ' >> .hg/hgrc
echo '[decode]' >> .hg/hgrc
echo '** = cleverdecode:' >> .hg/hgrc
echo '[encode]' >> .hg/hgrc
echo '** = cleverencode:' >> .hg/hgrc
cat .hg/hgrc
echo
rm f3 f4.bat bin
hg co -C 2>&1 | python -c 'import sys, os; sys.stdout.write(sys.stdin.read().replace(os.getcwd(), "...."))'
python print.py < bin
python print.py < f3
python print.py < f4.bat
echo
python -c 'file("f5.sh", "wb").write("# empty\x0D\x0A")'
hg add f5.sh
hg ci -m 7
python print.py < f5.sh
hg cat f5.sh | python print.py
echo '% just linefeed' > linefeed
hg ci -qAm 8 linefeed
python print.py < linefeed
hg cat linefeed | python print.py
hg st -q
hg revert -a linefeed
python print.py < linefeed
hg st -q
echo modified >> linefeed
hg st -q
hg revert -a
hg st -q
python print.py < linefeed