Age | Commit message (Collapse) | Author |
|
scripts/babysitter stdout logging improvements
Always print stdout log statements, even when all babysitter features
are turned off, even when the test suite does not support the protocol.
|
|
Always print stdout log statements, even when all babysitter features
are turned off, even when the test suite does not support the protocol.
|
|
Adds babysitter script for PR tests
|
|
The babysitter script was failing to act as a GNU timeout replacement
because it was delivering signals to the spawned process only, whereas
GNU timeout would create a process group. This lead to a problem where
timeout kills by the babysitter would leave children of the spawned
process still running. To fix this, the babysitter script now follows
the exact steps that GNU timeout does (or as close as is possible in
Python). An attempt at a Windows process-group implementation is also
included, but I have not tested it.
Also changed the 'retry_support' key to 'babysitter_protocol' in the
JSON logs, because it was pointed out the old key was misleading (it
is true even when retries are deactivated).
|
|
Instead of configuring logs with WORKSPACE dir
|
|
- Using “iteration” for # of retries instead of ambiguous “passes”
- More clearly document what environment keys are for in-script
- Remove CRASH_RESUME key, make setting always true
- Print explicit human-readable messages for stdout log
|
|
|
|
I see two problems with our current automated PR tests:
- Many false negatives— PR tests often fail due to recurring failures
unrelated to the PR
- Information about what failed is awkward to retrieve, scattered in
multiple places
This commit adds a Python script, `scripts/babysitter`. Currently our
Jenkins test suites are each run wrapped with the `timeout` command.
The babysitter acts as a drop-in replacement for GNU timeout but adds
the following features:
- Logs machine readable output about each test suite (as
line-delimited json)
- If the test suite uses NUnit, can detect if a test case failed or
crashed (terminated mono in mid-test), and retry unsuccessful tests
(up to a limit).
The reasoning here is that tests which fail inconsistently are
currently most likely due to one of our outstanding recurring failures
rather than the change made in the PR. Therefore, if a failing test
succeeds on retry, the PR itself is probably valid (although the
failure should be logged and looked at).
In addition to the script itself, changes to NUnit were required in
order to support the retry feature and allow fine-grained logging for
NUnit suites.
Major TODOs:
- Add retry support for our non-NUnit-based test suites
- Save the XML files NUnit produces (since reruns stomp XMLs from
previous runs)
- Add some kind of sensible feature for dealing with timeouts
|
|
This means we'll use xbuild 14.0 by default, which allows users to build projects with ToolsVersion=14.0
|
|
Allow disabling the mono-find-provides/requires RPM processing scripts
|
|
libraries, and any packages which break on this behaviour should be fixed - rather than generating utterly broken Provides.
(cherry picked from commit 1f4133a06f252ec1b78637dd91e49f50836cf570)
|
|
|
|
|
|
Otherwise, RPMs don't have any dependency information
(cherry picked from commit 0dfb848cde55aed7be93e252926dd6a52bb04d73)
|
|
|
|
|
|
|
|
The intention is to make build failures easy to spot instead of silently upgrading
target framework from 2 to 4 and then fail down the road on e.g type ambiguity
caused by new 4.0 framework types or methods
|
|
Actually the entire REWRITE2_* should be killed.
|
|
|
|
|
|
|
|
|
|
|
|
(i.e. every trusted CA.pem in one big text file). This is a format used by most Linux distributions, so allows Mono packagers to automatically integrate the Mono cert store with the OS cert store.
|
|
beginning of the line.
|
|
|
|
|
|
|
|
|
|
|
|
argument, to avoid PATH problems, and to allow the windows installer to generate .bat files for them. Hopefully fixes #8813.
|
|
|
|
|
|
|
|
|
|
osx's echo.
|
|
|
|
This is a two pronged commit. Firstly we need to handle older versions
of git which lack support for recursively updating git submodules. In
order to handle this we try three separate git commands until one
succeeds and print warning/error messages as appropriate.
Secondly we should really update git submodules when 'make' is invoked.
Currently we only do this from the root makefile, though if we care enough
we can do it elsewhere in our build tree too. This means we no longer have
to run configure every time a submodule is updated just to get git submodule
update to execute.
|
|
|
|
|
|
|
|
|
|
This isn't so much so that mdoc can use C#4 features. It's instead so
that the mdoc unit tests can use C#4 features. :-)
|
|
target for 4.x
|
|
|
|
|
|
|
|
|
|
|