1192482Sedwin#!/bin/sh
2192482Sedwin
3192482Sedwin#
4192482Sedwin# Regression tests for date(1)
5192482Sedwin#
6192482Sedwin# Submitted by Edwin Groothuis <edwin@FreeBSD.org>
7192482Sedwin#
8192482Sedwin# $FreeBSD$
9192482Sedwin#
10192482Sedwin
11192482Sedwin#
12192482Sedwin# These two date/times have been chosen carefully, they
13192482Sedwin# create both the single digit and double/multidigit version of
14192482Sedwin# the values.
15192482Sedwin#
16192482Sedwin# To create a new one, make sure you are using the UTC timezone!
17192482Sedwin#
18192482Sedwin
19192482SedwinTEST1=3222243		# 1970-02-07 07:04:03
20192482SedwinTEST2=1005600000	# 2001-11-12 21:11:12
21192482Sedwin
22217208Skeramidaexport LC_ALL=C
23192482Sedwinexport TZ=UTC
24192482Sedwincount=0
25192482Sedwin
26192482Sedwincheck()
27192482Sedwin{
28192482Sedwin	S=$1
29192482Sedwin	A1=$2
30192482Sedwin	A2=$3
31192482Sedwin
32201427Sobrien	count=`expr ${count} + 1`
33201427Sobrien
34201421Sobrien	if [ -z "${A2}" ]; then A2=${A1}; fi
35201421Sobrien
36192482Sedwin	R=`date -r ${TEST1} +%${S}`
37192482Sedwin	if [ "${R}" = "${A1}" ]; then
38201427Sobrien		echo "ok ${S}{t1}"
39192482Sedwin	else
40201427Sobrien		echo "no ok ${S}{t1} - (got ${R}, expected ${A1})"
41192482Sedwin	fi
42192482Sedwin
43192482Sedwin	R=`date -r ${TEST2} +%${S}`
44192482Sedwin	if [ "${R}" = "${A2}" ]; then
45201427Sobrien		echo "ok ${S}{t2}"
46192482Sedwin	else
47201427Sobrien		echo "no ok ${S}{t2} - (got ${R}, expected ${A2})"
48192482Sedwin	fi
49192482Sedwin}
50192482Sedwin
51201421Sobrienecho "1..78"
52201421Sobrien
53192482Sedwincheck A Saturday Monday
54192482Sedwincheck a Sat Mon
55192482Sedwincheck B February November
56192482Sedwincheck b Feb Nov
57192482Sedwincheck C 19 20
58192482Sedwincheck c "Sat Feb  7 07:04:03 1970" "Mon Nov 12 21:20:00 2001"
59192482Sedwincheck D 02/07/70 11/12/01
60192482Sedwincheck d 07 12
61192482Sedwincheck e " 7" 12
62192482Sedwincheck F "1970-02-07" "2001-11-12"
63192482Sedwincheck G 1970 2001
64192482Sedwincheck g 70 01
65192482Sedwincheck H 07 21
66192482Sedwincheck h Feb Nov
67192482Sedwincheck I 07 09
68192482Sedwincheck j 038 316
69192482Sedwincheck k " 7" 21
70192482Sedwincheck l " 7" " 9"
71192482Sedwincheck M 04 20
72192482Sedwincheck m 02 11
73192482Sedwincheck p AM PM
74192482Sedwincheck R 07:04 21:20
75192482Sedwincheck r "07:04:03 AM" "09:20:00 PM"
76192482Sedwincheck S 03 00
77192482Sedwincheck s ${TEST1} ${TEST2}
78192482Sedwincheck U 05 45
79192482Sedwincheck u 6 1
80192482Sedwincheck V 06 46
81192482Sedwincheck v " 7-Feb-1970" "12-Nov-2001"
82192482Sedwincheck W 05 46
83192482Sedwincheck w 6 1
84192482Sedwincheck X "07:04:03" "21:20:00"
85192482Sedwincheck x "02/07/70" "11/12/01"
86192482Sedwincheck Y 1970 2001
87192482Sedwincheck y 70 01
88192482Sedwincheck Z UTC UTC
89192482Sedwincheck z +0000 +0000
90192482Sedwincheck % % %
91192482Sedwincheck + "Sat Feb  7 07:04:03 UTC 1970" "Mon Nov 12 21:20:00 UTC 2001"
92