aboutsummaryrefslogtreecommitdiff
path: root/interpreter.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2013-01-06 19:13:30 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2013-01-06 19:13:30 +0200
commit54e47554c36870a43061c0860e5a69494c18cc02 (patch)
tree4793982ba93ee7fce0422ff3b66422bb8f9c9480 /interpreter.py
parentc8fee3d4172f39da5bb05077a57a57284825007e (diff)
downloadmeson-54e47554c36870a43061c0860e5a69494c18cc02.zip
meson-54e47554c36870a43061c0860e5a69494c18cc02.tar.gz
meson-54e47554c36870a43061c0860e5a69494c18cc02.tar.bz2
Added unit test functionality to builder.
Diffstat (limited to 'interpreter.py')
-rwxr-xr-xinterpreter.py26
1 files changed, 24 insertions, 2 deletions
diff --git a/interpreter.py b/interpreter.py
index cb9b4d2..9d3aa78 100755
--- a/interpreter.py
+++ b/interpreter.py
@@ -87,7 +87,6 @@ class Executable(BuildTarget):
self.filename = self.name + '.' + suffix
else:
self.filename = self.name
-
class StaticLibrary(BuildTarget):
def __init__(self, name, sources, environment):
@@ -103,6 +102,18 @@ class SharedLibrary(BuildTarget):
suffix = environment.get_shared_lib_suffix()
self.filename = prefix + self.name + '.' + suffix
+class Test(InterpreterObject):
+ def __init__(self, name, exe):
+ InterpreterObject.__init__(self)
+ self.name = name
+ self.exe = exe
+
+ def get_exe(self):
+ return self.exe
+
+ def get_name(self):
+ return self.name
+
class Interpreter():
def __init__(self, code, environment):
@@ -115,6 +126,7 @@ class Interpreter():
self.environment = environment
self.static_linker = self.environment.detect_static_linker()
self.build_func_dict()
+ self.tests = []
def build_func_dict(self):
self.funcs = {'project' : self.func_project,
@@ -123,7 +135,8 @@ class Interpreter():
'executable': self.func_executable,
'find_dep' : self.func_find_dep,
'static_library' : self.func_static_lib,
- 'shared_library' : self.func_shared_lib
+ 'shared_library' : self.func_shared_lib,
+ 'add_test' : self.func_add_test
}
def get_project(self):
@@ -131,6 +144,9 @@ class Interpreter():
def get_targets(self):
return self.targets
+
+ def get_tests(self):
+ return self.tests
def sanity_check_ast(self):
if not isinstance(self.ast, nodes.CodeBlock):
@@ -216,6 +232,12 @@ class Interpreter():
def func_shared_lib(self, node, args):
return self.build_target(node, args, SharedLibrary)
+
+ def func_add_test(self, node, args):
+ self.validate_arguments(args, 2, [str, Executable])
+ t = Test(args[0], args[1])
+ self.tests.append(t)
+ print('Adding test "%s"' % args[0])
def build_target(self, node, args, targetclass):
for a in args: