tests/test-parse-date
author Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Wed, 18 Nov 2009 12:47:58 +0100
changeset 9881 54b518fc6671
parent 9384 d91078a2652f
child 10282 08a0f04b56bd
permissions -rwxr-xr-x
httprepo: suppress the `real URL is...' message in safe, common cases. When the actual and requested URL only differ by trailing slashes, there is no need to warn. As an example, this easily happens when accessing repositories on Bitbucket over HTTP(S). As far as I could tell, there were no existing tests for this behaviour.

#!/bin/sh

# This runs with TZ="GMT"
hg init
echo "test-parse-date" > a
hg add a
hg ci -d "2006-02-01 13:00:30" -m "rev 0"
echo "hi!" >> a
hg ci -d "2006-02-01 13:00:30 -0500" -m "rev 1"
hg tag -d "2006-04-15 13:30" "Hi"
hg backout --merge -d "2006-04-15 13:30 +0200" -m "rev 3" 1
hg ci -d "1150000000 14400" -m "rev 4 (merge)"
echo "fail" >> a
hg ci -d "should fail" -m "fail"
hg ci -d "100000000000000000 1400" -m "fail"
hg ci -d "100000 1400000" -m "fail"

# Check with local timezone other than GMT and with DST
TZ="PST+8PDT"
export TZ
# PST=UTC-8 / PDT=UTC-7
hg debugrebuildstate
echo "a" > a
hg ci -d "2006-07-15 13:30" -m "summer@UTC-7"
hg debugrebuildstate
echo "b" > a
hg ci -d "2006-07-15 13:30 +0500" -m "summer@UTC+5"
hg debugrebuildstate
echo "c" > a
hg ci -d "2006-01-15 13:30" -m "winter@UTC-8"
hg debugrebuildstate
echo "d" > a
hg ci -d "2006-01-15 13:30 +0500" -m "winter@UTC+5"
hg log --template '{date|date}\n'

# Test issue1014 (fractional timezones)
hg debugdate "1000000000 -16200" # 0430
hg debugdate "1000000000 -15300" # 0415
hg debugdate "1000000000 -14400" # 0400
hg debugdate "1000000000 0"      # GMT
hg debugdate "1000000000 14400"  # -0400
hg debugdate "1000000000 15300"  # -0415
hg debugdate "1000000000 16200"  # -0430
hg debugdate "Sat Sep 08 21:16:40 2001 +0430"
hg debugdate "Sat Sep 08 21:16:40 2001 -0430"

# Test 12-hours times
hg debugdate "2006-02-01 1:00:30PM +0000"
hg debugdate "1:00:30PM" > /dev/null || echo 'failed'

#Test date formats with '>' or '<' accompanied by space characters
hg log -d '>' --template '{date|date}\n'
hg log -d '<' hg log -d '>' --template '{date|date}\n'

hg log -d ' >' --template '{date|date}\n'
hg log -d ' <' --template '{date|date}\n'

hg log -d '> ' --template '{date|date}\n'
hg log -d '< ' --template '{date|date}\n'

hg log -d ' > ' --template '{date|date}\n'
hg log -d ' < ' --template '{date|date}\n'


hg log -d '>02/01' --template '{date|date}\n'
hg log -d '<02/01' --template '{date|date}\n'

hg log -d ' >02/01' --template '{date|date}\n'
hg log -d ' <02/01' --template '{date|date}\n'

hg log -d '> 02/01' --template '{date|date}\n'
hg log -d '< 02/01' --template '{date|date}\n'

hg log -d ' > 02/01' --template '{date|date}\n'
hg log -d ' < 02/01' --template '{date|date}\n'

hg log -d '>02/01 ' --template '{date|date}\n'
hg log -d '<02/01 ' --template '{date|date}\n'

hg log -d ' >02/01 ' --template '{date|date}\n'
hg log -d ' <02/01 ' --template '{date|date}\n'

hg log -d '> 02/01 ' --template '{date|date}\n'
hg log -d '< 02/01 ' --template '{date|date}\n'

hg log -d ' > 02/01 ' --template '{date|date}\n'
hg log -d ' < 02/01 ' --template '{date|date}\n'