Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F101316458
D2801.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
8 KB
Referenced Files
None
Subscribers
None
D2801.diff
View Options
Index: head/etc/mtree/BSD.tests.dist
===================================================================
--- head/etc/mtree/BSD.tests.dist
+++ head/etc/mtree/BSD.tests.dist
@@ -574,6 +574,8 @@
usr.sbin
etcupdate
..
+ fstyp
+ ..
newsyslog
..
nmtree
Index: head/usr.sbin/fstyp/Makefile
===================================================================
--- head/usr.sbin/fstyp/Makefile
+++ head/usr.sbin/fstyp/Makefile
@@ -13,6 +13,12 @@
WARNS?= 0
+.include <src.opts.mk>
+
+.if ${MK_TESTS} != "no"
+SUBDIR+= tests
+.endif
+
.if ${MK_ZFS} != "no"
IGNORE_PRAGMA= YES
Index: head/usr.sbin/fstyp/tests/Makefile
===================================================================
--- head/usr.sbin/fstyp/tests/Makefile
+++ head/usr.sbin/fstyp/tests/Makefile
@@ -0,0 +1,15 @@
+# $FreeBSD$
+
+TESTSDIR= ${TESTSBASE}/usr.sbin/fstyp
+
+ATF_TESTS_SH= fstyp_test
+
+FILES= ext2.img.bz2
+FILES+= ext3.img.bz2
+FILES+= ext4.img.bz2
+FILES+= ext4_with_label.img.bz2
+FILES+= ntfs.img.bz2
+FILES+= ntfs_with_label.img.bz2
+FILESDIR= ${TESTSDIR}
+
+.include <bsd.test.mk>
Index: head/usr.sbin/fstyp/tests/fstyp_test.sh
===================================================================
--- head/usr.sbin/fstyp/tests/fstyp_test.sh
+++ head/usr.sbin/fstyp/tests/fstyp_test.sh
@@ -0,0 +1,234 @@
+# $FreeBSD$
+
+atf_test_case cd9660
+cd9660_head() {
+ atf_set "descr" "fstyp(8) should detect cd9660 filesystems"
+}
+cd9660_body() {
+ atf_check -s exit:0 mkdir -p dir/emptydir # makefs requires a nonempty directory
+ atf_check -s exit:0 -o ignore makefs -t cd9660 -Z -s 64m cd9660.img dir
+ atf_check -s exit:0 -o inline:"cd9660\n" fstyp cd9660.img
+ atf_check -s exit:0 -o inline:"cd9660\n" fstyp -l cd9660.img
+}
+
+atf_test_case cd9660_label
+cd9660_label_head() {
+ atf_set "descr" "fstyp(8) can read the label on a cd9660 filesystem"
+}
+cd9660_label_body() {
+ atf_check -s exit:0 mkdir -p dir/emptydir # makefs requires a nonempty directory
+ atf_check -s exit:0 -o ignore makefs -t cd9660 -o label=Foo -Z -s 64m cd9660.img dir
+ atf_check -s exit:0 -o inline:"cd9660\n" fstyp cd9660.img
+ # Note: cd9660 labels are always upper case
+ atf_check -s exit:0 -o inline:"cd9660 FOO\n" fstyp -l cd9660.img
+}
+
+atf_test_case dir
+dir_head() {
+ atf_set "descr" "fstyp(8) should fail on a directory"
+}
+dir_body() {
+ atf_check -s exit:0 mkdir dir
+ atf_check -s exit:1 -e match:"not a disk" fstyp dir
+}
+
+atf_test_case empty
+empty_head() {
+ atf_set "descr" "fstyp(8) should fail on an empty file"
+}
+empty_body() {
+ atf_check -s exit:0 touch empty
+ atf_check -s exit:1 -e match:"filesystem not recognized" fstyp empty
+}
+
+atf_test_case ext2
+ext2_head() {
+ atf_set "descr" "fstyp(8) can detect ext2 filesystems"
+}
+ext2_body() {
+ bzcat $(atf_get_srcdir)/ext2.img.bz2 > ext2.img
+ atf_check -s exit:0 -o inline:"ext2fs\n" fstyp ext2.img
+ atf_check -s exit:0 -o inline:"ext2fs\n" fstyp -l ext2.img
+}
+
+atf_test_case ext3
+ext3_head() {
+ atf_set "descr" "fstyp(8) can detect ext3 filesystems"
+}
+ext3_body() {
+ bzcat $(atf_get_srcdir)/ext3.img.bz2 > ext3.img
+ atf_check -s exit:0 -o inline:"ext2fs\n" fstyp ext3.img
+ atf_check -s exit:0 -o inline:"ext2fs\n" fstyp -l ext3.img
+}
+
+atf_test_case ext4
+ext4_head() {
+ atf_set "descr" "fstyp(8) can detect ext4 filesystems"
+}
+ext4_body() {
+ bzcat $(atf_get_srcdir)/ext4.img.bz2 > ext4.img
+ atf_check -s exit:0 -o inline:"ext2fs\n" fstyp ext4.img
+ atf_check -s exit:0 -o inline:"ext2fs\n" fstyp -l ext4.img
+}
+
+atf_test_case ext4_label
+ext4_label_head() {
+ atf_set "descr" "fstyp(8) can read the label on an ext4 filesystem"
+}
+ext4_label_body() {
+ bzcat $(atf_get_srcdir)/ext4_with_label.img.bz2 > ext4_with_label.img
+ atf_check -s exit:0 -o inline:"ext2fs foo\n" fstyp -l ext4_with_label.img
+}
+
+atf_test_case fat12
+fat12_head() {
+ atf_set "descr" "fstyp(8) can detect FAT12 filesystems"
+}
+fat12_body() {
+ atf_check -s exit:0 truncate -s 64m msdos.img
+ atf_check -s exit:0 -o ignore -e ignore newfs_msdos -F 12 ./msdos.img
+ atf_check -s exit:0 -o inline:"msdosfs\n" fstyp msdos.img
+ atf_check -s exit:0 -o inline:"msdosfs\n" fstyp -l msdos.img
+}
+
+atf_test_case fat16
+fat16_head() {
+ atf_set "descr" "fstyp(8) can detect FAT16 filesystems"
+}
+fat16_body() {
+ atf_check -s exit:0 truncate -s 64m msdos.img
+ atf_check -s exit:0 -o ignore -e ignore newfs_msdos -F 16 ./msdos.img
+ atf_check -s exit:0 -o inline:"msdosfs\n" fstyp msdos.img
+ atf_check -s exit:0 -o inline:"msdosfs\n" fstyp -l msdos.img
+}
+
+atf_test_case fat32
+fat32_head() {
+ atf_set "descr" "fstyp(8) can detect FAT32 filesystems"
+}
+fat32_body() {
+ atf_check -s exit:0 truncate -s 64m msdos.img
+ atf_check -s exit:0 -o ignore -e ignore newfs_msdos -F 32 -c 1 \
+ ./msdos.img
+ atf_check -s exit:0 -o inline:"msdosfs\n" fstyp msdos.img
+ atf_check -s exit:0 -o inline:"msdosfs\n" fstyp -l msdos.img
+}
+
+atf_test_case fat32_label
+fat32_label_head() {
+ atf_set "descr" "fstyp(8) can read the label on an msdos filesystem"
+}
+fat32_label_body() {
+ atf_check -s exit:0 truncate -s 64m msdos.img
+ atf_check -s exit:0 -o ignore -e ignore newfs_msdos -F 32 -L Foo -c 1 \
+ ./msdos.img
+ atf_check -s exit:0 -o inline:"msdosfs\n" fstyp msdos.img
+ # Note: msdos labels are always upper case
+ atf_check -s exit:0 -o inline:"msdosfs FOO\n" fstyp -l msdos.img
+}
+
+atf_test_case ntfs
+ntfs_head() {
+ atf_set "descr" "fstyp(8) can detect ntfs filesystems"
+}
+ntfs_body() {
+ bzcat $(atf_get_srcdir)/ntfs.img.bz2 > ntfs.img
+ atf_check -s exit:0 -o inline:"ntfs\n" fstyp ntfs.img
+ atf_check -s exit:0 -o inline:"ntfs\n" fstyp -l ntfs.img
+}
+
+atf_test_case ntfs_with_label
+ntfs_with_label_head() {
+ atf_set "descr" "fstyp(8) can read labels on ntfs filesystems"
+}
+ntfs_with_label_body() {
+ bzcat $(atf_get_srcdir)/ntfs_with_label.img.bz2 > ntfs_with_label.img
+ atf_check -s exit:0 -o inline:"ntfs\n" fstyp ntfs_with_label.img
+ atf_check -s exit:0 -o inline:"ntfs Foo\n" fstyp -l ntfs_with_label.img
+}
+
+atf_test_case ufs1
+ufs1_head() {
+ atf_set "descr" "fstyp(8) should detect UFS version 1 filesystems"
+}
+ufs1_body() {
+ atf_check -s exit:0 mkdir dir
+ atf_check -s exit:0 -o ignore makefs -Z -s 64m ufs.img dir
+ atf_check -s exit:0 -o inline:"ufs\n" fstyp ufs.img
+ atf_check -s exit:0 -o inline:"ufs\n" fstyp -l ufs.img
+}
+
+atf_test_case ufs2
+ufs2_head() {
+ atf_set "descr" "fstyp(8) should detect UFS version 2 filesystems"
+}
+ufs2_body() {
+ atf_check -s exit:0 mkdir dir
+ atf_check -s exit:0 -o ignore makefs -o version=2 -Z -s 64m ufs.img dir
+ atf_check -s exit:0 -o inline:"ufs\n" fstyp ufs.img
+ atf_check -s exit:0 -o inline:"ufs\n" fstyp -l ufs.img
+}
+
+atf_test_case ufs2_label
+ufs2_label_head() {
+ atf_set "descr" "fstyp(8) can read the label on a UFS v2 filesystem"
+}
+ufs2_label_body() {
+ atf_check -s exit:0 mkdir dir
+ atf_check -s exit:0 -o ignore makefs -o version=2,label="foo" -Z -s 64m ufs.img dir
+ atf_check -s exit:0 -o inline:"ufs foo\n" fstyp -l ufs.img
+}
+
+atf_test_case ufs_on_device cleanup
+ufs_on_device_head() {
+ atf_set "descr" "fstyp(8) should work on device nodes"
+ atf_set "require.user" "root"
+}
+ufs_on_device_body() {
+ mdconfig -a -t swap -s 64m > mdname
+ md=$(cat mdname)
+ if [ -z "$md" ]; then
+ atf_fail "Failed to create md(4) device"
+ fi
+ atf_check -s exit:0 -o ignore newfs -L foo /dev/$md
+ atf_check -s exit:0 -o inline:"ufs\n" fstyp /dev/$md
+ atf_check -s exit:0 -o inline:"ufs foo\n" fstyp -l /dev/$md
+}
+ufs_on_device_cleanup() {
+ md=$(cat mdname)
+ if [ -n "$md" ]; then
+ mdconfig -d -u "$md"
+ fi
+}
+
+atf_test_case zeros
+zeros_head() {
+ atf_set "descr" "fstyp(8) should fail on a zero-filled file"
+}
+zeros_body() {
+ atf_check -s exit:0 truncate -s 256m zeros
+ atf_check -s exit:1 -e match:"filesystem not recognized" fstyp zeros
+}
+
+
+atf_init_test_cases() {
+ atf_add_test_case cd9660
+ atf_add_test_case cd9660_label
+ atf_add_test_case dir
+ atf_add_test_case empty
+ atf_add_test_case ext2
+ atf_add_test_case ext3
+ atf_add_test_case ext4
+ atf_add_test_case ext4_label
+ atf_add_test_case fat12
+ atf_add_test_case fat16
+ atf_add_test_case fat32
+ atf_add_test_case fat32_label
+ atf_add_test_case ntfs
+ atf_add_test_case ntfs_with_label
+ atf_add_test_case ufs1
+ atf_add_test_case ufs2
+ atf_add_test_case ufs2_label
+ atf_add_test_case ufs_on_device
+ atf_add_test_case zeros
+}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Oct 28, 5:00 PM (21 h, 38 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14369601
Default Alt Text
D2801.diff (8 KB)
Attached To
Mode
D2801: Add ATF tests for fstyp(8)
Attached
Detach File
Event Timeline
Log In to Comment