summaryrefslogtreecommitdiffstats
path: root/bin/date
diff options
context:
space:
mode:
authorjmmv <jmmv@FreeBSD.org>2013-12-11 04:09:17 +0000
committerjmmv <jmmv@FreeBSD.org>2013-12-11 04:09:17 +0000
commitcfc6ad9bc622f4196577ecf38575ca78dfe5c005 (patch)
treec357c3541ca854e3c662bf4b75f67946d3672f84 /bin/date
parent865b783eec56bcde5b1f272b4b441a7c6a6c10fa (diff)
downloadFreeBSD-src-cfc6ad9bc622f4196577ecf38575ca78dfe5c005.zip
FreeBSD-src-cfc6ad9bc622f4196577ecf38575ca78dfe5c005.tar.gz
Migrate tools/regression/bin/ tests to the new layout.
This change is a proof of concept on how to easily integrate existing tests from the tools/regression/ hierarchy into the /usr/tests/ test suite and on how to adapt them to the new layout for src. To achieve these goals, this change: - Moves tests from tools/regression/bin/<tool>/ to bin/<tool>/tests/. - Renames the previous regress.sh files to legacy_test.sh. - Adds Makefiles to build and install the tests and all their supporting data files into /usr/tests/bin/. - Plugs the legacy_test test programs into the test suite using the new TAP backend for Kyua (appearing in 0.8) so that the code of the test programs does not have to change. - Registers the new directories in the BSD.test.dist mtree file. Reviewed by: freebsd-testing Approved by: rpaulo (mentor)
Diffstat (limited to 'bin/date')
-rw-r--r--bin/date/Makefile6
-rw-r--r--bin/date/tests/Makefile9
-rw-r--r--bin/date/tests/legacy_test.sh91
3 files changed, 106 insertions, 0 deletions
diff --git a/bin/date/Makefile b/bin/date/Makefile
index 4f5c3fe..6da5848 100644
--- a/bin/date/Makefile
+++ b/bin/date/Makefile
@@ -1,7 +1,13 @@
# @(#)Makefile 8.1 (Berkeley) 5/31/93
# $FreeBSD$
+.include <bsd.own.mk>
+
PROG= date
SRCS= date.c netdate.c vary.c
+.if ${MK_TESTS} != "no"
+SUBDIR+= tests
+.endif
+
.include <bsd.prog.mk>
diff --git a/bin/date/tests/Makefile b/bin/date/tests/Makefile
new file mode 100644
index 0000000..540008b
--- /dev/null
+++ b/bin/date/tests/Makefile
@@ -0,0 +1,9 @@
+# $FreeBSD$
+
+.include <bsd.own.mk>
+
+TESTSDIR= ${TESTSBASE}/bin/date
+
+TAP_TESTS_SH= legacy_test
+
+.include <tap.test.mk>
diff --git a/bin/date/tests/legacy_test.sh b/bin/date/tests/legacy_test.sh
new file mode 100644
index 0000000..981bdd0
--- /dev/null
+++ b/bin/date/tests/legacy_test.sh
@@ -0,0 +1,91 @@
+#!/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"
OpenPOWER on IntegriCloud