當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。