1*9f312407SEnji Cooper# 2*9f312407SEnji Cooper# Regression tests for date(1) 3*9f312407SEnji Cooper# 4*9f312407SEnji Cooper# Submitted by Edwin Groothuis <edwin@FreeBSD.org> 5*9f312407SEnji Cooper# 6*9f312407SEnji Cooper# $FreeBSD$ 7*9f312407SEnji Cooper# 8*9f312407SEnji Cooper 9*9f312407SEnji Cooper# 10*9f312407SEnji Cooper# These two date/times have been chosen carefully -- they 11*9f312407SEnji Cooper# create both the single digit and double/multidigit version of 12*9f312407SEnji Cooper# the values. 13*9f312407SEnji Cooper# 14*9f312407SEnji Cooper# To create a new one, make sure you are using the UTC timezone! 15*9f312407SEnji Cooper# 16*9f312407SEnji Cooper 17*9f312407SEnji CooperTEST1=3222243 # 1970-02-07 07:04:03 18*9f312407SEnji CooperTEST2=1005600000 # 2001-11-12 21:11:12 19*9f312407SEnji Cooper 20*9f312407SEnji Coopercheck() 21*9f312407SEnji Cooper{ 22*9f312407SEnji Cooper local format_string exp_output_1 exp_output_2 23*9f312407SEnji Cooper 24*9f312407SEnji Cooper format_string=${1} 25*9f312407SEnji Cooper exp_output_1=${2} 26*9f312407SEnji Cooper exp_output_2=${3} 27*9f312407SEnji Cooper 28*9f312407SEnji Cooper atf_check -o "inline:${exp_output_1}\n" \ 29*9f312407SEnji Cooper date -r ${TEST1} +%${format_string} 30*9f312407SEnji Cooper atf_check -o "inline:${exp_output_2}\n" \ 31*9f312407SEnji Cooper date -r ${TEST2} +%${format_string} 32*9f312407SEnji Cooper} 33*9f312407SEnji Cooper 34*9f312407SEnji Cooperformat_string_test() 35*9f312407SEnji Cooper{ 36*9f312407SEnji Cooper local desc exp_output_1 exp_output_2 flag 37*9f312407SEnji Cooper 38*9f312407SEnji Cooper desc=${1} 39*9f312407SEnji Cooper flag=${2} 40*9f312407SEnji Cooper exp_output_1=${3} 41*9f312407SEnji Cooper exp_output_2=${4} 42*9f312407SEnji Cooper 43*9f312407SEnji Cooper atf_test_case ${desc}_test 44*9f312407SEnji Cooper eval " 45*9f312407SEnji Cooper${desc}_test_body() { 46*9f312407SEnji Cooper check ${flag} '${exp_output_1}' '${exp_output_2}'; 47*9f312407SEnji Cooper}" 48*9f312407SEnji Cooper atf_add_test_case ${desc}_test 49*9f312407SEnji Cooper} 50*9f312407SEnji Cooper 51*9f312407SEnji Cooperatf_init_test_cases() 52*9f312407SEnji Cooper{ 53*9f312407SEnji Cooper format_string_test A A Saturday Monday 54*9f312407SEnji Cooper format_string_test a a Sat Mon 55*9f312407SEnji Cooper format_string_test B B February November 56*9f312407SEnji Cooper format_string_test b b Feb Nov 57*9f312407SEnji Cooper format_string_test C C 19 20 58*9f312407SEnji Cooper format_string_test c c "Sat Feb 7 07:04:03 1970" "Mon Nov 12 21:20:00 2001" 59*9f312407SEnji Cooper format_string_test D D 02/07/70 11/12/01 60*9f312407SEnji Cooper format_string_test d d 07 12 61*9f312407SEnji Cooper format_string_test e e " 7" 12 62*9f312407SEnji Cooper format_string_test F F "1970-02-07" "2001-11-12" 63*9f312407SEnji Cooper format_string_test G G 1970 2001 64*9f312407SEnji Cooper format_string_test g g 70 01 65*9f312407SEnji Cooper format_string_test H H 07 21 66*9f312407SEnji Cooper format_string_test h h Feb Nov 67*9f312407SEnji Cooper format_string_test I I 07 09 68*9f312407SEnji Cooper format_string_test j j 038 316 69*9f312407SEnji Cooper format_string_test k k " 7" 21 70*9f312407SEnji Cooper format_string_test l l " 7" " 9" 71*9f312407SEnji Cooper format_string_test M M 04 20 72*9f312407SEnji Cooper format_string_test m m 02 11 73*9f312407SEnji Cooper format_string_test p p AM PM 74*9f312407SEnji Cooper format_string_test R R 07:04 21:20 75*9f312407SEnji Cooper format_string_test r r "07:04:03 AM" "09:20:00 PM" 76*9f312407SEnji Cooper format_string_test S S 03 00 77*9f312407SEnji Cooper format_string_test s s ${TEST1} ${TEST2} 78*9f312407SEnji Cooper format_string_test U U 05 45 79*9f312407SEnji Cooper format_string_test u u 6 1 80*9f312407SEnji Cooper format_string_test V V 06 46 81*9f312407SEnji Cooper format_string_test v v " 7-Feb-1970" "12-Nov-2001" 82*9f312407SEnji Cooper format_string_test W W 05 46 83*9f312407SEnji Cooper format_string_test w w 6 1 84*9f312407SEnji Cooper format_string_test X X "07:04:03" "21:20:00" 85*9f312407SEnji Cooper format_string_test x x "02/07/70" "11/12/01" 86*9f312407SEnji Cooper format_string_test Y Y 1970 2001 87*9f312407SEnji Cooper format_string_test y y 70 01 88*9f312407SEnji Cooper format_string_test Z Z UTC UTC 89*9f312407SEnji Cooper format_string_test z z +0000 +0000 90*9f312407SEnji Cooper format_string_test percent % % % 91*9f312407SEnji Cooper format_string_test plus + "Sat Feb 7 07:04:03 UTC 1970" "Mon Nov 12 21:20:00 UTC 2001" 92*9f312407SEnji Cooper} 93