aboutsummaryrefslogtreecommitdiff
path: root/mesontest.py
AgeCommit message (Collapse)AuthorFilesLines
2018-07-19Remove long deprecated command scripts.Jussi Pakkanen1-22/+0
2018-03-14Turn deprecated commands into errors.Jussi Pakkanen1-4/+1
2017-08-02Write deprecation warnings to stderr.Jussi Pakkanen1-2/+3
2017-08-02Print deprecation warnings on old style commands.Jussi Pakkanen1-3/+2
2017-08-02Turned mesontest into on internal module.Jussi Pakkanen1-610/+6
2017-07-23mesontest: logfilename may be undefinedDima Krasner1-0/+1
Signed-off-by: Dima Krasner <dima@dimakrasner.com>
2017-07-18Close files reliably.Jussi Pakkanen1-54/+52
2017-07-15Print real error if mesontest used on invalid directory.Elliott Sales de Andrade1-9/+23
2017-07-02Removed some dead code. Closes #1949.Jussi Pakkanen1-2/+0
2017-06-30Don't rebuild tests during listing.Elliott Sales de Andrade1-1/+1
`mesontest --list` doesn't need to rebuild tests.
2017-05-26can't pass args to python3 shebangRob Doolittle1-1/+1
2017-05-24mesontest: use unbuffered IORob Doolittle1-1/+1
This helps when running mesontest as part of CI.
2017-05-17Rearrange trys to avoid possible undefined vars.Elliott Sales de Andrade1-4/+4
2017-05-17Remove unused variables.Elliott Sales de Andrade1-10/+10
2017-05-02Don't use len() to test emptiness vs not emptinessDylan Baker1-2/+2
Meson has a common pattern of using 'if len(foo) == 0:' or 'if len(foo) != 0:', however, this is a common anti-pattern in python. Instead tests for emptiness/non-emptiness should be done with a simple 'if foo:' or 'if not foo:' Consider the following: >>> import timeit >>> timeit.timeit('if len([]) == 0: pass') 0.10730923599840025 >>> timeit.timeit('if not []: pass') 0.030033907998586074 >>> timeit.timeit('if len(['a', 'b', 'c', 'd']) == 0: pass') 0.1154778649979562 >>> timeit.timeit("if not ['a', 'b', 'c', 'd']: pass") 0.08259823200205574 >>> timeit.timeit('if len("") == 0: pass') 0.089759664999292 >>> timeit.timeit('if not "": pass') 0.02340641999762738 >>> timeit.timeit('if len("foo") == 0: pass') 0.08848102600313723 >>> timeit.timeit('if not "foo": pass') 0.04032287199879647 And for the one additional case of 'if len(foo.strip()) == 0', which can be replaced with 'if not foo.isspace()' >>> timeit.timeit('if len(" ".strip()) == 0: pass') 0.15294511600222904 >>> timeit.timeit('if " ".isspace(): pass') 0.09413968399894657 >>> timeit.timeit('if len(" abc".strip()) == 0: pass') 0.2023209120015963 >>> timeit.timeit('if " abc".isspace(): pass') 0.09571301700270851 In other words, it's always a win to not use len(), when you don't actually want to check the length.
2017-04-10Colorize terminal output of mesontest. Closes #1593.Jussi Pakkanen1-1/+11
2017-04-09Check that requested executables are available. Closes #1591.Jussi Pakkanen1-0/+10
2017-04-06Use '.exe' extension for executables for CygwinJon Turney1-1/+5
Use '.exe' extension for executables for Cygwin when building and installing
2017-04-06Use extra_paths on CygwinJon Turney1-1/+1
Cygwin executables are still loaded by the Windows PE loader, so PATH needs to include any extra directories where required DLLs can be found. Cygwin uses a unix style ':'-separated PATH. os.pathsep is used correctly on extra_paths in meson_exe.py, but not in mesontest.py
2017-02-23mesontest: Support passing test arguments at runtimeNirbheek Chauhan1-2/+5
This is especially useful with the glib testing framework where you can select which tests to run within a single test executable by pasing `-p /some/test/path`
2017-02-23mesontest: Fix --repeat with --gdbNirbheek Chauhan1-3/+3
It would add --args to `wrap` repeatedly for each re-run, resulting in gdb erroring out with `--args: No such file or directory.` Also don't make --gdb and --wrapper mutually exclusive. Sometimes people want to run under a wrapper *and* run it under gdb.
2017-02-23mesontest: Use shlex.split for parsing the wrapperNirbheek Chauhan1-5/+3
Allows people to pass arguments with spaces in them. Do this using argparse itself instead of doing an isinstance later.
2017-02-20Merge pull request #1402 from centricular/test-setup-fixesJussi Pakkanen1-7/+14
Various fixes to how mesontest handles test setups.
2017-02-19Run regen before loading test data because it might have changed.Jussi Pakkanen1-25/+23
2017-02-19mesontest: Use setup timeout multiplier if not specifiedNirbheek Chauhan1-1/+3
The setup's timeout multiplier will always be set, and it will default to 1.0, so just use that. Without this, the setup's timeout multiplier was always ignored.
2017-02-19mesontest: Use test setup name in logfilesNirbheek Chauhan1-6/+9
When using a setup, use the setup name as the namebase for the logfile instead of the wrapper. The wrapper may not be set, or it may be shared between test setups. Also don't try to use the wrapper if it's an empty list. Closes https://github.com/mesonbuild/meson/issues/1371
2017-02-19mesontest: Don't run tests if no tests were selectedNirbheek Chauhan1-0/+2
The output is very confusing otherwise. Before it said 'No suitable tests defined' and then showed a list of tests that passed/failed. Now it will just say 'No suitable tests defined' and exit.
2017-02-19mesontest: Set MALLOC_PERTURB_ to a random valueNirbheek Chauhan1-0/+9
This is useful enough that we can enable this for everyone. If people really don't want this, they can pass MALLOC_PERTURB_=0 in the environment or in the test.
2017-01-28Merge pull request #1335 from tp-m/test-custom-target-used-in-test-cmdJussi Pakkanen1-2/+2
tests: check custom target output is created before being used in a t…
2017-01-28[mesontest] Implement a quiet option.Hemmo Nieminen1-1/+8
Implement a quiet option that can be used to hide OK messages for successful tests to better highlight the failing ones.
2017-01-28vs: Fix running of tests to use mesontest.pyNirbheek Chauhan1-2/+2
Back in November when this broke, we didn't notice because our tests are run in-process, so we don't check that `msbuild RUN_TESTS.vcxproj` and `ninja test` actually work. Now we do.
2017-01-26mesontest: Don't add '.' at the end of some printsNirbheek Chauhan1-2/+2
Makes it difficult to copy the filename/datetime by double-clicking since that includes the '.' at the end.
2017-01-26mesontest: Don't overwrite test status on timeoutNirbheek Chauhan1-1/+2
Earlier it would mark tests as "FAIL" even if it skipped.
2017-01-18cleanup: @staticmethodMike Sinkovsky1-0/+2
2017-01-18cleanup: Replace assignment with augmented assignmentMike Sinkovsky1-1/+1
2017-01-18cleanup: Remove redundant parenthesesMike Sinkovsky1-4/+4
2017-01-15More readable total statistics.Jussi Pakkanen1-2/+6
2017-01-12mesontest: Improve test suite selection.Hemmo Nieminen1-24/+64
Suite option can now be given to specify in more detail which tests should be run.
2017-01-11style: [E1**] IndentationMike Sinkovsky1-2/+2
2017-01-03mesontest: Print test stats even if in verbose mode.Hemmo Nieminen1-10/+4
2017-01-03mesontest: Unify testing behaviour between the test target and mesontest.Hemmo Nieminen1-108/+130
Also add a test summary to the end of the test output.
2017-01-03mesontest: Show the test command in truncated test logs.Hemmo Nieminen1-3/+3
2017-01-03mesontest: Remove excess newline and whitespace from test logs.Hemmo Nieminen1-3/+1
2017-01-02Can put external programs to test suite exe wrappers directly.Jussi Pakkanen1-1/+1
2017-01-02Can set envvars in test setups.Jussi Pakkanen1-1/+7
2017-01-02Can specify test setups and run them with mesontest.Jussi Pakkanen1-2/+30
2017-01-01style: fix E124 violationsIgor Gnatenko1-2/+1
E124: closing bracket does not match visual indentation Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
2017-01-01style: fix E128 violationsIgor Gnatenko1-2/+2
E128: continuation line under-indented for visual indent Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
2017-01-01style: fix E222 violationsIgor Gnatenko1-1/+1
E222: multiple spaces after operator Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
2017-01-01style: fix E226 violationsIgor Gnatenko1-5/+5
E226: missing whitespace around arithmetic operator Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>