git: 96efda9cd556 - main - makefs: tests: Fix -D flag test
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 05 Jan 2026 20:38:54 UTC
The branch main has been updated by jlduran:
URL: https://cgit.FreeBSD.org/src/commit/?id=96efda9cd55689ef3fa067281d8b0a42a7122536
commit 96efda9cd55689ef3fa067281d8b0a42a7122536
Author: Jose Luis Duran <jlduran@FreeBSD.org>
AuthorDate: 2026-01-05 20:33:27 +0000
Commit: Jose Luis Duran <jlduran@FreeBSD.org>
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