Merge changes from topic 'feat/baro_nfvi_metrics'
[yardstick.git] / yardstick / tests / functional / benchmark / core / test_report.py
index 5f060dd..832d3b3 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 2018 Intel Corporation.
+# Copyright (c) 2018-2019 Intel Corporation.
 #
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Apache License, Version 2.0
@@ -41,6 +41,33 @@ GOOD_DB_METRICS = [
     {u'time': u'2018-08-20T16:49:30.379359421Z',
      u'metric1': 8, u'metric2': 5, u'metric3': 1, u'metric4': 0},
 ]
+GOOD_DB_BARO_METRICS = [
+     {u'value': 324050, u'instance': u'0', u'host': u'myhostname',
+      u'time': u'2018-08-20T16:49:27.383698038Z',
+      u'type_instance': u'user', u'type': u'cpu'},
+     {
+      u'value': 193798, u'instance': u'0', u'host': u'myhostname',
+      u'time': u'2018-12-19T16:49:27.383712594Z',
+      u'type_instance': u'system', u'type': u'cpu'},
+     {
+      u'value': 324051, u'instance': u'0', u'host': u'myhostname',
+      u'time': u'2018-08-20T16:49:28.383696624Z',
+      u'type_instance': u'user', u'type': u'cpu'},
+     {
+      u'value': 193800, u'instance': u'0', u'host': u'myhostname',
+      u'time': u'2018-08-20T16:49:28.383713481Z',
+      u'type_instance': u'system', u'type': u'cpu'},
+     {
+      u'value': 324054, u'instance': u'0', u'host': u'myhostname',
+      u'time': u'2018-08-20T16:49:29.3836966789Z',
+      u'type_instance': u'user', u'type': u'cpu'},
+     {
+      u'value': 193801, u'instance': u'0', u'host': u'myhostname',
+      u'time': u'2018-08-20T16:49:29.383716296Z',
+      u'type_instance': u'system', u'type': u'cpu'}
+]
+TIMESTAMP_START = '2018-08-20T16:49:26.372662016Z'
+TIMESTAMP_END = '2018-08-20T16:49:30.379359421Z'
 
 yardstick_config = """
 [DEFAULT]
@@ -48,11 +75,19 @@ dispatcher = influxdb
 """
 
 
-def my_query(query_sql):
+def my_query(query_sql, db=None):
     get_fieldkeys_cmd = 'show field keys'
     get_metrics_cmd = 'select * from'
-
-    if get_fieldkeys_cmd in query_sql:
+    get_start_time_cmd = 'ORDER ASC limit 1'
+    get_end_time_cmd = 'ORDER DESC limit 1'
+    if db:
+        if get_start_time_cmd in query_sql:
+            return TIMESTAMP_START
+        elif get_end_time_cmd in query_sql:
+            return TIMESTAMP_END
+        else:
+            return GOOD_DB_BARO_METRICS
+    elif get_fieldkeys_cmd in query_sql:
         return GOOD_DB_FIELDKEYS
     elif get_metrics_cmd in query_sql:
         return GOOD_DB_METRICS
@@ -87,25 +122,190 @@ class ReportTestCase(unittest.TestCase):
                      keys_act = ast.literal_eval(l.strip()[18:-1])
                  elif "var report_tree = [" in l:
                      tree_act = ast.literal_eval(l.strip()[18:-1])
