Skip to content

Commit 2d5ba6c

Browse files
committed
Use ini file rather than yaml for warning filters
Otherwise we need to install python-yaml for various distros, which is a pain.
1 parent 32c90a8 commit 2d5ba6c

3 files changed

Lines changed: 25 additions & 23 deletions

File tree

etc/filters.ini

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
[patterns]
2+
v1='detected stall(s)? on CPU'
3+
v2='WARNING:.*\s(un)?lock(s|ing)?\s'
4+
v3='WARNING: CPU: \d+ PID: \d+ at '
5+
6+
[strings]
7+
v1='Unable to handle kernel paging request for'
8+
v2='Kernel BUG at'
9+
v3='Warning!'
10+
v4='BUG:'
11+
v5='WARNING: chain_key collision'
12+
v6='WARNING: bad contention detected!'
13+
v7='WARNING: suspicious RCU usage'
14+
15+
[suppressions]
16+
v1='test_debug_virtual_init'
17+
v2='at drivers/misc/lkdtm/'

etc/filters.yaml

Lines changed: 0 additions & 16 deletions
This file was deleted.

lib/utils.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -127,18 +127,19 @@ def test_harness(func, name, *args, **kwargs):
127127

128128

129129
def filter_log_warnings(infile, outfile):
130-
import yaml
130+
from configparser import ConfigParser
131131
import re
132132

133133
base = os.path.dirname(sys.argv[0])
134-
path = os.path.join(base, '../etc/filters.yaml')
134+
path = os.path.join(base, '../etc/filters.ini')
135135
if not os.path.exists(path):
136-
path = os.path.join(base, '../../etc/filters.yaml')
136+
path = os.path.join(base, '../../etc/filters.ini')
137137

138-
settings = yaml.safe_load(open(path)).get('warnings', {})
139-
suppressions = settings.get('suppressions', [])
140-
strings = settings.get('strings', [])
141-
patterns = settings.get('patterns', [])
138+
parser = ConfigParser()
139+
parser.read_file(open(path))
140+
suppressions = [t[1] for t in parser.items('suppressions', [])]
141+
strings = [t[1] for t in parser.items('strings', [])]
142+
patterns = [t[1] for t in parser.items('patterns', [])]
142143
patterns = [re.compile(p) for p in patterns]
143144

144145
found = False

0 commit comments

Comments
 (0)