mirror of
https://github.com/GLEGram/GLEGram-iOS.git
synced 2026-05-08 18:45:20 +02:00
4647310322
Based on Swiftgram 12.5 (Telegram iOS 12.5). All GLEGram features ported and organized in GLEGram/ folder. Features: Ghost Mode, Saved Deleted Messages, Content Protection Bypass, Font Replacement, Fake Profile, Chat Export, Plugin System, and more. See CHANGELOG_12.5.md for full details.
81 lines
2.9 KiB
Python
81 lines
2.9 KiB
Python
from tests import TestCase, add
|
|
from yasm import SymbolTable, Expression, YasmError
|
|
|
|
class TSymbolTable(TestCase):
|
|
def setUp(self):
|
|
self.symtab = SymbolTable()
|
|
|
|
def test_keys(self):
|
|
self.assertEquals(len(self.symtab.keys()), 0)
|
|
self.symtab.declare("foo", None, 0)
|
|
keys = self.symtab.keys()
|
|
self.assertEquals(len(keys), 1)
|
|
self.assertEquals(keys[0], "foo")
|
|
|
|
def test_contains(self):
|
|
self.assert_("foo" not in self.symtab)
|
|
self.symtab.declare("foo", None, 0)
|
|
self.assert_("foo" in self.symtab)
|
|
|
|
def test_exception(self):
|
|
expr = Expression('+', 1, 2)
|
|
self.symtab.define_equ("foo", expr, 0)
|
|
self.assertRaises(YasmError, self.symtab.define_equ, "foo", expr, 0)
|
|
self.symtab.define_equ("bar", expr, 0) # cleared
|
|
self.assertRaises(YasmError, self.symtab.define_special, "bar",
|
|
'global')
|
|
|
|
def test_iters(self):
|
|
tab = self.symtab
|
|
tab.declare("foo", None, 0)
|
|
tab.declare("bar", None, 0)
|
|
tab.declare("baz", None, 0)
|
|
|
|
# while ordering is not known, it must be consistent
|
|
self.assertEquals(list(tab.keys()), list(tab.iterkeys()))
|
|
self.assertEquals(list(tab.values()), list(tab.itervalues()))
|
|
self.assertEquals(list(tab.items()), list(tab.iteritems()))
|
|
self.assertEquals(list(tab.iteritems()), zip(tab.keys(), tab.values()))
|
|
|
|
add(TSymbolTable)
|
|
|
|
class TSymbolAttr(TestCase):
|
|
def setUp(self):
|
|
self.symtab = SymbolTable()
|
|
self.declsym = self.symtab.declare("foo", None, 0)
|
|
|
|
def test_visibility(self):
|
|
sym = self.symtab.declare("local1", None, 0)
|
|
self.assertEquals(sym.visibility, set())
|
|
sym = self.symtab.declare("local2", '', 0)
|
|
self.assertEquals(sym.visibility, set())
|
|
sym = self.symtab.declare("local3", 'local', 0)
|
|
self.assertEquals(sym.visibility, set())
|
|
sym = self.symtab.declare("global", 'global', 0)
|
|
self.assertEquals(sym.visibility, set(['global']))
|
|
sym = self.symtab.declare("common", 'common', 0)
|
|
self.assertEquals(sym.visibility, set(['common']))
|
|
sym = self.symtab.declare("extern", 'extern', 0)
|
|
self.assertEquals(sym.visibility, set(['extern']))
|
|
sym = self.symtab.declare("dlocal", 'dlocal', 0)
|
|
self.assertEquals(sym.visibility, set(['dlocal']))
|
|
|
|
self.assertRaises(ValueError,
|
|
lambda: self.symtab.declare("extern2", 'foo', 0))
|
|
def test_name(self):
|
|
self.assertEquals(self.declsym.name, "foo")
|
|
|
|
def test_equ(self):
|
|
self.assertRaises(AttributeError, lambda: self.declsym.equ)
|
|
|
|
def test_label(self):
|
|
self.assertRaises(AttributeError, lambda: self.declsym.label)
|
|
|
|
def test_is_special(self):
|
|
self.assertEquals(self.declsym.is_special, False)
|
|
|
|
def test_is_curpos(self):
|
|
self.assertEquals(self.declsym.is_curpos, False)
|
|
|
|
add(TSymbolAttr)
|