From e06f35b7e16e2cbe91ff1a6a48662e5006c7f93b Mon Sep 17 00:00:00 2001 From: Andrea Mazzoleni Date: Fri, 29 Apr 2011 17:44:14 +0200 Subject: [PATCH] Adds the option -S to skip the self test. Skips the self test in the regression tests, but the first time. --- Makefile.am | 152 ++++++++++++++++++++++++++-------------------------- selftest.c | 6 +-- snapraid.c | 20 ++++--- 3 files changed, 93 insertions(+), 85 deletions(-) diff --git a/Makefile.am b/Makefile.am index e33881fc..e00e41dd 100644 --- a/Makefile.am +++ b/Makefile.am @@ -76,125 +76,125 @@ check-local: mkdir test/disk3 echo --- As empty, sync and check $(TESTENV) ./snapraid$(EXEEXT) -v -c $(srcdir)/test-raid6.conf sync - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf check + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf check echo --- Create some files, sync raid6 and check $(TESTENV) ./mktest$(EXEEXT) generate 1 3 1000 4000 - $(TESTENV) ./snapraid$(EXEEXT) -v -c $(srcdir)/test-raid6.conf sync - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid5.conf check - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf check + $(TESTENV) ./snapraid$(EXEEXT) -S -v -c $(srcdir)/test-raid6.conf sync + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid5.conf check + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf check echo --- Create some more files, sync raid5 and check $(TESTENV) ./mktest$(EXEEXT) generate 2 3 1000 4000 - $(TESTENV) ./snapraid$(EXEEXT) -v -c $(srcdir)/test-raid5.conf sync - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid5.conf check + $(TESTENV) ./snapraid$(EXEEXT) -S -v -c $(srcdir)/test-raid5.conf sync + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid5.conf check echo --- Extend raid5 to raid6 with fix and check - $(TESTENV) ./snapraid$(EXEEXT) -R -c $(srcdir)/test-raid6.conf check 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf fix 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid5.conf check - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf check + $(TESTENV) ./snapraid$(EXEEXT) -S -R -c $(srcdir)/test-raid6.conf check 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf fix 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid5.conf check + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf check echo --- Dry - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid5.conf dry - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf dry + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid5.conf dry + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf dry echo --- Delete some files, create some new, sync and check rm test/disk1/1* rm test/disk2/2* rm test/disk3/3* $(TESTENV) ./mktest$(EXEEXT) generate 3 3 100 4000 - $(TESTENV) ./snapraid$(EXEEXT) -v -c $(srcdir)/test-raid6.conf sync - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf check + $(TESTENV) ./snapraid$(EXEEXT) -S -v -c $(srcdir)/test-raid6.conf sync + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf check echo --- Move some files, sync and check mv test/disk1/7* test/disk1/_a/ mv test/disk2/7* test/disk2/_a/ mv test/disk3/7* test/disk3/_a/ - $(TESTENV) ./snapraid$(EXEEXT) -v -c $(srcdir)/test-raid6.conf sync - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf check + $(TESTENV) ./snapraid$(EXEEXT) -S -v -c $(srcdir)/test-raid6.conf sync + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf check echo --- Delete one disk, fix and check with raid5 rm -r test/disk3 mkdir test/disk3 - $(TESTENV) ./snapraid$(EXEEXT) -R -c $(srcdir)/test-raid5.conf check 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid5.conf fix 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf check + $(TESTENV) ./snapraid$(EXEEXT) -S -R -c $(srcdir)/test-raid5.conf check 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid5.conf fix 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf check echo --- Delete two disks, fix and check with raid6 rm -r test/disk1 mkdir test/disk1 rm -r test/disk2 mkdir test/disk2 - $(TESTENV) ./snapraid$(EXEEXT) -U -c $(srcdir)/test-raid5.conf check 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -R -c $(srcdir)/test-raid6.conf check 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf fix 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf check + $(TESTENV) ./snapraid$(EXEEXT) -S -U -c $(srcdir)/test-raid5.conf check 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -R -c $(srcdir)/test-raid6.conf check 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf fix 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf check echo --- Sync after all the fixes with an empty drive to test -E - $(TESTENV) ./snapraid$(EXEEXT) -v -E -c $(srcdir)/test-raid6.conf sync + $(TESTENV) ./snapraid$(EXEEXT) -S -v -E -c $(srcdir)/test-raid6.conf sync echo --- Delete some files and create some new, sync and check in multiple steps rm test/disk1/4* rm test/disk2/5* rm test/disk3/6* $(TESTENV) ./mktest$(EXEEXT) generate 4 3 100 4000 - $(TESTENV) ./snapraid$(EXEEXT) -v -c $(srcdir)/test-raid6.conf -t 7 sync - $(TESTENV) ./snapraid$(EXEEXT) -R -c $(srcdir)/test-raid6.conf check 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -v -c $(srcdir)/test-raid6.conf -t 11 sync - $(TESTENV) ./snapraid$(EXEEXT) -R -c $(srcdir)/test-raid6.conf check 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -v -c $(srcdir)/test-raid6.conf sync - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf check + $(TESTENV) ./snapraid$(EXEEXT) -S -v -c $(srcdir)/test-raid6.conf -t 7 sync + $(TESTENV) ./snapraid$(EXEEXT) -S -R -c $(srcdir)/test-raid6.conf check 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -v -c $(srcdir)/test-raid6.conf -t 11 sync + $(TESTENV) ./snapraid$(EXEEXT) -S -R -c $(srcdir)/test-raid6.conf check 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -v -c $(srcdir)/test-raid6.conf sync + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf check echo --- Delete some files, fix and check with raid5 rm test/disk1/1* - $(TESTENV) ./snapraid$(EXEEXT) -R -c $(srcdir)/test-raid5.conf check 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid5.conf fix 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf check + $(TESTENV) ./snapraid$(EXEEXT) -S -R -c $(srcdir)/test-raid5.conf check 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid5.conf fix 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf check echo --- Delete some dirs, fix and check with raid5 rm -r test/disk2/_a rm -r test/disk2/_b - $(TESTENV) ./snapraid$(EXEEXT) -R -c $(srcdir)/test-raid5.conf check 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid5.conf fix 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf check + $(TESTENV) ./snapraid$(EXEEXT) -S -R -c $(srcdir)/test-raid5.conf check 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid5.conf fix 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf check echo --- Delete some dirs, fix and check with raid6 rm -r test/disk2/_a rm -r test/disk2/_b rm -r test/disk3/_a rm -r test/disk3/_b - $(TESTENV) ./snapraid$(EXEEXT) -U -c $(srcdir)/test-raid5.conf check 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -R -c $(srcdir)/test-raid6.conf check 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf fix 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf check + $(TESTENV) ./snapraid$(EXEEXT) -S -U -c $(srcdir)/test-raid5.conf check 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -R -c $(srcdir)/test-raid6.conf check 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf fix 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf check echo --- Delete the parity, fix and check with raid5 rm test/parity - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid5.conf check 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid5.conf fix 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf check + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid5.conf check 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid5.conf fix 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf check echo --- Delete the parity and the q-parity, fix and check with raid6 rm test/parity rm test/q-parity - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf fix 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf check + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf fix 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf check echo --- Delete the parity and a disk, fix and check with raid6 rm test/parity rm -r test/disk2/_a rm -r test/disk2/_b - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf fix 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf check + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf fix 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf check echo --- Delete the q-parity and a disk, fix and check with raid6 rm test/q-parity rm -r test/disk3/_a rm -r test/disk3/_b - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf fix 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf check + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf fix 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf check echo --- Corrupt the parity, fix and check with raid5 $(TESTENV) ./mktest$(EXEEXT) damage 1 100 10000 test/parity - $(TESTENV) ./snapraid$(EXEEXT) -R -c $(srcdir)/test-raid5.conf check 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid5.conf fix 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf check + $(TESTENV) ./snapraid$(EXEEXT) -S -R -c $(srcdir)/test-raid5.conf check 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid5.conf fix 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf check echo --- Corrupt the parity and the q-parity, fix and check with raid6 $(TESTENV) ./mktest$(EXEEXT) damage 2 100 10000 test/parity $(TESTENV) ./mktest$(EXEEXT) damage 2 100 10000 test/q-parity - $(TESTENV) ./snapraid$(EXEEXT) -R -c $(srcdir)/test-raid6.conf check 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf fix 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf check + $(TESTENV) ./snapraid$(EXEEXT) -S -R -c $(srcdir)/test-raid6.conf check 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf fix 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf check echo --- Corrupt some files, fix and check with raid5 $(TESTENV) ./mktest$(EXEEXT) damage 3 1 500 test/disk2/b* $(TESTENV) ./mktest$(EXEEXT) append 3 500 test/disk2/c* $(TESTENV) ./mktest$(EXEEXT) truncate 3 500 test/disk2/d* - $(TESTENV) ./snapraid$(EXEEXT) -R -c $(srcdir)/test-raid5.conf check 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid5.conf fix 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf check + $(TESTENV) ./snapraid$(EXEEXT) -S -R -c $(srcdir)/test-raid5.conf check 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid5.conf fix 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf check echo --- Corrupt some files, fix and check with raid6 $(TESTENV) ./mktest$(EXEEXT) damage 4 1 500 test/disk2/_a/_a/* $(TESTENV) ./mktest$(EXEEXT) damage 4 1 500 test/disk3/_a/_a/* @@ -204,10 +204,10 @@ check-local: $(TESTENV) ./mktest$(EXEEXT) append 4 500 test/disk3/_b/_a/* $(TESTENV) ./mktest$(EXEEXT) truncate 4 500 test/disk2/_b/_b/* $(TESTENV) ./mktest$(EXEEXT) truncate 4 500 test/disk3/_b/_b/* - $(TESTENV) ./snapraid$(EXEEXT) -U -c $(srcdir)/test-raid5.conf check 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -R -c $(srcdir)/test-raid6.conf check 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf fix 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf check + $(TESTENV) ./snapraid$(EXEEXT) -S -U -c $(srcdir)/test-raid5.conf check 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -R -c $(srcdir)/test-raid6.conf check 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf fix 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf check echo --- Another time with different values $(TESTENV) ./mktest$(EXEEXT) damage 5 2 50 test/disk2/_a/_a/* $(TESTENV) ./mktest$(EXEEXT) damage 5 2 50 test/disk3/_a/_a/* @@ -219,33 +219,33 @@ check-local: $(TESTENV) ./mktest$(EXEEXT) append 5 1500 test/disk3/_b/_a/* $(TESTENV) ./mktest$(EXEEXT) truncate 5 1500 test/disk2/_b/_b/* $(TESTENV) ./mktest$(EXEEXT) truncate 5 1500 test/disk3/_b/_b/* - $(TESTENV) ./snapraid$(EXEEXT) -U -c $(srcdir)/test-raid5.conf check 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -R -c $(srcdir)/test-raid6.conf check 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf fix 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf check + $(TESTENV) ./snapraid$(EXEEXT) -S -U -c $(srcdir)/test-raid5.conf check 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -R -c $(srcdir)/test-raid6.conf check 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf fix 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf check echo --- Corrupt the parity and some files, fix and check with raid6 $(TESTENV) ./mktest$(EXEEXT) damage 6 100 10000 test/parity $(TESTENV) ./mktest$(EXEEXT) damage 6 1 500 test/disk1/_a/_a/* $(TESTENV) ./mktest$(EXEEXT) damage 6 1 500 test/disk1/_a/_b/* $(TESTENV) ./mktest$(EXEEXT) append 6 500 test/disk1/_b/_a/* $(TESTENV) ./mktest$(EXEEXT) truncate 6 500 test/disk1/_b/_b/* - $(TESTENV) ./snapraid$(EXEEXT) -U -c $(srcdir)/test-raid5.conf check 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -R -c $(srcdir)/test-raid6.conf check 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf fix 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf check + $(TESTENV) ./snapraid$(EXEEXT) -S -U -c $(srcdir)/test-raid5.conf check 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -R -c $(srcdir)/test-raid6.conf check 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf fix 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf check echo --- Corrupt the q-parity and some files, fix and check with raid6 $(TESTENV) ./mktest$(EXEEXT) damage 7 100 10000 test/q-parity $(TESTENV) ./mktest$(EXEEXT) damage 7 1 500 test/disk1/_a/_a/* $(TESTENV) ./mktest$(EXEEXT) damage 7 1 500 test/disk1/_a/_b/* $(TESTENV) ./mktest$(EXEEXT) append 7 500 test/disk1/_b/_a/* $(TESTENV) ./mktest$(EXEEXT) truncate 7 500 test/disk1/_b/_b/* - $(TESTENV) ./snapraid$(EXEEXT) -R -c $(srcdir)/test-raid5.conf check 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -R -c $(srcdir)/test-raid6.conf check 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf fix 2>/dev/null - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf check + $(TESTENV) ./snapraid$(EXEEXT) -S -R -c $(srcdir)/test-raid5.conf check 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -R -c $(srcdir)/test-raid6.conf check 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf fix 2>/dev/null + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf check echo --- Sync after all the fixes - $(TESTENV) ./snapraid$(EXEEXT) -v -c $(srcdir)/test-raid6.conf sync - $(TESTENV) ./snapraid$(EXEEXT) -c $(srcdir)/test-raid6.conf check + $(TESTENV) ./snapraid$(EXEEXT) -S -v -c $(srcdir)/test-raid6.conf sync + $(TESTENV) ./snapraid$(EXEEXT) -S -c $(srcdir)/test-raid6.conf check echo Success! # Manual testing diff --git a/selftest.c b/selftest.c index e3b00945..4fffce0b 100644 --- a/selftest.c +++ b/selftest.c @@ -244,9 +244,9 @@ void selftest(void) hashtest(); - for(i=1;i<19;++i) { - raid5test(i, 4096); - raid6test(i, 4096); + for(i=1;i<=33;++i) { + raid5test(i, 2048); + raid6test(i, 2048); } } diff --git a/snapraid.c b/snapraid.c index 205ec947..553a2768 100644 --- a/snapraid.c +++ b/snapraid.c @@ -62,21 +62,23 @@ void usage(void) struct option long_options[] = { { "conf", 1, 0, 'c' }, { "filter", 1, 0, 'f' }, - { "force-zero", 0, 0, 'Z' }, - { "force-empty", 0, 0, 'E' }, { "start", 1, 0, 's' }, { "count", 1, 0, 't' }, + { "force-zero", 0, 0, 'Z' }, + { "force-empty", 0, 0, 'E' }, + { "skip-self-test", 0, 0, 'S' }, + { "expect-unrecoverable", 0, 0, 'U' }, + { "expect-recoverable", 0, 0, 'R' }, { "speed-test", 0, 0, 'T' }, { "verbose", 0, 0, 'v' }, { "help", 0, 0, 'h' }, { "version", 0, 0, 'V' }, - { "expect-unrecoverable", 0, 0, 'U' }, - { "expect-recoverable", 0, 0, 'R' }, + { 0, 0, 0, 0 } }; #endif -#define OPTIONS "c:f:s:t:ZEURTvhV" +#define OPTIONS "c:f:s:t:ZESURTvhV" volatile int global_interrupt = 0; @@ -102,6 +104,7 @@ int main(int argc, char* argv[]) int force_empty; int expect_unrecoverable; int expect_recoverable; + int skip_self_test; const char* conf; struct snapraid_state state; int operation; @@ -117,6 +120,7 @@ int main(int argc, char* argv[]) force_empty = 0; expect_unrecoverable = 0; expect_recoverable = 0; + skip_self_test = 0; blockstart = 0; blockcount = 0; tommy_list_init(&filterlist); @@ -159,6 +163,9 @@ int main(int argc, char* argv[]) case 'E' : force_empty = 1; break; + case 'S' : + skip_self_test = 1; + break; case 'U' : expect_unrecoverable = 1; break; @@ -203,7 +210,8 @@ int main(int argc, char* argv[]) raid_init(); - selftest(); + if (!skip_self_test) + selftest(); state_init(&state);