From 9b39be955984e8ab4994fc1f347243d60cbd1a4f Mon Sep 17 00:00:00 2001 From: He Yin Ling Date: Sat, 3 Jun 2017 09:34:53 +0800 Subject: [PATCH] CI: fix bug of duplicated unit test case ID: need to compare if different file names has the same hash value. use relative path to IDF to keep test case ID consist. --- tools/unit-test-app/tools/UnitTestParser.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/tools/unit-test-app/tools/UnitTestParser.py b/tools/unit-test-app/tools/UnitTestParser.py index 8399bdac2..dd7f4417c 100644 --- a/tools/unit-test-app/tools/UnitTestParser.py +++ b/tools/unit-test-app/tools/UnitTestParser.py @@ -3,6 +3,7 @@ import os import re import shutil import subprocess +import hashlib from copy import deepcopy import CreateSectionTable @@ -131,16 +132,23 @@ class Parser(object): :return: parsed test case """ prop = self.parse_case_properities(description) + + idf_path = os.getenv("IDF_PATH") + + # use relative file path to IDF_PATH, to make sure file path is consist + relative_file_path = os.path.relpath(file_name, idf_path) + + file_name_hash = int(hashlib.sha256(relative_file_path).hexdigest(), base=16) % 1000 - if file_name in self.file_name_cache: - self.file_name_cache[file_name] += 1 + if file_name_hash in self.file_name_cache: + self.file_name_cache[file_name_hash] += 1 else: - self.file_name_cache[file_name] = 1 + self.file_name_cache[file_name_hash] = 1 tc_id = "UT_%s_%s_%03d%02d" % (self.module_map[prop["module"]]['module abbr'], self.module_map[prop["module"]]['sub module abbr'], - hash(file_name) % 1000, - self.file_name_cache[file_name]) + file_name_hash, + self.file_name_cache[file_name_hash]) test_case = deepcopy(TEST_CASE_PATTERN) test_case.update({"module": self.module_map[prop["module"]]['module'], "CI ready": "No" if prop["ignore"] == "Yes" else "Yes",