Can print status info to log in compiles().

pull/15/head
Jussi Pakkanen 12 years ago
parent e13f813626
commit 9e122005cf
  1. 12
      interpreter.py
  2. 4
      test cases/common/33 try compile/meson.build

@ -734,11 +734,21 @@ class CompilerHolder(InterpreterObject):
if len(args) != 1: if len(args) != 1:
raise InterpreterException('compiles method takes exactly one argument.') raise InterpreterException('compiles method takes exactly one argument.')
string = args[0] 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): if isinstance(string, nodes.StringStatement):
string = string.value string = string.value
if not isinstance(string, str): if not isinstance(string, str):
raise InterpreterException('Argument to compiles() must be a string') 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): def has_header_method(self, args, kwargs):
if len(args) != 1: if len(args) != 1:

@ -9,10 +9,10 @@ void func() { printf("This won't work.\n"); }
''' '''
compiler = meson.get_compiler('c') compiler = meson.get_compiler('c')
if compiler.compiles(code) == false if compiler.compiles(code, testname : 'should succeed') == false
error('Compiler is fail.') error('Compiler is fail.')
endif endif
if compiler.compiles(breakcode) if compiler.compiles(breakcode, testname : 'should fail')
error('Compiler returned true on broken code.') error('Compiler returned true on broken code.')
endif endif

Loading…
Cancel
Save