Move tests out of tests/src/

... and just into the tests/ directory.  I also reworked the Sconscript
to compile everything using only the lib/ files that are needed.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
Anna Schumaker 2014-05-06 08:36:11 -04:00
parent 1f19987c53
commit 34b0c56a70
10 changed files with 66 additions and 16 deletions

3
.gitignore vendored
View File

@ -1,7 +1,6 @@
*.o
*.sw*
*.run
*.test
*.out
*.glade~
share/ocarina/#*
bin/

6
tests/.gitignore vendored Normal file
View File

@ -0,0 +1,6 @@
version
file
database
index
filter
idle

View File

@ -2,6 +2,22 @@
import sys
Import("env")
tests = [
###
#
# (source.cpp, use collected lib_files?, [ other files ])
#
("version.cpp", False, []),
("file.cpp", True, []),
("database.cpp", True, []),
("index.cpp", True, []),
("filter.cpp", True, []),
("idle.cpp", False, [ "idle.cpp" ]),
]
check_depends = True
@ -12,21 +28,50 @@ for arg in sys.argv:
check_depends = False
break
src = SConscript("src/Sconscript")
def expand_files(extra_files):
res = []
for f in extra_files:
res += [ "../lib/%s" % f ]
return res
tests = [ "version" , "file", "database", "index", "filter", "idle" ]
# "tag_db",
# "queue" ]
#scripts = [ "playlist", "library", "deck", "audio", "gui" ]
def make_program(src, name, extra_files):
return env.Program("%s" % name, [ src ] + expand_files(extra_files))
prev = None
def make_test(src, name):
test = Command("%s.out" % name, [],
"./tests/%s | tee ./tests/%s.out" % (name, name))
Alias("tests/%s" % name, test)
AlwaysBuild(test)
return test
for test in tests:
t = Command("%s.out" % test, [], "./tests/src/%s.run" % test)
def prepare_test(name, src, extra_files):
exe = make_program(src, name, extra_files)
test = make_test(src, name)
Depends(test, exe)
return test
if prev and (check_depends == True):
Depends(t, prev)
Depends(t, src)
AlwaysBuild(t)
Alias("tests/%s" % test, t)
prev = t
res = []
lib_files = []
ignore = open(".gitignore", 'w')
for src, lib, extra in tests:
name = "%s" % src.rsplit(".")[0]
if lib == True:
lib_files += [ src ]
extra = lib_files + extra
test = prepare_test(name, src, extra)
if (check_depends == True) and (len(res) > 0):
Depends(test, res[len(res) - 1])
res += [ test ]
ignore.write(name + "\n")
ignore.close();
Return("res")
#tests = [ "version" , "file", "database", "index", "filter", "idle" ]
## "tag_db",
## "queue" ]
##scripts = [ "playlist", "library", "deck", "audio", "gui" ]