D-Bus testing: SYNCEVOLUTION_DEBUG skips output redirection

When running test-dbus.py or testpim.py with SYNCEVOLUTION_DEBUG
set, they now skip the redirection of syncevo-dbus-server output
into a file. Useful when doing interactive debugging without running
under a debugger.
This commit is contained in:
Patrick Ohly 2013-04-10 00:02:39 -07:00
parent 3badde0ceb
commit 6bc1687877
1 changed files with 19 additions and 10 deletions

View File

@ -539,28 +539,37 @@ class DBusUtil(Timeout):
time.sleep(1)
print "\nfound org.syncevolution on session bus, starting test"
else:
logfile = open(syncevolog, "w")
if os.environ.get("SYNCEVOLUTION_DEBUG", None):
logfile = None
else:
logfile = open(syncevolog, "w")
prefix = os.environ.get("TEST_DBUS_PREFIX", "")
args = []
if prefix:
args.append(prefix)
args.extend(server)
args.extend(serverArgs)
logfile.write("env:\n%s\n\nargs:\n%s\n\n" % (env, args))
logfile.flush()
if logfile != None:
logfile.write("env:\n%s\n\nargs:\n%s\n\n" % (env, args))
logfile.flush()
size = os.path.getsize(syncevolog)
DBusUtil.pserver = subprocess.Popen(args,
preexec_fn=lambda: os.setpgid(0, 0),
env=env,
stdout=logfile,
stderr=subprocess.STDOUT)
while self.isServerRunning():
newsize = os.path.getsize(syncevolog)
if newsize != size:
if "] ready to run\n" in open(syncevolog).read():
break
size = newsize
time.sleep(1)
if logfile != None:
while self.isServerRunning():
newsize = os.path.getsize(syncevolog)
if newsize != size:
if "] ready to run\n" in open(syncevolog).read():
break
size = newsize
time.sleep(1)
else:
print "test-dbus.py: giving syncevo-dbus-server time to start"
time.sleep(5)
print "test-dbus.py: starting test"
# pserver.pid is not necessarily the pid of syncevo-dbus-server.
# It might be the child of the pserver process.