tsort: Add unit tests.

MFC after:	1 week
Sponsored by:	Klara, Inc.
Reviewed by:	markj
Differential Revision:	https://reviews.freebsd.org/D40043
This commit is contained in:
Dag-Erling Smørgrav 2023-05-10 15:45:44 +02:00
parent b55bc49e86
commit 09aee57098
4 changed files with 79 additions and 0 deletions

View File

@ -1116,6 +1116,8 @@
..
truncate
..
tsort
..
units
..
unifdef

View File

@ -1,6 +1,11 @@
# @(#)Makefile 8.1 (Berkeley) 6/9/93
# $FreeBSD$
.include <src.opts.mk>
PROG= tsort
HAS_TESTS=
SUBDIR.${MK_TESTS}= tests
.include <bsd.prog.mk>

View File

@ -0,0 +1,6 @@
PACKAGE= tests
ATF_TESTS_SH= tsort_test
BINDIR= ${TESTSDIR}
.include <bsd.test.mk>

View File

@ -0,0 +1,66 @@
#
# Copyright (c) 2023 Klara, Inc.
#
# SPDX-License-Identifier: BSD-2-Clause
#
atf_test_case basic
basic_head()
{
atf_set "descr" "Sort a basic graph"
}
basic_body()
{
cat >input <<EOF
A B
A F
B C
B D
D E
EOF
cat >output <<EOF
A
F
B
D
C
E
EOF
atf_check -o file:output tsort input
atf_check -o file:output tsort <input
}
atf_test_case cycle
cycle_head()
{
atf_set "descr" "Sort a graph with a cycle"
}
cycle_body()
{
cat >input <<EOF
A B
A F
B C
B D
D E
D A
EOF
cat >output<<EOF
D
E
A
F
B
C
EOF
atf_check -e match:cycle -o file:output tsort input
atf_check -e match:cycle -o file:output tsort <input
atf_check -o file:output tsort -q input
atf_check -o file:output tsort -q <input
}
atf_init_test_cases()
{
atf_add_test_case basic
atf_add_test_case cycle
}