当前位置: 首页>>代码示例>>Python>>正文


Python CStandaloneBuilder.cmdexec方法代码示例

本文整理汇总了Python中rpython.translator.c.genc.CStandaloneBuilder.cmdexec方法的典型用法代码示例。如果您正苦于以下问题:Python CStandaloneBuilder.cmdexec方法的具体用法?Python CStandaloneBuilder.cmdexec怎么用?Python CStandaloneBuilder.cmdexec使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在rpython.translator.c.genc.CStandaloneBuilder的用法示例。


在下文中一共展示了CStandaloneBuilder.cmdexec方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: test_counters

# 需要导入模块: from rpython.translator.c.genc import CStandaloneBuilder [as 别名]
# 或者: from rpython.translator.c.genc.CStandaloneBuilder import cmdexec [as 别名]
    def test_counters(self):
        from rpython.rtyper.lltypesystem import lltype
        from rpython.rtyper.lltypesystem.lloperation import llop
        def entry_point(argv):
            llop.instrument_count(lltype.Void, 'test', 2)
            llop.instrument_count(lltype.Void, 'test', 1)
            llop.instrument_count(lltype.Void, 'test', 1)
            llop.instrument_count(lltype.Void, 'test', 2)
            llop.instrument_count(lltype.Void, 'test', 1)
            return 0
        t = TranslationContext(self.config)
        t.config.translation.instrument = True
        t.buildannotator().build_types(entry_point, [s_list_of_strings])
        t.buildrtyper().specialize()

        cbuilder = CStandaloneBuilder(t, entry_point, config=t.config) # xxx
        cbuilder.generate_source()
        cbuilder.compile()

        counters_fname = udir.join("_counters_")
        os.environ['PYPY_INSTRUMENT_COUNTERS'] = str(counters_fname)
        try:
            data = cbuilder.cmdexec()
        finally:
            del os.environ['PYPY_INSTRUMENT_COUNTERS']

        f = counters_fname.open('rb')
        counters_data = f.read()
        f.close()

        import struct
        counters = struct.unpack("LLL", counters_data)

        assert counters == (0,3,2)
开发者ID:bukzor,项目名称:pypy,代码行数:36,代码来源:test_standalone.py

示例2: _compile_and_run

# 需要导入模块: from rpython.translator.c.genc import CStandaloneBuilder [as 别名]
# 或者: from rpython.translator.c.genc.CStandaloneBuilder import cmdexec [as 别名]
 def _compile_and_run(self, t, entry_point, entry_point_graph, args):
     from rpython.translator.c.genc import CStandaloneBuilder as CBuilder
     # XXX patch exceptions
     cbuilder = CBuilder(t, entry_point, config=t.config)
     cbuilder.generate_source()
     self._check_cbuilder(cbuilder)
     exe_name = cbuilder.compile()
     debug_print('---------- Test starting ----------')
     stdout = cbuilder.cmdexec(" ".join([str(arg) for arg in args]))
     res = int(stdout)
     debug_print('---------- Test done (%d) ----------' % (res,))
     return res
开发者ID:Darriall,项目名称:pypy,代码行数:14,代码来源:support.py

示例3: test_build

# 需要导入模块: from rpython.translator.c.genc import CStandaloneBuilder [as 别名]
# 或者: from rpython.translator.c.genc.CStandaloneBuilder import cmdexec [as 别名]
def test_build():
    def entry_point(argv):
        parser = interp_pyexpat.XML_ParserCreate("test")
        interp_pyexpat.XML_ParserFree(parser)
        res = interp_pyexpat.XML_ErrorString(3)
        os.write(1, rffi.charp2str(res))
        return 0

    t = TranslationContext()
    t.buildannotator().build_types(entry_point, [s_list_of_strings])
    t.buildrtyper().specialize()

    builder = CStandaloneBuilder(t, entry_point, t.config)
    builder.generate_source()
    builder.compile()
    data = builder.cmdexec()
    assert data == pyexpat.ErrorString(3)
开发者ID:Darriall,项目名称:pypy,代码行数:19,代码来源:test_build.py


注:本文中的rpython.translator.c.genc.CStandaloneBuilder.cmdexec方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。