@@ -117,13 +117,17 @@ def _add_sections(self, sections, resolve):
117
117
_resolve = resolve_default_benchmark
118
118
lastfile = filename
119
119
120
+ section_key = section
121
+ if section == "group" :
122
+ section_key = (section , data [0 ])
123
+
120
124
if filename not in sections_seen :
121
- sections_seen [filename ] = {section }
122
- elif section in sections_seen [filename ]:
123
- # For now each section can only show up once.
124
- raise NotImplementedError ((section , data ))
125
+ sections_seen [filename ] = {section_key }
126
+ elif section_key in sections_seen [filename ]:
127
+ # For now each section_key can only show up once.
128
+ raise NotImplementedError ((section_key , data ))
125
129
else :
126
- sections_seen [filename ].add (section )
130
+ sections_seen [filename ].add (section_key )
127
131
128
132
if section == 'includes' :
129
133
pass
@@ -416,20 +420,20 @@ def _resolve_groups(rawgroups, byname):
416
420
while unresolved :
417
421
for groupname , names in list (unresolved .items ()):
418
422
benchmarks = set ()
419
- for name in names :
423
+
424
+ q = list (names )
425
+ while q :
426
+ name = q .pop ()
427
+
420
428
if name in byname :
421
429
benchmarks .add (byname [name ])
422
430
elif name in groups :
423
431
benchmarks .update (groups [name ])
424
- names .remove (name )
425
432
elif name == groupname :
426
- names .remove (name )
427
- break
433
+ pass
428
434
else : # name in unresolved
429
- names .remove (name )
430
- names .extend (unresolved [name ])
431
- break
432
- else :
433
- groups [groupname ] = benchmarks
434
- del unresolved [groupname ]
435
+ q .extend (unresolved [name ])
436
+
437
+ groups [groupname ] = benchmarks
438
+ del unresolved [groupname ]
435
439
return groups
0 commit comments