def runCmd(command, ignore_status=False, timeout=None, assert_error=True, native_sysroot=None, limit_exc_output=0, output_log=None, **options): result = Result() if native_sysroot: extra_paths = "%s/sbin:%s/usr/sbin:%s/usr/bin" % \ (native_sysroot, native_sysroot, native_sysroot) nenv = dict(options.get('env', os.environ)) nenv['PATH'] = extra_paths + ':' + nenv.get('PATH', '') options['env'] = nenv cmd = Command(command, timeout=timeout, output_log=output_log, **options) cmd.run() result.command = command result.status = cmd.status result.output = cmd.output result.error = cmd.error result.pid = cmd.process.pid if result.status and not ignore_status: exc_output = result.output if limit_exc_output > 0: split = result.output.splitlines() if len(split) > limit_exc_output: exc_output = "\n... (last %d lines of output)\n" % limit_exc_output + \ '\n'.join(split[-limit_exc_output:]) if assert_error: raise AssertionError("Command '%s' returned non-zero exit status %d:\n%s" % (command, result.status, exc_output)) else: raise CommandError(result.status, command, exc_output) return result
def runCmd(command, ignore_status=False, timeout=None, assert_error=True, **options): result = Result() cmd = Command(command, timeout=timeout, **options) cmd.run() result.command = command result.status = cmd.status result.output = cmd.output result.error = cmd.error result.pid = cmd.process.pid if result.status and not ignore_status: if assert_error: raise AssertionError( "Command '%s' returned non-zero exit status %d:\n%s" % (command, result.status, result.output)) else: raise CommandError(result.status, command, result.output) return result
def runCmd(command, ignore_status=False, timeout=None, assert_error=True, native_sysroot=None, **options): result = Result() if native_sysroot: extra_paths = "%s/sbin:%s/usr/sbin:%s/usr/bin" % \ (native_sysroot, native_sysroot, native_sysroot) nenv = dict(options.get('env', os.environ)) nenv['PATH'] = extra_paths + ':' + nenv.get('PATH', '') options['env'] = nenv cmd = Command(command, timeout=timeout, **options) cmd.run() result.command = command result.status = cmd.status result.output = cmd.output result.error = cmd.error result.pid = cmd.process.pid if result.status and not ignore_status: if assert_error: raise AssertionError("Command '%s' returned non-zero exit status %d:\n%s" % (command, result.status, result.output)) else: raise CommandError(result.status, command, result.output) return result
def runCmd(command, ignore_status=False, timeout=None, assert_error=True, sync=True, native_sysroot=None, target_sys=None, limit_exc_output=0, output_log=None, **options): result = Result() if native_sysroot: new_env = dict(options.get('env', os.environ)) paths = new_env["PATH"].split(":") paths = [ os.path.join(native_sysroot, "bin"), os.path.join(native_sysroot, "sbin"), os.path.join(native_sysroot, "usr", "bin"), os.path.join(native_sysroot, "usr", "sbin"), ] + paths if target_sys: paths = [os.path.join(native_sysroot, "usr", "bin", target_sys) ] + paths new_env["PATH"] = ":".join(paths) options['env'] = new_env cmd = Command(command, timeout=timeout, output_log=output_log, **options) cmd.run() # tests can be heavy on IO and if bitbake can't write out its caches, we see timeouts. # call sync around the tests to ensure the IO queue doesn't get too large, taking any IO # hit here rather than in bitbake shutdown. if sync: p = os.environ['PATH'] os.environ['PATH'] = "/usr/bin:/bin:/usr/sbin:/sbin:" + p os.system("sync") os.environ['PATH'] = p result.command = command result.status = cmd.status result.output = cmd.output result.error = cmd.error result.pid = cmd.process.pid if result.status and not ignore_status: exc_output = result.output if limit_exc_output > 0: split = result.output.splitlines() if len(split) > limit_exc_output: exc_output = "\n... (last %d lines of output)\n" % limit_exc_output + \ '\n'.join(split[-limit_exc_output:]) if assert_error: raise AssertionError( "Command '%s' returned non-zero exit status %d:\n%s" % (command, result.status, exc_output)) else: raise CommandError(result.status, command, exc_output) return result
def runCmd(command, ignore_status=False, timeout=None, assert_error=True, sync=True, native_sysroot=None, limit_exc_output=0, output_log=None, **options): result = Result() if native_sysroot: extra_paths = "%s/sbin:%s/usr/sbin:%s/usr/bin" % \ (native_sysroot, native_sysroot, native_sysroot) extra_libpaths = "%s/lib:%s/usr/lib" % \ (native_sysroot, native_sysroot) nenv = dict(options.get('env', os.environ)) nenv['PATH'] = extra_paths + ':' + nenv.get('PATH', '') nenv['LD_LIBRARY_PATH'] = extra_libpaths + ':' + nenv.get( 'LD_LIBRARY_PATH', '') options['env'] = nenv cmd = Command(command, timeout=timeout, output_log=output_log, **options) cmd.run() # tests can be heavy on IO and if bitbake can't write out its caches, we see timeouts. # call sync around the tests to ensure the IO queue doesn't get too large, taking any IO # hit here rather than in bitbake shutdown. if sync: os.system("sync") result.command = command result.status = cmd.status result.output = cmd.output result.error = cmd.error result.pid = cmd.process.pid if result.status and not ignore_status: exc_output = result.output if limit_exc_output > 0: split = result.output.splitlines() if len(split) > limit_exc_output: exc_output = "\n... (last %d lines of output)\n" % limit_exc_output + \ '\n'.join(split[-limit_exc_output:]) if assert_error: raise AssertionError( "Command '%s' returned non-zero exit status %d:\n%s" % (command, result.status, exc_output)) else: raise CommandError(result.status, command, exc_output) return result