2001-05-25  Theodore Tso  <tytso@valinux.com>

	* Release of E2fsprogs 1.20

2001-05-14  Theodore Tso  <tytso@valinux.com>

	* f_badorphan: New test which verifies corrupted orphan list
		handling.

2001-05-05  Theodore Tso  <tytso@valinux.com>

	* d_loaddump: New test which verifies debugfs's dump and load
		routines.

2000-10-24    <tytso@snap.thunk.org>

	* f_journal: Update to take into account new printing by the
		e2fsck program.

2000-08-22    <tytso@valinux.com>

	* f_journal: Make the test check for a wide variety of mixed sizes
		of orphaned inodes (and not just a size of 0).

2000-08-20    <tytso@valinux.com>

	* run_e2fsck: Filter out JFS DEBUG messages when comparing e2fsck
		output.

	* f_journal: New test case which checks out running the ext3
		journal.

	* f_orphan: New test case which checks clearing the list of orphan
		inodes (files and directories).

	* f_swapfs/expect: Update to reflect new debugfs format for
		dumping the blocks of an inode.

2000-07-13    <tytso@valinux.com>

	* Release of E2fsprogs 1.19

2000-05-25    <tytso@snap.thunk.org>

	* test_script.in: Ignore files in the test directory (to avoid
		spurious messages when builddir==srcdir).

2000-05-08  Theodore Ts'o  <tytso@valinux.com>

	* f_hurd: Add test for Hurd-specific features (right now, just
		checks to make sure the filetype feature is cleared)

2000-04-06  Theodore Ts'o  <tytso@valinux.com>

	* f_filetype: Updated expect script to match with new text for
		immutable/append-only files.

2000-02-07  Theodore Ts'o  <tytso@valinux.com>

	* f_swapfs: Fix expected text to match changed debugfs dump
		command for i_generation field.

1999-11-10    <tytso@valinux.com>

	* Release of E2fsprogs 1.18

1999-11-10    <tytso@valinux.com>

	* f_imagic: New test case which tests handling of imagic inodes in
		an non-imagic-enabled filessystem.

	* f_imagic_fs: New test case which tests handling of imagic inodes
		in an imagic-enabled filesystem.

	* f_filetype: New test case which tests setting filetype
		information in a filesystem.  Also tests handling of
		immutable special files (device/fifo).

	* run_e2fsck: Add support for PREP_CMD, which allows a test case
		to specify some commands which will be run (via eval)
		after the image is compressed and before running e2fsck.

1999-10-26    <tytso@valinux.com>

	* Release of E2fsprogs 1.17

1999-10-22    <tytso@valinux.com>

	* Release of E2fsprogs 1.16

1999-09-16    <tytso@rsts-11.mit.edu>

	* f_dupdot: New test case which tests duplicate '.' and '..' entries.

1999-09-07    <tytso@rsts-11.mit.edu>

	* f_expand: Make test case better by testing increasing the size
		of lost+found where an indirect block must be created.
		Also add checks to see what happens when directories are
		disconnected because their containing directory is
		destroyed (turned into a socket :-)

1999-08-02    <tytso@rsts-11.mit.edu>

	* f_dupfsblks: Add additional test cases where files share
		duplicate blocks with both other files and filesystem
		metadata.

1999-07-30    <tytso@valinux.com>

	* f_swapfs: Change to deal with new dump_inode command.

1999-07-18  Theodore Ts'o  <tytso@valinux.com>

	* Release of E2fsprogs 1.15

1999-06-25    <tytso@rsts-11.mit.edu>

	* f_recnect_bad: New test which checks the case where a disconnect
		inode also bad inode fields; we need to make sure e2fsck
		offers to fix the inode (or clear the inode, as necessary).

1999-03-14  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* f_lpffile: New test which checks how e2fsck handles a the case
		where lost+found exists, but it's not a directory.

1999-01-09  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs 1.14

1998-12-15  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs 1.13

1998-12-04  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* f_badtable, f_illitable, f_lpf: Update to deal with the fact
		that e2fsck will now create a lost+found directory at the
		end of pass 3 if one isn't present.

1998-07-09  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs 1.12

