def test_one(self):
        f = StringIO()
        abi_write_vscript(f, "MYLIB", "1.0", [], {
            "old": "1.0",
            "new": "1.0"}, ["*"])
        self.assertEquals(f.getvalue(), """\
1.0 {
\tglobal:
\t\t*;
};
""")
    def test_exclude(self):
        f = StringIO()
        abi_write_vscript(f, "MYLIB", "1.0", [], {
            "exc_old": "0.1",
            "old": "0.1",
            "new": "1.0"}, ["!exc_*"])
        self.assertEquals(f.getvalue(), """\
1.0 {
\tglobal:
\t\t*;
\tlocal:
\t\texc_*;
};
""")
    def test_one(self):
        f = StringIO()
        abi_write_vscript(f, "MYLIB", "1.0", [], {
            "old": "1.0",
            "new": "1.0"}, ["*"])
        self.assertEqual(f.getvalue(), """\
1.0 {
\tglobal:
\t\t*;
\tlocal:
\t\t_end;
\t\t__bss_start;
\t\t_edata;
};
""")
    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*;
};
""")
    def test_simple(self):
        # No restrictions.
        f = StringIO()
        abi_write_vscript(f, "MYLIB", "1.0", ["0.1"], {
            "old": "0.1",
            "new": "1.0"}, ["*"])
        self.assertEquals(f.getvalue(), """\
MYLIB_0.1 {
\tglobal:
\t\told;
};

1.0 {
\tglobal:
\t\t*;
};
""")