From 88b4da3ad723f9e0d3f7157b61285bb4ec172e0d Mon Sep 17 00:00:00 2001 From: Vratko Polak Date: Wed, 26 Mar 2025 18:02:01 +0100 Subject: fix(bisect): Ignore negative values Values caused by csit/issues/3983 are not real and they mess up bisecting decitions if not ignored. Change-Id: Iee7f6c43b25505183ea1def0a355f4bcbc8a1987 Signed-off-by: Vratko Polak --- resources/libraries/python/model/parse.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'resources/libraries/python/model/parse.py') diff --git a/resources/libraries/python/model/parse.py b/resources/libraries/python/model/parse.py index 1e0aebfe18..6f4505262e 100644 --- a/resources/libraries/python/model/parse.py +++ b/resources/libraries/python/model/parse.py @@ -1,4 +1,4 @@ -# Copyright (c) 2024 Cisco and/or its affiliates. +# Copyright (c) 2025 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -93,19 +93,21 @@ def parse(dirpath: str, fake_value: float = 1.0) -> Dict[str, List[float]]: result_object = data["result"] result_type = result_object["type"] if result_type == "mrr": - results[name] = result_object["receive_rate"]["rate"]["values"] + result_list = result_object["receive_rate"]["rate"]["values"] elif result_type == "ndrpdr": - results[name] = [result_object["pdr"]["lower"]["rate"]["value"]] + result_list = [result_object["pdr"]["lower"]["rate"]["value"]] elif result_type == "soak": - results[name] = [ + result_list = [ result_object["critical_rate"]["lower"]["rate"]["value"] ] elif result_type == "reconf": - results[name] = [result_object["loss"]["time"]["value"]] + result_list = [result_object["loss"]["time"]["value"]] elif result_type == "hoststack": - results[name] = [result_object["bandwidth"]["value"]] + result_list = [result_object["bandwidth"]["value"]] else: raise RuntimeError(f"Unknown result type: {result_type}") + # Negative values from csit/issues/3983 need to be ignored. + results[name] = [float(val) for val in result_list if val >= 0] results = {test_id: results[test_id] for test_id in sorted(results)} with open(resultpath, "wt", encoding="utf8") as file_out: json.dump(results, file_out, indent=1, separators=(", ", ": ")) -- cgit