diff options
Diffstat (limited to 'buildtools')
-rw-r--r-- | buildtools/wafsamba/samba_abi.py | 6 | ||||
-rw-r--r-- | buildtools/wafsamba/tests/test_abi.py | 17 |
2 files changed, 20 insertions, 3 deletions
diff --git a/buildtools/wafsamba/samba_abi.py b/buildtools/wafsamba/samba_abi.py index c325b3323e..488dab8837 100644 --- a/buildtools/wafsamba/samba_abi.py +++ b/buildtools/wafsamba/samba_abi.py @@ -191,12 +191,12 @@ def abi_write_vscript(f, libname, current_version, versions, symmap, abi_match): f.write("\t\t%s;\n" % x) else: f.write("\t\t*;\n") - if len(local_abi) > 0: + if abi_match != ["*"]: f.write("\tlocal:\n") for x in local_abi: f.write("\t\t%s;\n" % x[1:]) - elif abi_match != ["*"]: - f.write("\tlocal: *;\n") + if len(global_abi) > 0: + f.write("\t\t*;\n") f.write("};\n") diff --git a/buildtools/wafsamba/tests/test_abi.py b/buildtools/wafsamba/tests/test_abi.py index 42c4697cde..bba78c1ba0 100644 --- a/buildtools/wafsamba/tests/test_abi.py +++ b/buildtools/wafsamba/tests/test_abi.py @@ -101,3 +101,20 @@ MYLIB_0.1 { \t\texc_*; }; """) + + def test_excludes_and_includes(self): + f = StringIO() + abi_write_vscript(f, "MYLIB", "1.0", [], { + "pub_foo": "1.0", + "exc_bar": "1.0", + "other": "1.0" + }, ["pub_*", "!exc_*"]) + self.assertEquals(f.getvalue(), """\ +1.0 { +\tglobal: +\t\tpub_*; +\tlocal: +\t\texc_*; +\t\t*; +}; +""") |