Skip to content

Commit ef4af5d

Browse files
Enforce same security flag in variant-based grouping (#5231)
b/494197991
1 parent 525dd2b commit ef4af5d

2 files changed

Lines changed: 9 additions & 0 deletions

File tree

src/clusterfuzz/_internal/cron/grouper.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,11 @@ def _check_variant_grouping_candidate(testcase_1: TestcaseAttributes,
238238
if testcase_1.one_time_crasher_flag or testcase_2.one_time_crasher_flag:
239239
return
240240

241+
# Rule: Avoid grouping security and functional bugs, regardless of variants
242+
# having the same security flag.
243+
if testcase_1.security_flag != testcase_2.security_flag:
244+
return
245+
241246
# Rule: Group testcase with similar variants.
242247
# For each testcase2, get the related variant1 and check for equivalence.
243248
candidate_variant = data_handler.get_testcase_variant(testcase_1_id,

src/clusterfuzz/_internal/tests/appengine/handlers/cron/grouper_test.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -497,21 +497,25 @@ def test_similar_but_anomalous_variants_for_variant_analysis(self):
497497
self.testcases[2].project_name = 'project1'
498498
self.testcases[2].crash_type = 'crash_type3'
499499
self.testcases[2].crash_state = 'x2'
500+
self.testcases[2].security_flag = True
500501

501502
self.testcases.append(test_utils.create_generic_testcase())
502503
self.testcases[3].project_name = 'project1'
503504
self.testcases[3].crash_type = 'crash_type4'
504505
self.testcases[3].crash_state = 'y3'
506+
self.testcases[3].security_flag = True
505507

506508
self.testcases.append(test_utils.create_generic_testcase())
507509
self.testcases[4].project_name = 'project1'
508510
self.testcases[4].crash_type = 'crash_type5'
509511
self.testcases[4].crash_state = 'z4'
512+
self.testcases[4].security_flag = True
510513

511514
self.testcases.append(test_utils.create_generic_testcase())
512515
self.testcases[5].project_name = 'project1'
513516
self.testcases[5].crash_type = 'crash_type6'
514517
self.testcases[5].crash_state = 'w5'
518+
self.testcases[5].security_flag = True
515519

516520
for t in self.testcases:
517521
t.put()

0 commit comments

Comments
 (0)