diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -51,6 +51,9 @@ # xargs -n1 | sort | uniq -d; # done +# 20250911: This tool is no longer needed +OLD_FILES+=usr/tests/bin/cp/sparse + # 20250826: Remove a misspelled manual OLD_FILES+=usr/share/man/man3/sysdecode_syscallnames.3.gz diff --git a/bin/cp/tests/Makefile b/bin/cp/tests/Makefile --- 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 diff --git a/bin/cp/tests/cp_test.sh b/bin/cp/tests/cp_test.sh --- a/bin/cp/tests/cp_test.sh +++ b/bin/cp/tests/cp_test.sh @@ -384,7 +384,7 @@ file_is_sparse() { - atf_check ${0%/*}/sparse "$1" + atf_check -o match:"^[0-9]+-[0-9]" stat -h "$1" } files_are_equal() diff --git a/bin/cp/tests/sparse.c b/bin/cp/tests/sparse.c deleted file mode 100644 --- a/bin/cp/tests/sparse.c +++ /dev/null @@ -1,73 +0,0 @@ -/*- - * Copyright (c) 2023 Klara, Inc. - * - * SPDX-License-Identifier: BSD-2-Clause - */ - -#include -#include -#include -#include -#include -#include -#include - -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); -}