From: Zbigniew Jędrzejewski-Szmek Date: Sun, 12 Jun 2022 19:42:51 +0000 (+0200) Subject: test-lib*-sym: print symbols names in addition to addresses X-Git-Tag: v252-rc1~751^2~19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=42d824dee3f4a818513113802f086324730e2efa;p=thirdparty%2Fsystemd.git test-lib*-sym: print symbols names in addition to addresses This makes it easier to see what the test is doing. I converted the code to use f-strings. They are already used in other scripts necessary for build, so IIUC this is OK. --- diff --git a/src/test/generate-sym-test.py b/src/test/generate-sym-test.py index 955d5e96997..8ed4d26fd3b 100755 --- a/src/test/generate-sym-test.py +++ b/src/test/generate-sym-test.py @@ -11,21 +11,26 @@ print(''' /* We want to check deprecated symbols too, without complaining */ #pragma GCC diagnostic ignored "-Wdeprecated-declarations" -const void* symbols[] = {''') +const struct { + const char *name; + const void *symbol; +} symbols[] = {''') +count = 0 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)) + print(f' {{"{s}", &{s}}},') else: - print(' {},'.format(s)) + print(f' {{"{s}", {s}}},') + count += 1 -print('''}; +print(f'''}}; -int main(void) { - for (size_t i = 0; i < sizeof(symbols)/sizeof(void*); i++) - printf("%p\\n", symbols[i]); +int main(void) {{ + for (size_t i = 0; i < {count}; i++) + printf("%p: %s\\n", symbols[i].symbol, symbols[i].name); return 0; -}''') +}}''')