f.close()
def VSCRIPT_MAP_PRIVATE(bld, libname, orig_vscript, version, private_vscript):
- version = re.sub(r'\W', '_', version).upper()
+ version = re.sub(r'[^.\w]', '_', version).upper()
t = bld.SAMBA_GENERATOR(private_vscript,
rule=abi_build_vscript,
source=orig_vscript,
libname = os.path.basename(libname)
version = os.path.basename(version)
- libname = re.sub(r'\W', '_', libname).upper()
- version = re.sub(r'\W', '_', version).upper()
+ libname = re.sub(r'[^.\w]', '_', libname).upper()
+ version = re.sub(r'[^.\w]', '_', version).upper()
t = bld.SAMBA_GENERATOR(vscript,
rule=abi_build_vscript,
return "objdump --dynamic-syms " + sofile + " | " + \
"awk \'$0 !~ /" + expected_symbols + "/ {if ($2 == \"g\" && $3 ~ /D(F|O)/ && $4 ~ /(.bss|.text)/ && $7 !~ /(__gcov_|mangle_path)/) exit 1}\'"
+def check_versioned_symbol(sofile, symvol, version):
+ return "objdump --dynamic-syms " + sofile + " | " + \
+ "awk \'$7 == \"" + symvol + "\" { " + \
+ "if ($2 == \"g\" && $3 ~ /D(F|O)/ && $4 ~ /(.bss|.text)/ && " + \
+ "$6 == \"" + version + "\") print $0 }\'" + \
+ "| wc -l | grep -q \'^1$\'"
+
if args:
# If we are only running specific test,
# do not sleep randomly to wait for it to start
check_symbols("./bin/plugins/libnss_wins.so.2", "_nss_wins_")),
("nondevel-no-public-libwbclient",
check_symbols("./bin/shared/libwbclient.so.0", "wbc")),
+ ("nondevel-libwbclient-wbcCtxPingDc2@WBCLIENT_0.12",
+ check_versioned_symbol("./bin/shared/libwbclient.so.0", "wbcCtxPingDc2", "WBCLIENT_0.12")),
("nondevel-no-public-pam_winbind",
check_symbols("./bin/plugins/pam_winbind.so", "pam_sm_")),
("nondevel-no-public-winbind_krb5_locator",
check_symbols("./bin/plugins/winbind_krb5_locator.so", "service_locator")),
("nondevel-no-public-async_dns_krb5_locator",
check_symbols("./bin/plugins/async_dns_krb5_locator.so", "service_locator")),
+ ("nondevel-libndr-krb5pac-ndr_pull_PAC_DATA@NDR_KRB5PAC_0.0.1",
+ check_versioned_symbol("./bin/shared/libndr-krb5pac.so.0", "ndr_pull_PAC_DATA", "NDR_KRB5PAC_0.0.1")),
("nondevel-install", "make -j install"),
("nondevel-dist", "make dist"),