Use it in subprocess2 and trial_dir to remove manually bookeeping.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8688011
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@111941 0039d316-1c4b-4281-b951-d872f2087c98
No code change beside tests. This is mainly a regression test to make sure I
don't regress that code path.
TBR=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8695003
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@111535 0039d316-1c4b-4281-b951-d872f2087c98
This will be necessary to override member functions eventually. It also better
replicates what subprocess.Popen is.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8570005
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@111530 0039d316-1c4b-4281-b951-d872f2087c98
Change return value from list to tuple for communicate(timeout != None).
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8539015
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@110094 0039d316-1c4b-4281-b951-d872f2087c98
It will simplify importing utility modules from other projects. Otherwise I was getting name conflicts with 'test'.
Reenable W0403 that was disabled in the previous CL.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8508015
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@109636 0039d316-1c4b-4281-b951-d872f2087c98
Disable temporarily W0403, will be reenabled on the next CL
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8508017
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@109435 0039d316-1c4b-4281-b951-d872f2087c98
"Add callback support for stdout and stderr."
"Add tests for both universal_newlines=True and False."
"Implement accelerated tee support for POSIX."
The reason is that the semantic of
subprocess2.check_call(cmd, timeout=60, stderr=subprocess2.STDOUT) changed,
stderr wasn't redirected to VOID anymore and for an unknown reason, it was
hanging until the timeout happened. Will reapply r109239 with a new regression
test to detect that bug.
TBR=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8505046
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@109369 0039d316-1c4b-4281-b951-d872f2087c98
This removes all the need of threading, which removes the contention on the GIL
lock.
Taking S2Test.test_check_output_tee_large as baseline, numbers are
real/user/sys in seconds:
Ubuntu workstation: ~25x 2.4/1.9/1.5 -> 0.10/0.70/0.02
OSX 10.6 laptop: ~40x 6.4/5.3/3.9 -> 0.15/0.80/0.07
Cygwin on win7: ~4x 2.8/2.2/1.3 -> 0.60/0.16/0.30
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8462008
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@109283 0039d316-1c4b-4281-b951-d872f2087c98
Fix stdout+stderr on Windows to binary mode in the child test process to make
sure testing is done correctly.
R=dpranke@chromium.org
BUG=
TEST=manually tested on OSX, Windows, cygwin and ubuntu
Review URL: http://codereview.chromium.org/8472002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@109282 0039d316-1c4b-4281-b951-d872f2087c98
It's currently an inefficient thread implementation. Interestingly
enough, callback support is significantly faster on cygwin than on
native python.
Writing an efficient implementation is punted for a later change,
one per implementation.
Stops using a temporary file since it's not necessary anymore.
The goal is to reduce the number of places where a similar paradigm
is used by having a canonical generic implementation.
R=dpranke@chromium.org
BUG=
TEST=Tested manually on Windows, cygwin, linux, OSX 10.6
Review URL: http://codereview.chromium.org/8374026
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@109239 0039d316-1c4b-4281-b951-d872f2087c98
This would cause random try job failures, especially when switching around
DEPS <-> svn directory conversion.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8431021
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@108144 0039d316-1c4b-4281-b951-d872f2087c98
Windows users wouldn't get the same behavior on git cl vs gcl.
Improve automatic CRLF<->LF conversion, some gcl users would be \n repeated in
their description depending on the editor used.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8360007
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@107106 0039d316-1c4b-4281-b951-d872f2087c98
directory doesn't exist, on fresh checkout and --jobs >1.
It happens in the case where there is 3 dependencies:
a
a/b/c/d
a/b/c/e
'a' is processed first. Then 'a/b/c/d' and 'a/b/c/e' are fired simultaneously.
If both are not present, both svn checkout tries to mkdir b and b/c and a race
condition occurs between their call for isdir() and mkdir().
This works around the issue by creating the intermediary directories ourself
before calling out svn and managing the error ourself.
TBR=dpranke@chromium.org
BUG=
TEST=fresh checkout shouldn't be flaky
Review URL: http://codereview.chromium.org/8359018
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@106636 0039d316-1c4b-4281-b951-d872f2087c98
This eats stdout while gcl is committing, which is annoying. It needs tee-like
support first. Will revisit this change later, reverting in the meantime.
TBR=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8344085
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@106498 0039d316-1c4b-4281-b951-d872f2087c98
Otherwise it breaks naked --revision usage. One example issue is linux_chromeos
applying the revision to cros_deps instead of src.
TBR=dpranke@chromium.org
BUG=100335
TEST=
Review URL: http://codereview.chromium.org/8298002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@105522 0039d316-1c4b-4281-b951-d872f2087c98
It will help catch issues like the one we are getting on linux_chromeos where
the ordering of the solution is now by name, causing the default solution to be
used for --revision being the wrong one.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8276020
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@105387 0039d316-1c4b-4281-b951-d872f2087c98
Note that status() and revert() need to be correctly implemented before finishing this test.
TBR=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8287002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@105369 0039d316-1c4b-4281-b951-d872f2087c98
gclient status using --job 8 by default may return the items in a different
other. Simplify the test by forcing ordering.
TBR=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8275009
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@105338 0039d316-1c4b-4281-b951-d872f2087c98
Improve revert to skip over non managed directory and to clobber invalid
checkouts.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8227033
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@105103 0039d316-1c4b-4281-b951-d872f2087c98
It wasn't broken. The tree collapsed around the same time for unrelated reason.
TBR=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8227036
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@105090 0039d316-1c4b-4281-b951-d872f2087c98
I'm not sure if it's causing the tree blow up but I'm not taking any chance.
TBR=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8228017
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@104956 0039d316-1c4b-4281-b951-d872f2087c98
This fixes GClientSmokeBoth.testMultiSolutionsJobs flakiness by having
consistent ordering.
Now no out of thread modification is ever done, which result in much saner code.
R=dpranke@chromium.org
BUG=60725
TEST=tested manually with gclient sync --jobs 100 on chrome and with
gclient_smotetest.py
Review URL: http://codereview.chromium.org/8174014
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@104920 0039d316-1c4b-4281-b951-d872f2087c98
This means parsing the DEPS file all the time preemptively in case it's needed
for a From() reference. This could break certain checkout, we'll see.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8143022
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@104817 0039d316-1c4b-4281-b951-d872f2087c98
This makes coherency checks more consistent for DEPS vs .gclient.
It's still not thread safe but the mutation code paths are easier to follow.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8135019
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@104772 0039d316-1c4b-4281-b951-d872f2087c98
This would have caught a bug in the CQ instead of silently failing.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8203002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@104767 0039d316-1c4b-4281-b951-d872f2087c98
Makes SCM take the |file_list| as a parameter instead of getting it from |options|.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/8133032
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@104148 0039d316-1c4b-4281-b951-d872f2087c98
While trying to fix all the multithreading issues...
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8135007
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@104026 0039d316-1c4b-4281-b951-d872f2087c98
While re-reading the code, I thought I had found a bug but I hadn't. So I wrote
the test to document the behavior to not make the same error again.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8121001
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@103772 0039d316-1c4b-4281-b951-d872f2087c98
The patches needs to by applied 'in-order' to not delete source files.
Added more tests.
R=dpranke@chromium.org
BUG=94330
TEST=
Review URL: http://codereview.chromium.org/8038056
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@103309 0039d316-1c4b-4281-b951-d872f2087c98
Also reorder some patchset in preparation to patchset reording CL.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8066012
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@103147 0039d316-1c4b-4281-b951-d872f2087c98
Needed to make it so changes containing only *.mm are only sent to Mac trybots by default.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/8059009
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@102930 0039d316-1c4b-4281-b951-d872f2087c98
This was causing issues for windows user with notepad2.
Fix trychange.py on python2.5.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8038028
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@102797 0039d316-1c4b-4281-b951-d872f2087c98
Needed to make it so changes containing only *.mm are only sent to Mac trybots by default.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7925014
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@102783 0039d316-1c4b-4281-b951-d872f2087c98
The dependencies will continue to be managed. A new flag is present in the .gclient file to control this behavior.
Review URL: http://codereview.chromium.org/7918027
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@102002 0039d316-1c4b-4281-b951-d872f2087c98
I had forgot one access to _requirements. Now that tests are run, this change is
safer to commit.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7909012
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@101856 0039d316-1c4b-4281-b951-d872f2087c98
Add a warning when RunUnitTestsInDirectory() finds no test to run to
catch this kind of regression.
Fix all the regressions that where introduced in the meantime...
TBR=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7906009
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@101347 0039d316-1c4b-4281-b951-d872f2087c98
This would result in a hang during gclient sync.
Includes regression test.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7885008
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@101070 0039d316-1c4b-4281-b951-d872f2087c98
stderr is not redirected by default. stdout is not allowed.
Both were oversight.
Do not override stdin=None in case the user would response to stderr output for
example.
Increase test coverage.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7860041
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@100456 0039d316-1c4b-4281-b951-d872f2087c98
Makes the code clearer by separating good and bad use cases.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7850018
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@100198 0039d316-1c4b-4281-b951-d872f2087c98
Add support for a few svn:* properties.
Silently ignore svn:mergeinfo. It's useless once we're switched to git-land anyway.
More testing.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7840003
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@99952 0039d316-1c4b-4281-b951-d872f2087c98
I plan to do some refactoring and these tests will help reduce the likehood of
regression.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7739039
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@99799 0039d316-1c4b-4281-b951-d872f2087c98
Make tests more exhaustive in prospect to file move handling.
Rename 'c' variables to 'p' to easy copy paste.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7828017
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@99439 0039d316-1c4b-4281-b951-d872f2087c98
gclient_scm_test.py throws randomly gclient_utils.Error.
Simply update the test expectation. It has no effect on runtime.
BUG=
TEST=
Review URL: http://codereview.chromium.org/7828024
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@99436 0039d316-1c4b-4281-b951-d872f2087c98
Verify correctness with a unit test written explicitly to verify all corner cases.
BUG=60725
TEST=new unit test
Review URL: http://codereview.chromium.org/6598087
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@99234 0039d316-1c4b-4281-b951-d872f2087c98
That means some properties will being to be applied.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7776015
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@99182 0039d316-1c4b-4281-b951-d872f2087c98
Well, the funny thing is that it doesn't find the bug but the framework is
already good enough as-is to be worth checked-in, so the next commit can show
the relevant difference.
R=dpranke@chromium.org
BUG=60725
TEST=
Review URL: http://codereview.chromium.org/7773001
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@98869 0039d316-1c4b-4281-b951-d872f2087c98
Still not enough to fix presubmit checks on commit queue but a step in the
right direction.
Review URL: http://codereview.chromium.org/7748020
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@98445 0039d316-1c4b-4281-b951-d872f2087c98
It's mostly for debugging when testing with a leaking service. It's going to be
rarely used but I used it often enough to warrant it being committed.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7744030
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@98438 0039d316-1c4b-4281-b951-d872f2087c98
It result in less code, forces uploading the change for eventual review and most
importantly enables the commit queue to correctly handle this.
BUG=
TEST=
Review URL: http://codereview.chromium.org/7253015
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@91575 0039d316-1c4b-4281-b951-d872f2087c98
This may include Makefile but it's saner to not include it by default
R=dpranke@chromium.org
BUG=
TEST=updated
Review URL: http://codereview.chromium.org/7251002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@90403 0039d316-1c4b-4281-b951-d872f2087c98
Improve the list of exception to include very_long_symbol_names.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7097012
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@89696 0039d316-1c4b-4281-b951-d872f2087c98
Use p.is_new signal and set it manually with rietveld patches.
Add regression test for +x.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7054057
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@87858 0039d316-1c4b-4281-b951-d872f2087c98
presubmit_support.py can now creates a Rietveld object on its own.
This is necessary since the object needs to be recreated out of process. The
commit queue runs the presubmit check out of process for sanity reasons.
Added TODO to push the cookie instead of the password.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7058054
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@87842 0039d316-1c4b-4281-b951-d872f2087c98
Add is_new to be used in a later patch by checkout classes.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7054048
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@87838 0039d316-1c4b-4281-b951-d872f2087c98
This makes it possible to dump logging information from a PRESUBMIT script when
calling git cl presubmit -v -v -v for example.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7027031
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@87603 0039d316-1c4b-4281-b951-d872f2087c98
It needs to be parsed manually and assumes '=*' for property that do not specify
a value.
Add clearer message on failure like that by specifiying the command line.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7085022
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@87255 0039d316-1c4b-4281-b951-d872f2087c98
This makes it coherent with the commit queue by keeping the lgtm at a single
place.
This simplifies owners check code.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7082029
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@87251 0039d316-1c4b-4281-b951-d872f2087c98
The presubmit check complained about long lines in .grd files. This isn't a useful warning since .grd files aren't really source files.
The problem was that callers were passing in a file filter to InputApi.AffectedFiles but it was being ignored. Fix was to use the passed in file filter.
BUG=None
TEST=Ran on a local change and verified that I no longer got long line warnings on .grd files.
Review URL: http://codereview.chromium.org/6932060
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@85148 0039d316-1c4b-4281-b951-d872f2087c98
When specifying a revision (with -r) propagates the date of the revision to its children.
Review URL: http://codereview.chromium.org/6873110
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@83313 0039d316-1c4b-4281-b951-d872f2087c98
Rename check_call to check_call_out. It's a quite specific need when stderr is
needed or when the user doesn't want the default arguments of check_output.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/6882127
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@83023 0039d316-1c4b-4281-b951-d872f2087c98