diff --git a/.gitignore b/.gitignore index 93b1a6b2..6b5bf870 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ *.o *.sw* -*.run -*.test +*.out *.glade~ share/ocarina/#* bin/ diff --git a/tests/.gitignore b/tests/.gitignore new file mode 100644 index 00000000..3f676dd5 --- /dev/null +++ b/tests/.gitignore @@ -0,0 +1,6 @@ +version +file +database +index +filter +idle diff --git a/tests/Sconscript b/tests/Sconscript index f67b346c..c2d4b1af 100644 --- a/tests/Sconscript +++ b/tests/Sconscript @@ -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" ] diff --git a/tests/src/database.cpp b/tests/database.cpp similarity index 100% rename from tests/src/database.cpp rename to tests/database.cpp diff --git a/tests/src/file.cpp b/tests/file.cpp similarity index 100% rename from tests/src/file.cpp rename to tests/file.cpp diff --git a/tests/src/filter.cpp b/tests/filter.cpp similarity index 100% rename from tests/src/filter.cpp rename to tests/filter.cpp diff --git a/tests/src/idle.cpp b/tests/idle.cpp similarity index 100% rename from tests/src/idle.cpp rename to tests/idle.cpp diff --git a/tests/src/index.cpp b/tests/index.cpp similarity index 100% rename from tests/src/index.cpp rename to tests/index.cpp diff --git a/tests/src/test.h b/tests/test.h similarity index 100% rename from tests/src/test.h rename to tests/test.h diff --git a/tests/src/version.cpp b/tests/version.cpp similarity index 100% rename from tests/src/version.cpp rename to tests/version.cpp