aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTibor Frank <tifrank@cisco.com>2023-08-14 09:00:44 +0000
committerTibor Frank <tifrank@cisco.com>2023-08-15 07:55:31 +0000
commit21dd8bd7b64b148d3d99bece9fd9b9fffe70c2e0 (patch)
treea6b1a0559102f9a9603fd34980838cfca2e6399a
parent3be18276f6478505cd24507b8674c8b312f019be (diff)
GSO: Add export of results to json files.
Change-Id: Iac742f0571b11e06662af6bf1b680d0b4e196ddd Signed-off-by: Tibor Frank <tifrank@cisco.com> (cherry picked from commit 3b63dc1e6fa72fd47d9f3d07115f28ffa4a2bd7a)
-rw-r--r--resources/libraries/python/model/ExportJson.py2
-rw-r--r--resources/libraries/python/model/validate.py3
-rw-r--r--resources/libraries/robot/performance/performance_utils.robot6
-rw-r--r--resources/model_schema/test_case.schema.yaml4
4 files changed, 12 insertions, 3 deletions
diff --git a/resources/libraries/python/model/ExportJson.py b/resources/libraries/python/model/ExportJson.py
index de8874dc52..73e822491c 100644
--- a/resources/libraries/python/model/ExportJson.py
+++ b/resources/libraries/python/model/ExportJson.py
@@ -71,7 +71,7 @@ class ExportJson():
elif u"HOSTSTACK" in tags:
test_type = u"hoststack"
elif u"GSO_TRUE" in tags or u"GSO_FALSE" in tags:
- test_type = u"gso"
+ test_type = u"mrr"
elif u"RECONF" in tags:
test_type = u"reconf"
# The remaining 3 options could also apply to DPDK and TRex tests.
diff --git a/resources/libraries/python/model/validate.py b/resources/libraries/python/model/validate.py
index ee82d3289f..85c4b993c9 100644
--- a/resources/libraries/python/model/validate.py
+++ b/resources/libraries/python/model/validate.py
@@ -52,10 +52,11 @@ def validate(file_path, validator):
:param validator: Validator instance to use for validation.
:type file_path: str
:type validator: jsonschema.validators.Validator
- :raises RuntimeError: If schema validation fails.
+ :raises ValidationError: If schema validation fails.
"""
with open(file_path, "rt", encoding="utf-8") as file_in:
instance = json.load(file_in)
error = jsonschema.exceptions.best_match(validator.iter_errors(instance))
if error is not None:
+ print(json.dumps(instance, indent=4))
raise error
diff --git a/resources/libraries/robot/performance/performance_utils.robot b/resources/libraries/robot/performance/performance_utils.robot
index 4840e05b9f..34b9ab6bef 100644
--- a/resources/libraries/robot/performance/performance_utils.robot
+++ b/resources/libraries/robot/performance/performance_utils.robot
@@ -486,6 +486,7 @@
| | ${results}= | Send iPerf3 traffic at specified rate
| | ... | ${trial_duration} | ${None} | ${None}
| | ... | ${trial_multiplicity} | ${traffic_directions}
+| | ... | export_mrr_unit=bps
| | Set Test Message | ${\n}iPerf3 trial results
| | Set Test Message | in Gbits per second: ${results}
| | ... | append=yes
@@ -510,6 +511,9 @@
| | ... | Type: integer
| | ... | - extended_debug - True to enable extended debug.
| | ... | Type: boolean
+| | ... | - export_mrr_unit - Use this unit when exporting MRR values,
+| | ... | or empty string for no export.
+| | ... | Type: string
| |
| | ... | *Example:*
| |
@@ -519,6 +523,7 @@
| | [Arguments] | ${trial_duration} | ${rate} | ${frame_size}
| | ... | ${trial_multiplicity}=${trial_multiplicity}
| | ... | ${traffic_directions}=${1} | ${extended_debug}=${extended_debug}
+| | ... | ${export_mrr_unit}=${Empty}
| |
| | Set Test Variable | ${extended_debug}
| | Set Test Variable | ${rate}
@@ -579,6 +584,7 @@
| | | ... | bind=${iperf_client_bind}
| | | ... | affinity=${iperf_client_affinity}
| | | ${conv} = | Convert To Number | ${rr['sum_received']['bits_per_second']}
+| | | Append Mrr Value | ${conv} | ${export_mrr_unit}
| | | ${conv} = | Evaluate | ${conv} / ${1000} / ${1000} / ${1000}
| | | ${conv} = | Evaluate | "{:.3f}".format(${conv})
| | | Append To List
diff --git a/resources/model_schema/test_case.schema.yaml b/resources/model_schema/test_case.schema.yaml
index 5d33e0e149..5c7cf305fb 100644
--- a/resources/model_schema/test_case.schema.yaml
+++ b/resources/model_schema/test_case.schema.yaml
@@ -429,12 +429,14 @@ $defs:
description: >-
Packets per second (pps),
connections per second (cps),
- requests per second (rps).
+ requests per second (rps),
+ bits per second (bps).
type: string
enum:
- pps
- cps
- rps
+ - bps
bandwidth_unit:
description: >-
Unit of measurement for bandwidth values.