asa: Add some unit tests.
MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D40564
This commit is contained in:
parent
f08f90e698
commit
b7412da2e1
@ -902,6 +902,8 @@
|
||||
usr.bin
|
||||
apply
|
||||
..
|
||||
asa
|
||||
..
|
||||
awk
|
||||
bugs-fixed
|
||||
..
|
||||
|
@ -1,6 +1,7 @@
|
||||
# $NetBSD: Makefile,v 1.2 1995/03/25 18:04:51 glass Exp $
|
||||
# $FreeBSD$
|
||||
.include <src.opts.mk>
|
||||
|
||||
PROG= asa
|
||||
HAS_TESTS=
|
||||
SUBDIR.${MK_TESTS}= tests
|
||||
|
||||
.include <bsd.prog.mk>
|
||||
|
4
usr.bin/asa/tests/Makefile
Normal file
4
usr.bin/asa/tests/Makefile
Normal file
@ -0,0 +1,4 @@
|
||||
PACKAGE= tests
|
||||
ATF_TESTS_SH= asa_test
|
||||
|
||||
.include <bsd.test.mk>
|
99
usr.bin/asa/tests/asa_test.sh
Normal file
99
usr.bin/asa/tests/asa_test.sh
Normal file
@ -0,0 +1,99 @@
|
||||
#
|
||||
# Copyright (c) 2023 Klara, Inc.
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-2-Clause
|
||||
#
|
||||
|
||||
a="The magic words are"
|
||||
b="Squeamish Ossifrage"
|
||||
|
||||
atf_check_asa() {
|
||||
atf_check -o file:"$2" asa "$1"
|
||||
atf_check -o file:"$2" asa <"$1"
|
||||
atf_check -o file:"$2" asa - <"$1"
|
||||
}
|
||||
|
||||
atf_test_case space
|
||||
space_head() {
|
||||
atf_set descr "First character on line is ' '"
|
||||
}
|
||||
space_body() {
|
||||
printf " %s\n %s\n" "$a" "$b" >infile
|
||||
printf "%s\n%s\n" "$a" "$b" >outfile
|
||||
atf_check_asa infile outfile
|
||||
}
|
||||
|
||||
atf_test_case zero
|
||||
zero_head() {
|
||||
atf_set descr "First character on line is '0'"
|
||||
}
|
||||
zero_body() {
|
||||
printf " %s\n0%s\n" "$a" "$b" >infile
|
||||
printf "%s\n\n%s\n" "$a" "$b" >outfile
|
||||
atf_check_asa infile outfile
|
||||
}
|
||||
|
||||
atf_test_case one
|
||||
one_head() {
|
||||
atf_set descr "First character on line is '1'"
|
||||
}
|
||||
one_body() {
|
||||
printf " %s\n1%s\n" "$a" "$b" >infile
|
||||
printf "%s\f%s\n" "$a" "$b" >outfile
|
||||
atf_check_asa infile outfile
|
||||
}
|
||||
|
||||
atf_test_case plus
|
||||
plus_head() {
|
||||
atf_set descr "First character on line is '+'"
|
||||
}
|
||||
plus_body() {
|
||||
printf " %s\n+%s\n" "$a" "$b" >infile
|
||||
printf "%s\r%s\n" "$a" "$b" >outfile
|
||||
atf_check_asa infile outfile
|
||||
}
|
||||
|
||||
atf_test_case plus_top
|
||||
plus_top_head() {
|
||||
atf_set descr "First character in input is '+'"
|
||||
}
|
||||
plus_top_body() {
|
||||
printf "+%s\n+%s\n" "$a" "$b" >infile
|
||||
printf "%s\r%s\n" "$a" "$b" >outfile
|
||||
atf_check_asa infile outfile
|
||||
}
|
||||
|
||||
atf_test_case stdout
|
||||
stdout_head() {
|
||||
atf_set descr "Failure to write to stdout"
|
||||
}
|
||||
stdout_body() {
|
||||
(
|
||||
trap "" PIPE
|
||||
echo " $a $b" | asa 2>stderr
|
||||
echo $? >result
|
||||
) | true
|
||||
atf_check -o inline:"1\n" cat result
|
||||
atf_check -o match:"stdout" cat stderr
|
||||
}
|
||||
|
||||
atf_test_case dashdash
|
||||
dashdash_head() {
|
||||
atf_set descr "Use -- to end options"
|
||||
}
|
||||
dashdash_body() {
|
||||
echo " $a $b" >-infile
|
||||
atf_check -s not-exit:0 -e match:"illegal option" asa -infile
|
||||
atf_check -o inline:"$a $b\n" asa -- -infile
|
||||
}
|
||||
|
||||
atf_init_test_cases()
|
||||
{
|
||||
atf_add_test_case space
|
||||
atf_add_test_case zero
|
||||
atf_add_test_case one
|
||||
atf_add_test_case plus
|
||||
atf_add_test_case plus_top
|
||||
atf_add_test_case stdout
|
||||
atf_add_test_case dashdash
|
||||
}
|
Loading…
Reference in New Issue
Block a user