コード例 #1
0
ファイル: test_llgroup.py プロジェクト: sota/pypy-old
 def f():
     p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, test.g1a)
     assert p == test.p1a
     p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, test.g1b)
     assert p == test.p1b
     p = llop.get_group_member(lltype.Ptr(test.S2), grpptr, test.g2a)
     assert p == test.p2a
     p = llop.get_group_member(lltype.Ptr(test.S2), grpptr, test.g2b)
     assert p == test.p2b
     #
     p = llop.get_next_group_member(lltype.Ptr(test.S2), grpptr, test.g1a,
                                    llmemory.sizeof(test.S1))
     assert p == test.p2a
     p = llop.get_next_group_member(lltype.Ptr(test.S2), grpptr, test.g2a,
                                    llmemory.sizeof(test.S2))
     assert p == test.p2b
     p = llop.get_next_group_member(lltype.Ptr(test.S1), grpptr, test.g2b,
                                    llmemory.sizeof(test.S2))
     assert p == test.p1b
     #
     expected = [123, 456]
     for i in range(2):
         p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, g1x[i])
         assert p.x == expected[i]
     #
     for i in range(2):
         s = llop.extract_ushort(HALFWORD, cslist[i])
         p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, s)
         assert p == test.p1b
     assert cslist[0] & ~MASK == 0x45 << HALFSHIFT
     assert cslist[1] & ~MASK == 0x41 << HALFSHIFT
     assert cslist[0] >> HALFSHIFT == 0x45
     assert cslist[1] >> (HALFSHIFT + 1) == 0x41 >> 1
     #
     return 42
コード例 #2
0
ファイル: test_llgroup.py プロジェクト: Darriall/pypy
 def f():
     p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, test.g1a)
     assert p == test.p1a
     p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, test.g1b)
     assert p == test.p1b
     p = llop.get_group_member(lltype.Ptr(test.S2), grpptr, test.g2a)
     assert p == test.p2a
     p = llop.get_group_member(lltype.Ptr(test.S2), grpptr, test.g2b)
     assert p == test.p2b
     #
     p = llop.get_next_group_member(lltype.Ptr(test.S2), grpptr,
                                    test.g1a, llmemory.sizeof(test.S1))
     assert p == test.p2a
     p = llop.get_next_group_member(lltype.Ptr(test.S2), grpptr,
                                    test.g2a, llmemory.sizeof(test.S2))
     assert p == test.p2b
     p = llop.get_next_group_member(lltype.Ptr(test.S1), grpptr,
                                    test.g2b, llmemory.sizeof(test.S2))
     assert p == test.p1b
     #
     expected = [123, 456]
     for i in range(2):
         p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, g1x[i])
         assert p.x == expected[i]
     #
     for i in range(2):
         s = llop.extract_ushort(HALFWORD, cslist[i])
         p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, s)
         assert p == test.p1b
     assert cslist[0] & ~MASK == 0x45 << HALFSHIFT
     assert cslist[1] & ~MASK == 0x41 << HALFSHIFT
     assert cslist[0] >> HALFSHIFT == 0x45
     assert cslist[1] >> (HALFSHIFT+1) == 0x41 >> 1
     #
     return 42
コード例 #3
0
ファイル: test_gctypelayout.py プロジェクト: charred/pypy
def test_layout_builder_with_vtable():
    from rpython.rtyper.lltypesystem.lloperation import llop
    vtable = lltype.malloc(rclass.OBJECT_VTABLE, immortal=True)
    layoutbuilder = test_layout_builder({GC_S: vtable})
    tid1 = layoutbuilder.get_type_id(GC_S)
    tid2 = layoutbuilder.get_type_id(GC_S2)
    tid3 = layoutbuilder.get_type_id(GC_S3)
    group = layoutbuilder.type_info_group
    vt = llop.get_next_group_member(rclass.CLASSTYPE, group._as_ptr(), tid1,
                                    layoutbuilder.size_of_fixed_type_info)
    assert vt == vtable
    for tid in [tid2, tid3]:
        py.test.raises((lltype.InvalidCast, AssertionError),
                       llop.get_next_group_member,
                       rclass.CLASSTYPE, group._as_ptr(), tid,
                       layoutbuilder.size_of_fixed_type_info)
コード例 #4
0
ファイル: test_gctypelayout.py プロジェクト: sota/pypy-old
def test_layout_builder_with_vtable():
    from rpython.rtyper.lltypesystem.lloperation import llop
    vtable = lltype.malloc(rclass.OBJECT_VTABLE, immortal=True)
    layoutbuilder = test_layout_builder({GC_S: vtable})
    tid1 = layoutbuilder.get_type_id(GC_S)
    tid2 = layoutbuilder.get_type_id(GC_S2)
    tid3 = layoutbuilder.get_type_id(GC_S3)
    group = layoutbuilder.type_info_group
    vt = llop.get_next_group_member(rclass.CLASSTYPE, group._as_ptr(), tid1,
                                    layoutbuilder.size_of_fixed_type_info)
    assert vt == vtable
    for tid in [tid2, tid3]:
        py.test.raises((lltype.InvalidCast, AssertionError),
                       llop.get_next_group_member, rclass.CLASSTYPE,
                       group._as_ptr(), tid,
                       layoutbuilder.size_of_fixed_type_info)