示例#1
0
class TestEbPointer(BaseTestCase):
    def setup(self):
        self.pointer = EbPointer()
        EbPointer.label_address_map["a.b"] = 0x1314ab

    @raises(InvalidArgumentError)
    def test_zero_size(self):
        EbPointer(size=0)

    @raises(InvalidArgumentError)
    def test_negative_size(self):
        EbPointer(size=-1)

    def test_from_block(self):
        block = Block()
        block.from_list(range(0, 0x100))

        self.pointer.from_block(block, 0)
        assert_equal(self.pointer.address, 0x020100)
        self.pointer.from_block(block, 5)
        assert_equal(self.pointer.address, 0x070605)
        self.pointer.from_block(block, 0xfd)
        assert_equal(self.pointer.address, 0xfffefd)

    def test_to_block(self):
        block = Block()
        block.from_list(range(1, 6))

        self.pointer.address = 0xabcdef
        self.pointer.to_block(block, 1)
        assert_list_equal(block[0:5].to_list(), [1, 0xef, 0xcd, 0xab, 5])

    def test_from_yml_rep(self):
        self.pointer.from_yml_rep("$123456")
        assert_equal(self.pointer.address, 0x123456)
        self.pointer.from_yml_rep("a.b")
        assert_equal(self.pointer.address, 0x1314ab)

        assert_raises(MissingUserDataError, self.pointer.from_yml_rep, None)
        assert_raises(InvalidUserDataError, self.pointer.from_yml_rep, "")
        assert_raises(InvalidUserDataError, self.pointer.from_yml_rep, "$")
        assert_raises(InvalidUserDataError, self.pointer.from_yml_rep, "not.real_label")
        assert_raises(InvalidUserDataError, self.pointer.from_yml_rep, True)

    def test_yml_rep(self):
        self.pointer.address = 0xfe4392
        assert_equal(self.pointer.yml_rep(), "$fe4392")
示例#2
0
 def test_zero_size(self):
     EbPointer(size=0)
示例#3
0
 def test_negative_size(self):
     EbPointer(size=-1)
示例#4
0
 def setup(self):
     self.pointer = EbPointer()
     EbPointer.label_address_map["a.b"] = 0x1314ab