The following changes since commit a99bd37f690ab246caa9b9d65adfa65a25967190: examples: add PI example with xnvme ioengine (2024-02-13 14:24:59 -0500) are available in the Git repository at: git://git.kernel.dk/fio.git master for you to fetch changes up to 7aec5ac0bdd1adcaeba707f26d5bc583de6ab6c9: test: add the test for loops option and read-verify workloads (2024-02-14 07:39:48 -0700) ---------------------------------------------------------------- Shin'ichiro Kawasaki (2): verify: fix loops option behavior of read-verify workloads test: add the test for loops option and read-verify workloads io_u.c | 3 ++- t/jobs/t0029.fio | 14 ++++++++++++++ t/run-fio-tests.py | 21 +++++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 t/jobs/t0029.fio --- Diff of recent changes: diff --git a/io_u.c b/io_u.c index 13187882..4254675a 100644 --- a/io_u.c +++ b/io_u.c @@ -2151,7 +2151,8 @@ static void io_u_update_bytes_done(struct thread_data *td, if (td->runstate == TD_VERIFYING) { td->bytes_verified += icd->bytes_done[DDIR_READ]; - return; + if (td_write(td)) + return; } for (ddir = 0; ddir < DDIR_RWDIR_CNT; ddir++) diff --git a/t/jobs/t0029.fio b/t/jobs/t0029.fio new file mode 100644 index 00000000..481de6f3 --- /dev/null +++ b/t/jobs/t0029.fio @@ -0,0 +1,14 @@ +[global] +filename=t0029file +size=4k +verify=md5 + +[write] +rw=write +do_verify=0 + +[read] +stonewall=1 +rw=read +loops=2 +do_verify=1 diff --git a/t/run-fio-tests.py b/t/run-fio-tests.py index 1448f7cb..2f76d3fc 100755 --- a/t/run-fio-tests.py +++ b/t/run-fio-tests.py @@ -542,6 +542,17 @@ class FioJobFileTest_t0027(FioJobFileTest): if data != self.pattern: self.passed = False +class FioJobFileTest_t0029(FioJobFileTest): + """Test loops option works with read-verify workload.""" + def check_result(self): + super().check_result() + + if not self.passed: + return + + if self.json_data['jobs'][1]['read']['io_kbytes'] != 8: + self.passed = False + class FioJobFileTest_iops_rate(FioJobFileTest): """Test consists of fio test job t0011 Confirm that job0 iops == 1000 @@ -838,6 +849,16 @@ TEST_LIST = [ 'pre_success': None, 'requirements': [], }, + { + 'test_id': 29, + 'test_class': FioJobFileTest_t0029, + 'job': 't0029.fio', + 'success': SUCCESS_DEFAULT, + 'pre_job': None, + 'pre_success': None, + 'output_format': 'json', + 'requirements': [], + }, { 'test_id': 1000, 'test_class': FioExeTest,