diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2023-08-06 22:22:12 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2023-08-06 22:22:12 (GMT) |
commit | a02116de1290b1f5c7deda43071df762cebc9b84 (patch) | |
tree | c58be0b9376d340088cf6c786c8daa358fa14b55 | |
parent | dbe05c349a0892306d7317d3c26a56e9b19eca92 (diff) |
Make the "condition" section mandatory in a rule.
-rw-r--r-- | src/analysis/scan/grammar.y | 3 | ||||
-rw-r--r-- | tests/analysis/scan/fuzzing.py | 14 |
2 files changed, 15 insertions, 2 deletions
diff --git a/src/analysis/scan/grammar.y b/src/analysis/scan/grammar.y index 19a4257..9c3b08b 100644 --- a/src/analysis/scan/grammar.y +++ b/src/analysis/scan/grammar.y @@ -301,8 +301,7 @@ string_decl : IDENTIFIER ASSIGN PLAIN_STRING } ; - condition : /* empty */ - | CONDITION COLON cexpression + condition : CONDITION COLON cexpression { g_scan_rule_set_match_condition(*built_rule, $3); g_object_unref(G_OBJECT($3)); diff --git a/tests/analysis/scan/fuzzing.py b/tests/analysis/scan/fuzzing.py index 64eeb33..0870ed4 100644 --- a/tests/analysis/scan/fuzzing.py +++ b/tests/analysis/scan/fuzzing.py @@ -32,3 +32,17 @@ class TestRostFuzzingFixes(ChrysalideTestCase): ctx = scanner.analyze(options, content) self.assertIsNotNone(ctx) + + + def testMandatoryCondition(self): + """Ensure a condition section exists in a rule.""" + + rule = ''' +rule test { + +} +''' + + with self.assertRaisesRegex(ValueError, 'Unable to create content scanner'): + + scanner = ContentScanner(rule) |