ocarina/tests/Sconscript
Anna Schumaker 11704b2bfa gui: Add some collection manager tests
Test ok, update, and import buttons in a Glib::timeout based simulator.

Signed-off-by: Anna Schumaker <schumaker.anna@gmail.com>
2014-04-06 19:56:58 -04:00

68 lines
1.6 KiB
Python

#!/usr/bin/python
import os, subprocess, shutil
import xdg.BaseDirectory
Import("env", "CONFIG")
GOOD = "%s.good"
def run_test(target, source, env):
res = str(target[0])
out = open(res, 'w')
ret = subprocess.call("%s" % source[0], stdout = out, stderr = out)
out.close()
if ret != 0:
print "Test returns: ", ret
if (len(source) == 2) and (ret == 0):
good = str(source[1])
if (subprocess.call("diff -u %s %s" % (good, res), shell = True) != 0):
print
else:
for line in open( str(target[0]) ):
print line.rstrip()
print
def Test(group, src, gui = False):
name, extension = src.rsplit(".", 1)
mods = [ src ]
mods += SConscript("../../lib/Sconscript")
if gui == True:
mods += SConscript("../../gui/Sconscript")
prog = env.Program("%s.test" % name, mods)
src_files = [ "%s.test" % name ]
if os.path.exists(GOOD % name):
src_files += [ GOOD % name ]
test = Command("%s.run" % name, src_files, run_test)
Depends(test, prog)
AlwaysBuild(test)
Alias("tests", [ prog, test ])
Alias("tests/%s" % group, [ prog, test ])
Alias("tests/%s/%s" % (group, name), [ prog, test ])
Export("Test")
#
# Clean up leftover test data
#
def rm_test_dir(dir):
dir = os.path.join(dir, "ocarina-test")
if os.path.exists(dir):
shutil.rmtree(dir)
rm_test_dir(xdg.BaseDirectory.xdg_config_home);
rm_test_dir(xdg.BaseDirectory.xdg_data_home);
#
# Read SConscript files
#
scripts = [ "print", "file", "database", "index", "filter", "idle", "playlist",
"library", "playqueue", "deck", "audio", "gui" ]
for s in scripts:
CONFIG.reset(TEST = True)
SConscript("%s/Sconscript" % s)