Failed to save the file to the "xx" directory.

Failed to save the file to the "ll" directory.

Failed to save the file to the "mm" directory.

Failed to save the file to the "wp" directory.

403WebShell
403Webshell
Server IP : 66.29.132.124  /  Your IP : 13.59.217.1
Web Server : LiteSpeed
System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : wavevlvu ( 1524)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /proc/self/root/opt/cloudlinux/venv/lib/python3.11/site-packages/guppy/heapy/test/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/self/root/opt/cloudlinux/venv/lib/python3.11/site-packages/guppy/heapy/test/test_ER.py
# Tests of equivalence relations.

# These are also tested by test_Classifiers.
# This is some more tests, tailored esp. to the user view.
# (test_Classifiers was so slow already, so I start over)

# o Intended to be exhaustive wrt all ER's defined
#
# o Intersection of ER's

from guppy.heapy.test import support
import inspect
import os.path


class TestCase(support.TestCase):
    pass


class FirstCase(TestCase):
    def test_1(self):
        hp = self.heapy.Use
        hp.reprefix = 'hp.'

        a = hp.iso(1, '', 'asdf', 3.4, 3.7, 2)

        ts = (hp.Type & hp.Size)
        k = ts[a]

        # From Sep 1-2 2005
        # (h&dict).by(hp.Id.dictof&hp.Size)._get_partition()
        # (h&dict).by((hp.Type&hp.Size).dictof&hp.Size)

        # These require with_referrers of refby/via classifier
        # after gc collect referrers graph will be empty
        # (h).by(hp.Module.refby.dictof)
        # (h).by(hp.Via.dictof)

        # How to construct RCS / refby

        # self.aseq(hp.Type.refby(int, list) , hp.Type.refby(list, int)

        class C:
            pass

        di = hp.iso(C.__dict__, [])

        # db = di.by('Rcs')
        # for i in (0, 1):
        #     rk = repr(db[i].kind)
        #     ek = eval(rk, {'hp': hp}, {})
        #     self.aseq(ek, db[i].kind)
        #     self.aseq(db & ek, db[i])

    def test_2(self):
        ' Systematically test all kind constructors: '
        # wrt repr and evaluation of repr

        hp = self.heapy.Use
        hp.reprefix = 'hp.'

        class C:
            pass

        class T(object):
            pass

        c = C()
        t = T()
        import sys

        for s in (
            'hp.Clodo(dictof=C)',
            'hp.Clodo(dictof=T)',
            'hp.Clodo(dictof=())',
            'hp.Clodo(C)',
            'hp.Clodo(T)',
            'hp.Id(id(c))',
            'hp.Module("sys")',

            'hp.Prod()',
            'hp.Prod("<string>")',
            'hp.Prod(T)',
            'hp.Prod("/foo.py", 1)',
            'hp.Prod("/foo.py", None)',
            'hp.Prod(None, 1)',

            'hp.Rcs(hp.Clodo.sokind(int)(dictof=C))',
            'hp.Size(hp.iso(c).indisize)',
            'hp.Size(hp.iso(C).indisize).dictof',

            'hp.Type(T)',
            'hp.Type(int)',

            'hp.Unity()',

            'hp.Via()',
            # Via is also specially tested below
        ):
            x = eval(s, {'hp': hp, 'C': C, 'T': T, 'c': c}, {})
            rx = repr(x)
            self.aseq(eval(rx, {'hp': hp}, {}), x)

        for i, s in enumerate((
            # Test Via construction.
            # One test for each relation kind defined in Path except IDENTITY and RELSRC.
            # In code order.
            "hp.Via('_.x')",
            "hp.Via('_[0]')",
            "hp.Via('_.keys()[0]')",
            "hp.Via('_->abc')",
            "hp.Via('_.__dict__.keys()[0]')",
            "hp.Via('_.f_locals[\"abc\"]')",
            "hp.Via('_.f_locals [\"abc\"]')",
            "hp.Via('_->f_valuestack[0]')",
            "hp.Via('list(_)[0]')",
        )):
            code = i + 1
            x = eval(s, {'hp': hp}, {})
            rel = list(x.arg)[0]
            self.aseq(rel.kind, code)
            rx = repr(x)
            self.aseq(eval(rx, {'hp': hp}, {}), x)

    def test_3(self):
        ' Test of dictof '
        # Test of dictof on something that requires memoization, i.e. Size, & (and)

        hp = self.heapy.Use

        class C:
            pass

        class T(object):
            # The test works only if sizes of objects of class C and T differ.
            # At first test, T() was 4 bytes smaller than C().
            # This might be brittle with different systems.
            # This is to make sure this diff gets significantly bigger:
            __slots__ = '__dict__', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'

        c = C()
        t = T()
        dn = {}
        isod = hp.iso(c.__dict__, t.__dict__, dn)
        for x in (
                t, c):
            X = x.__class__
            for k in (
                hp.Clodo(dictof=X),
                hp.Size(hp.iso(x).indisize).dictof,
                hp.iso(x).bysize.kind.dictof,
                hp.iso(x.__dict__).kind,
            ):
                self.aseq(isod & k,  hp.iso(x.__dict__))

        # Test no-owner selection
        for k in (
            hp.Nothing.dictof,
        ):
            self.aseq(isod & k, hp.iso(dn))

    def test_4(self):
        ' Test of via '
        # Esp. representation, construction

        class C:
            pass

        c = C()
        hp = self.heapy.Use

        isod = hp.iso(c.__dict__)

        x = isod.by('Via').kind
        self.aseq(repr(x), "hpy().Via('.__dict__')")

    def test_5(self):
        ' Non-systematic tests that came up around Sep 14 2005 '

        class C:
            pass

        c = C()
        d = {}
        cref = [c]
        cref.append(cref)
        c.cref = cref
        hp = self.heapy.Use
        hp.reprefix = 'hp.'

        # I thought these should be the same
        a = hp.iso(C, c, c.__dict__, d)
        b = hp.iso(C, c, c.__dict__, d)
        self.aseq(a, b)

        # This is a kind of nested refdby that has been a concern lately
        # -- how to represent it

        s = hp.iso(C.__dict__, C, c, c.__dict__,
                   d).by(hp.Clodo.refdby.refdby)

        for i in range(len(s)):
            a = s[i].kind
            ra = repr(a)
            era = eval(ra, {'hp': hp}, {})
            self.aseq(a, era)

            self.aseq(s & era,
                      s[i])

        import sys

        p = sys.path
        del sys

        s = hp.iso(p)
        x = s.by(hp.Module.dictof.refdby)
        self.aseq(s & eval(repr(x.kind), {'hp': hp}, {}), s)

    def test_6(self):
        ' Test of .refdby on all others '
        with self.tracemalloc_state():
            class C:
                pass

            c = C()
            d = {}
            cref = [c]
            cref.append(cref)
            c.cref = cref

            hp = self.heapy.Use
            hp.reprefix = 'hp.'

            s = hp.iso(C.__dict__, C, c, c.__dict__, d, inspect)

            for pre in (
                'Unity',
                'Clodo',
                'Id',
                'Module',
                'Prod',
                ('Rcs', 0),
                'Size',
                'Type',
                'Via'
            ):
                if isinstance(pre, tuple):
                    pre, level = pre
                else:
                    level = 1
                er = getattr(hp, pre)
                self.er_test(er, s, level)

    def er_test(self, er, set, level=1):
        # Tests what any eqv. rel. er should do
        hp = self.heapy.Use

        rer = repr(er)
        self.aseq(eval(rer, {'hp': hp}, {}), er)

        for s in (set,):
            sby = s.by(er)
            sk = sby.kind
            rsk = repr(sk)
            ske = eval(rsk, {'hp': hp}, {})

            self.aseq(ske, sk, -1)
            self.aseq(s & sk, s, -1)
            self.aseq(s & ske, s, -1)

        # That it can do .refdby

        er_refdby = er.refdby

        # That it can do .dictof

        er_dictof = er.dictof

        if level > 0:
            self.er_test(er_refdby, set, level - 1)
            self.er_test(er_dictof, set, level - 1)

    def test_7(self):
        ' Test of alternative sets w. biper '

        hp = self.heapy.Use

        class C:
            pass

        class D(C):
            pass

        class E(D):
            pass

        class T(object):
            pass

        class U(T):
            pass

        class V(U):
            pass

        c = C()
        d = D()
        e = E()
        t = T()
        u = U()
        v = V()

        s = hp.iso([], {}, c, d, e, t, u, v, d.__dict__)

        for k in (
            hp.Size(32),
            hp.Type(U),
        ):

            lt = k.alt('<')
            le = k.alt('<=')
            ge = k.alt('>=')
            gt = k.alt('>=')
            ne = k.alt('!=')
            assert (s & le) & (s & ge) == s & k

            for a in (lt, le, ge, gt, ne, le & ~k):
                s & a

        import gc

        gc.collect()

        a = s.by(k.alt('>=').biper)
        b = s.by(k.alt('>=').biper)
        self.assertTrue(hp.iso(d.__dict__) <= a[0])
        self.assertTrue(a == b)

        gc.collect()

        a = s.by(k.alt('<=').biper)
        b = s.by(k.alt('<=').biper)
        self.assertTrue(hp.iso(d.__dict__) <= a[0])
        self.assertTrue(a == b)

    def test_8(self):
        ' Test of findex and biper '
        # added Nov 3 2005

        hp = self.heapy.Use

        class C:
            pass
        c = C()
        li = []
        di = {}

        s = hp.iso(li, di, c, 1)

        for k, i in (
            (hp.Type(dict), 0),
            (hp.iso(c), 1),
            (hp.iso(c, li), 1),
        ):
            p = s.by(k.biper)
            self.aseq(p[i].kind.fam.classifier.kinds[0], k)

    def test_9(self):
        ' Test the subrelation relation '

        from guppy import hpy
        ernames = ['Clodo', 'Id', 'Idset', 'Module',
                   'Prod', 'Rcs', 'Size', 'Type',
                   'Unity']

        hp = hpy()

        ers = [(name, getattr(hp, name)) for name in ernames]
        ers.append(('Size&Type', hp.Size & hp.Type))

        from io import StringIO
        f = StringIO()
        print(''.ljust(10), end=' ', file=f)
        for b in ers:
            print(b[0].ljust(7), end=' ', file=f)
        print(file=f)

        for a in ers:
            print(a[0].ljust(10), end=' ', file=f)
            for b in ers:
                print(str((a[1] < b[1]))[:1].ljust(7), end=' ', file=f)
            print(file=f)
        self.aseq(f.getvalue(), """\
           Clodo   Id      Idset   Module  Prod    Rcs     Size    Type    Unity   Size&Type \n\
Clodo      F       F       F       F       F       F       F       T       T       F       \n\
Id         F       F       F       F       F       F       F       F       T       F       \n\
Idset      F       F       F       F       F       F       F       F       T       F       \n\
Module     F       F       F       F       F       F       F       F       T       F       \n\
Prod       F       F       F       F       F       F       F       F       T       F       \n\
Rcs        F       F       F       F       F       F       F       F       T       F       \n\
Size       F       F       F       F       F       F       F       F       T       F       \n\
Type       F       F       F       F       F       F       F       F       T       F       \n\
Unity      F       F       F       F       F       F       F       F       F       F       \n\
Size&Type  F       F       F       F       F       F       T       T       T       F       \n\
""")

    def test_10(self):
        ' Test of producer profile '
        hp = self.heapy.Use

        with self.tracemalloc_state():
            class C:
                pass

            file = inspect.currentframe().f_code.co_filename

            def lineno():
                return inspect.currentframe().f_back.f_lineno

            str_aloc = eval('C()', {'C': C}, {})
            test_aloc, test_aloc_line = C(), lineno()

            def subf():
                return C(), lineno()

            subf_aloc, subf_aloc_line = subf()

            isod = hp.iso(None, str_aloc, test_aloc, subf_aloc)

            self.aseq(isod & hp.Prod(), hp.iso(None))
            self.aseq(isod & hp.Prod('<string>', 1), hp.iso(str_aloc))
            self.aseq(isod & hp.Prod(file, test_aloc_line), hp.iso(test_aloc))
            self.aseq(isod & hp.Prod(file, subf_aloc_line), hp.iso(subf_aloc))

            self.aseq(isod & hp.Prod(file), hp.iso(test_aloc, subf_aloc))
            self.aseq(isod & hp.Prod(os.path.dirname(file)),
                      hp.iso(test_aloc, subf_aloc))

            self.aseq(isod & hp.Prod(self.test_10), hp.iso(test_aloc, subf_aloc))
            self.aseq(isod & hp.Prod(subf), hp.iso(subf_aloc))

            self.aseq(isod & hp.Prod(None, test_aloc_line).alt('>=') &
                      hp.Prod(None, test_aloc_line).alt('<='),
                      hp.iso(test_aloc))

        with self.assertRaises(TypeError):
            hp.Prod('', lineno=1)

        with self.assertRaises(TypeError):
            hp.Prod(filename='', line=1)

        with self.assertRaises(TypeError):
            hp.Prod(None)

        with self.assertRaises(TypeError):
            hp.Prod(1, 1)

        with self.assertRaises(TypeError):
            hp.Prod('', '')

        with self.assertRaises(TypeError):
            hp.Prod('', 1, 2)


def test_main(debug=0):
    support.run_unittest(FirstCase, debug)


if __name__ == "__main__":
    from guppy.heapy.Remote import off
    off()

    test_main()

Youez - 2016 - github.com/yon3zu
LinuXploit