Home - Summaries: (main) : (py3.11) : Everything - Nightly builds - Benchmarks - RPython - Builders - About

rtyper/test/test_rbuiltin.py::TestRbuiltin::()::test_os_read

self = <rpython.rtyper.test.test_rbuiltin.TestRbuiltin object at 0x00000237f430d9f0>

    def test_os_read(self):
        tmpfile = str(udir.udir.join("os_read_test"))
        f = file(tmpfile, 'w')
        f.write('hello world')
        f.close()
        def fn():
            fd = os.open(tmpfile, os.O_RDONLY, 0777)
            return os.read(fd, 4096)
>       res = self.interpret(fn, [])

rtyper\test\test_rbuiltin.py:245: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
rtyper\test\tool.py:16: in interpret
    return interpret(fn, args, **kwds)
rtyper\test\test_llinterp.py:102: in interpret
    result = interp.eval_graph(graph, values)
rtyper\llinterp.py:97: in eval_graph
    retval = llframe.eval()
rtyper\llinterp.py:295: in eval
    nextblock, args = self.eval_block(nextblock)
rtyper\llinterp.py:319: in eval_block
    self.eval_operation(op)
rtyper\llinterp.py:422: in eval_operation
    retval = ophandler(*vals)
rtyper\llinterp.py:697: in op_direct_call
    return self.perform_call(f, FTYPE.ARGS, args)
rtyper\llinterp.py:693: in perform_call
    return frame.eval()
rtyper\llinterp.py:295: in eval
    nextblock, args = self.eval_block(nextblock)
rtyper\llinterp.py:319: in eval_block
    self.eval_operation(op)
rtyper\llinterp.py:422: in eval_operation
    retval = ophandler(*vals)
rtyper\llinterp.py:697: in op_direct_call
    return self.perform_call(f, FTYPE.ARGS, args)
rtyper\llinterp.py:693: in perform_call
    return frame.eval()
rtyper\llinterp.py:295: in eval
    nextblock, args = self.eval_block(nextblock)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <rpython.rtyper.llinterp.LLFrame object at 0x00000237f362c330>
block = raise block[etype_13...] with 0 exits

    def eval_block(self, block):
        """ return (nextblock, values) tuple. If nextblock
                is None, values is the concrete return value.
            """
        self.curr_block = block
        e = None
    
        try:
            for i, op in enumerate(block.operations):
                self.curr_operation_index = i
                self.eval_operation(op)
        except LLException as e:
            if op is not block.raising_op:
                raise
        except RuntimeError as e:
            rstackovf.check_stack_overflow()
            # xxx fish fish fish for proper etype and evalue to use
            rtyper = self.llinterpreter.typer
            bk = rtyper.annotator.bookkeeper
            classdef = bk.getuniqueclassdef(rstackovf._StackOverflow)
            exdata = rtyper.exceptiondata
            evalue = exdata.get_standard_ll_exc_instance(rtyper, classdef)
            etype = exdata.fn_type_of_exc_inst(evalue)
            e = LLException(etype, evalue)
            if op is not block.raising_op:
                raise e
    
        # determine nextblock and/or return value
        if len(block.exits) == 0:
            # return block
            tracer = self.llinterpreter.tracer
            if len(block.inputargs) == 2:
                # exception
                if tracer:
                    tracer.dump('raise')
                etypevar, evaluevar = block.getvariables()
                etype = self.getval(etypevar)
                evalue = self.getval(evaluevar)
                # watch out, these are _ptr's
>               raise LLException(etype, evalue)
E               LLException: <LLException 'OSError'>

rtyper\llinterp.py:348: LLException
---------- Captured stderr call ----------
[platform:msg] Updated environment with vsver 160, using x64 True
[rtyper] specializing: 100 / 281 blocks   (35%)
[rtyper] specializing: 200 / 340 blocks   (58%)
[rtyper] specializing: 300 / 340 blocks   (88%)
[rtyper] -=- specialized 340 blocks -=-
[rtyper] -=- specialized 4 more blocks -=-
builder: rpython-win-x86-64 build #399
test: rtyper/test/test_rbuiltin/py/TestRbuiltin/()/test_os_read