The branch main has been updated by jlduran: URL: https://cgit.FreeBSD.org/src/commit/?id=96efda9cd55689ef3fa067281d8b0a42a7122536
commit 96efda9cd55689ef3fa067281d8b0a42a7122536 Author: Jose Luis Duran <[email protected]> AuthorDate: 2026-01-05 20:33:27 +0000 Commit: Jose Luis Duran <[email protected]> CommitDate: 2026-01-05 20:33:27 +0000 makefs: tests: Fix -D flag test As stated in the manual page: -F is almost certainly not the option you are looking for. To create an image from a list of files in an mtree format manifest, specify it as the last argument on the command line, not as the argument to -F. This change does exactly that. Also bug #192839 has already been fixed. Reviewed by: ngie MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D54428 --- usr.sbin/makefs/tests/makefs_cd9660_tests.sh | 24 +++++++++++++----------- usr.sbin/makefs/tests/makefs_ffs_tests.sh | 24 +++++++++++++----------- usr.sbin/makefs/tests/makefs_tests_common.sh | 8 ++++++++ 3 files changed, 34 insertions(+), 22 deletions(-) diff --git a/usr.sbin/makefs/tests/makefs_cd9660_tests.sh b/usr.sbin/makefs/tests/makefs_cd9660_tests.sh index 5b1a53443290..21382684a96c 100644 --- a/usr.sbin/makefs/tests/makefs_cd9660_tests.sh +++ b/usr.sbin/makefs/tests/makefs_cd9660_tests.sh @@ -61,21 +61,23 @@ check_base_iso9660_image_contents() atf_test_case D_flag D_flag_body() { - atf_skip "makefs crashes with SIGBUS with dupe mtree entries; see FreeBSD bug # 192839" - create_test_inputs - atf_check -o save:$TEST_SPEC_FILE mtree -cp $TEST_INPUTS_DIR - atf_check -o not-empty \ - $MAKEFS -F $TEST_SPEC_FILE -M 1m $TEST_IMAGE $TEST_INPUTS_DIR + create_manifest_file + + # Check that it works + atf_check $MAKEFS -M 1m $TEST_IMAGE $TEST_SPEC_FILE - atf_check cp $TEST_SPEC_FILE spec2.mtree - atf_check -o save:${TEST_SPEC_FILE}_dupe cat $TEST_SPEC_FILE spec2.mtree + # Duplicate entries in the manifest file + cp $TEST_SPEC_FILE spec2.mtree + cat $TEST_SPEC_FILE spec2.mtree | sort > "${TEST_SPEC_FILE}_dupe" - atf_check -o not-empty -s not-exit:0 \ - $MAKEFS -F ${TEST_SPEC_FILE}_dupe -M 1m $TEST_IMAGE $TEST_INPUTS_DIR - atf_check -o not-empty \ - $MAKEFS -D -F ${TEST_SPEC_FILE}_dupe -M 1m $TEST_IMAGE $TEST_INPUTS_DIR + # Check that it errors + atf_check -e not-empty -s not-exit:0 \ + $MAKEFS -M 1m $TEST_IMAGE ${TEST_SPEC_FILE}_dupe + # Check that it warns + atf_check -e not-empty \ + $MAKEFS -D -M 1m $TEST_IMAGE ${TEST_SPEC_FILE}_dupe } atf_test_case F_flag cleanup diff --git a/usr.sbin/makefs/tests/makefs_ffs_tests.sh b/usr.sbin/makefs/tests/makefs_ffs_tests.sh index 6b8fb4afd707..e1db5fa1b997 100644 --- a/usr.sbin/makefs/tests/makefs_ffs_tests.sh +++ b/usr.sbin/makefs/tests/makefs_ffs_tests.sh @@ -74,21 +74,23 @@ autocalculate_image_size_cleanup() atf_test_case D_flag D_flag_body() { - atf_skip "makefs crashes with SIGBUS with dupe mtree entries; see FreeBSD bug # 192839" - create_test_inputs - atf_check -o save:$TEST_SPEC_FILE mtree -cp $TEST_INPUTS_DIR - atf_check -o not-empty \ - $MAKEFS -F $TEST_SPEC_FILE -M 1m $TEST_IMAGE $TEST_INPUTS_DIR + create_manifest_file - atf_check cp $TEST_SPEC_FILE spec2.mtree - atf_check -o save:${TEST_SPEC_FILE}_dupe cat $TEST_SPEC_FILE spec2.mtree + # Check that it works + atf_check -o not-empty $MAKEFS -M 1m $TEST_IMAGE $TEST_SPEC_FILE - atf_check -o not-empty -s not-exit:0 \ - $MAKEFS -F ${TEST_SPEC_FILE}_dupe -M 1m $TEST_IMAGE $TEST_INPUTS_DIR - atf_check -o not-empty \ - $MAKEFS -D -F ${TEST_SPEC_FILE}_dupe -M 1m $TEST_IMAGE $TEST_INPUTS_DIR + # Duplicate entries in the manifest file + cp $TEST_SPEC_FILE spec2.mtree + cat $TEST_SPEC_FILE spec2.mtree | sort > "${TEST_SPEC_FILE}_dupe" + + # Check that it errors + atf_check -e not-empty -s not-exit:0 \ + $MAKEFS -M 1m $TEST_IMAGE ${TEST_SPEC_FILE}_dupe + # Check that it warns + atf_check -e not-empty -o not-empty \ + $MAKEFS -D -M 1m $TEST_IMAGE ${TEST_SPEC_FILE}_dupe } atf_test_case F_flag cleanup diff --git a/usr.sbin/makefs/tests/makefs_tests_common.sh b/usr.sbin/makefs/tests/makefs_tests_common.sh index fa2cbaff9521..44b02557925a 100644 --- a/usr.sbin/makefs/tests/makefs_tests_common.sh +++ b/usr.sbin/makefs/tests/makefs_tests_common.sh @@ -79,6 +79,14 @@ check_image_contents() -p $TEST_MOUNT_DIR $mtree_excludes_arg } +create_manifest_file() +{ + # Prefer a specification format that is easier to parse (-C) + mtree -k "$DEFAULT_MTREE_KEYWORDS" -cp "$TEST_INPUTS_DIR" | \ + mtree -C > "$TEST_SPEC_FILE" + sed -i "" "s|^\.|.${TEST_INPUTS_DIR##$TMPDIR}|g" "$TEST_SPEC_FILE" +} + create_test_dirs() { atf_check mkdir -m 0777 -p $TEST_MOUNT_DIR
