X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/346bd0cf4e8fb8ead2ad5b59fd9a628c8592e1ee..d48eab4dbfa4678986af61afd83b3cb80b1a9679:/tests/dtest.py diff --git a/tests/dtest.py b/tests/dtest.py index 3936935..bedbec9 100644 --- a/tests/dtest.py +++ b/tests/dtest.py @@ -21,7 +21,7 @@ """Utility module used by tests""" -import os,os.path,subprocess,sys,re,time,unicodedata +import os,os.path,subprocess,sys,re,time,unicodedata,random def fatal(s): """Write an error message and exit""" @@ -41,9 +41,10 @@ else: sys.path.insert(0, os.path.join(top_builddir, "python")) import disorder -# Make sure the server build directory is on the executable search path +# Make sure the build directories are on the executable search path ospath = os.environ["PATH"].split(os.pathsep) ospath.insert(0, os.path.join(top_builddir, "server")) +ospath.insert(0, os.path.join(top_builddir, "clients")) os.environ["PATH"] = os.pathsep.join(ospath) # Parse the makefile in the current directory to identify the source directory @@ -153,9 +154,10 @@ def stdtracks(): def common_setup(): remove_dir(testroot) os.mkdir(testroot) + global port + port = random.randint(49152, 65535) open("%s/config" % testroot, "w").write( - """player *.ogg shell 'echo "$TRACK" >> %s/played.log' -home %s + """home %s collection fs UTF-8 %s/tracks scratch %s/scratch.ogg gap 0 @@ -178,7 +180,11 @@ tracklength *.mp3 disorder-tracklength tracklength *.ogg disorder-tracklength tracklength *.wav disorder-tracklength tracklength *.flac disorder-tracklength -""" % (testroot, testroot, testroot, testroot, top_builddir, top_builddir)) +speaker_backend network +broadcast 127.0.0.1 %d +broadcast_from 127.0.0.1 %d +""" % (testroot, testroot, testroot, top_builddir, top_builddir, + port, port + 1)) copyfile("%s/sounds/scratch.ogg" % top_srcdir, "%s/scratch.ogg" % testroot) @@ -187,7 +193,7 @@ def start_daemon(): Start the daemon.""" global daemon, errs - assert daemon == None + assert daemon == None, "no daemon running" print " starting daemon" # remove the socket if it exists socket = "%s/socket" % testroot @@ -268,7 +274,7 @@ def run(module=None, report=True): except AssertionError, e: global failures failures += 1 - print e + print "assertion failed: %s" % e.message finally: stop_daemon() if report: @@ -317,6 +323,14 @@ def check_files(): failures += 1 return failures +def command(args): + """Execute a command given as a list and return its stdout""" + p = subprocess.Popen(args, stdout=subprocess.PIPE) + lines = p.stdout.readlines() + rc = p.wait() + assert rc == 0, ("%s returned status %s" % (args, rc)) + return lines + # ----------------------------------------------------------------------------- # Common setup