Merge branch 'bugfix/duplicate_unit_test_case_id' into 'master'

CI: fix bug that generates duplicate unit test case ID

See merge request !813
This commit is contained in:
Ivan Grokhotkov 2017-06-04 00:51:12 +08:00
commit e45a288516
2 changed files with 19 additions and 5 deletions

View file

@ -436,6 +436,12 @@ UT_001_03:
- ESP32_IDF - ESP32_IDF
- UT_T1_1 - UT_T1_1
UT_001_04:
<<: *unit_test_template
tags:
- ESP32_IDF
- UT_T1_1
IT_001_01: IT_001_01:
<<: *test_template <<: *test_template
tags: tags:

View file

@ -3,6 +3,7 @@ import os
import re import re
import shutil import shutil
import subprocess import subprocess
import hashlib
from copy import deepcopy from copy import deepcopy
import CreateSectionTable import CreateSectionTable
@ -131,16 +132,23 @@ class Parser(object):
:return: parsed test case :return: parsed test case
""" """
prop = self.parse_case_properities(description) 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: if file_name_hash in self.file_name_cache:
self.file_name_cache[file_name] += 1 self.file_name_cache[file_name_hash] += 1
else: 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'], tc_id = "UT_%s_%s_%03d%02d" % (self.module_map[prop["module"]]['module abbr'],
self.module_map[prop["module"]]['sub module abbr'], self.module_map[prop["module"]]['sub module abbr'],
hash(file_name) % 1000, file_name_hash,
self.file_name_cache[file_name]) self.file_name_cache[file_name_hash])
test_case = deepcopy(TEST_CASE_PATTERN) test_case = deepcopy(TEST_CASE_PATTERN)
test_case.update({"module": self.module_map[prop["module"]]['module'], test_case.update({"module": self.module_map[prop["module"]]['module'],
"CI ready": "No" if prop["ignore"] == "Yes" else "Yes", "CI ready": "No" if prop["ignore"] == "Yes" else "Yes",