1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-27 22:50:26 +03:00

build: use RUN_COMMAND() to wrap os.system()

This commit is contained in:
Andrew Tridgell 2010-03-19 14:25:50 +11:00
parent 6e550ac4c7
commit 3ff3a11c33
2 changed files with 21 additions and 6 deletions

View File

@ -296,3 +296,21 @@ def mkdir_p(dir):
return
mkdir_p(os.path.dirname(dir))
os.mkdir(dir)
def RUN_COMMAND(cmd,
env=None,
shell=False):
'''run a external command, return exit code or signal'''
# recursively expand variables
if env:
while cmd.find('${') != -1:
cmd = Utils.subst_vars(cmd, env)
status = os.system(cmd)
if os.WIFEXITED(status):
return os.WEXITSTATUS(status)
if os.WIFSIGNALED(status):
return - os.WTERMSIG(status)
print "Unknown exit reason %d for command: %s" (status, cmd)
return -1

View File

@ -1,6 +1,7 @@
# selftest main code.
import Scripting, os, Options, Utils, Environment, optparse, sys
from samba_utils import RUN_COMMAND
def set_options(opt):
opt.ADD_COMMAND('test', cmd_test)
@ -70,14 +71,10 @@ def cmd_testonly(opt):
if os.path.exists(st_done):
os.unlink(st_done)
cmd = '(PYTHON=/usr/bin/python perl -W ../selftest/selftest.pl --prefix=./st --builddir=. --srcdir=. --exclude=./selftest/skip --testlist="./selftest/tests.sh|" ${OPTIONS} --socket-wrapper ${TESTS} && touch st/st_done) | ${FILTER_OPTIONS}'
# recursively expand variables
while cmd.find('${') != -1:
cmd = Utils.subst_vars(cmd, env)
cmd = '(PYTHON=/usr/bin/python perl -W ../selftest/selftest.pl --prefix=./st --builddir=. --srcdir=. --exclude=./selftest/skip --testlist="./selftest/tests.sh|" ${OPTIONS} --socket-wrapper ${TESTS} && touch st/st_done) | tee st/test.out | ${FILTER_OPTIONS}'
print "test: running %s" % cmd
ret = os.system(cmd)
ret = RUN_COMMAND(cmd, env=env)
if ret != 0:
print("ERROR: test failed with exit code %d" % ret)
sys.exit(ret)