Date: Wed, 7 May 2025 09:52:40 GMT From: Lexi Winter <ivy@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: 6f2b1b56ac3d - main - column(1): add tests Message-ID: <202505070952.5479qe0v071616@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=6f2b1b56ac3dd154bd98f5a7ea075abcb4356560 commit 6f2b1b56ac3dd154bd98f5a7ea075abcb4356560 Author: Lexi Winter <ivy@FreeBSD.org> AuthorDate: 2025-05-07 09:27:20 +0000 Commit: Lexi Winter <ivy@FreeBSD.org> CommitDate: 2025-05-07 09:27:20 +0000 column(1): add tests Reviewed by: des Approved by: des (mentor) Differential Revision: https://reviews.freebsd.org/D49911 --- etc/mtree/BSD.tests.dist | 2 + usr.bin/column/Makefile | 5 ++ usr.bin/column/tests/Makefile | 3 + usr.bin/column/tests/column.sh | 170 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 180 insertions(+) diff --git a/etc/mtree/BSD.tests.dist b/etc/mtree/BSD.tests.dist index bb62c44403d2..bfd21607ed4d 100644 --- a/etc/mtree/BSD.tests.dist +++ b/etc/mtree/BSD.tests.dist @@ -1087,6 +1087,8 @@ .. col .. + column + .. comm .. compress diff --git a/usr.bin/column/Makefile b/usr.bin/column/Makefile index b0b88c086b41..5ead3de91932 100644 --- a/usr.bin/column/Makefile +++ b/usr.bin/column/Makefile @@ -1,3 +1,8 @@ +.include <src.opts.mk> + PROG= column +HAS_TESTS= +SUBDIR.${MK_TESTS}= tests + .include <bsd.prog.mk> diff --git a/usr.bin/column/tests/Makefile b/usr.bin/column/tests/Makefile new file mode 100644 index 000000000000..40a7767f0dc0 --- /dev/null +++ b/usr.bin/column/tests/Makefile @@ -0,0 +1,3 @@ +ATF_TESTS_SH= column + +.include <bsd.test.mk> diff --git a/usr.bin/column/tests/column.sh b/usr.bin/column/tests/column.sh new file mode 100644 index 000000000000..c7c6502098d4 --- /dev/null +++ b/usr.bin/column/tests/column.sh @@ -0,0 +1,170 @@ +# SPDX-License-Identifier: ISC +# +# Copyright (c) 2025 Lexi Winter +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +atf_test_case "basic" +basic_head() +{ + atf_set descr "Basic column(1) with default options" +} + +basic_body() +{ + cat >input.1 <<END +this is the first input file +it has multiple lines +END + + cat >input.2 <<END +here lies the second input file +some lines + +are empty +END + + cat >input.3 <<END +third of the input files am i +and i have +more +lines +than before +END + + cat >expected <<END +this is the first input file are empty lines +it has multiple lines third of the input files am i than before +here lies the second input file and i have +some lines more +END + + atf_check -o save:output column -c120 input.1 input.2 input.3 + atf_check diff expected output +} + +atf_test_case "rows" +rows_head() +{ + atf_set descr "column(1) with -x (row-wise) option" +} + +rows_body() +{ + cat >input.1 <<END +this is the first input file +it has multiple lines +END + + cat >input.2 <<END +here lies the second input file +some lines + +are empty +END + + cat >input.3 <<END +third of the input files am i +and i have +more +lines +than before +END + + cat >expected <<END +this is the first input file it has multiple lines here lies the second input file +some lines are empty third of the input files am i +and i have more lines +than before +END + + atf_check -o save:output column -xc120 input.1 input.2 input.3 + atf_check diff expected output +} + +atf_test_case "basic_table" +basic_table_head() +{ + atf_set descr "column(1) with -t (table) option" +} + +basic_table_body() +{ + cat >input.1 <<END +1 2 3 4 +foo bar baz quux +END + + cat >input.2 <<END +fie fi fo fum +END + + cat >input.3 <<END +where did my +fields go +argh +END + + cat >expected <<END +1 2 3 4 +foo bar baz quux +fie fi fo fum +where did my +fields go +argh +END + + atf_check -o save:output column -tc120 input.1 input.2 input.3 + atf_check diff expected output +} + +atf_test_case "colonic_table" +colonic_table_head() +{ + atf_set descr "column(1) with -t (table) and -s options" +} + +colonic_table_body() +{ + cat >input <<END +one:two.three +four.five:six +seven.:eight.:nine +:ein +::zwei +drei.. +vier: + +END + + cat >expected <<END +one two three +four five six +seven eight nine +ein +zwei +drei +vier +END + + atf_check -o save:output column -tc120 -s:. input + atf_check diff expected output +} + +atf_init_test_cases() +{ + atf_add_test_case basic + atf_add_test_case rows + atf_add_test_case basic_table + atf_add_test_case colonic_table +}
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202505070952.5479qe0v071616>