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)
Exemple #3
0
  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)
Exemple #4
0
    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)
Exemple #5
0
  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)
Exemple #6
0
    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)
Exemple #7
0
 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)