diff options
Diffstat (limited to 'bin/cp/tests')
-rw-r--r-- | bin/cp/tests/Makefile | 2 | ||||
-rwxr-xr-x | bin/cp/tests/cp_test.sh | 10 | ||||
-rw-r--r-- | bin/cp/tests/sparse.c | 73 |
3 files changed, 5 insertions, 80 deletions
diff --git a/bin/cp/tests/Makefile b/bin/cp/tests/Makefile index 3fa9ae8f0685..a1917ada8fbf 100644 --- a/bin/cp/tests/Makefile +++ b/bin/cp/tests/Makefile @@ -1,7 +1,5 @@ PACKAGE= tests ATF_TESTS_SH= cp_test -PROGS+= sparse -BINDIR= ${TESTSDIR} .include <bsd.test.mk> diff --git a/bin/cp/tests/cp_test.sh b/bin/cp/tests/cp_test.sh index 999993bfad67..b637f862b7d3 100755 --- a/bin/cp/tests/cp_test.sh +++ b/bin/cp/tests/cp_test.sh @@ -90,7 +90,7 @@ hardlink_body() echo "foo" >foo atf_check cp -l foo bar atf_check -o inline:"foo\n" cat bar - atf_check_equal "$(stat -f%d,%i foo)" "$(stat -f%d,%i bar)" + atf_check test foo -ef bar } atf_test_case hardlink_exists @@ -105,7 +105,7 @@ hardlink_exists_body() echo "bar" >bar atf_check -s not-exit:0 -e match:exists cp -l foo bar atf_check -o inline:"bar\n" cat bar - atf_check_not_equal "$(stat -f%d,%i foo)" "$(stat -f%d,%i bar)" + atf_check test ! foo -ef bar } atf_test_case hardlink_exists_force @@ -120,7 +120,7 @@ hardlink_exists_force_body() echo "bar" >bar atf_check cp -fl foo bar atf_check -o inline:"foo\n" cat bar - atf_check_equal "$(stat -f%d,%i foo)" "$(stat -f%d,%i bar)" + atf_check test foo -ef bar } atf_test_case matching_srctgt @@ -384,12 +384,12 @@ samefile_body() file_is_sparse() { - atf_check ${0%/*}/sparse "$1" + atf_check -o match:"^[0-9]+-[0-9]" stat -h "$1" } files_are_equal() { - atf_check_not_equal "$(stat -f%d,%i "$1")" "$(stat -f%d,%i "$2")" + atf_check test ! "$1" -ef "$2" atf_check cmp "$1" "$2" } diff --git a/bin/cp/tests/sparse.c b/bin/cp/tests/sparse.c deleted file mode 100644 index 78957581a56c..000000000000 --- a/bin/cp/tests/sparse.c +++ /dev/null @@ -1,73 +0,0 @@ -/*- - * Copyright (c) 2023 Klara, Inc. - * - * SPDX-License-Identifier: BSD-2-Clause - */ - -#include <err.h> -#include <fcntl.h> -#include <stdbool.h> -#include <stdio.h> -#include <stdlib.h> -#include <sysexits.h> -#include <unistd.h> - -static bool verbose; - -/* - * Returns true if the file named by its argument is sparse, i.e. if - * seeking to SEEK_HOLE returns a different value than seeking to - * SEEK_END. - */ -static bool -sparse(const char *filename) -{ - off_t hole, end; - int fd; - - if ((fd = open(filename, O_RDONLY)) < 0 || - (hole = lseek(fd, 0, SEEK_HOLE)) < 0 || - (end = lseek(fd, 0, SEEK_END)) < 0) - err(1, "%s", filename); - close(fd); - if (end > hole) { - if (verbose) - printf("%s: hole at %zu\n", filename, (size_t)hole); - return (true); - } - return (false); -} - -static void -usage(void) -{ - - fprintf(stderr, "usage: sparse [-v] file [...]\n"); - exit(EX_USAGE); -} - -int -main(int argc, char *argv[]) -{ - int opt, rv; - - while ((opt = getopt(argc, argv, "v")) != -1) { - switch (opt) { - case 'v': - verbose = true; - break; - default: - usage(); - break; - } - } - argc -= optind; - argv += optind; - if (argc == 0) - usage(); - rv = EXIT_SUCCESS; - while (argc-- > 0) - if (!sparse(*argv++)) - rv = EXIT_FAILURE; - exit(rv); -} |