-
         data_exp = {
-            'metric1': [1, 1, 2, 3, 5, 8],
-            'metric2': [0, 1, 2, 3, 4, 5],
-            'metric3': [8, 5, 3, 2, 1, 1],
-            'metric4': [5, 4, 3, 2, 1, 0],
+            'metric1': [
+                {'x': '16:49:26.372662', 'y': 1},
+                {'x': '16:49:27.374208', 'y': 1},
+                {'x': '16:49:28.375742', 'y': 2},
+                {'x': '16:49:29.377299', 'y': 3},
+                {'x': '16:49:30.378252', 'y': 5},
+                {'x': '16:49:30.379359', 'y': 8}],
+            'metric2': [
+                {'x': '16:49:26.372662', 'y': 0},
+                {'x': '16:49:27.374208', 'y': 1},
+                {'x': '16:49:28.375742', 'y': 2},
+                {'x': '16:49:29.377299', 'y': 3},
+                {'x': '16:49:30.378252', 'y': 4},
+                {'x': '16:49:30.379359', 'y': 5}],
+            'metric3': [
+                {'x': '16:49:26.372662', 'y': 8},
+                {'x': '16:49:27.374208', 'y': 5},
+                {'x': '16:49:28.375742', 'y': 3},
+                {'x': '16:49:29.377299', 'y': 2},
+                {'x': '16:49:30.378252', 'y': 1},
+                {'x': '16:49:30.379359', 'y': 1}],
+            'metric4': [
+                {'x': '16:49:26.372662', 'y': 5},
+                {'x': '16:49:27.374208', 'y': 4},
+                {'x': '16:49:28.375742', 'y': 3},
+                {'x': '16:49:29.377299', 'y': 2},
+                {'x': '16:49:30.378252', 'y': 1},
+                {'x': '16:49:30.379359', 'y': 0}],
+            'myhostname.cpu_value.cpu.system.0': [
+                {'x': '16:49:27.3837', 'y': 193798},
+                {'x': '16:49:28.3837', 'y': 193800},
+                {'x': '16:49:29.3837', 'y': 193801}],
+            'myhostname.cpu_value.cpu.user.0': [
+                {'x': '16:49:27.3836', 'y': 324050},
+                {'x': '16:49:28.3836', 'y': 324051},
+                {'x': '16:49:29.3836', 'y': 324054}],
+            'myhostname.cpufreq_value.cpu.system.0': [
+                {'x': '16:49:27.3837', 'y': 193798},
+                {'x': '16:49:28.3837', 'y': 193800},
+                {'x': '16:49:29.3837', 'y': 193801}],
+            'myhostname.cpufreq_value.cpu.user.0': [
+                {'x': '16:49:27.3836', 'y': 324050},
+                {'x': '16:49:28.3836', 'y': 324051},
+                {'x': '16:49:29.3836', 'y': 324054}],
+            'myhostname.intel_pmu_value.cpu.system.0': [
+                {'x': '16:49:27.3837', 'y': 193798},
+                {'x': '16:49:28.3837', 'y': 193800},
+                {'x': '16:49:29.3837', 'y': 193801}],
+            'myhostname.intel_pmu_value.cpu.user.0': [
+                {'x': '16:49:27.3836', 'y': 324050},
+                {'x': '16:49:28.3836', 'y': 324051},
+                {'x': '16:49:29.3836', 'y': 324054}],
+            'myhostname.virt_value.cpu.system.0': [
+                {'x': '16:49:27.3837', 'y': 193798},
+                {'x': '16:49:28.3837', 'y': 193800},
+                {'x': '16:49:29.3837', 'y': 193801}],
+            'myhostname.virt_value.cpu.user.0': [
+                {'x': '16:49:27.3836', 'y': 324050},
+                {'x': '16:49:28.3836', 'y': 324051},
+                {'x': '16:49:29.3836', 'y': 324054}],
+            'myhostname.memory_value.cpu.system.0': [
+                {'x': '16:49:27.3837', 'y': 193798},
+                {'x': '16:49:28.3837', 'y': 193800},
+                {'x': '16:49:29.3837', 'y': 193801}],
+            'myhostname.memory_value.cpu.user.0': [
+                {'x': '16:49:27.3836', 'y': 324050},
+                {'x': '16:49:28.3836', 'y': 324051},
+                {'x': '16:49:29.3836', 'y': 324054}]
         }
         time_exp = [
-            '16:49:26.372662', '16:49:27.374208', '16:49:28.375742',
-            '16:49:29.377299', '16:49:30.378252', '16:49:30.379359',
+            '16:49:26.372662', '16:49:27.374208', '16:49:27.3836',
+            '16:49:27.3837', '16:49:28.375742', '16:49:28.3836',
+            '16:49:28.3837', '16:49:29.377299', '16:49:29.3836',
+            '16:49:29.3837', '16:49:30.378252', '16:49:30.379359',
         ]
