Page MenuHomeFreeBSD

D31376.diff
No OneTemporary

D31376.diff

diff --git a/contrib/one-true-awk/bugs-fixed/missing-precision.err b/contrib/one-true-awk/bugs-fixed/missing-precision.err
new file mode 100644
--- /dev/null
+++ b/contrib/one-true-awk/bugs-fixed/missing-precision.err
@@ -0,0 +1,2 @@
+awk: not enough args in printf(%*s)
+ source line number 1
diff --git a/contrib/one-true-awk/bugs-fixed/missing-precision.ok b/contrib/one-true-awk/bugs-fixed/missing-precision.ok
deleted file mode 100644
--- a/contrib/one-true-awk/bugs-fixed/missing-precision.ok
+++ /dev/null
@@ -1,2 +0,0 @@
-../a.out: not enough args in printf(%*s)
- source line number 1
diff --git a/contrib/one-true-awk/bugs-fixed/negative-nf.err b/contrib/one-true-awk/bugs-fixed/negative-nf.err
new file mode 100644
--- /dev/null
+++ b/contrib/one-true-awk/bugs-fixed/negative-nf.err
@@ -0,0 +1,2 @@
+awk: cannot set NF to a negative value
+ source line number 1
diff --git a/contrib/one-true-awk/bugs-fixed/negative-nf.ok b/contrib/one-true-awk/bugs-fixed/negative-nf.ok
deleted file mode 100644
--- a/contrib/one-true-awk/bugs-fixed/negative-nf.ok
+++ /dev/null
@@ -1,2 +0,0 @@
-../a.out: cannot set NF to a negative value
- source line number 1
diff --git a/contrib/one-true-awk/bugs-fixed/pfile-overflow.ok b/contrib/one-true-awk/bugs-fixed/pfile-overflow.ok
deleted file mode 100644
--- a/contrib/one-true-awk/bugs-fixed/pfile-overflow.ok
+++ /dev/null
@@ -1,4 +0,0 @@
-../a.out: syntax error at source line 1 source file pfile-overflow.awk
- context is
- >>> <<<
-../a.out: bailing out at source line 1 source file pfile-overflow.awk
diff --git a/contrib/one-true-awk/bugs-fixed/system-status.awk b/contrib/one-true-awk/bugs-fixed/system-status.awk
deleted file mode 100644
--- a/contrib/one-true-awk/bugs-fixed/system-status.awk
+++ /dev/null
@@ -1,19 +0,0 @@
-# Unmodified nawk prints the 16 bit exit status divided by 256, but
-# does so using floating point arithmetic, yielding strange results.
-#
-# The fix is to use the various macros defined for wait(2) and to
-# use the signal number + 256 for death by signal, or signal number + 512
-# for death by signal with core dump.
-
-BEGIN {
- status = system("exit 42")
- print "normal status", status
-
- status = system("kill -HUP $$")
- print "death by signal status", status
-
- status = system("kill -ABRT $$")
- print "death by signal with core dump status", status
-
- system("rm -f core*")
-}
diff --git a/contrib/one-true-awk/bugs-fixed/system-status.bad b/contrib/one-true-awk/bugs-fixed/system-status.bad
deleted file mode 100644
--- a/contrib/one-true-awk/bugs-fixed/system-status.bad
+++ /dev/null
@@ -1,3 +0,0 @@
-normal status 42
-death by signal status 0.00390625
-death by signal with core dump status 0.523438
diff --git a/contrib/one-true-awk/bugs-fixed/system-status.ok b/contrib/one-true-awk/bugs-fixed/system-status.ok
deleted file mode 100644
--- a/contrib/one-true-awk/bugs-fixed/system-status.ok
+++ /dev/null
@@ -1,3 +0,0 @@
-normal status 42
-death by signal status 257
-death by signal with core dump status 518
diff --git a/etc/mtree/BSD.tests.dist b/etc/mtree/BSD.tests.dist
--- a/etc/mtree/BSD.tests.dist
+++ b/etc/mtree/BSD.tests.dist
@@ -873,6 +873,10 @@
apply
..
awk
+ bugs-fixed
+ ..
+ netbsd
+ ..
..
basename
..
diff --git a/usr.bin/awk/tests/Makefile b/usr.bin/awk/tests/Makefile
--- a/usr.bin/awk/tests/Makefile
+++ b/usr.bin/awk/tests/Makefile
@@ -1,33 +1,8 @@
# $FreeBSD$
-PACKAGE= tests
+.include <bsd.own.mk>
-NETBSD_ATF_TESTS_SH= awk_test
-
-${PACKAGE}FILES+= d_assign_NF.awk
-${PACKAGE}FILES+= d_assign_NF.in
-${PACKAGE}FILES+= d_assign_NF.out
-${PACKAGE}FILES+= d_big_regexp.awk
-${PACKAGE}FILES+= d_big_regexp.in
-${PACKAGE}FILES+= d_big_regexp.out
-${PACKAGE}FILES+= d_end1.awk
-${PACKAGE}FILES+= d_end1.in
-${PACKAGE}FILES+= d_end1.out
-${PACKAGE}FILES+= d_end2.awk
-${PACKAGE}FILES+= d_end2.in
-${PACKAGE}FILES+= d_end2.out
-${PACKAGE}FILES+= d_period.awk
-${PACKAGE}FILES+= d_period.in
-${PACKAGE}FILES+= d_period.out
-${PACKAGE}FILES+= d_string1.awk
-${PACKAGE}FILES+= d_string1.out
-${PACKAGE}FILES+= d_tolower.awk
-${PACKAGE}FILES+= d_tolower.in
-${PACKAGE}FILES+= d_tolower.out
-${PACKAGE}FILES+= d_toupper.awk
-${PACKAGE}FILES+= d_toupper.in
-${PACKAGE}FILES+= d_toupper.out
-
-.include <netbsd-tests.test.mk>
+TESTS_SUBDIRS+= bugs-fixed
+TESTS_SUBDIRS+= netbsd
.include <bsd.test.mk>
diff --git a/usr.bin/awk/tests/bugs-fixed/Makefile b/usr.bin/awk/tests/bugs-fixed/Makefile
new file mode 100644
--- /dev/null
+++ b/usr.bin/awk/tests/bugs-fixed/Makefile
@@ -0,0 +1,14 @@
+# $FreeBSD$
+
+PACKAGE= tests
+
+TESTSDIR= ${TESTSBASE}/usr.bin/awk/${.CURDIR:T}
+TESTSRC= ${SRCTOP}/contrib/one-true-awk/bugs-fixed
+
+ATF_TESTS_SH= bug_fix_test
+
+.PATH: ${TESTSRC}
+# Upstream controls the list of tests, so generate it dynamically
+${PACKAGE}FILES!=(cd ${TESTSRC} ; ls *.awk *.ok *.in *.err)
+
+.include <bsd.test.mk>
diff --git a/usr.bin/awk/tests/bugs-fixed/bug_fix_test.sh b/usr.bin/awk/tests/bugs-fixed/bug_fix_test.sh
new file mode 100644
--- /dev/null
+++ b/usr.bin/awk/tests/bugs-fixed/bug_fix_test.sh
@@ -0,0 +1,75 @@
+#
+# Copyright 2014 EMC Corp.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# $FreeBSD$
+
+SRCDIR=$(atf_get_srcdir)
+
+check()
+{
+ local tc=${1%.awk}; shift
+ local in_flag out_flag err_flag
+
+ awk=awk
+
+ local out_file="${SRCDIR}/${tc}.ok"
+ [ -f "${out_file}" ] && out_flag="-o file:${out_file}"
+ local err_file="${SRCDIR}/${tc}.err"
+ [ -f "${err_file}" ] && err_flag="-e file:${err_file} -s exit:2"
+ local in_file="${SRCDIR}/${tc}.in"
+ [ -f "${in_file}" ] && in_flag="${in_file}"
+
+ (cd ${SRCDIR} ; atf_check ${out_flag} ${err_flag} ${awk} -f "${tc}.awk" ${in_flag})
+}
+
+add_testcase()
+{
+ local tc=${1%.awk}
+ local tc_escaped word
+
+ case "${tc%.*}" in
+ *-*)
+ local IFS="-"
+ for word in ${tc}; do
+ tc_escaped="${tc_escaped:+${tc_escaped}_}${word}"
+ done
+ ;;
+ *)
+ tc_escaped=${tc}
+ ;;
+ esac
+
+ atf_test_case ${tc_escaped}
+ eval "${tc_escaped}_body() { check ${tc}; }"
+ atf_add_test_case ${tc_escaped}
+}
+
+atf_init_test_cases()
+{
+ for path in $(find -s "${SRCDIR}" -name '*.awk'); do
+ add_testcase ${path##*/}
+ done
+}
diff --git a/usr.bin/awk/tests/Makefile b/usr.bin/awk/tests/netbsd/Makefile
copy from usr.bin/awk/tests/Makefile
copy to usr.bin/awk/tests/netbsd/Makefile
--- a/usr.bin/awk/tests/Makefile
+++ b/usr.bin/awk/tests/netbsd/Makefile
@@ -2,6 +2,9 @@
PACKAGE= tests
+TESTSDIR= ${TESTSBASE}/usr.bin/awk/${.CURDIR:T}
+TESTSRC= ${SRCTOP}/contrib/netbsd-tests/usr.bin/awk
+
NETBSD_ATF_TESTS_SH= awk_test
${PACKAGE}FILES+= d_assign_NF.awk

File Metadata

Mime Type
text/plain
Expires
Sat, Jan 11, 5:42 AM (18 h, 47 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
15750922
Default Alt Text
D31376.diff (7 KB)

Event Timeline