1269903Sngie#
2269903Sngie# Regression tests for date(1)
3269903Sngie#
4269903Sngie# Submitted by Edwin Groothuis <edwin@FreeBSD.org>
5269903Sngie#
6269903Sngie# $FreeBSD$
7269903Sngie#
8269903Sngie
9269903Sngie#
10269903Sngie# These two date/times have been chosen carefully -- they
11269903Sngie# create both the single digit and double/multidigit version of
12269903Sngie# the values.
13269903Sngie#
14269903Sngie# To create a new one, make sure you are using the UTC timezone!
15269903Sngie#
16269903Sngie
17269903SngieTEST1=3222243		# 1970-02-07 07:04:03
18269903SngieTEST2=1005600000	# 2001-11-12 21:11:12
19269903Sngie
20269903Sngiecheck()
21269903Sngie{
22269903Sngie	local format_string exp_output_1 exp_output_2
23269903Sngie
24269903Sngie	format_string=${1}
25269903Sngie	exp_output_1=${2}
26269903Sngie	exp_output_2=${3}
27269903Sngie
28269903Sngie	atf_check -o "inline:${exp_output_1}\n" \
29269903Sngie	    date -r ${TEST1} +%${format_string}
30269903Sngie	atf_check -o "inline:${exp_output_2}\n" \
31269903Sngie	    date -r ${TEST2} +%${format_string}
32269903Sngie}
33269903Sngie
34269903Sngieformat_string_test()
35269903Sngie{
36269903Sngie	local desc exp_output_1 exp_output_2 flag
37269903Sngie
38269903Sngie	desc=${1}
39269903Sngie	flag=${2}
40269903Sngie	exp_output_1=${3}
41269903Sngie	exp_output_2=${4}
42269903Sngie
43269903Sngie	atf_test_case ${desc}_test
44269903Sngie	eval "
45269903Sngie${desc}_test_body() {
46269903Sngie	check ${flag} '${exp_output_1}' '${exp_output_2}';
47269903Sngie}"
48269903Sngie	atf_add_test_case ${desc}_test
49269903Sngie}
50269903Sngie
51269903Sngieatf_init_test_cases()
52269903Sngie{
53269903Sngie	format_string_test A A Saturday Monday
54269903Sngie	format_string_test a a Sat Mon
55269903Sngie	format_string_test B B February November
56269903Sngie	format_string_test b b Feb Nov
57269903Sngie	format_string_test C C 19 20
58269903Sngie	format_string_test c c "Sat Feb  7 07:04:03 1970" "Mon Nov 12 21:20:00 2001"
59269903Sngie	format_string_test D D 02/07/70 11/12/01
60269903Sngie	format_string_test d d 07 12
61269903Sngie	format_string_test e e " 7" 12
62269903Sngie	format_string_test F F "1970-02-07" "2001-11-12"
63269903Sngie	format_string_test G G 1970 2001
64269903Sngie	format_string_test g g 70 01
65269903Sngie	format_string_test H H 07 21
66269903Sngie	format_string_test h h Feb Nov
67269903Sngie	format_string_test I I 07 09
68269903Sngie	format_string_test j j 038 316
69269903Sngie	format_string_test k k " 7" 21
70269903Sngie	format_string_test l l " 7" " 9"
71269903Sngie	format_string_test M M 04 20
72269903Sngie	format_string_test m m 02 11
73269903Sngie	format_string_test p p AM PM
74269903Sngie	format_string_test R R 07:04 21:20
75269903Sngie	format_string_test r r "07:04:03 AM" "09:20:00 PM"
76269903Sngie	format_string_test S S 03 00
77269903Sngie	format_string_test s s ${TEST1} ${TEST2}
78269903Sngie	format_string_test U U 05 45
79269903Sngie	format_string_test u u 6 1
80269903Sngie	format_string_test V V 06 46
81269903Sngie	format_string_test v v " 7-Feb-1970" "12-Nov-2001"
82269903Sngie	format_string_test W W 05 46
83269903Sngie	format_string_test w w 6 1
84269903Sngie	format_string_test X X "07:04:03" "21:20:00"
85269903Sngie	format_string_test x x "02/07/70" "11/12/01"
86269903Sngie	format_string_test Y Y 1970 2001
87269903Sngie	format_string_test y y 70 01
88269903Sngie	format_string_test Z Z UTC UTC
89269903Sngie	format_string_test z z +0000 +0000
90269903Sngie	format_string_test percent % % %
91269903Sngie	format_string_test plus + "Sat Feb  7 07:04:03 UTC 1970" "Mon Nov 12 21:20:00 UTC 2001"
92269903Sngie}
93