e2fsprogs/tests
Theodore Ts'o 0355d6d047 Fix build system to be compatible with BSD pmake
This fixes a number of incompatibilities which caused maint branch to
fail to build on on FreeBSD.  Also fix the Makefile in the tests
directory so that "make -jN check" works correctly on FreeBSD.

Previously the Makefile in the tests directory used a construct which
was specific to GNU Make, which which silently expanded to an empty
list, which caused "make check" to be a no-op when running using BSD's
pmake.  This Makefile has been changed to use the != macro assignment
syntax which is common to GNU make and BSD pmake.  It's technically
not completely portable (it will not be recognized by Solaris's ccs
make, for example), but most other operating systems ship GNU make
(Solaris, AIX), or BSD pmake (*BSD, Mac OS) as either the primary or
alternative make utility that this should an acceptable compromise,
since it makes running all of tests using something like "make -j8
check" or "make -j16 check" run *much* faster.

There are still some caveats if using BSD pmake; in particular, if the
configure script is run on a system which has GNU make (installed as
gmake on FreeBSD for example), the configure script will find it, and
enable some GNU make features in the Makefile, and the generated
makefiles *must* be built using gmake.  However, if isolated build
jail / chroot is used which only has pmake, the Makefiles should now
work with pmake.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
2016-01-02 01:29:55 -05:00
..
d_loaddump tests: clean up sed filtering of test output 2013-06-15 18:44:09 -04:00
d_special_files Fix up workarounds for dietlibc breakage 2014-01-09 12:22:03 -05:00
defaults tests: use make rules to run tests in parallel 2012-05-29 08:41:26 -04:00
e_brel_bma tests: use make rules to run tests in parallel 2012-05-29 08:41:26 -04:00
e_icount_normal tests: use make rules to run tests in parallel 2012-05-29 08:41:26 -04:00
e_icount_opt Many files: 1997-04-29 17:48:10 +00:00
e_irel_ima tests: use make rules to run tests in parallel 2012-05-29 08:41:26 -04:00
f_8192_block Do sanity checking of the number of blocks and inodes in a group for 2002-06-10 11:05:56 -06:00
f_16384_block Do sanity checking of the number of blocks and inodes in a group for 2002-06-10 11:05:56 -06:00
f_bad_disconnected_inode e2fsck: remove EXT4_EOFBLOCKS_FL flag handling 2012-03-22 19:42:11 -04:00
f_bad_local_jnl Add support for backing up the journal inode location in the 2003-08-21 00:40:26 -04:00
f_badbblocks e2fsck: Interpret negative blkcount in file system problem reports 2009-10-04 18:02:24 -04:00
f_badcluster tests: fix f_badcluster output formatting 2014-08-01 21:40:47 -04:00
f_baddir e2fsck: fix mysterious "FILE SYSTEM WAS MODIFIED" with no changes 2011-06-16 01:22:02 -04:00
f_baddir2 e2fsck: Interpret negative blkcount in file system problem reports 2009-10-04 18:02:24 -04:00
f_baddotdir Many files: 1997-10-03 17:48:10 +00:00
f_badinode On-disk format definition for huge files 2006-11-11 06:32:03 -05:00
f_badjour_indblks e2fsck: Remove "ext3" from problem descriptions of the journal 2009-01-01 23:10:40 -05:00
f_badjourblks e2fsck: Remove "ext3" from problem descriptions of the journal 2009-01-01 23:10:40 -05:00
f_badorphan Add support for backing up the journal inode location in the 2003-08-21 00:40:26 -04:00
f_badprimary Clean up e2fsck problem description messages for typo's and to make them 2005-06-19 09:45:36 -04:00
f_badroot libext2fs: display partial path if fs corrupted in ext2fs_get_pathname() 2012-01-17 15:38:31 -05:00
f_badsymlinks Overhaul extended attribute handling. Should now be correct with 2002-08-17 10:19:44 -04:00
f_badtable Overhaul extended attribute handling. Should now be correct with 2002-08-17 10:19:44 -04:00
f_bbfile Make e2fsck Pass 1C header consistent with the other headers 2005-07-04 13:08:37 -05:00
f_bbinode E2fsck now prints ranges in pass 5 when printing deltas in 2002-03-07 02:47:07 -05:00
f_big_sparse libext2fs: provide a function to set inode size 2014-07-26 14:34:56 -04:00
f_bitmaps Many files: 1997-10-03 17:48:10 +00:00
f_boundscheck libext2fs: fix bounds check of the bitmap test range in get_free_blocks2 2014-07-25 07:11:57 -04:00
f_clear_xattr Fix e2fsck to not delete symlinks that contain an extended attribute after 2005-01-27 14:28:41 -05:00
f_crashdisk e2fsck: improve the "superblock corrupt" message 2014-01-04 19:11:30 -05:00
f_desc_size_128 debugfs, e2fsck: fix s_desc_size handling 2013-12-24 22:50:19 -05:00
f_desc_size_bad debugfs, e2fsck: fix s_desc_size handling 2013-12-24 22:50:19 -05:00
f_dir_bad_mode e2fsck: Recover a special file which looks an awful lot like a directory 2007-04-02 10:08:59 -04:00
f_dirlink Many files: 1997-04-29 14:53:37 +00:00
f_dup e2fsck: fix mysterious "FILE SYSTEM WAS MODIFIED" with no changes 2011-06-16 01:22:02 -04:00
f_dup2 e2fsck: fix mysterious "FILE SYSTEM WAS MODIFIED" with no changes 2011-06-16 01:22:02 -04:00
f_dup3 libext2fs: Don't use the extended rec_len encoding for standard file systems 2010-12-22 13:53:02 -05:00
f_dup4 Fix up workarounds for dietlibc breakage 2014-01-09 12:22:03 -05:00
f_dup_ba tests: add test case for multiply claimed blocks with bigalloc 2011-11-28 11:03:08 -05:00
f_dup_de tests: use make rules to run tests in parallel 2012-05-29 08:41:26 -04:00
f_dup_de2 e2fsck: Fix duplicate directory entries for non-indexed directories 2009-11-16 21:56:24 -05:00
f_dup_resize debugfs: fix string_to_time for MacOS strptime() 2014-05-22 17:52:23 -04:00
f_dupdot libext2fs: display partial path if fs corrupted in ext2fs_get_pathname() 2012-01-17 15:38:31 -05:00
f_dupfsblks libext2fs: Don't use the extended rec_len encoding for standard file systems 2010-12-22 13:53:02 -05:00
f_dupsuper Make e2fsck Pass 1C header consistent with the other headers 2005-07-04 13:08:37 -05:00
f_ea_checks e2fsprogs-tests-f_ea_checks.patch 2008-02-18 21:45:33 -05:00
f_emptydir e2fsck: always submit logical block 0 of a directory for pass 2 2014-07-25 08:39:45 -04:00
f_end-bitmap e2fsck: fix mysterious "FILE SYSTEM WAS MODIFIED" with no changes 2011-06-16 01:22:02 -04:00
f_eofblocks tests: add new test f_eofblocks 2012-04-10 23:50:37 -04:00
f_expand libext2fs: display partial path if fs corrupted in ext2fs_get_pathname() 2012-01-17 15:38:31 -05:00
f_ext_journal tests: use make rules to run tests in parallel 2012-05-29 08:41:26 -04:00
f_ext_zero_len e2fsck: check for zero length extent 2012-03-11 23:31:38 -04:00
f_extent_bad_node Add e2fsck regression test case f_extent_bad_node 2008-12-25 22:47:03 -05:00
f_extent_htree e2fsck: fix e2fsck -fD directory truncation 2015-11-30 15:26:35 -05:00
f_extent_interior_start_lblk tests: add test of an incorrect interior node in an extent tree 2012-12-20 21:48:08 -05:00
f_extent_oobounds tests: use the in-tree binaries in the test f_extent_oobounds 2013-12-24 22:50:23 -05:00
f_extents e2fsck: zap extent-format inode with no extent header 2015-11-30 15:22:07 -05:00
f_extents2 e2fsck: Fix double-counting of non-contiguous extent-based inodes 2008-12-22 01:23:59 -05:00
f_extra_journal e2fsck: make a prompt message simpler and thus translatable 2014-06-03 22:04:28 -04:00
f_fast_symlink_extents Add new test case to check e2fsck's response to fast symlinks w/ EXTENTS_FL 2008-03-24 08:24:45 -04:00
f_file_acl_high e2fsck: On a 32-bit filesystem, make sure i_file_acl_high is zero 2009-04-23 21:31:16 -04:00
f_filetype Overhaul extended attribute handling. Should now be correct with 2002-08-17 10:19:44 -04:00
f_first_meta_bg_too_big tests: add f_first_meta_bg_too_big test 2014-08-10 16:21:31 -04:00
f_full_bg e2fsck: Fix check to see if an extent-based file is fragmented 2008-08-10 22:43:24 -04:00
f_h_badnode e2fsck: fix e2fsck -fD directory truncation 2015-11-30 15:26:35 -05:00
f_h_badroot tests: use make rules to run tests in parallel 2012-05-29 08:41:26 -04:00
f_h_normal tests: use make rules to run tests in parallel 2012-05-29 08:41:26 -04:00
f_h_reindex tests: use make rules to run tests in parallel 2012-05-29 08:41:26 -04:00
f_h_unsigned tests: use make rules to run tests in parallel 2012-05-29 08:41:26 -04:00
f_holedir e2fsck: Fix directory i_size handling 2008-03-13 00:58:54 -04:00
f_holedir2 e2fsck: collapse holes in extent-based directories 2014-07-25 08:30:11 -04:00
f_holedir3 e2fsck: collapse holes in extent-based directories 2014-07-25 08:30:11 -04:00
f_hugedir_blocks e2fsck: pass2 should not process directory blocks that are impossibly large 2014-07-25 08:41:11 -04:00
f_hurd ChangeLog, problem.c, problem.h, super.c: 2000-05-08 13:33:17 +00:00
f_illbbitmap e2fsck: report ext2fs_open2() and ext2fs_check_desc() errors 2012-03-21 23:40:24 -04:00
f_illibitmap e2fsck: report ext2fs_open2() and ext2fs_check_desc() errors 2012-03-21 23:40:24 -04:00
f_illitable e2fsck: reserve blocks for root/lost+found directory repair 2014-07-26 15:45:42 -04:00
f_illitable_flexbg e2fsck: report ext2fs_open2() and ext2fs_check_desc() errors 2012-03-21 23:40:24 -04:00
f_imagic Overhaul extended attribute handling. Should now be correct with 2002-08-17 10:19:44 -04:00
f_imagic_fs tests: use make rules to run tests in parallel 2012-05-29 08:41:26 -04:00
f_invalid_bad_inode e2fsck: check for invalid bad block inode 2011-09-28 18:34:33 -04:00
f_invalid_extent_symlink e2fsck: correctly deallocate invalid extent-mapped symlinks 2013-07-28 22:03:01 -04:00
f_jnl_32bit tests: clean up sed filtering of test output 2013-06-15 18:44:09 -04:00
f_jnl_64bit tests: clean up sed filtering of test output 2013-06-15 18:44:09 -04:00
f_jnl_errno tests: clean up sed filtering of test output 2013-06-15 18:44:09 -04:00
f_journal Add support for backing up the journal inode location in the 2003-08-21 00:40:26 -04:00
f_lotsbad Check for inodes which are too big (either too many blocks, or 2002-05-21 21:19:14 -04:00
f_lpf e2fsck: fix mysterious "FILE SYSTEM WAS MODIFIED" with no changes 2011-06-16 01:22:02 -04:00
f_lpf2 Fix bug in e2fsck: When reconnecting a directory, we may 2003-12-12 03:00:56 -05:00
f_lpffile Overhaul extended attribute handling. Should now be correct with 2002-08-17 10:19:44 -04:00
f_messy_inode E2fsck now prints ranges in pass 5 when printing deltas in 2002-03-07 02:47:07 -05:00
f_miss_blk_bmap e2fsck: report ext2fs_open2() and ext2fs_check_desc() errors 2012-03-21 23:40:24 -04:00
f_miss_journal e2fsck: Remove "ext3" from problem descriptions of the journal 2009-01-01 23:10:40 -05:00
f_misstable e2fsck: report ext2fs_open2() and ext2fs_check_desc() errors 2012-03-21 23:40:24 -04:00
f_mke2fs2b Overhaul extended attribute handling. Should now be correct with 2002-08-17 10:19:44 -04:00
f_mmp tests: fix left-over e2fsprogs-tmp files not getting clean up 2014-07-04 16:39:49 -04:00
f_mmp_garbage tests: fix left-over e2fsprogs-tmp files not getting clean up 2014-07-04 16:39:49 -04:00
f_noroot Overhaul extended attribute handling. Should now be correct with 2002-08-17 10:19:44 -04:00
f_okgroup e2fsck: avoid unnecessary reboots in some cases when checking the root fs 2011-09-30 23:12:37 -04:00
f_orphan ChangeLog, hold_inode.c, random_exercise.c: 2000-08-20 21:48:45 +00:00
f_orphan_dotdot_ft libext2fs: display partial path if fs corrupted in ext2fs_get_pathname() 2012-01-17 15:38:31 -05:00
f_orphan_extents_inode tests: add two more tests of orphaned inode handling 2012-06-12 01:38:57 -04:00
f_orphan_indirect_inode tests: clean up sed filtering of test output 2013-06-15 18:44:09 -04:00
f_overfsblks e2fsck: report ext2fs_open2() and ext2fs_check_desc() errors 2012-03-21 23:40:24 -04:00
f_preen tests: clean up sed filtering of test output 2013-06-15 18:44:09 -04:00
f_quota e2fsprogs: don't run quota test if quota is not enabled 2014-05-27 12:12:05 -04:00
f_readonly_fsck e2fsck: don't flush the FS unless it's actually dirty 2014-08-12 14:19:42 -04:00
f_recnect_bad Clean up e2fsck problem description messages for typo's and to make them 2005-06-19 09:45:36 -04:00
f_reconnect Many files: 1997-04-29 16:17:09 +00:00
f_rehash_dir tests: use make rules to run tests in parallel 2012-05-29 08:41:26 -04:00
f_resize_inode mke2fs: only print the low-level file system stats in verbose mode 2014-05-04 23:15:29 -04:00
f_salvage_dir e2fsck: Interpret negative blkcount in file system problem reports 2009-10-04 18:02:24 -04:00
f_selinux Add f_selinux test case. 2004-01-30 01:59:42 -05:00
f_special_ea Add support for backing up the journal inode location in the 2003-08-21 00:40:26 -04:00
f_summary_counts e2fsck: fix mysterious "FILE SYSTEM WAS MODIFIED" with no changes 2011-06-16 01:22:02 -04:00
f_toobig_extent_dir e2fsck: check extent-mapped directories with really large logical blocks 2013-07-28 21:03:00 -04:00
f_uninit_dir e2fsck: clear uninit flag on directory extents 2014-07-25 08:50:23 -04:00
f_uninit_ext_past_eof tests: add new test f_zero_extent_length 2012-06-11 01:06:50 -04:00
f_uninit_ext_past_eof2 tests: add another test for uninit extents past eof 2013-09-26 20:17:09 -04:00
f_uninit_last_uninit debugfs: fix string_to_time for MacOS strptime() 2014-05-22 17:52:23 -04:00
f_unsorted_EAs e2fsprogs-tests-f_unsorted_EAs.patch 2008-02-18 21:44:36 -05:00
f_unused_itable tests: use make rules to run tests in parallel 2012-05-29 08:41:26 -04:00
f_valid_ea_in_inode Fix the test image so that it actually has an ea-in-inode. 2005-03-21 17:15:18 -05:00
f_zero_group e2fsck: report ext2fs_open2() and ext2fs_check_desc() errors 2012-03-21 23:40:24 -04:00
f_zero_inode_size e2fsck: report ext2fs_open2() and ext2fs_check_desc() errors 2012-03-21 23:40:24 -04:00
f_zero_super e2fsck: report ext2fs_open2() and ext2fs_check_desc() errors 2012-03-21 23:40:24 -04:00
f_zero_xattr tests: add new test f_zero_xattr 2013-04-25 00:29:09 -04:00
f_zeroed_ext_header e2fsck: zap extent-format inode with no extent header 2015-11-30 15:22:07 -05:00
i_e2image tests: convert use of md5sum to crcsum 2014-08-12 14:37:19 -04:00
m_64bit_flexbg libext2fs: fix free block accounting for 64-bit file systems 2014-07-26 09:25:40 -04:00
m_bigjournal libext2fs: place metadata blocks in the last flex_bg so they are contiguous 2014-08-04 18:58:23 -04:00
m_dasd_bs mke2fs: only print the low-level file system stats in verbose mode 2014-05-04 23:15:29 -04:00
m_desc_size_128 mke2fs: only print the low-level file system stats in verbose mode 2014-05-04 23:15:29 -04:00
m_extent_journal mke2fs: only print the low-level file system stats in verbose mode 2014-05-04 23:15:29 -04:00
m_hugefile_slack misc: fix infinite loop when finding the start of the hugefile start range 2014-12-02 22:14:34 -05:00
m_large_file mke2fs: only print the low-level file system stats in verbose mode 2014-05-04 23:15:29 -04:00
m_meta_bg mke2fs: only print the low-level file system stats in verbose mode 2014-05-04 23:15:29 -04:00
m_mkfs_overhead tests: clean up sed filtering of test output 2013-06-15 18:44:09 -04:00
m_mmp tests: fix left-over e2fsprogs-tmp files not getting clean up 2014-07-04 16:39:49 -04:00
m_no_opt mke2fs: only print the low-level file system stats in verbose mode 2014-05-04 23:15:29 -04:00
m_quota quota: remove mke2fs's and tune2fs's warning messages regarding quota 2014-05-13 10:13:33 -04:00
m_raid_opt mke2fs: only print the low-level file system stats in verbose mode 2014-05-04 23:15:29 -04:00
m_root_owner mke2fs: only print the low-level file system stats in verbose mode 2014-05-04 23:15:29 -04:00
m_std mke2fs: only print the low-level file system stats in verbose mode 2014-05-04 23:15:29 -04:00
m_uninit mke2fs: only print the low-level file system stats in verbose mode 2014-05-04 23:15:29 -04:00
progs Add coverage testing using gcov 2014-02-23 00:17:09 -05:00
r_64bit_big_expand tests: fix resize test tmpfs max-file-size checking 2014-04-14 13:51:24 -04:00
r_1024_small_bg tests: fix resize test tmpfs max-file-size checking 2014-04-14 13:51:24 -04:00
r_bigalloc_big_expand tests: fix resize test tmpfs max-file-size checking 2014-04-14 13:51:24 -04:00
r_ext4_big_expand tests: fix resize test tmpfs max-file-size checking 2014-04-14 13:51:24 -04:00
r_ext4_small_bg tests: fix resize test tmpfs max-file-size checking 2014-04-14 13:51:24 -04:00
r_inline_xattr resize2fs: clarify the size of blocks in resize2fs's messages 2014-08-24 23:23:41 -04:00
r_meta_bg_shrink tests: add the r_meta_bg_shrink test 2014-08-10 18:11:54 -04:00
r_min_itable resize2fs: clarify the size of blocks in resize2fs's messages 2014-08-24 23:23:41 -04:00
r_move_itable resize2fs: clarify the size of blocks in resize2fs's messages 2014-08-24 23:23:41 -04:00
r_resize_inode resize2fs: clarify the size of blocks in resize2fs's messages 2014-08-24 23:23:41 -04:00
scripts e2fsprogs: use $DUMPE2FS in resize_test script 2015-05-23 18:39:04 -04:00
t_ext_jnl_rm tests: use make rules to run tests in parallel 2012-05-29 08:41:26 -04:00
t_mmp_1on tests: fix left-over e2fsprogs-tmp files not getting clean up 2014-07-04 16:39:49 -04:00
t_mmp_2off tests: fix left-over e2fsprogs-tmp files not getting clean up 2014-07-04 16:39:49 -04:00
t_quota_1on quota: fix disabling quota, add quota tests 2013-10-14 09:54:28 -04:00
t_quota_2off quota: fix disabling quota, add quota tests 2013-10-14 09:54:28 -04:00
u_mke2fs tests: convert use of md5sum to crcsum 2014-08-12 14:37:19 -04:00
u_tune2fs tests: convert use of md5sum to crcsum 2014-08-12 14:37:19 -04:00
Makefile.in Fix build system to be compatible with BSD pmake 2016-01-02 01:29:55 -05:00
README Add extra checks for bad symlinks, including zero length symlinks, 2001-08-04 00:51:18 -06:00
filter.sed tests: clean up sed filtering of test output 2013-06-15 18:44:09 -04:00
mke2fs.conf.in mke2fs: disable progress reporting in mke2fs.conf for regression tests 2012-09-16 20:43:07 -04:00
run_e2fsck tests: clean up sed filtering of test output 2013-06-15 18:44:09 -04:00
run_mke2fs tests: clean up sed filtering of test output 2013-06-15 18:44:09 -04:00
test_config tests: Add to LD_LIBRARY_PATH instead of overriding 2014-09-08 18:55:42 -04:00
test_one.in tests: avoid using mktemp -t 2014-07-04 16:39:49 -04:00
test_post tests: use make rules to run tests in parallel 2012-05-29 08:41:26 -04:00
test_script.in tests: use make rules to run tests in parallel 2012-05-29 08:41:26 -04:00

README

These images contain various forms of corrupted filesystem which
e2fsck will correct.  They are used as a regression test for e2fsck.

The test_script program will automatically run e2fsck against the
filesystem images.  It will run them two times, and display the exit
status for each run.  The meaning of the exit status codes are as
follows:

	0		No filesystem errors were detected
	1		Filesystem errors detected, but corrected
	2		System should be rebooted
	4		Filesystem errors left uncorrected
	8		Operational error (generally means internal error,
				or filesystem error that the e2fsck was not
				prepared to deal with)
	16		Usage or syntax error

During the regression test, the first exit code should be 1, and the
second exit code should be 0.  In other words, all (with one
exception) of the test filesystems in this directory have some sort of
filesystem corruption, which e2fsck should fix on the first pass.
After the first pass, e2fsck should leave a fully consistent
filesystem with no detectable errors found in the second pass.  The
exception is the okgroup.img filesystem, which contains no errors, and
so both exit codes should be 0.

NOTE: It appears that at least some versions of the original e2fsck do
not exit with an exit status code of 1 after correcting filesystem
errors.  So if you modify the test_script to try running these
filesystems against the original e2fsck, you will have to inspect the
test_script.log file manually.

--------------------------------------------------------------
Here's a one-line descriptons of the various test images in this
directory:

baddir.img		Filesystem with a corrupted directory
badbblocks.img		Filesystem with illegal blocks in the bad block inode.
badinode.img		Filesystem with various different corrupted inode
				entries.
badlkcnt.img		Filesystem with deleted files with non-zero link count
badroot.img		Filesystem with a file for a root directory
badtable.img		Filesystem with blocks shared between the bitmaps and
				inode table blocks and the bad block inode
bbfile.img		Filesystem with files containing bad blocks
bitmaps.img		Filesystem with corrupted inode and block bitmaps
dirlink.img		Filesystem with a hard link to a directory
dup.img			Filesystem with blocks claimed by two different files
dup2.img		Filesystem with blocks claimed by three different files
dupfsblks.img		Filesystem with blocks claimed by a file and
				inode/block bitmaps and inode tables
dupsuper.img		Filesystem with blocks claimed by a file and
				the superblock / group descriptors
end-bitmap.img		Filesystem with corruption at the end of the block 
				bitmap
expand.img		Tests e2fsck's ability to expand lost+found if 
				necessary
lpf.img			Filesystem with disconnected files and no /lost+found 
				directory
mke2fs2b.img		Filesystem with corruption similar to that
				created by mke2fs version 0.2b
noroot.img		Filesystem with a deleted root directory
okgroup.img		Filesystem that's exactly 8193 blocks long 
				(otherwise OK)
overfsblks.img		Filesystem with overlapping inode and block bitmaps
symlinks.img		Filesystem with bad symlink sizes