##// 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:

r11249:0bb67503 stable
r12156:4c94b6d0 default
Show More
test-eol
180 lines | 3.4 KiB | text/plain | TextLexer
#!/bin/sh
cat > $HGRCPATH <<EOF
[diff]
git = True
EOF
cat > switch-eol.py <<EOF
import sys
try:
import os, msvcrt
msvcrt.setmode(sys.stdin.fileno(), os.O_BINARY)
msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
except ImportError:
pass
(old, new) = sys.argv[1] == 'LF' and ('\n', '\r\n') or ('\r\n', '\n')
print "%% switching encoding from %r to %r" % (old, new)
for path in sys.argv[2:]:
data = file(path, 'rb').read()
data = data.replace(old, new)
file(path, 'wb').write(data)
EOF
seteol () {
if [ $1 = "LF" ]; then
EOL='\n'
else
EOL='\r\n'
fi
}
makerepo () {
seteol $1
echo "% setup $1 repository"
hg init repo
cd repo
cat > .hgeol <<EOF
[repository]
native = $1
[patterns]
mixed.txt = BIN
**.txt = native
EOF
printf "first${EOL}second${EOL}third${EOL}" > a.txt
hg commit --addremove -m 'checkin'
echo
cd ..
}
dotest () {
seteol $1
echo "% hg clone repo repo-$1"
hg clone --noupdate repo repo-$1
cd repo-$1
cat > .hg/hgrc <<EOF
[extensions]
eol =
[eol]
native = $1
EOF
hg update
echo '% printrepr.py a.txt'
python $TESTDIR/printrepr.py < a.txt
echo '% hg cat a.txt'
hg cat a.txt | python $TESTDIR/printrepr.py
printf "fourth${EOL}" >> a.txt
echo '% printrepr.py a.txt'
python $TESTDIR/printrepr.py < a.txt
hg diff | python $TESTDIR/printrepr.py
python ../switch-eol.py $1 a.txt
echo '% hg diff only reports a single changed line:'
hg diff | python $TESTDIR/printrepr.py
echo "% reverting back to $1 format"
hg revert a.txt
python $TESTDIR/printrepr.py < a.txt
printf "first\r\nsecond\n" > mixed.txt
hg add mixed.txt
echo "% hg commit of inconsistent .txt file marked as binary (should work)"
hg commit -m 'binary file'
echo "% hg commit of inconsistent .txt file marked as native (should fail)"
printf "first\nsecond\r\nthird\nfourth\r\n" > a.txt
hg commit -m 'inconsistent file'
echo "% hg commit --config eol.only-consistent=False (should work)"
hg commit --config eol.only-consistent=False -m 'inconsistent file'
echo "% hg commit of binary .txt file marked as native (binary files always okay)"
printf "first${EOL}\0${EOL}third${EOL}" > a.txt
hg commit -m 'binary file'
cd ..
rm -r repo-$1
}
makerepo LF
dotest LF
dotest CRLF
rm -r repo
makerepo CRLF
dotest LF
dotest CRLF
rm -r repo
makemixedrepo () {
echo
echo "# setup $1 repository"
hg init mixed
cd mixed
printf "foo\r\nbar\r\nbaz\r\n" > win.txt
printf "foo\nbar\nbaz\n" > unix.txt
#printf "foo\r\nbar\nbaz\r\n" > mixed.txt
hg commit --addremove -m 'created mixed files'
echo "# setting repository-native EOLs to $1"
cat > .hgeol <<EOF
[repository]
native = $1
[patterns]
**.txt = native
EOF
hg commit --addremove -m 'added .hgeol'
cd ..
}
testmixed () {
echo
echo "% hg clone mixed mixed-$1"
hg clone mixed mixed-$1
cd mixed-$1
echo '% hg status (eol extension not yet activated)'
hg status
cat > .hg/hgrc <<EOF
[extensions]
eol =
[eol]
native = $1
EOF
echo '% hg status (eol activated)'
hg status
echo '% hg commit'
hg commit -m 'synchronized EOLs'
echo '% hg status'
hg status
cd ..
rm -r mixed-$1
}
makemixedrepo LF
testmixed LF
testmixed CRLF
rm -r mixed
makemixedrepo CRLF
testmixed LF
testmixed CRLF
rm -r mixed