"Theodore Ts'o" <tytso@xxxxxxx> writes: > On Thu, Apr 03, 2025 at 08:58:19AM +0000, Nirjhar Roy (IBM) wrote: >> This patch adds -q <n> option through which one can run a given test <n> >> times unconditionally. It also prints pass/fail metrics at the end. >> >> The advantage of this over -L <n> and -i/-I <n> is that: >> a. -L <n> will not re-run a flakey test if the test passes for the first time. >> b. -I/-i <n> sets up devices during each iteration and hence slower. >> Note -q <n> will override -L <n>. First things first -q is similar to -L except that it loops unconditionaly even when there is no failure. (Bad choice of -q naming, since -l was in use for something else) > > I'm wondering if we need to keep the current behavior of -I/-i. The > primary difference between them and how your proposed -q works is that > instead of iterating over the section, your proposed option iterates > over each test. So for example, if a section contains generic/001 and > generic/002, iterating using -i 3 will do this: > > generic/001 > generic/002 > generic/001 > generic/002 > generic/001 > generic/002 > > While generic -q 3 would do this instead: > > generic/001 > generic/001 > generic/001 > generic/002 > generic/002 > generic/002 > Yes, that's correct. Since it iterates at the top level, it also sources some common configs, re-formats and does a mount re-cycle of the scratch device during each iteration. This mostly should not matter, since each test can anyways re-format the scratch device when it needs to mount/test it. > > At least for all of the use cases that I can think of where I might > use -i 3, -q 3 is strictly better. So instead of adding more options > which change how we might do iterations, could we perhaps just replace > -i with your new -q? And change -I so that it also works like -q, > except if any test fails, that we stop? I agree that in this case it make more sense to replace the underlying functionality of -i/-I with what -q <n> is doing here. But maybe others can comment, if anyone has any objection on this. -ritesh