# `/home/jo/barectf/tests/tracing/configs/succeed/static-array/of-str.yaml`,
# for example, then `elems` is:
#
# `/home/jo/barectf/tests/tracing/configs/succeed/static-array/of-str.yaml`,
# for example, then `elems` is:
#
- elems = []
-
- while True:
- elem = os.path.basename(path_str)
-
- if elem == 'configs':
- break
+ elems = [os.path.basename(path_str)]
+ cat_dir = os.path.dirname(path_str)
+ elems.append(os.path.basename(cat_dir))
+ succeed_dir = os.path.dirname(cat_dir)
+ elems.append(os.path.basename(succeed_dir))
+ configs_dir = os.path.dirname(succeed_dir)
+
+ if os.path.basename(succeed_dir) != 'succeed' or os.path.basename(configs_dir) != 'configs':
+ # not a YAML configuration test
+ return
- base_dir = os.path.dirname(path_str)
- base_name = elems[0].replace(yaml_ext, '')
- rel_dir = os.path.join(*list(reversed(elems[1:])))
+ base_dir = os.path.dirname(configs_dir)
+ base_name = elems[-1].replace(yaml_ext, '')
+ rel_dir = os.path.join(*elems[:-1])
src_path = os.path.join(*[base_dir, 'src', rel_dir, f'{base_name}.c'])
data_expect_path = os.path.join(*([base_dir, 'expect', rel_dir, f'{base_name}.data.expect']))
metadata_expect_path = os.path.join(*([base_dir, 'expect', rel_dir, f'{base_name}.metadata.expect']))
support_dir_path = os.path.join(base_dir, 'support')
# create a unique test name
src_path = os.path.join(*[base_dir, 'src', rel_dir, f'{base_name}.c'])
data_expect_path = os.path.join(*([base_dir, 'expect', rel_dir, f'{base_name}.data.expect']))
metadata_expect_path = os.path.join(*([base_dir, 'expect', rel_dir, f'{base_name}.metadata.expect']))
support_dir_path = os.path.join(base_dir, 'support')
# create a unique test name
# create the file node
return _YamlFile.from_parent(parent, fspath=path, src_path=src_path,
# create the file node
return _YamlFile.from_parent(parent, fspath=path, src_path=src_path,