Fix issue where logging a list of performance values was incorrect.
BUG=chromium:595169
TEST=hand execution of test_unittest.py
Change-Id: I945714b7790df1bca06beba9b4f09ef6c725a3c5
Reviewed-on: https://chromium-review.googlesource.com/332890
Commit-Ready: Keith Haddow <haddowk@chromium.org>
Tested-by: Keith Haddow <haddowk@chromium.org>
Reviewed-by: Keith Haddow <haddowk@chromium.org>
diff --git a/client/common_lib/test_unittest.py b/client/common_lib/test_unittest.py
index c735184..f692dc1 100755
--- a/client/common_lib/test_unittest.py
+++ b/client/common_lib/test_unittest.py
@@ -4,6 +4,8 @@
__author__ = 'gps@google.com (Gregory P. Smith)'
+import json
+import tempfile
import unittest
import common
from autotest_lib.client.common_lib import test
@@ -291,5 +293,72 @@
self.god.check_playback()
+ def test_output_single_perf_value(self):
+ self.test.resultsdir = tempfile.mkdtemp()
+
+ self.test.output_perf_value("Test", 1, units="ms", higher_is_better=True)
+
+ f = open(self.test.resultsdir + "/results-chart.json")
+ expected_result = {"Test": {"summary": {"units": "ms", "type": "scalar",
+ "value": 1, "improvement_direction": "up"}}}
+ self.assertDictEqual(expected_result, json.loads(f.read()))
+
+
+ def test_output_single_perf_value_twice(self):
+ self.test.resultsdir = tempfile.mkdtemp()
+
+ self.test.output_perf_value("Test", 1, units="ms", higher_is_better=True)
+ self.test.output_perf_value("Test", 2, units="ms", higher_is_better=True)
+
+ f = open(self.test.resultsdir + "/results-chart.json")
+ expected_result = {"Test": {"summary": {"units": "ms", "type": "list_of_scalar_values",
+ "values": [1, 2], "improvement_direction": "up"}}}
+ self.assertDictEqual(expected_result, json.loads(f.read()))
+
+
+ def test_output_single_perf_value_three_times(self):
+ self.test.resultsdir = tempfile.mkdtemp()
+
+ self.test.output_perf_value("Test", 1, units="ms", higher_is_better=True)
+ self.test.output_perf_value("Test", 2, units="ms", higher_is_better=True)
+ self.test.output_perf_value("Test", 3, units="ms", higher_is_better=True)
+
+ f = open(self.test.resultsdir + "/results-chart.json")
+ expected_result = {"Test": {"summary": {"units": "ms", "type": "list_of_scalar_values",
+ "values": [1, 2, 3], "improvement_direction": "up"}}}
+ self.assertDictEqual(expected_result, json.loads(f.read()))
+
+
+ def test_output_list_perf_value(self):
+ self.test.resultsdir = tempfile.mkdtemp()
+
+ self.test.output_perf_value("Test", [1, 2, 3], units="ms", higher_is_better=False)
+
+ f = open(self.test.resultsdir + "/results-chart.json")
+ expected_result = {"Test": {"summary": {"units": "ms", "type": "list_of_scalar_values",
+ "values": [1, 2, 3], "improvement_direction": "down"}}}
+ self.assertDictEqual(expected_result, json.loads(f.read()))
+
+
+ def test_output_single_then_list_perf_value(self):
+ self.test.resultsdir = tempfile.mkdtemp()
+ self.test.output_perf_value("Test", 1, units="ms", higher_is_better=False)
+ self.test.output_perf_value("Test", [4, 3, 2], units="ms", higher_is_better=False)
+ f = open(self.test.resultsdir + "/results-chart.json")
+ expected_result = {"Test": {"summary": {"units": "ms", "type": "list_of_scalar_values",
+ "values": [1, 4, 3, 2], "improvement_direction": "down"}}}
+ self.assertDictEqual(expected_result, json.loads(f.read()))
+
+
+ def test_output_list_then_list_perf_value(self):
+ self.test.resultsdir = tempfile.mkdtemp()
+ self.test.output_perf_value("Test", [1, 2, 3], units="ms", higher_is_better=False)
+ self.test.output_perf_value("Test", [4, 3, 2], units="ms", higher_is_better=False)
+ f = open(self.test.resultsdir + "/results-chart.json")
+ expected_result = {"Test": {"summary": {"units": "ms", "type": "list_of_scalar_values",
+ "values": [1, 2, 3, 4, 3, 2], "improvement_direction": "down"}}}
+ self.assertDictEqual(expected_result, json.loads(f.read()))
+
+
if __name__ == '__main__':
unittest.main()