summaryrefslogtreecommitdiffstats
path: root/src/test/generate-sym-test.py
blob: fdb9e3ecb789600f66ed77c10ddb08058e53010b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/env python3
import sys, re

print('#include <stdio.h>')
for header in sys.argv[2:]:
    print('#include "{}"'.format(header.split('/')[-1]))

print('''
/* We want to check deprecated symbols too, without complaining */
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"

const void* symbols[] = {''')

for line in open(sys.argv[1]):
    match = re.search('^ +([a-zA-Z0-9_]+);', line)
    if match:
        s = match.group(1)
        if s == 'sd_bus_object_vtable_format':
            print('    &{},'.format(s))
        else:
            print('    {},'.format(s))

print('''};

int main(void) {
    unsigned i;
    for (i = 0; i < sizeof(symbols)/sizeof(void*); i++)
         printf("%p\\n", symbols[i]);
    return 0;
}''')