-        keys_exp = [
+        keys_exp = sorted([
             'metric1', 'metric2', 'metric3', 'metric4',
-        ]
+            'myhostname.cpu_value.cpu.system.0',
+            'myhostname.cpu_value.cpu.user.0',
+            'myhostname.cpufreq_value.cpu.system.0',
+            'myhostname.cpufreq_value.cpu.user.0',
+            'myhostname.intel_pmu_value.cpu.system.0',
+            'myhostname.intel_pmu_value.cpu.user.0',
+            'myhostname.virt_value.cpu.system.0',
+            'myhostname.virt_value.cpu.user.0',
+            'myhostname.memory_value.cpu.system.0',
+            'myhostname.memory_value.cpu.user.0',
+        ])
         tree_exp = [
             {'parent': '#', 'text': 'metric1', 'id': 'metric1'},
             {'parent': '#', 'text': 'metric2', 'id': 'metric2'},
             {'parent': '#', 'text': 'metric3', 'id': 'metric3'},
             {'parent': '#', 'text': 'metric4', 'id': 'metric4'},
+            {'id': 'myhostname', 'parent': '#', 'text': 'myhostname'},
+            {'id': 'myhostname.cpu_value',
+             'parent': 'myhostname',
+             'text': 'cpu_value'},
+            {'id': 'myhostname.cpu_value.cpu',
+             'parent': 'myhostname.cpu_value',
+             'text': 'cpu'},
+            {'id': 'myhostname.cpu_value.cpu.system',
+             'parent': 'myhostname.cpu_value.cpu',
+             'text': 'system'},
+            {'id': 'myhostname.cpu_value.cpu.system.0',
+             'parent': 'myhostname.cpu_value.cpu.system',
+             'text': '0'},
+            {'id': 'myhostname.cpu_value.cpu.user',
+             'parent': 'myhostname.cpu_value.cpu',
+             'text': 'user'},
+            {'id': 'myhostname.cpu_value.cpu.user.0',
+             'parent': 'myhostname.cpu_value.cpu.user',
+             'text': '0'},
+            {'id': 'myhostname.cpufreq_value',
+             'parent': 'myhostname',
+             'text': 'cpufreq_value'},
+            {'id': 'myhostname.cpufreq_value.cpu',
+             'parent': 'myhostname.cpufreq_value',
+             'text': 'cpu'},
+            {'id': 'myhostname.cpufreq_value.cpu.system',
+             'parent': 'myhostname.cpufreq_value.cpu',
+             'text': 'system'},
+            {'id': 'myhostname.cpufreq_value.cpu.system.0',
+             'parent': 'myhostname.cpufreq_value.cpu.system',
+             'text': '0'},
+            {'id': 'myhostname.cpufreq_value.cpu.user',
+             'parent': 'myhostname.cpufreq_value.cpu',
+             'text': 'user'},
+            {'id': 'myhostname.cpufreq_value.cpu.user.0',
+             'parent': 'myhostname.cpufreq_value.cpu.user',
+             'text': '0'},
+            {'id': 'myhostname.intel_pmu_value',
+             'parent': 'myhostname',
+             'text': 'intel_pmu_value'},
+            {'id': 'myhostname.intel_pmu_value.cpu',
+             'parent': 'myhostname.intel_pmu_value',
+             'text': 'cpu'},
+            {'id': 'myhostname.intel_pmu_value.cpu.system',
+             'parent': 'myhostname.intel_pmu_value.cpu',
+             'text': 'system'},
+            {'id': 'myhostname.intel_pmu_value.cpu.system.0',
+             'parent': 'myhostname.intel_pmu_value.cpu.system',
+             'text': '0'},
+            {'id': 'myhostname.intel_pmu_value.cpu.user',
+             'parent': 'myhostname.intel_pmu_value.cpu',
+             'text': 'user'},
+            {'id': 'myhostname.intel_pmu_value.cpu.user.0',
+             'parent': 'myhostname.intel_pmu_value.cpu.user',
+             'text': '0'},
+            {'id': 'myhostname.memory_value',
+             'parent': 'myhostname',
+             'text': 'memory_value'},
+            {'id': 'myhostname.memory_value.cpu',
+             'parent': 'myhostname.memory_value',
+             'text': 'cpu'},
+            {'id': 'myhostname.memory_value.cpu.system',
+             'parent': 'myhostname.memory_value.cpu',
+             'text': 'system'},
+            {'id': 'myhostname.memory_value.cpu.system.0',
+             'parent': 'myhostname.memory_value.cpu.system',
+             'text': '0'},
+            {'id': 'myhostname.memory_value.cpu.user',
+             'parent': 'myhostname.memory_value.cpu',
+             'text': 'user'},
+            {'id': 'myhostname.memory_value.cpu.user.0',
+             'parent': 'myhostname.memory_value.cpu.user',
+             'text': '0'},
+            {'id': 'myhostname.virt_value', 'parent': 'myhostname',
+             'text': 'virt_value'},
+            {'id': 'myhostname.virt_value.cpu',
+             'parent': 'myhostname.virt_value',
+             'text': 'cpu'},
+            {'id': 'myhostname.virt_value.cpu.system',
+             'parent': 'myhostname.virt_value.cpu',
+             'text': 'system'},
+            {'id': 'myhostname.virt_value.cpu.system.0',
+             'parent': 'myhostname.virt_value.cpu.system',
+             'text': '0'},
+            {'id': 'myhostname.virt_value.cpu.user',
+             'parent': 'myhostname.virt_value.cpu',
+             'text': 'user'},
+            {'id': 'myhostname.virt_value.cpu.user.0',
+             'parent': 'myhostname.virt_value.cpu.user',
+             'text': '0'}
         ]
 
         self.assertEqual(data_exp, data_act)