def testBasicGeneration(self): expected_jobfile = """ [global] ioengine=libaio invalidate=1 direct=1 runtime=10m time_based filename=/test/filename do_verify=0 verify_fatal=0 randrepeat=0 [sequential_read-io-depth-1] stonewall rw=read blocksize=512k iodepth=1 size=100% [sequential_read-io-depth-2] stonewall rw=read blocksize=512k iodepth=2 size=100% """ self.assertEqual( fio_benchmark.GenerateJobFileString(self.filename, ['sequential_read'], [1, 2], None), expected_jobfile)
def testMultipleScenarios(self): expected_jobfile = """ [global] ioengine=libaio invalidate=1 direct=1 runtime=600 time_based filename=/test/filename do_verify=0 verify_fatal=0 randrepeat=0 group_reporting=1 [sequential_read-io-depth-1-num-jobs-1] stonewall rw=read blocksize=512k iodepth=1 size=100% numjobs=1 [sequential_write-io-depth-1-num-jobs-1] stonewall rw=write blocksize=512k iodepth=1 size=100% numjobs=1""" self.assertEqual( fio_benchmark.GenerateJobFileString( self.filename, ['sequential_read', 'sequential_write'], [1], [1], None, None, 600, {}), expected_jobfile)
def testCustomBlocksize(self): orig_blocksize = fio_benchmark.SCENARIOS['sequential_write']['blocksize'] job_file = fio_benchmark.GenerateJobFileString( self.filename, ['sequential_read'], [1], None, perfkitbenchmarker.UNIT_REGISTRY.megabyte * 2) self.assertIn('blocksize=2000000B', job_file) # Test that generating a job file doesn't modify the global # SCENARIOS variable. self.assertEqual(fio_benchmark.SCENARIOS['sequential_write']['blocksize'], orig_blocksize)
def testCustomBlocksize(self): orig_blocksize = fio_benchmark.SCENARIOS['sequential_write'][ 'blocksize'] job_file = fio_benchmark.GenerateJobFileString( self.filename, ['sequential_read'], [1], [1], None, units.Unit('megabyte') * 2, 600, True, {}) self.assertIn('blocksize=2000000B', job_file) # Test that generating a job file doesn't modify the global # SCENARIOS variable. self.assertEqual( fio_benchmark.SCENARIOS['sequential_write']['blocksize'], orig_blocksize)
def testBasicGeneration(self): expected_jobfile = """ [global] ioengine=libaio invalidate=1 direct=1 runtime=600 time_based filename=/test/filename do_verify=0 verify_fatal=0 group_reporting=1 randrepeat=0 offset_increment=1k [sequential_read-io-depth-1-num-jobs-1] stonewall rw=read blocksize=512k iodepth=1 size=100% numjobs=1 [sequential_read-io-depth-2-num-jobs-1] stonewall rw=read blocksize=512k iodepth=2 size=100% numjobs=1""" self.assertEqual( fio_benchmark.GenerateJobFileString( self.filename, ['sequential_read'], [1, 2], [1], None, None, 600, ['randrepeat=0', 'offset_increment=1k']), expected_jobfile)
def testParseGenerateScenario(self): expected_jobfile = """ [global] ioengine=libaio invalidate=1 direct=1 runtime=600 time_based filename=/test/filename do_verify=0 verify_fatal=0 group_reporting=1 randrepeat=0 [seq_64M_read_10TB-io-depth-1-num-jobs-1] stonewall rw=read blocksize=64M iodepth=1 size=10TB numjobs=1 [rand_16k_readwrite_5TB_rwmixread-65-io-depth-1-num-jobs-1] stonewall rw=randrw rwmixread=65 blocksize=16k iodepth=1 size=5TB numjobs=1""" self.assertEqual( fio_benchmark.GenerateJobFileString( self.filename, ['seq_64M_read_10TB', 'rand_16k_readwrite_5TB_rwmixread-65'], [1], [1], None, None, 600, True, ['randrepeat=0']), expected_jobfile)
def testIndirectIO(self): job_file = fio_benchmark.GenerateJobFileString( self.filename, ['sequential_read'], [1], [1], None, units.Unit('megabyte') * 2, 600, False, {}) self.assertIn('direct=0', job_file)