diff options
Diffstat (limited to 'bin/date')
-rw-r--r-- | bin/date/tests/Makefile | 2 | ||||
-rwxr-xr-x | bin/date/tests/format_string_test.sh | 92 | ||||
-rw-r--r-- | bin/date/tests/legacy_test.sh | 91 |
3 files changed, 93 insertions, 92 deletions
diff --git a/bin/date/tests/Makefile b/bin/date/tests/Makefile index 2301dcf..d023195 100644 --- a/bin/date/tests/Makefile +++ b/bin/date/tests/Makefile @@ -4,6 +4,6 @@ TESTSDIR= ${TESTSBASE}/bin/date -TAP_TESTS_SH= legacy_test +ATF_TESTS_SH= format_string_test .include <bsd.test.mk> diff --git a/bin/date/tests/format_string_test.sh b/bin/date/tests/format_string_test.sh new file mode 100755 index 0000000..0bd4f1e --- /dev/null +++ b/bin/date/tests/format_string_test.sh @@ -0,0 +1,92 @@ +# +# Regression tests for date(1) +# +# Submitted by Edwin Groothuis <edwin@FreeBSD.org> +# +# $FreeBSD$ +# + +# +# These two date/times have been chosen carefully -- they +# create both the single digit and double/multidigit version of +# the values. +# +# To create a new one, make sure you are using the UTC timezone! +# + +TEST1=3222243 # 1970-02-07 07:04:03 +TEST2=1005600000 # 2001-11-12 21:11:12 + +check() +{ + local format_string exp_output_1 exp_output_2 + + format_string=${1} + exp_output_1=${2} + exp_output_2=${3} + + atf_check -o "inline:${exp_output_1}\n" \ + date -r ${TEST1} +%${format_string} + atf_check -o "inline:${exp_output_2}\n" \ + date -r ${TEST2} +%${format_string} +} + +format_string_test() +{ + local desc exp_output_1 exp_output_2 flag + + desc=${1} + flag=${2} + exp_output_1=${3} + exp_output_2=${4} + + atf_test_case ${desc}_test + eval " +${desc}_test_body() { + check ${flag} '${exp_output_1}' '${exp_output_2}'; +}" + atf_add_test_case ${desc}_test +} + +atf_init_test_cases() +{ + format_string_test A A Saturday Monday + format_string_test a a Sat Mon + format_string_test B B February November + format_string_test b b Feb Nov + format_string_test C C 19 20 + format_string_test c c "Sat Feb 7 07:04:03 1970" "Mon Nov 12 21:20:00 2001" + format_string_test D D 02/07/70 11/12/01 + format_string_test d d 07 12 + format_string_test e e " 7" 12 + format_string_test F F "1970-02-07" "2001-11-12" + format_string_test G G 1970 2001 + format_string_test g g 70 01 + format_string_test H H 07 21 + format_string_test h h Feb Nov + format_string_test I I 07 09 + format_string_test j j 038 316 + format_string_test k k " 7" 21 + format_string_test l l " 7" " 9" + format_string_test M M 04 20 + format_string_test m m 02 11 + format_string_test p p AM PM + format_string_test R R 07:04 21:20 + format_string_test r r "07:04:03 AM" "09:20:00 PM" + format_string_test S S 03 00 + format_string_test s s ${TEST1} ${TEST2} + format_string_test U U 05 45 + format_string_test u u 6 1 + format_string_test V V 06 46 + format_string_test v v " 7-Feb-1970" "12-Nov-2001" + format_string_test W W 05 46 + format_string_test w w 6 1 + format_string_test X X "07:04:03" "21:20:00" + format_string_test x x "02/07/70" "11/12/01" + format_string_test Y Y 1970 2001 + format_string_test y y 70 01 + format_string_test Z Z UTC UTC + format_string_test z z +0000 +0000 + format_string_test percent % % % + format_string_test plus + "Sat Feb 7 07:04:03 UTC 1970" "Mon Nov 12 21:20:00 UTC 2001" +} diff --git a/bin/date/tests/legacy_test.sh b/bin/date/tests/legacy_test.sh deleted file mode 100644 index 981bdd0..0000000 --- a/bin/date/tests/legacy_test.sh +++ /dev/null @@ -1,91 +0,0 @@ -#!/bin/sh - -# -# Regression tests for date(1) -# -# Submitted by Edwin Groothuis <edwin@FreeBSD.org> -# -# $FreeBSD$ -# - -# -# These two date/times have been chosen carefully, they -# create both the single digit and double/multidigit version of -# the values. -# -# To create a new one, make sure you are using the UTC timezone! -# - -TEST1=3222243 # 1970-02-07 07:04:03 -TEST2=1005600000 # 2001-11-12 21:11:12 - -export LC_ALL=C -export TZ=UTC -count=0 - -check() -{ - S=$1 - A1=$2 - A2=$3 - - count=`expr ${count} + 1` - - if [ -z "${A2}" ]; then A2=${A1}; fi - - R=`date -r ${TEST1} +%${S}` - if [ "${R}" = "${A1}" ]; then - echo "ok ${S}{t1}" - else - echo "no ok ${S}{t1} - (got ${R}, expected ${A1})" - fi - - R=`date -r ${TEST2} +%${S}` - if [ "${R}" = "${A2}" ]; then - echo "ok ${S}{t2}" - else - echo "no ok ${S}{t2} - (got ${R}, expected ${A2})" - fi -} - -echo "1..78" - -check A Saturday Monday -check a Sat Mon -check B February November -check b Feb Nov -check C 19 20 -check c "Sat Feb 7 07:04:03 1970" "Mon Nov 12 21:20:00 2001" -check D 02/07/70 11/12/01 -check d 07 12 -check e " 7" 12 -check F "1970-02-07" "2001-11-12" -check G 1970 2001 -check g 70 01 -check H 07 21 -check h Feb Nov -check I 07 09 -check j 038 316 -check k " 7" 21 -check l " 7" " 9" -check M 04 20 -check m 02 11 -check p AM PM -check R 07:04 21:20 -check r "07:04:03 AM" "09:20:00 PM" -check S 03 00 -check s ${TEST1} ${TEST2} -check U 05 45 -check u 6 1 -check V 06 46 -check v " 7-Feb-1970" "12-Nov-2001" -check W 05 46 -check w 6 1 -check X "07:04:03" "21:20:00" -check x "02/07/70" "11/12/01" -check Y 1970 2001 -check y 70 01 -check Z UTC UTC -check z +0000 +0000 -check % % % -check + "Sat Feb 7 07:04:03 UTC 1970" "Mon Nov 12 21:20:00 UTC 2001" |