aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--interpreter.py12
-rw-r--r--test cases/common/33 try compile/meson.build4
2 files changed, 13 insertions, 3 deletions
diff --git a/interpreter.py b/interpreter.py
index 26c5021..359e50c 100644
--- a/interpreter.py
+++ b/interpreter.py
@@ -734,11 +734,21 @@ class CompilerHolder(InterpreterObject):
if len(args) != 1:
raise InterpreterException('compiles method takes exactly one argument.')
string = args[0]
+ testname = kwargs.get('testname', '')
+ if not isinstance(testname, str):
+ raise InterpreterException('Testname argument must be a string.')
if isinstance(string, nodes.StringStatement):
string = string.value
if not isinstance(string, str):
raise InterpreterException('Argument to compiles() must be a string')
- return self.compiler.compiles(string)
+ result = self.compiler.compiles(string)
+ if len(testname) > 0:
+ if result:
+ h = mlog.green('YES')
+ else:
+ h = mlog.red('NO')
+ mlog.log('Checking if "', mlog.bold(testname), '" compiles : ', h, sep='')
+ return result
def has_header_method(self, args, kwargs):
if len(args) != 1:
diff --git a/test cases/common/33 try compile/meson.build b/test cases/common/33 try compile/meson.build
index da39784..010e844 100644
--- a/test cases/common/33 try compile/meson.build
+++ b/test cases/common/33 try compile/meson.build
@@ -9,10 +9,10 @@ void func() { printf("This won't work.\n"); }
'''
compiler = meson.get_compiler('c')
-if compiler.compiles(code) == false
+if compiler.compiles(code, testname : 'should succeed') == false
error('Compiler is fail.')
endif
-if compiler.compiles(breakcode)
+if compiler.compiles(breakcode, testname : 'should fail')
error('Compiler returned true on broken code.')
endif