| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Should fix #1189 after #1185.
|
|
|
|
|
| |
posix_spawn() is a syscall on OS X and Solaris and a bit faster. It's
also easier emulate for cygwin, and the code is a bit simpler.
|
|
|
|
|
|
|
|
|
|
|
| |
The change caused some issues (it makes it impossible ot use
posix_spawn() and makes it harder to suspend children on ctrl-z). After
discussing with jln: Since it fixes a corner case that can be fixed by
explicitly running commands that need it in a wrapper that setsid()s
them, let's try reverting it for a while. Please shout if this is a
problem for you.
See also #1097.
|
| |
|
|
|
|
|
| |
SIGHUP is sent when the connection hang up (i.e. when the terminal
window is closed or the ssh connection is closed).
|
|
|
|
|
| |
Default signal sent by many other programs (mainly kill(1)) to gently
terminates another one is SIGTERM.
|
|\
| |
| | |
subprocess_test: gracefully handle rlim.rlim_cur < kNumProcs
|
| |
| |
| |
| |
| |
| | |
Instead of expecting that the number of open files is well above
kNumProcs, simply "skip" the test in that case, still printing the
message about the test limit (adding the current system limit too).
|
|/
|
|
|
|
|
|
| |
Put background subprocesses (i.e. subprocesses with no access
to the console) in their own session and detach them from the
terminal.
This fixes martine/ninja#909.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Ninja currently uses googletest for testing. That makes building
ninja_test somewhat annoying since it requires that one passes
--with-gtest PATH to configure. It turns out just implementing the bits
of googletest that ninja uses needs about the same amount of code than
making the --with-gtest flag in configure.py work and making googletest
print test results in a way we want (!)
In addition to making configuration simpler, this also makes compiling
tests much faster: On my system, touching src/build_test.cc (the slowest
file to build in ninja) and rebuilding ninja_tests is twice as fast than
without this patch. Building all is noticeably faster too: 5.6s with
this patch, 9.1s without this patch (38% faster).
The most noticeable things missing: EXPECT_* and ASSERT_* don't support
streaming notes to them with operator<<, and for failing tests the lhs
and rhs are not printed. That's so that this header does not have to
include sstream, which slows down building ninja_test almost 20%.
If this turns out to be annoying, we can maybe add it.
|
|
|
|
|
|
|
| |
This is a pre-defined pool with a depth of 1. It has the special property
that any task in the pool has direct access to the console. This can be
useful for interactive tasks or long-running tasks which produce status
updates on the console (such as test suites).
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Use ppoll() on OpenBSD. Also, fix interrupt handling to recognize
that on FreeBSD and OpenBSD, an interrupt might have been delivered
even if pselect()/ppoll() don't return -1/EINTR.
|
| |
|
|
|
|
| |
Fixes issue #468.
|
|
|
|
| |
It fails on OS X, see issue #384.
|
|
|
|
|
| |
I think it might have been an oversight that this was marked
Linux-specific.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
This causes us to clean up by deleting any output files belonging
to currently-running commands before we quit if we are interrupted
(either by Ctrl-C or by a command failing).
Fixes issue #110.
|
| |
|
|
|
|
|
|
| |
- remove 'cmd /c' prepend from SubProcess::Start()
- fix the subprocess tests to prepend 'cmd /c' explicitly
|
|
|
|
|
|
| |
Use chsize instead of truncate for mingw compatibility
SubprocessTest uses DoWork to force Subprocesses to execute
Drop GoodCommandStdOut test as it is tested in SetWithSingle
|
| |
|
|
|
|
|
| |
It links, with some hacks.
Tests still fail.
|
| |
|
|
|
|
|
|
| |
Rather than tracking stdout/stderr explicitly, just keep an opaque
pointer to a platform-specific 'stream' type. Also provide API
to get at the process output.
|
| |
|
|
|