Esempio n. 1
0
def codetest(source, functionname, args):
    """Compile and run the given code string, and then call its function
    named by 'functionname' with arguments 'args'."""
    from pypy.interpreter import baseobjspace
    from pypy.interpreter import pyframe, gateway, module
    space = Space()

    source = str(py.code.Source(source).strip()) + '\n'

    w = space.wrap
    w_code = space.builtin.call('compile', 
            w(source), w('<string>'), w('exec'), w(0), w(0))

    tempmodule = module.Module(space, w("__temp__"))
    w_glob = tempmodule.w_dict
    space.setitem(w_glob, w("__builtins__"), space.builtin)

    code = space.unwrap(w_code)
    code.exec_code(space, w_glob, w_glob)

    wrappedargs = [w(a) for a in args]
    wrappedfunc = space.getitem(w_glob, w(functionname))
    def callit():
        return space.call_function(wrappedfunc, *wrappedargs)
    return callit
    try:
        w_output = space.call_function(wrappedfunc, *wrappedargs)
    except baseobjspace.OperationError, e:
        #e.print_detailed_traceback(space)
        return '<<<%s>>>' % e.errorstr(space)
Esempio n. 2
0
def test_rpystone():
    space = Space()
    modic = init(space)
    entry = space.getitem(modic, space.wrap("entrypoint"))
    # warm-up,to get everything translated
    space.call(entry, space.newtuple([space.wrap(-1)]))
    # now this is the real one
    space.call(entry, space.newtuple([space.wrap(LOOPS)]))
Esempio n. 3
0
def test_rpystone():
    space = Space()
    modic = init(space)
    entry = space.getitem(modic, space.wrap("entrypoint"))
    # warm-up,to get everything translated
    space.call(entry, space.newtuple([space.wrap(-1)]))
    # now this is the real one
    space.call(entry, space.newtuple([space.wrap(LOOPS)]))