| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
Insted of really long strings of repeated characters, use f-strings to
compose the "expected" output for the banner function tests. This keeps
the code formatter from breaking things an ugly way, and is really more
"accurate" anyway.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |
|
|
|
|
| |
Imcludes test snippets contained in docstrings, too.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |
|
|
|
|
|
|
|
|
|
| |
Since Python 2.2, the object returned by an os.stat() call presents
attributes matching the 10-tuple of stat values. Use these instead of
indexing into the tuple.
As usual for non-removed tests, minor tweaks made if needed -
copyright header and DefautlEnvironment() call for performance.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Most interesting is an "api change" - the test methods test.must_exist()
and test.must_exist_one_of() now take an optional 'message' keyword
argument which is passed on to fail_test() if the test fails.
The regex used to test an exception is now working for Python 3.13,
and enabled conditionally - the "enhanced error reporting" changed, in
a way that made it easy to reuse the existing regex (if somebody wants
to take a shot at unifying them, more power!).
Also one unexpected issue was found - one of the check routines does
"output = os.newline.join(output)", but there is no os.newline. Could use
os.linesep, but just changed it to the Python newline character.
Some annotations added, and some cleanup done on possibly unsafe uses
- mainly that self.stderr() and selt.stdout() *can* return None, but
several places in the code just did string operations on the return
unconditionally. There's already precendent- other places did do a check
before using, so just extended the concept to possibly vulnerable palces.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |
|
|
|
|
|
|
| |
Don't """code block""" % locals() if there's not actually a substitution
in the code block. While there, fix any old-style file headers,
and add a DefaultEnvironment call if not present.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The try block in TestCmd.start() is removed, it interferes with
other things. TestCommon.start is supposed to handle exceptions,
so inserting more stuff at a lower level (parent class) made
a mess of the framework tests.
Clean up a complaint with later Pythons (3.12+), and include
(incomplete) new regex for Python 3.13+.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use: https://github.com/JelleZijlstra/autotyping
to add "safe" return annotations.
Where a parameter has a default value that is an obvious scalar type
(bool, int, str, etc.) add those annotations as well.
Also fixed two small bugs that popped up when sanity-checking with
mypy. One in FortranCommon, where a return had been previously
annotated to be a tuple of Action, which should be ActionBase -
Action is the factory function, not the base class. The other was
a typo in the error raised in _add_cppdefines - the message was
formatted with the value of "define" which should have been "defines".
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |
|
|
| |
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| | |
|
| | |
|
| |
|
|
| |
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |
|
|
|
|
|
|
| |
Changed the regex for the explicitly generated exception so it also
works on Python 3.11+ with the new 'helpful errors' which can add an
extra line to the output trying to show the error (thanks to Bill Deegan)
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |
|
|
|
|
|
|
|
| |
This is a mostly tool-based conversion (a couple added by hand),
and other changes were not made, to try to keep the diff manageable.
Adds a GitHub Action to run framework tests if framework changes.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |
|
|
|
|
|
|
|
| |
The framework tests have been failing one test in the Common set,
partly due to a missing None in the expected text for the exception
test, and partly due to a change in SCons code that appears in a
traceback that had been captured, but not properly escaped.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |
|
|
|
|
|
|
|
|
|
| |
A rawstring to avoid an invalid escape warning.
A couple of instances where code is comparing type () calls,
advice is to is isinstance() instead.
Missing backslashes on escapes in framewok test (rarely run)
Updating expected traceback msg in framework test after the
code which forces the exception changed in a previous revision.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |
|
|
|
|
|
|
|
| |
Replaces one custom function with one from Python stdlib (textwrap.dedent)
Fixes one test case that did not check for None
Changes "fill line with a character" implementations to use Python
string formatting, which has this capability.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |
|
|
|
|
|
|
|
| |
Minor maintenance to drop a regex group in a few tests (including in
a test framework test) which allowed for two different exception
messages: one belongs to very old Pythons which are no longer
supported by SCons.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |
|
|
|
|
|
|
| |
Where string pasting is done using test or interpreter paths, make sure
they're pasted as raw strings to avoid problems on the Windows platform,
where the likely presence of '\Users` is likely to cause a unicode error.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |
|
|
|
|
|
|
|
| |
A couple of unittest methods that a few SCons tests use have
been marked deprecated in Python 3.11, with replacements provided.
Partial fix for #4162, do not close just off this PR.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Main functional change is a new kwarg to skip_test() to allow calls
from inside the framework to skip an additional line of traceback in
the skip output - i.e. don't just skip the entry for skip_test, but also
the function in the fw that called it.
Other functional change is for the try block in skip_if_not_msvc()
(which is one of the internal callers of skip_test() mentioned for
the other change) to catch Exception, thus avoiding system-existing
exceptions that were caught by the existing bare except, which caused
the skip to not actually skip.
The remainder of the patch is docstring reformatting, some minor
code reformats, top-of-file license blocks, etc.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |
|
|
|
|
|
|
|
|
| |
Eliminate unneeded imports, and a few unneeded statements -
usually "pass" where it is not syntactically needed.
A couple of import try blocks were eliminated or changed
when they're "cannot happen" due to current floor Python version.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A couple of minor reformats along the way, most prominently, in tests,
if being edited anyway, make sure the docstring most tests have is
actually the docstring (sometimes the __revision__ line came before,
which makes the string not be the docstring).
Snuck in some minor framework changes that were orphaned when another
draft PR was not needed: this almost all docstring changes, the
functional part is using casefold instead of lower in a match func -
a slightly better approach which is now possible that Py2 compatibility
is not needed.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| | |
|
| | |
|
|
|
quite some time
|