aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/diff/t_diff.sh
diff options
context:
space:
mode:
authorEnji Cooper <ngie@FreeBSD.org>2026-02-15 01:45:16 +0000
committerEnji Cooper <ngie@FreeBSD.org>2026-02-15 01:45:16 +0000
commit56a7ce8416d181a2060d7a428aed9c3c6a431e6d (patch)
tree102efa260400b2c1ef36733c53fbe2e6b747405c /usr.bin/diff/t_diff.sh
parenta339cc353658ca6abbf6ad2919a9269210475b41 (diff)
Diffstat (limited to 'usr.bin/diff/t_diff.sh')
-rw-r--r--usr.bin/diff/t_diff.sh105
1 files changed, 104 insertions, 1 deletions
diff --git a/usr.bin/diff/t_diff.sh b/usr.bin/diff/t_diff.sh
index e33edeeb3c60..8b5a53c0453b 100644
--- a/usr.bin/diff/t_diff.sh
+++ b/usr.bin/diff/t_diff.sh
@@ -1,4 +1,4 @@
-# $NetBSD: t_diff.sh,v 1.3 2012/03/13 05:40:00 jruoho Exp $
+# $NetBSD: t_diff.sh,v 1.5 2025/12/20 00:49:43 nia Exp $
#
# Copyright (c) 2011 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -68,8 +68,111 @@ same_body() {
-x "diff $(atf_get_srcdir)/t_diff $(atf_get_srcdir)/t_diff"
}
+atf_test_case simple
+simple_head() {
+ atf_set "descr" "Test diff(1) with simple diffs"
+}
+
+simple_body()
+{
+ atf_check -o file:$(atf_get_srcdir)/simple.out -s eq:1 \
+ diff "$(atf_get_srcdir)/input1.in" "$(atf_get_srcdir)/input2.in"
+
+ atf_check -o file:$(atf_get_srcdir)/simple_e.out -s eq:1 \
+ diff -e "$(atf_get_srcdir)/input1.in" "$(atf_get_srcdir)/input2.in"
+
+ atf_check -o file:$(atf_get_srcdir)/simple_u.out -s eq:1 \
+ diff -u -L input1 -L input2 "$(atf_get_srcdir)/input1.in" "$(atf_get_srcdir)/input2.in"
+
+ atf_check -o file:$(atf_get_srcdir)/simple_n.out -s eq:1 \
+ diff -n "$(atf_get_srcdir)/input1.in" "$(atf_get_srcdir)/input2.in"
+
+ atf_check -o inline:"Files $(atf_get_srcdir)/input1.in and $(atf_get_srcdir)/input2.in differ\n" -s eq:1 \
+ diff -q "$(atf_get_srcdir)/input1.in" "$(atf_get_srcdir)/input2.in"
+
+ atf_check \
+ diff -q "$(atf_get_srcdir)/input1.in" "$(atf_get_srcdir)/input1.in"
+
+ atf_check \
+ diff -q -U 2 -p "$(atf_get_srcdir)/input1.in" "$(atf_get_srcdir)/input1.in"
+
+ atf_check -o file:$(atf_get_srcdir)/simple_i.out -s eq:1 \
+ diff -i "$(atf_get_srcdir)/input_c1.in" "$(atf_get_srcdir)/input_c2.in"
+
+ atf_check -o file:$(atf_get_srcdir)/simple_w.out -s eq:1 \
+ diff -w "$(atf_get_srcdir)/input_c1.in" "$(atf_get_srcdir)/input_c2.in"
+
+ atf_check -o file:$(atf_get_srcdir)/simple_b.out -s eq:1 \
+ diff -b "$(atf_get_srcdir)/input_c1.in" "$(atf_get_srcdir)/input_c2.in"
+
+ atf_check -o file:$(atf_get_srcdir)/simple_p.out -s eq:1 \
+ diff --label input_c1.in --label input_c2.in -p "$(atf_get_srcdir)/input_c1.in" "$(atf_get_srcdir)/input_c2.in"
+}
+
+atf_test_case unified
+unified_head() {
+ atf_set "descr" "Test diff(1) with unified diffs"
+}
+
+unified_body()
+{
+ atf_check -o file:$(atf_get_srcdir)/unified_p.out -s eq:1 \
+ diff -up -L input_c1.in -L input_c2.in "$(atf_get_srcdir)/input_c1.in" "$(atf_get_srcdir)/input_c2.in"
+ atf_check -o file:$(atf_get_srcdir)/unified_9999.out -s eq:1 \
+ diff -U 9999 -L input_c1.in -L input_c2.in "$(atf_get_srcdir)/input_c1.in" "$(atf_get_srcdir)/input_c2.in"
+}
+
+atf_test_case header
+header_head() {
+ atf_set "descr" "Test diff(1) modification time headers"
+}
+
+header_body()
+{
+ export TZ=UTC
+ : > empty
+ echo hello > hello
+ touch -d 2015-04-03T01:02:03 empty
+ touch -d 2016-12-22T11:22:33 hello
+ atf_check -o "file:$(atf_get_srcdir)/header.out" -s eq:1 \
+ diff -u empty hello
+}
+
+atf_test_case header_ns
+header_ns_head() {
+ atf_set "descr" "Test diff(1) modification time headers with nanoseconds"
+}
+
+header_ns_body()
+{
+ export TZ=UTC
+ : > empty
+ echo hello > hello
+ touch -d 2015-04-03T01:02:03.123456789 empty
+ touch -d 2016-12-22T11:22:33.987654321 hello
+ atf_check -o "file:$(atf_get_srcdir)/header_ns.out" -s eq:1 \
+ diff -u empty hello
+}
+
+atf_test_case functionname
+functionname_head() {
+ atf_set "descr" "Test diff(1) C function option (-p)"
+}
+
+functionname_body()
+{
+ atf_check -o file:$(atf_get_srcdir)/functionname_c.out -s exit:1 \
+ diff -u -p -L functionname.in -L functionname_c.in \
+ "$(atf_get_srcdir)/functionname.in" "$(atf_get_srcdir)/functionname_c.in"
+}
+
atf_init_test_cases() {
atf_add_test_case mallocv
atf_add_test_case nomallocv
atf_add_test_case same
+ atf_add_test_case simple
+ atf_add_test_case unified
+ atf_add_test_case header
+ atf_add_test_case header_ns
+ atf_add_test_case functionname
}