| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Make sure test lists with "foreign" separator still cause the
correct discovery/usage.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the past, there have been some mismatches between how tests are
specified and how they are found. testlist files, excludelist files
and command-line specifications should be agnostic to operating system
conventions. For example, typing "runtest.py foo/bar" on windows
will produce paths like foo/bar\test.py, which is hard to match and
painful to read, it should obviously match discovered foo\bar\test.py.
Test information should be output using the native path separator for
consistency.
Using pathlib lets these be normalized - stored in a common format and
output in the expected format.
Adding this normalization of course broke some tests, which either
intentionally or through omission expected some portion of a path to
be UNIX-style. Specifically these five:
test\runtest\baseline\fail.py
test\runtest\baseline\no_result.py
test\runtest\simple\fail.py
test\runtest\simple\no_result.py
test\runtest\simple\pass.py
test\runtest\testargv.py
This was fixed and a general cleanup/reformat performed on the
runtest tests.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some nearby things in Main.py as well:
- docstrings polished a bit, minor linting
- move the list of predefined SConstruct file names into a constant
defined at the top of the file, so it's a little less hidden,
in the unlikely case of future changes.
Manpage text and example revised a bit.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
|
|
|
| |
Signed-off-by: Mats Wichmann <mats@linux.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MergeFlags has a post-processing step if the *unique* flag evaluates True
which loops through and removes the duplicates. This step uses slicing
(for v in orig[::-1]), which fails if the item being cleaned is a deque -
which CPPDEFINES can now be. It would also cause the deque to be
replaced with a list. Detect this case and handle separately.
Note the same post-processing step assures each modified object will
be replaced - Override(parse_flags=xxx) silently counted on this so
it does not end up sharing variables with the overridden env. This
situation remains, and is accounted for by the patch.
Unit test and e2e tests are extended to check that MergeFlags can now
add correctly, and that Override leaves the variables independent,
not shared.
Fixes #4231
Signed-off-by: Mats Wichmann <mats@linux.com>
|
|
|
|
| |
comparison from r (text) to rb (read binary) since we now include unicode, and test logic assumes r = ascii
|
|
|
|
| |
Signed-off-by: Mats Wichmann <mats@linux.com>
|
|
|
|
|
|
|
|
|
|
| |
Proposed addition of code to cause stub qt to fail,
and test/import.py to detect this situation.
Unfortunately, it doesn't seem to work... needs adjustment.
Doc updates to record rename version.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |
|
| |
|
| |
|
|\
| |
| | |
set default encoding of written files to UTF-8, added ability to pass custom file encoding
|
| |
| |
| |
| | |
TextFile(). Added blurb to RELEASE.txt. Updated test fixture to include new utf-8 text for test
|
| |
| |
| |
| | |
custom file enconding
|
|\ \
| | |
| | | |
Split out CPPDEFINES handling in Append methods
|
| | |
| | |
| | |
| | | |
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Added another try block so complete prepend e2e test can be run
on a branch where PR #4263 is not applied (for comparison).
Added license header.
Changed invalid-tuple unittest to use assertRaises (behavior
is the same)
Also added a versionadded and a versionchanged to docstrings.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| | |
| | |
| | |
| | | |
negative test for non-two-tuple. Minor wording change
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In a hope to make the tests runnable against a checkout that does
not include PR #4263, add some try blocks so the things which used
to blow up can generate errors rather than aborting the test run.
The prepend test still fails against master.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
After the previous proposals, addition of a bare tuple is restored
to the valued-macro behavior (this previously did not work
consistently). Strings are now consistently split if they contain
spaces, except if entered as a list member, in which case (as
documented) they are left alone. tuples with nore than two members
are now flagged as a UserError; previously the first two members were
taken as name=value and any further members were silently ignored.
More tests added.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
A few places were deciding what to do based on result of is_List, when the
intent was really list-or-tuple-or-derivatives - changed to is_Sequence.
Added some test cases, including a unit test for processDefines
(which would have caught one of these cases).
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The test output for append and prepend generated tabs,
and so the "expected" strings had to contain tab indents.
This made Sider on the CI extremely noisy. There's no
specific benefit to tabs here, so just change them to spaces.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Rather than having lots of special-case code for CPPDEFINES in
four separate routines, add a new _add_cppdefines function to
handle it, paying attention to append/prepend, unique/duplicating,
and keep-original/replace-original. The existing special case handing
was then removed from Append and AppendUnique (it was never present in
Prepend and PrependUnique anyway - see #3876, but these now get it due
to a call to the new function).
Tuple handling is now consistent with list handling: a single tuple is
treated as macro names to add, not as a name=value pair. A tuple or list
has to be a member of a containing tuple or list to get the macro=value
treatment. This *may* affect some existing usage. macro=value tuples
without a value can now be entered either in (macro,) form or (macro,
None) form.
Internally, whenever append/prepend is done, existing contents are
forced to a deque, which allows efficient adding at either end without
resorting to the tricks the Prepend functions currently do (they still
do these tricks, but only in non-CPPDEFINES cases). As a result, values
from a dict are not stored as a dict, which has some effect on ordering:
values will be *consistently* ordered, but the ones from the dict are
no longer necessarily sorted.
In SCons/Defaults.py, processDefines no longer sorts a dict it is
passed, since Python now preserves dict order. This does not affect
the E2E test for CPPDEFINES - since those all call an Append routine,
CPPDEFINES will always be a deque, and so processDefines never sees a
dict in that case. It could well affect real-life usage - if setup of
CPPDEFINES was such that it used to contain a dict with multiple entries,
the order might change (sorting would have presented the keys from that
dict in alphabetical order). This would lead to a one-time rebuild for
actions that change (after that it will remain consistent).
In the E2E test CPPDEFINES/append.py some bits were reformatted, and the
handler routine now accounts for the type being a deque - since the test
does a text comparison of internally produced output, it failed if the
word "deque" appeared. Some new test cases were added to also exercise
strings with spaces embedded in them.
Changes were made to the expected output of the E2E test. These reflect
changes in the way data is now stored in CPPDEFINES, and in some cases
in order. Most of these do not change the meaning (i.e. "result" changes,
but "final" output is the same). These are the exceptions:
- "appending a dict to a list-of-2lists", AppendUnique case: order now
preserved as entered (previously took the order of the appended dict)
- "appending a string to a dict", Append case: not stored as a dict,
so ordering is as originally entered.
- "appending a dict to a dict", Append case: no longer merge into a
dict, so this is now an actual append rather than a merge of dicts which
caused the uniquing effect even without calling AppendUnique (arguably
the old way was incorrect).
A new test/CPPDEFINES/prepend.py is added to test Prepend* cases.
append.py and prepend.py are structured to fetch the SConstruct from a
fixture file.
append.py got an added test in the main text matrix, a string of the
macro=value form. The same 5x5 maxtrix is used in the new prepend.py
test as well ("expected" values for these had to be added as well).
Cosmetically, append and prepend now print their test summary so
strings have quotation marks - the "orig" lines in the expected output
was adjusted. This change looks like:
- orig = FOO, append = FOO
+ orig = 'FOO', append = 'FOO'
The other tests in test/CPPDEFINES got copyright updating and
reformatting, but otherwise do not change.
Documentation updated to clarify behavior.
Fixes #4254
Fixes #3876
Signed-off-by: Mats Wichmann <mats@linux.com>
|
|/
|
|
|
|
|
|
|
|
|
|
| |
Syntax of selecting a glossary updated - apparently the late 2022.*
texlive releases have started warning and prompting for action on
this which appears to be what breaks the test.
Not directly related to this test, but to trying to get a reasonable
set of tests to run, added some pkgs to bin/scons_dev_master.py -
this has absolutely no effect on SCons itself.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
|\
| |
| |
| | |
fix_configure_marking_up_to_date
|
| |
| |
| |
| |
| |
| | |
Although comments in src/engine/SCons/Tool/tex.py indicated that latex
should only be run after biber/bibtex if the .bbl file had changed, it
was always run.
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* Updated one testcase which now generates a warning, failing the
test (which expects no stderr).
* Updated ActionTests.py to know about 3.12, and uses the current
bytecode sequences (these might change later in the 3.12 cycle)
* Added 3.11 and 3.12 to setup.cfg so tools which query "what Pythons
does SCons support" from pypi metadata won't be fooled into thinking
3.11 isn't supported (or 3.12, though that's preliminary).
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
One of the tests had some debug fluff left over - cleaned.
Reworded the CHANGES blurb and added one to RELEASE.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If one of the Fortran compiler environment values *other than* FORTRAN
is set when calling Environment, if the tool is gfortran that choice
was not respected. Now uses the supplied values of, for example, F77,
SHF77, F95 or SHF95. The setting of FORTRAN/SHFORTRAN was already
respected.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |\
| | |
| | | |
Fix problem where Java inner classes cannot cache
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
java inner class cache teest: String didn't need to interpolate from
locals() as there were no variables to fill in.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Generated files contained a '$' in filename and this blew up subst.
Situation arose because of a need to fetch the FS entry of the
source for finding permissions. Now we use the permissions of the
cached target to decide whether to chmod to add write permission,
this avoids the need to call File() on the source.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| |/
| |
| |
| | |
scan JAVAPROCESSORPATH
|
| | |
|
| | |
|
| | |
|
| |\
| | |
| | |
| | | |
into fix_4275_comp_db_with_TEMPFILE
|
| | |
| | |
| | |
| | | |
TempFileMunge
|
| |/
| |
| |
| | |
SetOption('diskcheck','none') has been working all along. Also refactored the DiskChecker class to have more meaningful properties and not shadow default python objects (list, dir)..
|
| | |
|
| |
| |
| |
| | |
ParallelJob implementation. WHich should scale much better for highly parallel builds
|
| |\
| | |
| | |
| | | |
add_logging_to_new_parallel_job
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Caused it to unnecessarily skip the test on Windows platforms where the
Python SCripts directory was not in the search path.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| | |
| | |
| | |
| | |
| | |
| | | |
adding DefaultEnvironment calls with no tools
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
A collection of tests known to be among the slower ones to run on Windows
got the addition of DefaultEnvironment(tools=[]) calls in an attempt to
speed things up a bit. The is no test strategy change.
Signed-off-by: Mats Wichmann <mats@linux.com>
|
| | |
| | |
| | |
| | | |
SCons.Util.sanitize_shell_env(ENV). Have ninja's spawning logic use this same function to clean it's execution environment
|
| | |\
| | | |
| | | | |
Fixed taskmaster trace tests.
|
| | | |
| | | |
| | | |
| | | | |
of the file. It's no longer there. Added TestCommon.detailed_diff() function which can be used to diff large text blobs expected vs actual
|
| |/ /
| | |
| | |
| | | |
--taskmastertracefor (NewParallel/LegacyParallel Jobs). Now uses golden files to compare expected output and output files
|