summaryrefslogtreecommitdiffstats
path: root/storperf/tests
diff options
context:
space:
mode:
authorMark Beierl <mark.beierl@emc.com>2016-04-25 09:55:03 -0400
committerMark Beierl <mark.beierl@emc.com>2016-04-25 10:51:31 -0400
commit311eee3bec00d5acc32b6eba76a7ff0d1990f4b2 (patch)
tree9fe4ee0f33687ebaed1c82ff3bea0d569039cc78 /storperf/tests
parent07a375f25ee831100ecf21e7bb9c1bdcd3b960f5 (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.py39
-rw-r--r--storperf/tests/workload_tests/workload_subclass_test.py54
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)