Merge pull request #1337 from RyanMelenaNoesis/master
[mono.git] / mcs / class / corlib / DateTime.Now_Test.sh
1 #!/bin/sh
2
3 SCRIPT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
4 export MONO_PATH=${MONO_PATH:-$SCRIPT_PATH/../lib/net_4_5/}
5
6 TZ_FAILS=0
7 TZ_COUNT=0
8 FORMAT="%a %b %d %T %Y"
9
10 for tz in $(cd /usr/share/zoneinfo/; find * -type f -print); do
11         TZ_COUNT=$(expr $TZ_COUNT + 1)
12         SYS_DATETIME=$(date -ju -f "$FORMAT" "$(TZ=$tz date "+$FORMAT")" "+%s")
13         CS_DATETIME=$(TZ=$tz csharp -e '(int)(DateTime.Now - new DateTime(1970, 1, 1)).TotalSeconds;')
14         DIFF=$(expr $SYS_DATETIME - $CS_DATETIME)
15         if [ "$DIFF" -gt "5" ] || [ "$DIFF" -lt "-5" ]; then
16                 TZ_FAILS=$(expr $TZ_FAILS + 1)
17                 echo ""
18                 echo "DateTime.Now failed with timezone: $tz"
19                 echo "    System:       $(date -ju -f "%s" "$SYS_DATETIME" "+%Y-%m-%d %T")"
20                 echo "    DateTime.Now: $(date -ju -f "%s" "$CS_DATETIME" "+%Y-%m-%d %T")"
21         fi
22         echo ".\c"
23 done
24 echo ""
25 echo "DateTime.Now failed with $TZ_FAILS of $TZ_COUNT timezones."