def run(self, args, env): arglist = SDK.runtime() + [self.exe_name] + map(str, args) env = env.copy() env['LANG'] = 'C' mono = subprocess.Popen(arglist, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=env) stdout, stderr = mono.communicate() retval = mono.wait() return stdout, stderr, retval
def build_exe(self): if getoption('source'): return None pypy_dll = get_pypy_dll() # get or recompile pypy.dll shutil.copy(pypy_dll, self.tmpdir.strpath) ilasm = SDK.ilasm() tmpfile = self.tmpfile.strpath self._exec_helper(ilasm, [tmpfile]+self.entrypoint.ilasm_flags(), 'ilasm failed to assemble (%s):\n%s\n%s', timeout = 900) # Mono's ilasm occasionally deadlocks. We set a timer to avoid # blocking automated test runs forever. self.outfile = self.entrypoint.output_filename(tmpfile) if getoption('verify'): peverify = SDK.peverify() self._exec_helper(peverify, [outfile], 'peverify failed to verify (%s):\n%s\n%s') return self.outfile
def load_and_cache_assembly(name, outfile): tmpfile = udir.join(name) arglist = SDK.runtime() + [Query.get(), name, str(tmpfile)] retcode = subprocess.call(arglist) assert retcode == 0 mydict = {} execfile(str(tmpfile), mydict) types = mydict['types'] f = outfile.open('wb') pickle.dump(types, f, pickle.HIGHEST_PROTOCOL) f.close() return types
def run(self, *args): if self._exe is None: py.test.skip("Compilation disabled") if getoption('norun'): py.test.skip("Execution disabled") arglist = SDK.runtime() + [self._exe] + map(str, args) env = os.environ.copy() env['LANG'] = 'C' mono = subprocess.Popen(arglist, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=env) stdout, stderr = mono.communicate() retval = mono.wait() return stdout, stderr, retval
def build_exe(self): if getoption('source'): return None pypy_dll = get_pypy_dll() # get or recompile pypy.dll shutil.copy(pypy_dll, self.tmpdir.strpath) ilasm = SDK.ilasm() tmpfile = self.tmpfile.strpath self.outfile = self.entrypoint.output_filename(tmpfile) argv = [tmpfile, '/output:' + self.outfile ] + self.entrypoint.ilasm_flags() self._exec_helper(ilasm, argv, 'ilasm failed to assemble (%s):\n%s\n%s', timeout=900) # Mono's ilasm occasionally deadlocks. We set a timer to avoid # blocking automated test runs forever. if getoption('verify'): peverify = SDK.peverify() self._exec_helper(peverify, [outfile], 'peverify failed to verify (%s):\n%s\n%s') return self.outfile
def query_description(name): log.query('Loading description for %s' % name) arglist = SDK.runtime() + [Query.get(), name] query = subprocess.Popen(arglist, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) stdout, stderr = query.communicate() retval = query.wait() if retval == 0: cls = ClassDesc() exec stdout in cls.__dict__ del cls.__dict__['__builtins__'] return cls elif retval == 1: raise RuntimeError, 'query.exe failed with this message:\n%s' % stderr elif retval == 2: # can't load type, assume it's a namespace return NamespaceDesc(name)
def get_COMPILER(cls): return SDK.ilasm()
def get_COMPILER(cls): return SDK.csc()