[PATCH 4/5] fs-tests: integck: ignore -e if in power cut mode

Artem Bityutskiy dedekind1 at gmail.com
Sun Apr 24 12:16:17 EDT 2011


From: Artem Bityutskiy <Artem.Bityutskiy at nokia.com>

Similarly to the previous commit, do not verify operations when in
power-cut testing mode. Again, this is because write-back may fail
meanwhile.

Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy at nokia.com>
---
 tests/fs-tests/integrity/integck.c |   38 ++++++++++++++++++++++-------------
 1 files changed, 24 insertions(+), 14 deletions(-)

diff --git a/tests/fs-tests/integrity/integck.c b/tests/fs-tests/integrity/integck.c
index 9f03709..f1a2f84 100644
--- a/tests/fs-tests/integrity/integck.c
+++ b/tests/fs-tests/integrity/integck.c
@@ -543,7 +543,7 @@ static int dir_new(struct dir_info *parent, const char *name)
 		return -1;
 	}
 
-	if (args.verify_ops) {
+	if (args.verify_ops && !args.power_cut_mode) {
 		struct stat st;
 
 		CHECK(lstat(path, &st) == 0);
@@ -589,7 +589,7 @@ static int dir_remove(struct dir_info *dir)
 		return -1;
 	}
 
-	if (args.verify_ops) {
+	if (args.verify_ops && !args.power_cut_mode) {
 		struct stat st;
 
 		CHECK(lstat(path, &st) == -1);
@@ -626,7 +626,7 @@ static int file_new(struct dir_info *parent, const char *name)
 		return -1;
 	}
 
-	if (args.verify_ops) {
+	if (args.verify_ops && !args.power_cut_mode) {
 		struct stat st;
 
 		CHECK(lstat(path, &st) == 0);
@@ -654,7 +654,7 @@ static int link_new(struct dir_info *parent, const char *name,
 	path = dir_path(parent, name);
 	target = dir_path(entry->parent, entry->name);
 
-	if (args.verify_ops)
+	if (args.verify_ops && !args.power_cut_mode)
 		CHECK(lstat(target, &st1) == 0);
 
 	ret = link(target, path);
@@ -670,7 +670,7 @@ static int link_new(struct dir_info *parent, const char *name,
 		return ret;
 	}
 
-	if (args.verify_ops) {
+	if (args.verify_ops && !args.power_cut_mode) {
 		CHECK(lstat(path, &st2) == 0);
 		CHECK(S_ISREG(st2.st_mode));
 		CHECK(st1.st_ino == st2.st_ino);
@@ -716,7 +716,7 @@ static int file_unlink(struct dir_entry_info *entry)
 		return -1;
 	}
 
-	if (args.verify_ops) {
+	if (args.verify_ops && !args.power_cut_mode) {
 		struct stat st;
 
 		CHECK(lstat(path, &st) == -1);
@@ -923,7 +923,7 @@ static void file_write_info(struct file_info *file, int fd, off_t offset,
 	w->random_seed = seed;
 	file->raw_writes = w;
 
-	if (args.verify_ops)
+	if (args.verify_ops && !args.power_cut_mode)
 		file_check_data(file, fd, new_write);
 
 	/* Insert it into file->writes */
@@ -1090,7 +1090,7 @@ static int file_ftruncate(struct file_info *file, int fd, off_t new_length)
 		return -1;
 	}
 
-	if (args.verify_ops)
+	if (args.verify_ops && !args.power_cut_mode)
 		CHECK(lseek(fd, 0, SEEK_END) == new_length);
 
 	return 0;
@@ -1419,6 +1419,8 @@ static void file_check_data(struct file_info *file, int fd,
 	char buf[IO_BUFFER_SIZE];
 	unsigned int seed = w->random_seed;
 
+	assert(!args.power_cut_mode);
+
 	for (r = 0; r < w->random_offset; ++r)
 		rand_r(&seed);
 	CHECK(lseek(fd, w->offset, SEEK_SET) != (off_t)-1);
@@ -1453,6 +1455,9 @@ static void file_check(struct file_info *file, int fd)
 	struct dir_entry_info *entry;
 	struct stat st;
 
+	if (args.power_cut_mode)
+		return;
+
 	/* Do not check files that have errored */
 	if (!fsinfo.nospc_size_ok && file->no_space_error)
 		return;
@@ -1528,6 +1533,9 @@ void symlink_check(const struct symlink_info *symlink)
 	ssize_t len;
 	int ret1, ret2;
 
+	if (args.power_cut_mode)
+		return;
+
 	path = dir_path(symlink->entry->parent, symlink->entry->name);
 	CHECK(lstat(path, &st1) == 0);
 	CHECK(S_ISLNK(st1.st_mode));
@@ -1591,6 +1599,8 @@ static void dir_check(struct dir_info *dir)
 	int link_count = 2; /* Parent and dot */
 	struct stat st;
 
+	assert(!args.power_cut_mode);
+
 	/* Create an array of entries */
 	sz = sizeof(struct dir_entry_info *);
 	n = dir->number_of_entries;
@@ -1836,7 +1846,7 @@ static int rename_entry(struct dir_entry_info *entry)
 	if (!path)
 		return 0;
 
-	if (args.verify_ops)
+	if (args.verify_ops && !args.power_cut_mode)
 		CHECK(lstat(path, &st1) == 0);
 
 	ret = rename(path, to);
@@ -1854,7 +1864,7 @@ static int rename_entry(struct dir_entry_info *entry)
 		return ret;
 	}
 
-	if (args.verify_ops) {
+	if (args.verify_ops && !args.power_cut_mode) {
 		CHECK(lstat(to, &st2) == 0);
 		CHECK(st1.st_ino == st2.st_ino);
 	}
@@ -1996,7 +2006,7 @@ static int symlink_new(struct dir_info *dir, const char *nm)
 		return ret;
 	}
 
-	if (args.verify_ops)
+	if (args.verify_ops && !args.power_cut_mode)
 		verify_symlink(target, path);
 
 	s = add_dir_entry(dir, 's', name, NULL);
@@ -2018,7 +2028,7 @@ static int symlink_remove(struct symlink_info *symlink)
 		return -1;
 	}
 
-	if (args.verify_ops) {
+	if (args.verify_ops && !args.power_cut_mode) {
 		struct stat st;
 
 		CHECK(lstat(path, &st) == -1);
@@ -2359,7 +2369,7 @@ static int rm_minus_rf_dir(const char *dir_name)
 	CHECK(chdir(buf) == 0);
 	CHECK(closedir(dir) == 0);
 
-	if (args.verify_ops) {
+	if (args.verify_ops && !args.power_cut_mode) {
 		dir = opendir(dir_name);
 		CHECK(dir != NULL);
 		do {
@@ -2379,7 +2389,7 @@ static int rm_minus_rf_dir(const char *dir_name)
 		return -1;
 	}
 
-	if (args.verify_ops) {
+	if (args.verify_ops && !args.power_cut_mode) {
 		struct stat st;
 
 		CHECK(lstat(dir_name, &st) == -1);
-- 
1.7.2.3




More information about the linux-mtd mailing list