Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 16 Jan 2013 00:08:08 +0100] rev 1197
branchmap: update cache of 'unserved' filter on new changesets
The `commitctx` and `addchangegroup` methods of repo upgrade branchcache after
completion. This behavior aims to keep the branchcache in sync for read only
process as hgweb. See ee317dbfb9d0 for details.
Since changelog filtering is used, those calls only update the cache for unfiltered repo.
One of no interest for typical read only process like hgweb.
Note: By chance in basic case, `repo.unfiltered() == repo.filtered('unserved')`
This changesets have the "unserved" cache updated instead. I think this is the
only cache that matter for hgweb.
We could imagine updating all possible branchcaches instead but:
- I'm not sure it would have any benefit impact. It may even increase the odd of
all cache being invalidated.
- This is more complicated change.
So I'm going for updating a single cache only which is already better that
updating a cache nobody cares about.
This changeset have a few expected impact on the testsuite are different cache
are updated.
[ original upstream message ]
Mads Kiilerich <madski@unity3d.com> [Tue, 15 Jan 2013 23:30:10 +0100] rev 1196
tests: run with PYTHONHASHSEED=random
Python set and dict iteration order is in principle undefined but usually
'quite stable'. Setting PYTHONHASHSEED=random will make the iteration order
more random in Python 2.6.8 and 2.7.3 and where it has been backported. This
can thus help spot dependencies on undefined behaviour and prevent future
problems.
[ original upstream message ]
Bryan O'Sullivan <bryano@fb.com> [Tue, 15 Jan 2013 13:33:28 -0800] rev 1195
run-tests: exit cleanly if parallel run is interrupted
If interrupted while running with "--jobs N", run-tests asynchronously
spewed a bunch of output and backtraces from both the master and
slave processes, leaving the terminal full of goop. This patch makes
it behave more sensibly.
[ original upstream message ]
Kevin Bullock <kbullock@ringworld.org> [Sun, 13 Jan 2013 01:39:16 -0600] rev 1194
filtering: rename filters to their antonyms
Now that changelog filtering is in place, it's become evident that
naming the filters according to the set of revs _not_ included in the
filtered changelog is confusing. This is especially evident in the
collaborative branch cache scheme.
This changes the names of the filters to reflect the revs that _are_
included:
hidden -> visible
unserved -> served
mutable -> immutable
impactable -> base
repoview.filteredrevs is renamed to filterrevs, so that callers read a
bit more sensibly, e.g.:
filterrevs('visible') # filter revs according to what's visible
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Fri, 11 Jan 2013 18:33:15 +0000] rev 1193
Merge with default
Christian Ebert <blacktrash@gmx.net> [Thu, 10 Jan 2013 16:25:06 +0000] rev 1192
test: improve grammar and spelling in branchcache note
See: 769eb1b179b5
Christian Ebert <blacktrash@gmx.net> [Thu, 10 Jan 2013 16:02:08 +0000] rev 1191
Merge with stable
Bryan O'Sullivan <bryano@fb.com> [Wed, 09 Jan 2013 13:16:54 -0800] rev 1190
hghave: introduce a test (unused) for cvs >= 1.12
[ original upstream message ]
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 08 Jan 2013 20:37:37 +0100] rev 1189
clfilter: enforce hidden changeset globally
The dispatch code now enables filtering of "hidden" changesets globally. The
filter is installed before command and extension invocation. The `--hidden`
switch is now global and disables this filtering for any command.
Code in log dedicated to changeset exclusion is removed as this global filtering
has the same effect.
[ original upstream message ]
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 08 Jan 2013 12:41:51 +0100] rev 1188
branchcache: add note about cache invalidation to test-keyword.t
[Should've been included in aff706b3a21c.]
--Kevin Bullock <kbullock@ringworld.org>
[ original upstream message ]
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 02 Jan 2013 01:57:46 +0100] rev 1187
clfilter: add mutable filtering
It filters all mutable changesets, leaving only public changeset unfiltered.
This filtering set is expected to be much more stable that the previous one as
public changeset are unlikely to disapear.
The only official use of this filter is for branchcache.
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Mon, 07 Jan 2013 02:14:41 +0100] rev 1186
run-tests.py: fix handling of symlink to the right python
Before: a symlink for python in BINDIR was sometimes created, but it was never
updated when a different Python was used and it was never removed. An invalid
python could thus be left around and used when testing with --local.
Now: the symlink is removed when wrong and created when necessary.
The mechanism for finding the right name (python or python.exe) also had to be
simplified and made more explicit.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Mon, 07 Jan 2013 23:30:00 +0000] rev 1185
Merge with stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 07 Jan 2013 17:23:25 +0100] rev 1184
branchmap: allow to use cache of subset
Filtered repository are *subset* of unfiltered repository. This means that a
filtered branchmap could be use to compute the unfiltered version.
And filtered version happen to be subset of each other:
- "all() - unserved()" is a subset of "all() - hidden()"
- "all() - hidden()" is a subset of "all()"
This means that branchmap with "unfiltered" filter can be used as a base for
"hidden" branchmap that itself could be used as a base for unfiltered
branchmap.
unserved < hidden < None
This changeset implements this mechanism. If the on disk branchcache is not valid
we use the branchcache of the nearest subset as base instead of computing it from
scratch. Such fallback can be cascaded multiple time is necessary.
Note that both "hidden" and "unserved" set are a bit volatile. We will add more
stable filtering in next changesets.
This changeset enables collaboration between no filtering and "unserved"
filtering. Fixing performance regression introduced by 47f00b0de337
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Mon, 07 Jan 2013 02:00:43 +0100] rev 1183
run-tests.py: don't use console for stdin when running in debug mode
Tests would wait for input instead of using non-interactive mode.
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Mon, 07 Jan 2013 02:00:43 +0100] rev 1182
tests: make hghave and run-tests exit on unknown feature requirements
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Fri, 04 Jan 2013 20:12:31 +0000] rev 1181
Merge with stable
Idan Kamara <idankk86@gmail.com> [Fri, 21 Dec 2012 17:19:52 +0100] rev 1180
localrepo: filter unknown nodes from the phasecache on destroyed
When commit is followed by strip (qrefresh), phasecache contains nodes that were
removed from the changelog. Since phasecache is filecached with .hg/store/phaseroots
which doesn't change as a result of stripping, we have to filter it manually.
If we don't write it immediately, the next time it is read from disk the nodes
will be filtered again. That's what happened before, but there's no reason not
to write it immediately.
The change in test-keyword.t is caused by the above.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Sat, 29 Dec 2012 02:35:54 +0000] rev 1179
Merge with stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 28 Dec 2012 00:02:40 +0100] rev 1178
strip: do not update branchcache during strip (issue3745)
At this moment, the cache is invalid, and will be thrown away.
Later the strip function will call the `localrepo.destroyed` method
that will update the branchmap cache.
[ original upstream message ]
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 24 Dec 2012 02:49:59 +0100] rev 1177
branchmap: move validity logic in the object itself
In several place, We check if a branchcache is still valid regarding the current
state of the repository. This changeset puts this logic in a method of the object
that can be reused when necessary.
A branch map is considered valid whenever it is up to date or a strict subset of
the repository state.
The change will help making branchcache aware of filtered revision.
The change in keyword is expected. the branch cache is actually invalid after
the amend. The previous check did not detected it.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Fri, 21 Dec 2012 15:21:55 +0000] rev 1176
Merge with stable
Bryan O'Sullivan <bos@serpentine.com> [Wed, 12 Dec 2012 15:17:18 -0800] rev 1175
run-tests: fix whitespace nonsense
[ original upstream message ]
Bryan O'Sullivan <bryano@fb.com> [Wed, 12 Dec 2012 14:52:58 -0800] rev 1174
run-tests: on windows, put correct python at front of PATH
The older approach of trying to copy the python executable into the test
directory was doomed to fail.
There remains one weakness with this approach: if you've run "make local",
tests may pick up the wrong extension DLLs from inside the source tree. I
don't know why this happens.
A reasonable workaround for now is to test either using --local or with
a working directory that does not contain built DLLs.
[ original upstream message ]
Mads Kiilerich <madski@unity3d.com> [Sun, 09 Dec 2012 23:33:16 +0100] rev 1173
tests: kill daemons early, making breaking at "Accept" prompt safe
[ original upstream message ]
Siddharth Agarwal <sid0@fb.com> [Tue, 11 Dec 2012 15:38:42 -0800] rev 1172
run-tests: fix exename on Windows
[ original upstream message ]
Bryan O'Sullivan <bryano@fb.com> [Tue, 11 Dec 2012 15:13:23 -0800] rev 1171
run-tests: support running tests in parallel on windows
Previously, we used os.spawnvp, which doesn't exist on Windows, and
isn't needed anyway (the command line begins with an absolute path).
We also need a slightly more convoluted way to wait for processes
without specifying an order on Windows, as it lacks os.wait.
[ original upstream message ]
Bryan O'Sullivan <bryano@fb.com> [Mon, 10 Dec 2012 12:14:55 -0800] rev 1170
run-tests: use correct python safely under --jobs
[ original upstream message ]
Bryan O'Sullivan <bryano@fb.com> [Mon, 10 Dec 2012 12:09:02 -0800] rev 1169
run-tests: check for the correct python when starting
[ original upstream message ]
Bryan O'Sullivan <bryano@fb.com> [Mon, 10 Dec 2012 12:07:42 -0800] rev 1168
run-tests: use correct python when run with --local
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Wed, 28 Nov 2012 23:59:39 +0000] rev 1167
Merge with stable
Bryan O'Sullivan <bryano@fb.com> [Tue, 27 Nov 2012 13:09:05 -0800] rev 1166
run-tests: fix an unnoticed check-code violation
[ original upstream message ]
Bryan O'Sullivan <bryano@fb.com> [Tue, 27 Nov 2012 11:18:33 -0800] rev 1165
run-tests: add a --compiler option
Without this option, it is not possible to run the test suite on Windows
using mingw's gcc as the compiler.
[ original upstream message ]
Bryan O'Sullivan <bryano@fb.com> [Tue, 27 Nov 2012 11:18:31 -0800] rev 1164
run-tests: make build command line less intimidating
Use a dict for parameters to the format string, instead of a
ridiculous number of positional parameters.
[ original upstream message ]
Matt Mackall <mpm@selenic.com> [Wed, 14 Nov 2012 18:08:39 -0600] rev 1163
run-tests: backout 4a4173519b63
This deleted work in progress to eliminate child processes for -j.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Wed, 14 Nov 2012 13:25:00 +0000] rev 1162
Merge with stable
Siddharth Agarwal <sid0@fb.com> [Thu, 08 Nov 2012 14:10:04 -0800] rev 1161
run-tests.py: remove runqueue's results parameter since it is now a global
[ original upstream message ]
Siddharth Agarwal <sid0@fb.com> [Sat, 10 Nov 2012 11:37:41 -0800] rev 1160
run-tests: open child-parent pipes in binary mode
Python's pickle is a binary format.
[ original upstream message ]
Siddharth Agarwal <sid0@fb.com> [Fri, 09 Nov 2012 14:49:30 -0800] rev 1159
run-tests: add --time option to log times for each test
--time also prints out the wall-clock time each test takes in descending order.
[ original upstream message ]
Siddharth Agarwal <sid0@fb.com> [Fri, 09 Nov 2012 15:09:35 -0800] rev 1158
run-tests: remove resultslock since it serves no useful purpose
Each child process has its own copy of the results dict, so all access to the results dict is serial.
[ original upstream message ]
Siddharth Agarwal <sid0@fb.com> [Fri, 09 Nov 2012 14:42:36 -0800] rev 1157
run-tests: use pickle to send results from children to parent
JSON would probably be preferable, but it isn't available for Python 2.4 or 2.5.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Thu, 08 Nov 2012 18:35:43 +0000] rev 1156
Merge with stable
Simon Heimberg <simohe@besonet.ch> [Wed, 24 Oct 2012 23:09:31 +0200] rev 1155
run-tests: skip unnecessary operations on the args in the child proces
The arguments are already sorted and never empty.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Sun, 21 Oct 2012 16:10:25 +0100] rev 1154
Merge with stable
Christian Ebert <blacktrash@gmx.net> [Sun, 21 Oct 2012 16:10:04 +0100] rev 1153
Merge with default
Mads Kiilerich <mads@kiilerich.com> [Thu, 18 Oct 2012 00:44:32 +0200] rev 1152
run-tests: remove dead code for supporting old test scripts
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Thu, 18 Oct 2012 00:33:29 +0200] rev 1151
run-tests: handle windows crlf in .py tests again
Before af7c6bc48d8d all crlf occurrences in test output on Windows were simply
changed to lf. In af7c6bc48d8d it was replaced by more clever handling in the
.t test runner ... but the .py runner was forgotten and many .py tests were
failing on Windows.
The crlf/lf replacement is now reintroduced in the py test runner.
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Sun, 14 Oct 2012 18:30:42 +0200] rev 1150
run-tests: make it possible to combine (esc) with (glob) and (re)
This makes it possible to combine the annotations ... if done in the right
order.
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Mon, 15 Oct 2012 02:33:12 +0200] rev 1149
run-tests: alternative way of handling \r on Windows
After f71d60da58fb all \r was stripped from output on Windows, and the places
where a \r explicitly was expected it was accepted that it was missing. Ugly
hack.
Instead we now accept that an extra \r might appear at the end of lines on
Windows. That is more to the point and less ugly.
[ original upstream message ]
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 18 Oct 2012 22:12:15 +0200] rev 1148
amend: add noise in extra to avoid creating obsolescence cycle (issue3664)
Obsolescence cycle are bad and should be avoided as much as possible. The
current amend implemented touch changeset meta data as few as possible. This
make is easy for amend to result in the same node than a precursors. We add some
deterministic noise in extra to avoid this. In practice, the hex of the amended
changeset is stored in 'amend_source' extra key.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Thu, 18 Oct 2012 16:28:04 +0200] rev 1147
Move commands.inferrepo for code maintenance
Christian Ebert <blacktrash@gmx.net> [Wed, 17 Oct 2012 17:19:48 +0200] rev 1146
Merge with stable
Siddharth Agarwal <sid0@fb.com> [Tue, 16 Oct 2012 11:43:15 -0700] rev 1145
commands: don't infer repo for commands like update (issue2748)
Maintain a whitelist of commands to infer the repo for instead. The whitelist
contains those commands that take file(s) in the working dir as arguments.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Fri, 12 Oct 2012 23:47:40 +0200] rev 1144
Merge with stable
Bryan O'Sullivan <bryano@fb.com> [Thu, 11 Oct 2012 16:05:14 -0700] rev 1143
tests: correctly report a test killed by a signal
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Fri, 12 Oct 2012 23:46:19 +0200] rev 1142
Merge with default
Christian Ebert <blacktrash@gmx.net> [Fri, 10 Aug 2012 20:37:20 +0100] rev 1141
Avoid traceback caused by bogus date input (issue3344)
Wrap datefilters which split date texts with util.parsedate.
We do not abort, as the bogus date must have been given by the user.
Christian Ebert <blacktrash@gmx.net> [Thu, 11 Oct 2012 19:46:25 +0200] rev 1140
Merge with stable
Mads Kiilerich <mads@kiilerich.com> [Wed, 26 Sep 2012 00:56:27 +0200] rev 1139
run-tests: allow test output lines to be terminated with \r in addition to \n
str.splitlines could not be used in 546c76e5a3e6, but _now_ we would like to
have lines with other line endings than \n.
Some fine occurences of (esc) markup of \r is replaced with multiple lines
ending with '\r (no-eol) (esc)'. That is no win but also no significant loss.
This change makes it possible to drop filtercr.py - _that_ is a win.
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Wed, 10 Oct 2012 01:37:53 +0200] rev 1138
run-tests: use more explicit criteria for detecting no-eol
Preparing for the situation where there could be unsalted lines not terminated
with \n.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Wed, 10 Oct 2012 11:31:01 +0200] rev 1137
Merge with stable
Thomas Arendsen Hein <thomas@intevation.de> [Thu, 04 Oct 2012 16:52:20 +0200] rev 1136
subrepo, hghave: use "svn --version --quiet" to determine version number
svn --version --quiet is implemented since svn 0.14.1 (August 2002)
and prints just the version number, not the long output (21 lines)
of "svn --version".
Additionally I expect this output format to be more stable, at least
it is not changed with different translations.
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Wed, 10 Oct 2012 01:30:45 +0200] rev 1135
run-tests: drop unused enumerate
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Wed, 19 Sep 2012 00:59:23 +0100] rev 1134
Merge with stable
Patrick Mezard <patrick@mezard.eu> [Sun, 09 Sep 2012 12:31:14 +0200] rev 1133
test-http-branchmap: enable on Windows
Tests using "hg serve --daemon" are currently disabled on Windows for
lack of proper kill utility. The one shipped with MinGW operates on
internal process identifiers and not on the ones recorded by hg serve.
Fortunately we can replace most of them by calls to killdaemons.py.
This patch is a proof of concept on how to run these tests on Windows.
The plan is:
- Check test-http-branchmap.t does not fail/hang on the buildbot
- Convert all kill utility calls to killdaemons.py calls.
- Add a rule in check-code.py to forbid kill calls, or ignore the
remaining ones (test-hup.t, etc.).
- Possibly drop the 'serve' rule from hghave.
The:
listening at http://*:$HGPORT1/
line does not appear on Windows because the detached process can no
longer write on its parent streams. Grepping hg serve stdout directly
causes the parent process to never return and hangs the test. This is a
bug, but I have no simple solution and prefer to pay this small price
and enable hg serve tests on Windows.
[ orginal upstream message ]
Christian Ebert <blacktrash@gmx.net> [Thu, 13 Sep 2012 23:02:29 +0100] rev 1132
Merge with stable
Simon Heimberg <simohe@besonet.ch> [Sat, 28 Jul 2012 23:28:17 +0200] rev 1131
tests: unset variable HG if it is set
When hg tries to call itself it can call a different hg executable when this
variable is set. Some tests fail when the called hg version is different.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Wed, 12 Sep 2012 18:44:43 +0100] rev 1130
Merge with stable
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 1129
spelling: destination
[ original upstream message ]
Patrick Mezard <patrick@mezard.eu> [Mon, 20 Aug 2012 22:36:51 +0200] rev 1128
killdaemons: take file argument explicitely
It makes it easier to use as a generic replacement for kill utility,
mostly for Windows tests.
[ original upstream message ]
Patrick Mezard <patrick@mezard.eu> [Sun, 19 Aug 2012 18:06:15 +0200] rev 1127
killdaemons: add windows implementation
[ original upstream message ]
Patrick Mezard <patrick@mezard.eu> [Sun, 19 Aug 2012 16:41:09 +0200] rev 1126
run-tests: do not duplicate killdaemons() code
[ original upstream message ]
Nicolas Dumazet <nicdumz.commits@gmail.com> [Wed, 14 Apr 2010 17:58:10 +0900] rev 1125
pylint, pyflakes: remove unused or duplicate imports
[ original upstream message, already done for run-tests.py ]
Alejandro Santos <alejolp@alejolp.com> [Sun, 05 Jul 2009 11:01:30 +0200] rev 1124
compat: use open() instead of file() everywhere
[ original upstream message only for killdaemons here ]
Matt Mackall <mpm@selenic.com> [Fri, 07 Nov 2008 16:28:53 -0600] rev 1123
tests: add killdaemons helper script
[ orgininal upstream message ]
Christian Ebert <blacktrash@gmx.net> [Thu, 30 Aug 2012 16:18:03 +0100] rev 1122
Merge with stable
Mads Kiilerich <mads@kiilerich.com> [Wed, 15 Aug 2012 22:38:42 +0200] rev 1121
fix trivial spelling errors
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Thu, 09 Aug 2012 12:52:34 +0100] rev 1120
Merge with stable
Mads Kiilerich <mads@kiilerich.com> [Wed, 08 Aug 2012 18:10:16 +0200] rev 1119
check-code: fix check for trailing whitespace on sh command lines
The $ has been without necessary escaping since introduced in c7d23b4ca4ba.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Wed, 04 Jul 2012 12:06:34 +0100] rev 1118
Merge with stable
Adrian Buehlmann <adrian@cadifra.com> [Tue, 03 Jul 2012 18:02:07 +0200] rev 1117
test-keyword: adapt for Windows
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Wed, 04 Jul 2012 02:04:58 +0200] rev 1116
tests: don't use dates before epoch in test-keyword.t
Timezone offsets of less than a minute is not shown but can cause displayed
dates to be before epoch start - and dates before epoch start is not shown
correctly on Windows (see also 4d5b12a5517b).
These 'negative' dates could be considered undefined behaviour so we don't care
and swap the tests values for timestamp and timezone.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Wed, 04 Jul 2012 12:04:06 +0100] rev 1115
Merge with default
Christian Ebert <blacktrash@gmx.net> [Thu, 28 Jun 2012 23:19:35 +0100] rev 1114
Use ui.formatter for kwfiles output
Christian Ebert <blacktrash@gmx.net> [Fri, 22 Jun 2012 13:40:23 +0100] rev 1113
Merge with stable
Joshua Redstone <joshua.redstone@fb.com> [Fri, 18 May 2012 12:45:47 -0700] rev 1112
strip: incrementally update the branchheads cache after a strip
This function augments strip to incrementally update the branchheads cache
rather than recompute it from scratch. This speeds up the performance of strip
and rebase on repos with long history. The performance optimization only
happens if the revisions stripped are all on the same branch and the parents of
the stripped revisions are also on that same branch.
This adds a few test cases, particularly one that reproduces the extra heads
that mpm observed.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Thu, 21 Jun 2012 14:04:15 +0100] rev 1111
Merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 07 Nov 2011 13:46:41 -0600] rev 1110
run-tests: replace inline python handling with more native scheme
Normally changes in tests are reported like this in diffs:
$ cat foo
- a
+ b
Using -i mode lets us update tests when the new results are correct
and/or populate tests with their output.
But with the standard doctest framework, inline Python sections in
tests changes instead result in a big failure report that's unhelpful.
So here, we replace the doctest calls with a simple compile/eval loop.
[ original upstream message - missed change to heredoctest ]
Brodie Rao <brodie@bitheap.org> [Tue, 01 Nov 2011 12:25:54 -0700] rev 1109
tests: fix readline escape characters in heredoctest.py/test-url.py
This fix mirrors the changes made to test-doctest.py in b856071435f7
and 967adcf5910d.
Without this change, tests running heredoctest.py can fail on certain
versions of OS X when TERM is set to xterm-256color:
$ /opt/local/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python -m heredoctest <<EOF
> >>> open('b', 'w').write('this' * 1000)
> EOF
+ \x1b[?1034h (no-eol) (esc)
A similar problem occurs with test-url.py:
$ ./run-tests.py test-url.py
--- .../tests/test-url.py.out
+++ .../tests/test-url.py.err
@@ -0,0 +1 @@
+
ERROR: .../test-url.py output changed
!
Failed test-url.py: output changed
# Ran 1 tests, 0 skipped, 1 failed.
[ original upstream message ]
Idan Kamara <idankk86@gmail.com> [Thu, 13 Oct 2011 17:54:35 +0200] rev 1108
tests: remove temp doctest file when finished running it
[ original upstream message ]
Idan Kamara <idankk86@gmail.com> [Wed, 12 Oct 2011 22:01:13 +0200] rev 1107
tests: add helper script for processing doctests read from stdin
Writes stdin to a temp file and doctests it.
In the future we might want to spare the temp file and directly call into
doctest.
Also, with some tweaking it seems possible to adjust the line numbers reported
in an error report so they match the ones in the original file.
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Thu, 21 Jun 2012 03:05:02 +0200] rev 1106
tests: prepare get-with-headers.py for MSYS
get-with-headers.py took the http GET parameter as a command line parameter
that had to start with '/'. MSYS on windows will mangle such paths.
Instead of applying a workaround everywhere (such as an extra '/') we let
get-with-headers.py add the mandatory '/'. That is consistent with the
url path handling in the Mercurial url class.
A few tests sent 'GET ?cmd=...' which is invalid. They will now send 'GET
/?cmd=...'.
This will not enable any tests for being run on windows - only remove one
reason they were disabled.
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Wed, 20 Jun 2012 23:41:21 +0200] rev 1105
tests: hghave outer-repo should be true even if a bad repo is found
Only the abort message 'no repository found' is a reliable indication that
there is no outer repo.
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Wed, 20 Jun 2012 23:41:21 +0200] rev 1104
tests: add missing no-outer-repo requirements
Outer repos (if any) will now never be touched by the tests. But it is better
to run without any repos around the tmp directory.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Tue, 19 Jun 2012 16:00:31 +0100] rev 1103
Merge with stable
Mads Kiilerich <mads@kiilerich.com> [Fri, 15 Jun 2012 00:02:27 +0200] rev 1102
tests: introduce hghave hardlinks
Some tests can't be run on FAT filesystems because it doesn't support
hardlinks.
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Fri, 15 Jun 2012 00:02:27 +0200] rev 1101
tests/hghave: test that the inotify unix socket actually can be created
Inotify do not work on FAT filesystems.
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Fri, 15 Jun 2012 00:02:27 +0200] rev 1100
tests/hghave: test that a fifo actually can be created on the filesystem
Some tests were failing on FAT filesystems.
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Fri, 15 Jun 2012 00:02:27 +0200] rev 1099
tests/hghave: consistently use dir='.', prefix=tempprefix for tempfiles
Some feature tests were done in the wrong directory and could thus give the
wrong result.
[ original upstream message ]
Adrian Buehlmann <adrian@cadifra.com> [Thu, 14 Jun 2012 12:54:54 +0200] rev 1098
tests/hghave: extract hghave.py
hghave is degraded to a bare script, moving the functions to hghave.py
so they can be shared later on.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Mon, 11 Jun 2012 13:56:02 +0100] rev 1097
Merge with stable
Mads Kiilerich <mads@kiilerich.com> [Mon, 11 Jun 2012 01:40:51 +0200] rev 1096
tests: add missing trailing 'cd ..'
Many tests didn't change back from subdirectories at the end of the tests ...
and they don't have to. The missing 'cd ..' could always be added when another
test case is added to the test file.
This change do that tests (99.5%) consistently end up in $TESTDIR where they
started, thus making it simpler to extend them or move them around.
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Sun, 10 Jun 2012 18:50:42 +0200] rev 1095
tests: convert some 'hghave symlink' to #if
This will enable some tests for windows.
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Sun, 10 Jun 2012 18:50:42 +0200] rev 1094
tests: use the right directory for running hghave from run-tests.py
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Sun, 10 Jun 2012 18:50:42 +0200] rev 1093
tests: make .t tests stop immediately if a cd fails
This prevents tests from escaping from TESTTMP as a consequence of a failing
directory creation.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Sun, 10 Jun 2012 16:32:22 +0100] rev 1092
Merge with stable
Adrian Buehlmann <adrian@cadifra.com> [Fri, 08 Jun 2012 15:11:05 +0200] rev 1091
tests/hghave: implement #if true / #if false
For unconditionally testing / skipping a section. Useful for testing the test
infrastructure in test-run-tests.t and for debugging/developing tests.
[ original upstream message ]
Adrian Buehlmann <adrian@cadifra.com> [Sun, 10 Jun 2012 03:05:59 +0200] rev 1090
tests/run-tests: avoid C:/ in arguments
MSYS replaces C:/... in arguments with C;... as it interprets the C:/ as a
colon separated POSIX path list. The colon is replaced with ; (path separator
on Windows) according to
http://www.mingw.org/wiki/Posix_path_conversion
So we must not replace \ with / for neither $TESTTMP nor $TESTDIR, but we
have to keep replacing \ with / for the Popen4 call of function hghave. If we
don't do the latter, test-run-tests.t will fail with
$ python run-tests.py --local test-run-tests.t
--- C:\Users\adi\hgrepos\hg-main\tests\test-run-tests.t
+++ C:\Users\adi\hgrepos\hg-main\tests\test-run-tests.t.err
@@ -70,6 +70,7 @@
tested
#else
$ echo skipped
+ skipped
#endif
#if false
An additional tweak in test-ssh.t is needed that globs away an encoded path,
as it can't be translated back to $TESTTMP, because the backslashes in the
output have been already encoded as %5C.
This patch makes test-ssh.t pass in MSYS on Windows.
[ original upstream message ]
Adrian Buehlmann <adrian@cadifra.com> [Sun, 27 May 2012 18:25:04 +0200] rev 1089
hghave: wrap command in 'sh -c "..."' for has_pyflakes()
Without this, the has_pyflakes() check always fails in MSYS on Windows.
[ original upstream message ]
Adrian Buehlmann <adrian@cadifra.com> [Fri, 08 Jun 2012 15:11:05 +0200] rev 1088
tests/run-tests: use $TMP on Windows (issue3490)
This is just a short-term workaround for that issue. More work needs to be
done on scmutil.canonpath & friends.
$TMP on Windows is specified to be defined, and it has correct casing, so we
can use that as the default dir for tempfile.mkdtemp on Windows.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Tue, 05 Jun 2012 00:20:53 +0100] rev 1087
Merge with stable
Mads Kiilerich <mads@kiilerich.com> [Fri, 01 Jun 2012 02:25:12 +0200] rev 1086
tests: introduce c-style conditional sections in .t tests
This makes it possible to have conditional sections like:
#if windows
$ echo foo
foo
#else
$ echo bar
bar
#endif
The directives and skipped sections are treated like comments, so don't
interleave them with commands and their output.
The parameters to #if are evaluated while preparing the test by passing them
over to hghave. Requirements can thus be negated with 'no-' prefix, and
multiple requirements must all be true to return true.
[ original upstream message ]
Adrian Buehlmann <adrian@cadifra.com> [Wed, 30 May 2012 14:28:57 +0200] rev 1085
run-tests: don't add python lines to expected dict
For test input lines of *.t files starting with ' >>> ', the code block for
' >>> '
609: if l.startswith(' >>> '): # python inlines
610: after.setdefault(pos, []).append(l)
was (unsurprisingly) executed, but because there was an "if" instead of an
"elif" on the condition "l.startswith(' ... ')", program execution proceeded
to line 636
635: elif l.startswith(' '): # results
636: # queue up a list of expected results
637: expected.setdefault(pos, []).append(l[2:])
due to the fact that if l starts with ' >>> ' it also starts with ' '.
The net effect was that python command lines in *.t files were (surprisingly)
also added to the "expected" dict.
This caused no externally observable bad behavior, as the "expected" dict was
not consulted for these lines.
[ original upstream message ]
Adrian Buehlmann <adrian@cadifra.com> [Sun, 03 Jun 2012 19:35:23 +0200] rev 1084
run-test: replace backslashes in TESTDIR
This may cause troubles in MSYS on Windows.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Sat, 02 Jun 2012 10:09:59 +0200] rev 1083
Merge with default
Christian Ebert <blacktrash@gmx.net> [Thu, 31 May 2012 12:47:50 +0200] rev 1082
Update copyleft
Christian Ebert <blacktrash@gmx.net> [Thu, 31 May 2012 12:47:50 +0200] rev 1081
Wlock cmdutil.copy wrapper
Expanding/shrinking happens outside the wrapped copy function;
therefore write lock the repo.
Christian Ebert <blacktrash@gmx.net> [Thu, 31 May 2012 12:47:50 +0200] rev 1080
Support commit --amend (issue3471)
Include a test as well.
Christian Ebert <blacktrash@gmx.net> [Thu, 31 May 2012 12:47:49 +0200] rev 1079
Rename kwt.record attribute to kwt.postcommit
A more general descriptive name, as the attribute will be used
for commit --amend as well.
Christian Ebert <blacktrash@gmx.net> [Fri, 18 May 2012 01:21:54 +0100] rev 1078
Merge with stable
Augie Fackler <raf@durin42.com> [Tue, 15 May 2012 14:37:49 -0500] rev 1077
hgext: mark all first-party extensions as such
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Fri, 18 May 2012 01:21:22 +0100] rev 1076
Merge with default
Christian Ebert <blacktrash@gmx.net> [Sun, 13 May 2012 14:26:26 +0100] rev 1075
Intentionally ignore check-code warning about unwrapped ui message
Christian Ebert <blacktrash@gmx.net> [Sun, 13 May 2012 14:39:47 +0100] rev 1074
Merge with stable
Brodie Rao <brodie@sf.io> [Sat, 12 May 2012 16:00:57 +0200] rev 1073
cleanup: "not x in y" -> "x not in y"
[ original upstream message ]
Brodie Rao <brodie@sf.io> [Sat, 12 May 2012 16:02:45 +0200] rev 1072
cleanup: replace naked excepts with more specific ones
[ original upstream message ]
Brodie Rao <brodie@sf.io> [Sat, 12 May 2012 16:00:53 +0200] rev 1071
cleanup: replace hasattr() usage with getattr() in hghave
[ original upstream message ]
Brodie Rao <brodie@sf.io> [Sat, 12 May 2012 15:56:23 +0200] rev 1070
cleanup: "x != None" -> "x is not None"
[ original upstream message ]