diff options
author | Mark Beierl <mark.beierl@emc.com> | 2016-04-25 09:55:03 -0400 |
---|---|---|
committer | Mark Beierl <mark.beierl@emc.com> | 2016-04-25 10:51:31 -0400 |
commit | 311eee3bec00d5acc32b6eba76a7ff0d1990f4b2 (patch) | |
tree | 9fe4ee0f33687ebaed1c82ff3bea0d569039cc78 /storperf/tests | |
parent | 07a375f25ee831100ecf21e7bb9c1bdcd3b960f5 (diff) |
Job run lifecycle rework
Change the way slave jobs are managed so that they are in step
with each other, and we can track the overall thread that is
running them. This lays groundwork for STORPERF-20 and
STORPERF-44
JIRA: STORPERF-33 STORPERF-43
Change-Id: Iaff48a2823ba85d6512e9782fd9091a72639835c
Signed-off-by: Mark Beierl <mark.beierl@emc.com>
Diffstat (limited to 'storperf/tests')
-rw-r--r-- | storperf/tests/db_tests/job_db_test.py | 39 | ||||
-rw-r--r-- | storperf/tests/workload_tests/workload_subclass_test.py | 54 |
2 files changed, 74 insertions, 19 deletions
diff --git a/storperf/tests/db_tests/job_db_test.py b/storperf/tests/db_tests/job_db_test.py index 4620412..92b1482 100644 --- a/storperf/tests/db_tests/job_db_test.py +++ b/storperf/tests/db_tests/job_db_test.py @@ -8,6 +8,7 @@ ############################################################################## from storperf.db.job_db import JobDB +from storperf.workloads.rr import rr import os import sqlite3 import unittest @@ -60,7 +61,7 @@ class JobDBTest(unittest.TestCase): start_time = "12345" mock_calendar.side_effect = (start_time,) mock_uuid.side_effect = (job_id,) - workload_name = "Workload" + workload = rr() db = sqlite3.connect(JobDB.db_name) cursor = db.cursor() @@ -69,26 +70,26 @@ class JobDBTest(unittest.TestCase): """select * from jobs where job_id = ? and workload = ?""", - (job_id, workload_name,)) + (job_id, workload.fullname,)) self.assertEqual(None, row.fetchone(), "Should not have been a row in the db") - self.job.start_workload(workload_name) + self.job.start_workload(workload) cursor.execute( """select job_id, workload, start from jobs where job_id = ? and workload = ?""", - (job_id, workload_name,)) + (job_id, workload.fullname,)) row = cursor.fetchone() self.assertNotEqual(None, row, "Should be a row in the db") self.assertEqual(job_id, row[0], "Did not expect " + str(row[0])) self.assertEqual( - workload_name, row[1], "Did not expect " + str(row[1])) + workload.fullname, row[1], "Did not expect " + str(row[1])) self.assertEqual(start_time, row[2], "Did not expect " + str(row[2])) @mock.patch("uuid.uuid4") @@ -99,10 +100,10 @@ class JobDBTest(unittest.TestCase): end_time = "54321" mock_calendar.side_effect = (start_time, end_time,) mock_uuid.side_effect = (job_id,) - workload_name = "Workload" + workload = rr() - self.job.start_workload(workload_name) - self.job.end_workload(workload_name) + self.job.start_workload(workload) + self.job.end_workload(workload) db = sqlite3.connect(JobDB.db_name) cursor = db.cursor() @@ -110,14 +111,14 @@ class JobDBTest(unittest.TestCase): """select job_id, workload, start, end from jobs where job_id = ? and workload = ?""", - (job_id, workload_name,)) + (job_id, workload.fullname,)) row = cursor.fetchone() self.assertNotEqual(None, row, "Should be a row in the db") self.assertEqual(job_id, row[0], "Did not expect " + str(row[0])) self.assertEqual( - workload_name, row[1], "Did not expect " + str(row[1])) + workload.fullname, row[1], "Did not expect " + str(row[1])) self.assertEqual(start_time, row[2], "Did not expect " + str(row[2])) self.assertEqual(end_time, row[3], "Did not expect " + str(row[3])) @@ -130,26 +131,26 @@ class JobDBTest(unittest.TestCase): mock_calendar.side_effect = (start_time_1, start_time_2) mock_uuid.side_effect = (job_id,) - workload_name = "Workload" + workload = rr() db = sqlite3.connect(JobDB.db_name) cursor = db.cursor() - self.job.start_workload(workload_name) - self.job.start_workload(workload_name) + self.job.start_workload(workload) + self.job.start_workload(workload) cursor.execute( """select job_id, workload, start from jobs where job_id = ? and workload = ?""", - (job_id, workload_name,)) + (job_id, workload.fullname,)) row = cursor.fetchone() self.assertNotEqual(None, row, "Should be a row in the db") self.assertEqual(job_id, row[0], "Did not expect " + str(row[0])) self.assertEqual( - workload_name, row[1], "Did not expect " + str(row[1])) + workload.fullname, row[1], "Did not expect " + str(row[1])) self.assertEqual(start_time_2, row[2], "Did not expect " + str(row[2])) @mock.patch("uuid.uuid4") @@ -160,9 +161,9 @@ class JobDBTest(unittest.TestCase): end_time = "54321" mock_calendar.side_effect = (start_time, end_time,) mock_uuid.side_effect = (job_id,) - workload_name = "Workload" + workload = rr() - self.job.end_workload(workload_name) + self.job.end_workload(workload) db = sqlite3.connect(JobDB.db_name) cursor = db.cursor() @@ -170,14 +171,14 @@ class JobDBTest(unittest.TestCase): """select job_id, workload, start, end from jobs where job_id = ? and workload = ?""", - (job_id, workload_name,)) + (job_id, workload.fullname,)) row = cursor.fetchone() self.assertNotEqual(None, row, "Should be a row in the db") self.assertEqual(job_id, row[0], "Did not expect " + str(row[0])) self.assertEqual( - workload_name, row[1], "Did not expect " + str(row[1])) + workload.fullname, row[1], "Did not expect " + str(row[1])) # The start time is set to the same time as end if it was never set # before self.assertEqual(start_time, row[2], "Did not expect " + str(row[2])) diff --git a/storperf/tests/workload_tests/workload_subclass_test.py b/storperf/tests/workload_tests/workload_subclass_test.py new file mode 100644 index 0000000..97b6b46 --- /dev/null +++ b/storperf/tests/workload_tests/workload_subclass_test.py @@ -0,0 +1,54 @@ +############################################################################## +# Copyright (c) 2015 EMC and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +import unittest +from storperf.workloads.rr import rr +from storperf.workloads.rs import rs +from storperf.workloads.rw import rw +from storperf.workloads.wr import wr +from storperf.workloads.ws import ws + + +class WorkloadSubclassTest(unittest.TestCase): + + def setUp(self): + pass + + def test_local_name(self): + workload = rr() + self.assertEqual(workload.fullname, + "None.rr.None.queue-depth.1.block-size.64k", + workload.fullname) + + def test_remote_name(self): + workload = rw() + workload.remote_host = "192.168.0.1" + self.assertEqual(workload.fullname, + "None.rw.192-168-0-1.queue-depth.1.block-size.64k", + workload.fullname) + + def test_blocksize(self): + workload = rs() + workload.options["bs"] = "4k" + self.assertEqual(workload.fullname, + "None.rs.None.queue-depth.1.block-size.4k", + workload.fullname) + + def test_queue_depth(self): + workload = wr() + workload.options["iodepth"] = "8" + self.assertEqual(workload.fullname, + "None.wr.None.queue-depth.8.block-size.64k", + workload.fullname) + + def test_id(self): + workload = ws() + workload.id = "workloadid" + self.assertEqual(workload.fullname, + "workloadid.ws.None.queue-depth.1.block-size.64k", + workload.fullname) |