aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.appveyor.yml3
-rw-r--r--mesonbuild/dependencies.py6
-rw-r--r--mesonbuild/interpreterbase.py10
-rw-r--r--mesonbuild/mconf.py17
-rw-r--r--mesonbuild/mparser.py2
-rwxr-xr-xrun_project_tests.py2
-rwxr-xr-xtest cases/common/103 manygen/subdir/manygen.py4
-rw-r--r--test cases/common/105 find program path/meson.build7
-rw-r--r--test cases/common/105 find program path/program.py2
-rw-r--r--test cases/common/107 postconf/postconf.py2
-rw-r--r--test cases/common/108 postconf with args/postconf.py2
-rwxr-xr-xtest cases/common/113 generatorcustom/catter.py2
-rwxr-xr-xtest cases/common/113 generatorcustom/gen.py2
-rw-r--r--test cases/common/117 custom target capture/meson.build7
-rwxr-xr-xtest cases/common/118 allgenerate/converter.py2
-rw-r--r--test cases/common/131 custom target directory install/docgen.py2
-rwxr-xr-xtest cases/common/133 configure file in generator/src/gen.py2
-rwxr-xr-xtest cases/common/16 configure file/generator.py6
-rw-r--r--test cases/common/16 configure file/meson.build5
-rwxr-xr-xtest cases/common/48 test args/tester.py2
-rwxr-xr-xtest cases/common/56 custom target/depfile/dep.py2
-rw-r--r--test cases/common/56 custom target/meson.build5
-rw-r--r--test cases/common/57 custom target chain/meson.build7
-rwxr-xr-xtest cases/common/57 custom target chain/my_compiler.py2
-rwxr-xr-xtest cases/common/57 custom target chain/my_compiler2.py2
-rwxr-xr-xtest cases/common/57 custom target chain/usetarget/subcomp.py2
-rw-r--r--test cases/common/58 run target/converter.py2
-rwxr-xr-xtest cases/common/58 run target/fakeburner.py4
-rw-r--r--test cases/common/58 run target/meson.build6
-rw-r--r--test cases/common/59 object generator/meson.build5
-rwxr-xr-xtest cases/common/61 custom target source output/generator.py2
-rw-r--r--test cases/common/64 custom header generator/makeheader.py2
-rwxr-xr-xtest cases/common/65 multiple generators/mygen.py2
-rwxr-xr-xtest cases/common/72 build always/version_gen.py2
-rw-r--r--test cases/common/76 configure file in custom target/src/mycompiler.py2
-rwxr-xr-xtest cases/common/77 external test program/mytest.py4
-rwxr-xr-xtest cases/common/78 ctarget dependency/gen1.py2
-rwxr-xr-xtest cases/common/78 ctarget dependency/gen2.py2
-rwxr-xr-xtest cases/common/93 private include/stlib/compiler.py2
-rwxr-xr-xtest cases/common/98 gen extra/srcgen.py2
-rw-r--r--test cases/failing/41 kwarg assign/dummy.c3
-rw-r--r--test cases/failing/41 kwarg assign/meson.build4
-rw-r--r--test cases/failing/41 kwarg assign/prog.c3
43 files changed, 109 insertions, 47 deletions
diff --git a/.appveyor.yml b/.appveyor.yml
index adc13b8..ce56a12 100644
--- a/.appveyor.yml
+++ b/.appveyor.yml
@@ -41,7 +41,6 @@ install:
- ps: (new-object net.webclient).DownloadFile('https://dl.dropboxusercontent.com/u/37517477/ninja.exe', 'C:\projects\meson\ninja.exe')
- cmd: if %arch%==x86 (set MESON_PYTHON_PATH=C:\python34) else (set MESON_PYTHON_PATH=C:\python34-x64)
- cmd: echo Using Python at %MESON_PYTHON_PATH%
- - cmd: copy %MESON_PYTHON_PATH%\python.exe %MESON_PYTHON_PATH%\python3.exe
- cmd: if %compiler%==msvc2010 ( call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" %arch% )
- cmd: if %compiler%==msvc2015 ( call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" %arch% )
@@ -51,7 +50,7 @@ build_script:
test_script:
- cmd: echo Running tests for %arch% and %compiler% with the %backend% backend
- - cmd: PATH=%cd%;%MESON_PYTHON_PATH%;%PATH%; && python3 run_tests.py --backend=%backend%
+ - cmd: PATH=%cd%;%MESON_PYTHON_PATH%;%PATH%; && python run_tests.py --backend=%backend%
on_finish:
- appveyor PushArtifact meson-test-run.txt -DeploymentName "Text test logs"
diff --git a/mesonbuild/dependencies.py b/mesonbuild/dependencies.py
index fb576ea..6ae91d4 100644
--- a/mesonbuild/dependencies.py
+++ b/mesonbuild/dependencies.py
@@ -119,8 +119,10 @@ class PkgConfigDependency(Dependency):
if self.required:
raise DependencyException('Pkg-config binary missing from cross file')
else:
- self.pkgbin = environment.cross_info.config['binaries']['pkgconfig']
- PkgConfigDependency.class_pkgbin = self.pkgbin
+ potential_pkgbin = environment.cross_info.config['binaries'].get('pkgconfig', 'non_existing_binary')
+ if shutil.which(potential_pkgbin):
+ self.pkgbin = potential_pkgbin
+ PkgConfigDependency.class_pkgbin = self.pkgbin
# Only search for the native pkg-config the first time and
# store the result in the class definition
elif PkgConfigDependency.class_pkgbin is None:
diff --git a/mesonbuild/interpreterbase.py b/mesonbuild/interpreterbase.py
index e4dd58b..837a4f8 100644
--- a/mesonbuild/interpreterbase.py
+++ b/mesonbuild/interpreterbase.py
@@ -1,4 +1,4 @@
-# Copyright 2016 The Meson development team
+# Copyright 2016-2017 The Meson development team
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -86,6 +86,7 @@ class InterpreterBase:
self.builtin = {}
self.subdir = subdir
self.variables = {}
+ self.argument_depth = 0
def load_root_meson_file(self):
mesonfile = os.path.join(self.source_root, self.subdir, environment.build_filename)
@@ -511,6 +512,7 @@ class InterpreterBase:
assert(isinstance(args, mparser.ArgumentNode))
if args.incorrect_order():
raise InvalidArguments('All keyword arguments must be after positional arguments.')
+ self.argument_depth += 1
reduced_pos = [self.evaluate_statement(arg) for arg in args.arguments]
reduced_kw = {}
for key in args.kwargs.keys():
@@ -520,6 +522,7 @@ class InterpreterBase:
reduced_kw[key] = self.evaluate_statement(a)
if not isinstance(reduced_pos, list):
reduced_pos = [reduced_pos]
+ self.argument_depth -= 1
return reduced_pos, reduced_kw
def flatten(self, args):
@@ -540,6 +543,9 @@ class InterpreterBase:
def assignment(self, node):
assert(isinstance(node, mparser.AssignmentNode))
+ if self.argument_depth != 0:
+ raise InvalidArguments('''Tried to assign values inside an argument list.
+To specify a keyword argument, use : instead of =.''')
var_name = node.var_name
if not isinstance(var_name, str):
raise InvalidArguments('Tried to assign value to a non-variable.')
@@ -551,7 +557,7 @@ class InterpreterBase:
if isinstance(value, MutableInterpreterObject):
value = copy.deepcopy(value)
self.set_variable(var_name, value)
- return value
+ return None
def set_variable(self, varname, variable):
if variable is None:
diff --git a/mesonbuild/mconf.py b/mesonbuild/mconf.py
index c921409..2ab5f92 100644
--- a/mesonbuild/mconf.py
+++ b/mesonbuild/mconf.py
@@ -22,6 +22,8 @@ parser = argparse.ArgumentParser()
parser.add_argument('-D', action='append', default=[], dest='sets',
help='Set an option to the given value.')
parser.add_argument('directory', nargs='*')
+parser.add_argument('--clearcache', action='store_true', default=False,
+ help='Clear cached state (e.g. found dependencies)')
class ConfException(mesonlib.MesonException):
def __init__(self, *args, **kwargs):
@@ -42,13 +44,16 @@ class Conf:
raise ConfException('Version mismatch (%s vs %s)' %
(coredata.version, self.coredata.version))
+ def clear_cache(self):
+ self.coredata.deps = {}
+
def save(self):
# Only called if something has changed so overwrite unconditionally.
with open(self.coredata_file, 'wb') as f:
pickle.dump(self.coredata, f)
# We don't write the build file because any changes to it
- # are erased when Meson is executed the nex time, i.e. the next
- # time Ninja is run.
+ # are erased when Meson is executed the next time, i.e. whne
+ # Ninja is run.
def print_aligned(self, arr):
if len(arr) == 0:
@@ -223,11 +228,17 @@ def run(args):
builddir = options.directory[0]
try:
c = Conf(builddir)
+ save = False
if len(options.sets) > 0:
c.set_options(options.sets)
- c.save()
+ save = True
+ elif options.clearcache:
+ c.clear_cache()
+ save = True
else:
c.print_conf()
+ if save:
+ c.save()
except ConfException as e:
print('Meson configurator encountered an error:\n')
print(e)
diff --git a/mesonbuild/mparser.py b/mesonbuild/mparser.py
index 5871f65..6e1e398 100644
--- a/mesonbuild/mparser.py
+++ b/mesonbuild/mparser.py
@@ -1,4 +1,4 @@
-# Copyright 2014-2016 The Meson development team
+# Copyright 2014-2017 The Meson development team
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/run_project_tests.py b/run_project_tests.py
index 4715dbb..e04fed1 100755
--- a/run_project_tests.py
+++ b/run_project_tests.py
@@ -105,6 +105,8 @@ def setup_commands(backend):
global backend_flags, compile_commands, test_commands, install_commands, clean_commands
msbuild_exe = shutil.which('msbuild')
if (backend and backend.startswith('vs')) or (backend is None and msbuild_exe is not None):
+ if backend is None:
+ backend = 'vs2010'
backend_flags = ['--backend=' + backend]
compile_commands = ['msbuild']
test_commands = ['msbuild', 'RUN_TESTS.vcxproj']
diff --git a/test cases/common/103 manygen/subdir/manygen.py b/test cases/common/103 manygen/subdir/manygen.py
index 8e74bcd..7ffd435 100755
--- a/test cases/common/103 manygen/subdir/manygen.py
+++ b/test cases/common/103 manygen/subdir/manygen.py
@@ -1,4 +1,6 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
+
+from __future__ import print_function
# Generates a static library, object file, source
# file and a header file.
diff --git a/test cases/common/105 find program path/meson.build b/test cases/common/105 find program path/meson.build
index 2ece2bc..ba6030b 100644
--- a/test cases/common/105 find program path/meson.build
+++ b/test cases/common/105 find program path/meson.build
@@ -2,8 +2,9 @@ project('find program', 'c')
prog = find_program('program.py')
-# Python 3 is guaranteed to be available because Meson
-# is implemented in it.
-python = find_program('python3')
+python = find_program('python3', required : false)
+if not python.found()
+ python = find_program('python')
+endif
run_command(python, prog.path())
diff --git a/test cases/common/105 find program path/program.py b/test cases/common/105 find program path/program.py
index 2ebc564..b910718 100644
--- a/test cases/common/105 find program path/program.py
+++ b/test cases/common/105 find program path/program.py
@@ -1,3 +1,3 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
print("Found")
diff --git a/test cases/common/107 postconf/postconf.py b/test cases/common/107 postconf/postconf.py
index 950c706..9a23cfa 100644
--- a/test cases/common/107 postconf/postconf.py
+++ b/test cases/common/107 postconf/postconf.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
import os
diff --git a/test cases/common/108 postconf with args/postconf.py b/test cases/common/108 postconf with args/postconf.py
index cef7f79..3ed0450 100644
--- a/test cases/common/108 postconf with args/postconf.py
+++ b/test cases/common/108 postconf with args/postconf.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
import sys, os
diff --git a/test cases/common/113 generatorcustom/catter.py b/test cases/common/113 generatorcustom/catter.py
index 198fa98..a79b739 100755
--- a/test cases/common/113 generatorcustom/catter.py
+++ b/test cases/common/113 generatorcustom/catter.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
import sys
diff --git a/test cases/common/113 generatorcustom/gen.py b/test cases/common/113 generatorcustom/gen.py
index c1e34ed..f9efb47 100755
--- a/test cases/common/113 generatorcustom/gen.py
+++ b/test cases/common/113 generatorcustom/gen.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
import sys
diff --git a/test cases/common/117 custom target capture/meson.build b/test cases/common/117 custom target capture/meson.build
index fa59d51..d3214e8 100644
--- a/test cases/common/117 custom target capture/meson.build
+++ b/test cases/common/117 custom target capture/meson.build
@@ -1,6 +1,9 @@
project('custom target', 'c')
-python = find_program('python3')
+python3 = find_program('python3', required : false)
+if not python3.found()
+ python3 = find_program('python')
+endif
# Note that this will not add a dependency to the compiler executable.
# Code will not be rebuilt if it changes.
@@ -10,7 +13,7 @@ mytarget = custom_target('bindat',
output : 'data.dat',
input : 'data_source.txt',
capture : true,
- command : [python, comp, '@INPUT@'],
+ command : [python3, comp, '@INPUT@'],
install : true,
install_dir : 'subdir'
)
diff --git a/test cases/common/118 allgenerate/converter.py b/test cases/common/118 allgenerate/converter.py
index f8e2ca0..cc2c574 100755
--- a/test cases/common/118 allgenerate/converter.py
+++ b/test cases/common/118 allgenerate/converter.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
import sys
diff --git a/test cases/common/131 custom target directory install/docgen.py b/test cases/common/131 custom target directory install/docgen.py
index 245f370..4d80124 100644
--- a/test cases/common/131 custom target directory install/docgen.py
+++ b/test cases/common/131 custom target directory install/docgen.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
import os
import sys
diff --git a/test cases/common/133 configure file in generator/src/gen.py b/test cases/common/133 configure file in generator/src/gen.py
index 99b7cdd..5bccece 100755
--- a/test cases/common/133 configure file in generator/src/gen.py
+++ b/test cases/common/133 configure file in generator/src/gen.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
import sys
diff --git a/test cases/common/16 configure file/generator.py b/test cases/common/16 configure file/generator.py
index 31a6944..2c7f2f8 100755
--- a/test cases/common/16 configure file/generator.py
+++ b/test cases/common/16 configure file/generator.py
@@ -1,5 +1,9 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
+# On some platforms "python" points to Python 2
+# on others to Python 3. Work with both.
+
+from __future__ import print_function
import sys, os
if len(sys.argv) != 3:
diff --git a/test cases/common/16 configure file/meson.build b/test cases/common/16 configure file/meson.build
index 0c5b981..b764c5a 100644
--- a/test cases/common/16 configure file/meson.build
+++ b/test cases/common/16 configure file/meson.build
@@ -23,7 +23,10 @@ cfile)
test('inctest', e)
# Now generate a header file with an external script.
-genprog = find_program('python3')
+genprog = find_program('python3', required : false)
+if not genprog.found()
+ genprog = find_program('python')
+endif
scriptfile = '@0@/generator.py'.format(meson.current_source_dir())
ifile = '@0@/dummy.dat'.format(meson.current_source_dir())
ofile = '@0@/config2.h'.format(meson.current_build_dir())
diff --git a/test cases/common/48 test args/tester.py b/test cases/common/48 test args/tester.py
index 0b4010a..c3c1edc 100755
--- a/test cases/common/48 test args/tester.py
+++ b/test cases/common/48 test args/tester.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
import sys
diff --git a/test cases/common/56 custom target/depfile/dep.py b/test cases/common/56 custom target/depfile/dep.py
index 585e192..aff325b 100755
--- a/test cases/common/56 custom target/depfile/dep.py
+++ b/test cases/common/56 custom target/depfile/dep.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
import sys, os
from glob import glob
diff --git a/test cases/common/56 custom target/meson.build b/test cases/common/56 custom target/meson.build
index feaa762..fd59fbd 100644
--- a/test cases/common/56 custom target/meson.build
+++ b/test cases/common/56 custom target/meson.build
@@ -1,6 +1,9 @@
project('custom target', 'c')
-python = find_program('python3')
+python = find_program('python3', required : false)
+if not python.found()
+ python = find_program('python')
+endif
# Note that this will not add a dependency to the compiler executable.
# Code will not be rebuilt if it changes.
diff --git a/test cases/common/57 custom target chain/meson.build b/test cases/common/57 custom target chain/meson.build
index 1af0425..138f795 100644
--- a/test cases/common/57 custom target chain/meson.build
+++ b/test cases/common/57 custom target chain/meson.build
@@ -1,7 +1,12 @@
project('custom target', 'c')
-python = find_program('python3')
+python = find_program('python3', required : false)
+if not python.found()
+ python = find_program('python')
+endif
+# files() is the correct way to do this, but some people
+# do this so test that it works.
comp = '@0@/@1@'.format(meson.current_source_dir(), 'my_compiler.py')
comp2 = '@0@/@1@'.format(meson.current_source_dir(), 'my_compiler2.py')
infile = files('data_source.txt')[0]
diff --git a/test cases/common/57 custom target chain/my_compiler.py b/test cases/common/57 custom target chain/my_compiler.py
index d99029b..9cf4425 100755
--- a/test cases/common/57 custom target chain/my_compiler.py
+++ b/test cases/common/57 custom target chain/my_compiler.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
import sys
diff --git a/test cases/common/57 custom target chain/my_compiler2.py b/test cases/common/57 custom target chain/my_compiler2.py
index 22ec789..0191f3f 100755
--- a/test cases/common/57 custom target chain/my_compiler2.py
+++ b/test cases/common/57 custom target chain/my_compiler2.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
import sys
diff --git a/test cases/common/57 custom target chain/usetarget/subcomp.py b/test cases/common/57 custom target chain/usetarget/subcomp.py
index 52dc0bb..b5f6eb0 100755
--- a/test cases/common/57 custom target chain/usetarget/subcomp.py
+++ b/test cases/common/57 custom target chain/usetarget/subcomp.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
import sys
diff --git a/test cases/common/58 run target/converter.py b/test cases/common/58 run target/converter.py
index 8dd31fe..9f47ba5 100644
--- a/test cases/common/58 run target/converter.py
+++ b/test cases/common/58 run target/converter.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
import sys
diff --git a/test cases/common/58 run target/fakeburner.py b/test cases/common/58 run target/fakeburner.py
index 5728002..7f505d6 100755
--- a/test cases/common/58 run target/fakeburner.py
+++ b/test cases/common/58 run target/fakeburner.py
@@ -1,4 +1,6 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
+
+from __future__ import print_function
import sys
diff --git a/test cases/common/58 run target/meson.build b/test cases/common/58 run target/meson.build
index 0540b80..8a06490 100644
--- a/test cases/common/58 run target/meson.build
+++ b/test cases/common/58 run target/meson.build
@@ -31,7 +31,11 @@ run_target('upload2',
depends : hex,
)
-python3 = find_program('python3')
+python3 = find_program('python3', required : false)
+if not python3.found()
+ python3 = find_program('python')
+endif
+
run_target('py3hi',
command : [python3, '-c', 'print("I am Python3.")'])
diff --git a/test cases/common/59 object generator/meson.build b/test cases/common/59 object generator/meson.build
index 0bdefb8..e20da6f 100644
--- a/test cases/common/59 object generator/meson.build
+++ b/test cases/common/59 object generator/meson.build
@@ -1,6 +1,9 @@
project('object generator', 'c')
-python = find_program('python3')
+python = find_program('python3', required : false)
+if not python.found()
+ python = find_program('python')
+endif
# Note that this will not add a dependency to the compiler executable.
# Code will not be rebuilt if it changes.
diff --git a/test cases/common/61 custom target source output/generator.py b/test cases/common/61 custom target source output/generator.py
index 3464b0a..42532ca 100755
--- a/test cases/common/61 custom target source output/generator.py
+++ b/test cases/common/61 custom target source output/generator.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
import sys, os
diff --git a/test cases/common/64 custom header generator/makeheader.py b/test cases/common/64 custom header generator/makeheader.py
index f156834..0c5a228 100644
--- a/test cases/common/64 custom header generator/makeheader.py
+++ b/test cases/common/64 custom header generator/makeheader.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
# NOTE: this file does not have the executable bit set. This tests that
# Meson can automatically parse shebang lines.
diff --git a/test cases/common/65 multiple generators/mygen.py b/test cases/common/65 multiple generators/mygen.py
index 99dc331..020a389 100755
--- a/test cases/common/65 multiple generators/mygen.py
+++ b/test cases/common/65 multiple generators/mygen.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
import sys, os
diff --git a/test cases/common/72 build always/version_gen.py b/test cases/common/72 build always/version_gen.py
index d7b01ca..3973e61 100755
--- a/test cases/common/72 build always/version_gen.py
+++ b/test cases/common/72 build always/version_gen.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
import sys, os, subprocess
diff --git a/test cases/common/76 configure file in custom target/src/mycompiler.py b/test cases/common/76 configure file in custom target/src/mycompiler.py
index b00c862..e1750f8 100644
--- a/test cases/common/76 configure file in custom target/src/mycompiler.py
+++ b/test cases/common/76 configure file in custom target/src/mycompiler.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
import sys
diff --git a/test cases/common/77 external test program/mytest.py b/test cases/common/77 external test program/mytest.py
index 03d88b8..7cdaf09 100755
--- a/test cases/common/77 external test program/mytest.py
+++ b/test cases/common/77 external test program/mytest.py
@@ -1,4 +1,6 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
+
+from __future__ import print_function
import sys
diff --git a/test cases/common/78 ctarget dependency/gen1.py b/test cases/common/78 ctarget dependency/gen1.py
index 0fa6ea1..f920e53 100755
--- a/test cases/common/78 ctarget dependency/gen1.py
+++ b/test cases/common/78 ctarget dependency/gen1.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
import time, sys
diff --git a/test cases/common/78 ctarget dependency/gen2.py b/test cases/common/78 ctarget dependency/gen2.py
index b087b02..fc60e1e 100755
--- a/test cases/common/78 ctarget dependency/gen2.py
+++ b/test cases/common/78 ctarget dependency/gen2.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
import sys, os
from glob import glob
diff --git a/test cases/common/93 private include/stlib/compiler.py b/test cases/common/93 private include/stlib/compiler.py
index 98dbe46..0555c16 100755
--- a/test cases/common/93 private include/stlib/compiler.py
+++ b/test cases/common/93 private include/stlib/compiler.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
import sys, os
diff --git a/test cases/common/98 gen extra/srcgen.py b/test cases/common/98 gen extra/srcgen.py
index 8988cd9..86fd698 100755
--- a/test cases/common/98 gen extra/srcgen.py
+++ b/test cases/common/98 gen extra/srcgen.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
import sys
import argparse
diff --git a/test cases/failing/41 kwarg assign/dummy.c b/test cases/failing/41 kwarg assign/dummy.c
new file mode 100644
index 0000000..16fcdd9
--- /dev/null
+++ b/test cases/failing/41 kwarg assign/dummy.c
@@ -0,0 +1,3 @@
+const char* dummy() {
+ return "I do nothing.";
+}
diff --git a/test cases/failing/41 kwarg assign/meson.build b/test cases/failing/41 kwarg assign/meson.build
new file mode 100644
index 0000000..c86786f
--- /dev/null
+++ b/test cases/failing/41 kwarg assign/meson.build
@@ -0,0 +1,4 @@
+project('assign in kwarg', 'c')
+
+executable('prog', 'dummy.c', args = 'prog.c')
+
diff --git a/test cases/failing/41 kwarg assign/prog.c b/test cases/failing/41 kwarg assign/prog.c
new file mode 100644
index 0000000..11b7fad
--- /dev/null
+++ b/test cases/failing/41 kwarg assign/prog.c
@@ -0,0 +1,3 @@
+int main(int argc, char **argv) {
+ return 0;
+}