1998-07-05  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* f_swapfs: Fix script to ignore the version string header which
		debugfs now prints when it starts up.

1998-03-23  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* f_messy_inode: Modify test to deal with changes to support
		64-bit size files.  (/MAKEDEV had i_dir_acl, now
		i_size_high, set.)

1998-02-20  Theodore Y. Ts'o  <tytso@edt.mit.edu>

	* f_badinode: Set the immutable flag on the block and
		character device so that e2fsck notices them as bad
		devices, and offers to fix them.  E2fsck currently
		only checks devices with the immutable flag set, since
		otherwise there might be some false positives --- the
		kernel doesn't always clear the all of i_blocks[n],
		n>=4, due to a race condition.

Sat Oct 25 18:38:56 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Add scripts to skip the e_brel_bma and e_irel_ima tests (since
		they have been removed from the library for now)

Thu Aug 14 11:25:23 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* f_badinode: Modify test to check for "bad" character and block
		devices (i.e., ones which contain garbage block entries)

Tue Jun 17 01:33:20 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs 1.11

Thu Apr 24 12:16:42 1997  Theodre Ts'o  <tytso@localhost.mit.edu>

	* Release of E2fsprogs version 1.10

Thu Apr 17 12:23:38 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.09

Fri Apr 11 18:56:26 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.08

Wed Mar 26 09:29:25 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* e_icount_normal, e_icount_opt: New tests which validate the
		icount abstraction.

	* test_script.in: New feature; an argument of a single character
		means do all the tests in that series.

Tue Mar 18 15:11:04 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* test_config (LANG): Set the language to be C so that the brel
		and irel tests don't fail.

Wed Mar 12 13:32:05 1997  Theodore Y. Ts'o  <tytso@mit.edu>

	* Release of E2fsprogs version 1.07

Thu Mar  6 23:23:07 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* f_misstable: New test case which checks what happens when the
		inode table for a block group is missing

	* f_reconnect: New test case which makes sure a simple
		disconnected inode is properly handled.

Mon Dec  2 09:33:31 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* test_script.in: Add error checking to make sure a requested test
		exists.

Tue Oct 15 00:10:37 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* f_bbinode: New test case which exercises what happens when a bad
		block appears in the inode table.

Tue Oct  8 02:02:03 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.06

Mon Oct  7 07:52:41 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* f_preen: New test case which makes sure that e2fsck -p won't
 		bash the backup superblock in case of a corrupted master
 		superblock.
	
	* test_script.in: Let the environment variable TEST_CONFIG to
		override the location of the test_config file.  Move
		definition of TMP_DIR to test_config.

	* test_config: Add new defnitions for mke2fs, dumpe2fs, tune2fs,
		lsattr, and chattr.

Thu Sep 12 15:23:07 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.05

Mon Sep  9 23:09:47 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Makefile.in (check): Add explicit ./ to test_script invokation,
		since not all people will have "." in their path.

Tue Sep  3 15:13:05 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* test_config (PAGER): Unset pager to prevent debugfs forking a
 		pager, since the escape sequences confuse the expect
 		script.

Sun May 19 23:37:35 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* test_script: New feature; second optional argument allows
		developers to only run one test case.

	* f_crashdisk: New test case which contains a patently illegal
		superblock with a valid magic number.

Thu May 16 11:12:30 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.04

Wed May 15 21:41:29 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* f_illibitmap/expect.1, f_illbbitmap/expect.1: Changed
		expected output to reflect hint which e2fsck will print when
		there is a illegal block in the block group
		descriptors, pointing at a block bitmap, inode bitmap,
		or block in the inode table.

Wed Mar 27 00:33:40 1996    <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.03

Wed Jan 31 11:06:08 1996    <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.02

Mon Sep  4 23:06:06 1995  Remy Card  <card@bbj>

	* Makefile.in (clean, distclean): Use the -f option when removing
		files.

Fri Aug 11 10:10:30 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>

	* test_script: Count up the number of passed and failed tests by
		tallying the *.ok and *.failed files.

	* run_e2fsck: Create foo.ok and foo.failed files when tests
		succeed or fail, respectively.

	* test_config (TZ): Set the timezone to be GMT, so that test
		results are consistent.

