Commit Graph

42288 Commits

Author SHA1 Message Date
Saurabh Singh
6fbc1896e9 setup: remove unused import itertools
Summary: This was being reported by the test-check-pyflakes.t

Test Plan: Ran test-check-pyflakes.t.

Reviewers: phillco, #mercurial, #sourcecontrol

Reviewed By: phillco

Differential Revision: https://phabricator.intern.facebook.com/D6687882

Signature: 6687882:1515537725:e00da283e422ea363d11abd20cc63277bbe5cd9b
2018-01-09 14:42:45 -08:00
Saurabh Singh
5a62bbf298 fastmanifest: move fastmanifest tests from fb-hgext/tests to tests/
Summary: Now that D6685044 moved fastmanifest, we can also move the tests. Note
that test-fb-hgext-fastmanifest.t was moved seprately by Durham.

Test Plan: Ran all the tests.

Reviewers: quark, #mercurial, #sourcecontrol

Reviewed By: quark

Subscribers: durham, quark

Differential Revision: https://phabricator.intern.facebook.com/D6686584

Signature: 6686584:1515531785:3a9fa022f443faed6f3110eeef22d8ea72fcee3f
2018-01-09 14:21:39 -08:00
Jun Wu
04f520998c traceprof: enforce native stderr on Windows to avoid crash
Summary:
On Windows `FILE*` seems to be different in traceprofimpl.cpp and Python:

```
# fp passed from traceprof.pyx:profile(fp=sys.stderr) to traceprofimpl.cpp
0x0000000000d23cc0 {_Placeholder=0x0000000000d23360 }
    _Placeholder: 0x0000000000d23360

# stderr as seen from traceprofimpl.cpp natively
ucrtbase.dll!0x00007ffb29465510 (load symbols for additional information) {_Placeholder=0x0000000000000000 }
    _Placeholder: 0x0000000000000000
```

Workaround that by enforcing output Windows to use stderr for now.

Test Plan:
```
C:\hg> python2 setup.py build_ext -i
...

C:\hg> type a.py
import sys
from mercurial import ui
from hgext import traceprof
def f(): g(1)
def g(x): print(x)
with traceprof.profile(ui.ui(), sys.stderr): f()

C:\hg> python2 a.py
1
    | <module>                                  a.py:1
    | __exit__                                  C:\...\contextlib.py:21
Total time: 0 ms
```

Reviewers: #mercurial

Differential Revision: https://phabricator.intern.facebook.com/D6686958
2018-01-09 13:26:14 -08:00
Jun Wu
dcbc5e9b19 setup: remove mercurial.cyext package
It was moved to other places.
2018-01-09 13:47:44 -08:00
Jun Wu
fb45633a19 distutils_rust: use atomic replace to install the .so file
Summary:
Python loads .so using mmap. Rewriting a .so in-place when there is a Python
process with that .so mmap-ed could crash that Python process. Therefore
let's avoid rewriting the destination .so in-place.

This was discovered by a txnclose Python hook I used to keep binaries
up-to-date. It caused segfault after building the Rust extensions currently
loaded by the Python process running the hook.

Test Plan: `hg push` triggering that txnclose hook won't crash on the remote.

Reviewers: durham, #sourcecontrol

Reviewed By: durham

Differential Revision: https://phabricator.intern.facebook.com/D6686739

Signature: 6686739:1515532516:24c0b7066ff15a39a7bd824e779569f4a886d7df
2018-01-09 13:05:51 -08:00
Jun Wu
fc29bfdf18 patchrmdir: move to hgext
Summary: Also make it compatible with Windows by making it a no-op on Windows.

Test Plan:
`make local` and try from IPython:

```
In [1]: from hgext import patchrmdir

In [2]: os.rmdir
Out[2]: <function posix.rmdir>

In [3]: patchrmdir.uisetup(None)

In [4]: os.rmdir
Out[4]: <functools.partial at 0x375f580>
```

Reviewers: durham, #mercurial

Reviewed By: durham

Subscribers: durham, fried

Differential Revision: https://phabricator.intern.facebook.com/D6681125

Signature: 6681125:1515523144:e186b45978d4a82ec8a0d18a02b0a524fca1c3b3
2018-01-08 19:25:13 -08:00
Jun Wu
a5976a9d50 traceprof: move to hgext and make it more portable
Summary:
Get rid of `gettimeofday` and switch to C++11 `std::chrono` for Windows/rare
platform compatibility.

Also format the code using clang-format.

Test Plan:
Make sure it build on both x64 and Power8 platform.
`make local` and try it in IPython:

```
In [1]: from hgext import traceprof

In [2]: def f():
   ...:     g(1)
   ...:

In [3]: def g(x):
   ...:     print(x+1)
   ...:

In [4]: from mercurial import ui

In [7]: with traceprof.profile(ui.ui(), sys.stderr):
   ...:     f()
   ...:
2
    | <module>                                  ipython2:3
    | start_ipython                             IPython/__init__.py:93
    | launch_instance                           application.py:650
    | start                                     ipapp.py:342
    | mainloop                                  interactiveshell.py:479
    | interact                                  interactiveshell.py:459
    | run_cell                                  interactiveshell.py:2591
    | run_ast_nodes                             interactiveshell.py:2770
    | run_code                                  interactiveshell.py:2851
    | <module>                                  <ipython-input-7-2e5a012739d1>:1
    | __exit__                                  contextlib.py:21
Total time: 0 ms
```

Note: it crashes on Windows, which will be workarounded in a later patch.

Reviewers: rmcelroy, #mercurial

Reviewed By: rmcelroy

Subscribers: fried

Differential Revision: https://phabricator.intern.facebook.com/D6681062

Tags: aarch64

Signature: 6681062:1515488414:6b7a51eda9e9764560d415350630590e4817fae2
2018-01-08 17:45:51 -08:00
Jun Wu
f446276fe1 test-run-tests: stabilize the test (issue5735)
Summary:
Previously there is a race condition because things happen in this order:

  1. Check shouldStop
  2. If shouldStop is false, print the diff
  3. Call fail() -> set shouldStop

The check and set should really happen in a same critical section.

This patch adds a lock to address the issue.

The patch was also sent as https://phab.mercurial-scm.org/D1830

Test Plan: Run `run-tests.py -l test-run-tests.t` many times and it no longer fails.

Reviewers: durham, #mercurial

Reviewed By: durham

Subscribers: durham

Differential Revision: https://phabricator.intern.facebook.com/D6680300

Signature: 6680300:1515524998:260c3e198330e7e6c94dcb6cf155f14a055b760a
2018-01-08 17:23:24 -08:00
Jun Wu
26485b34fb cython: move extensions to better places
Summary:
clindex is an hg extension, so moved to `hgext`.
linelog is not an hg extension, but is only used by hg extensions, not
`mercurial/`, so moved to `hgext/extlib`.

Test Plan: `make local` and `run-tests.py` without `-l` and with an empty `PYTHONPATH`.

Reviewers: durham, #mercurial

Reviewed By: durham

Subscribers: fried

Differential Revision: https://phabricator.intern.facebook.com/D6685080

Signature: 6685080:1515525106:88ebb275d0cac041911f243a3e82b82482b6cd34
2018-01-09 10:50:46 -08:00
Jun Wu
a50053ffbe cython: build all extensions by default
Summary: clindex does not use any POSIX APIs so it can work on Windows.

Test Plan: `make local` on both Windows and Linux.

Reviewers: durham, #mercurial

Reviewed By: durham

Differential Revision: https://phabricator.intern.facebook.com/D6684821

Signature: 6684821:1515523520:aa48d4669fe658563f9457fc1a6194ec7fadd937
2018-01-09 10:33:45 -08:00
Durham Goode
c67e790eb4 cstore: move some left over tests 2018-01-09 13:11:10 -08:00
Durham Goode
fd68710043 misc: delete unused files 2018-01-09 13:07:22 -08:00
Durham Goode
60349dec1e tests: fix some broken tests
The rust directory should be removed. fastmanifest should've had a module added
to setup.py. I accidentally moved a fastmanifest test in my earlier commit, so I
need to update it.
2018-01-09 12:58:51 -08:00
Durham Goode
0fbed23c0d treemanifest: move treemanifest tests to tests/
Summary:
Now that fastmanifest and treemanifest are moved, we can moved the
tests.

Test Plan: make local && ./run-tests.py

Reviewers: singhsrb, #mercurial

Reviewed By: singhsrb

Subscribers: singhsrb

Differential Revision: https://phabricator.intern.facebook.com/D6685334

Signature: 6685334:1515526455:57791d7f9d2a3f2a6119c0e79a81b31e63a11c60
2018-01-09 12:59:00 -08:00
Durham Goode
fbed515666 setup: add directory modules to setup.py
setup.py needs an explicit list of all the directory modules, otherwise it
doesn't build them. This caused test-help to fail when run without -l because
they weren't copied to the target directory. I'm not sure how the tests have
been passing actually. My guess is they were importing the extensions from the
system python.
2018-01-09 12:38:05 -08:00
Saurabh Singh
163b35ec2e fastmanifest: fix test-check-code.t related errors
Summary:
D6685044 changed the location of fastmanifest which exposed it to the
additional test that failed. This commit fixes fastmanifest to address that
test.

Test Plan: Ran all the tests.

Reviewers: #mercurial, #sourcecontrol

Differential Revision: https://phabricator.intern.facebook.com/D6685170
2018-01-09 11:13:10 -08:00
Saurabh Singh
ad7d64e944 fastmanifest: move fastmanifest from fb-hgext to hgext
Summary:
This is part of the overall plan to move extensions from fb-hgext to
hgext. Follow up commits will address some of the test issues and move the
fastmanifest related tests out of fb-hgext to hgext.

Test Plan: Ran all the tests.

Reviewers: durham, #mercurial, #sourcecontrol

Reviewed By: durham

Subscribers: durham

Differential Revision: https://phabricator.intern.facebook.com/D6685044

Signature: 6685044:1515524660:7cb9f8f28478e7bbf816f3823406c788b79a053a
2018-01-09 11:13:10 -08:00
Durham Goode
253f51f15e treemanifest: move to hgext/
Summary: Moves the extension itself.

Test Plan:
make local && ./run-tests.py

A future patch fixes the tests once
fastmanifest is also moved.

Reviewers: phillco, #mercurial

Reviewed By: phillco

Differential Revision: https://phabricator.intern.facebook.com/D6684580

Signature: 6684580:1515521896:68a4d648d9f5433d6eeda8be01740fbe12abf44e
2018-01-09 11:06:49 -08:00
Saurabh Singh
9da30944be cfastmanifest: move to hgext/extlib/
Summary:
Moves ctreemanifest into hgext/extlib/. D6679698 was committed to scratch branch
by mistake.

Test Plan: make local && cd tests && ./run-tests.py

Reviewers: durham, #mercurial, #sourcecontrol

Reviewed By: durham

Differential Revision: https://phabricator.intern.facebook.com/D6684623

Signature: 6684623:1515522634:9bec363d00990d9ff7d5f655e30ab8cae636155c
2018-01-09 10:36:54 -08:00
Kostia Balytskyi
c9301441f5 fb-hgext: drop empty hgext3rd files
Summary: Drop em all!

Test Plan: - run tests (still running)

Reviewers: #sourcecontrol

Differential Revision: https://phabricator.intern.facebook.com/D6683892
2018-01-09 09:14:35 -08:00
Kostia Balytskyi
ae3a6e0052 fb-hgext: fix fastannotate tests
Summary: Fix all the fastannotate tests.

Test Plan: - run tests, see them pass!

Reviewers: #sourcecontrol

Differential Revision: https://phabricator.intern.facebook.com/D6683772
2018-01-09 09:00:03 -08:00
Kostia Balytskyi
6e6cc496dd fb-hgext: move all of the fastannotate tests to core
Summary:
We moved the `fastannotate` itself, let's move the tests now.

Depends on D6683689

Test Plan: - run tests in the next commit in this stack

Reviewers: #sourcecontrol

Differential Revision: https://phabricator.intern.facebook.com/D6683764
2018-01-09 08:57:40 -08:00
Kostia Balytskyi
edc5c3ab25 fb-hgext: move clindex to core
Summary:
Move clindex to core.

Depends on D6683664

Test Plan: - run tests, see them pass

Reviewers: #sourcecontrol

Differential Revision: https://phabricator.intern.facebook.com/D6683689
2018-01-09 08:42:20 -08:00
Kostia Balytskyi
0904c08353 cython: do a minor refactoring of cythonization logic
Summary: Just a preparation to be used later.

Test Plan: - it builds!

Reviewers: #sourcecontrol

Differential Revision: https://phabricator.intern.facebook.com/D6683664
2018-01-09 08:42:20 -08:00
Ryan McElroy
790efe918e duplicates: make test robust
Summary:
This test output is unstable. Let's make the test robust by ignoring
the shelve extension (which we will soon delete) and squelching the unrelated
output.

Test Plan: run-tests.py multiple times

Reviewers: ikostia, #mercurial

Reviewed By: ikostia

Differential Revision: https://phabricator.intern.facebook.com/D6683495

Signature: 6683495:1515513516:efd3964a0053b48d770b2af04b244295dba2d807
2018-01-09 08:18:14 -08:00
Kostia Balytskyi
883e143037 tests_: temporarily accept test-duplicateoptions.py.out
Summary:
Temporary accept insignificant failures until we figure stuff out.

Depends on D6683266

Test Plan: - run `test-duplicatieoptions`, see it passing

Reviewers: rmcelroy, #sourcecontrol

Differential Revision: https://phabricator.intern.facebook.com/D6683271
2018-01-09 06:54:58 -08:00
Kostia Balytskyi
88396f2bb1 fastannotate: drop the short version of --no-content
Summary:
`test-duplicateoptions` complains about `-h` being a duplicate, since it's a default help option.

Depends on D6683248

Test Plan: - run the test, see the mention of this option disappear

Reviewers: stash, #sourcecontrol

Differential Revision: https://phabricator.intern.facebook.com/D6683266
2018-01-09 06:52:59 -08:00
Kostia Balytskyi
925e76d0c6 smartlog: do not specify -T twice
Summary:
`formatteropts` already give us the `-T`.
Depends on D6683245

Test Plan: - run `test-duplicateoptions`, see this particular thing disappear

Reviewers: #sourcecontrol

Differential Revision: https://phabricator.intern.facebook.com/D6683248
2018-01-09 06:48:08 -08:00
Kostia Balytskyi
8fcdc5f35c extensions: drop the core sparse.py extension
Summary:
We have our fbsparse, which we are using. We can rename it later when configs
are in the same repo as the extension files.

Test Plan: - run tests, see only the failures related to the other commits in the stack

Reviewers: #sourcecontrol

Differential Revision: https://phabricator.intern.facebook.com/D6683245
2018-01-09 06:47:00 -08:00
Phil Cohen
bc45549249 filemerge: only write in-memory backup during premerge
This wasn't broken, but should mirror the non-in memory case to save an extra write.

Differential Revision: https://phab.mercurial-scm.org/D1807
(grafted from d592d5905ae972407fb6f9d649db1e2d41bf6c85)
(grafted from 9111386f1fe8316b9079669d0bd0e33704ba2a0c)
2018-01-09 06:29:25 -08:00
Ryan McElroy
224d5dbe40 hggit: nuke top-level directory
Test Plan: run-tests.py

Reviewers: mitrandir, #mercurial

Reviewed By: mitrandir

Differential Revision: https://phabricator.intern.facebook.com/D6675936

Tasks: T24908724

Signature: 6675936:1515448282:666143cc86b8f96e1fc8e16d0e576ec60050005b
2018-01-09 05:53:35 -08:00
Ryan McElroy
66bd74e558 hggit: internalize extension
Test Plan: run-tests-.py

Reviewers: mitrandir, #mercurial

Reviewed By: mitrandir

Subscribers: ps, terrelln

Differential Revision: https://phabricator.intern.facebook.com/D6675896

Tasks: T24908724

Signature: 6675896:1515448382:df8d80cd7356ae8f5fb04586dc4a0a651bc498fd
2018-01-09 06:08:01 -08:00
Ryan McElroy
86609d7d59 hggit: fix check-code issues
Summary:
Some issues are difficult to fix right now so I'm just checking a few
errors in.

Test Plan: run-tests.py

Reviewers: mitrandir, #mercurial

Reviewed By: mitrandir

Subscribers: mitrandir, terrelln

Differential Revision: https://phabricator.intern.facebook.com/D6675890

Tasks: T24908724

Signature: 6675890:1515493853:bfdd6c504be2bd0208c2e272183354c688019ac9
2018-01-09 05:53:20 -08:00
Ryan McElroy
713b0c66a5 hggit: fix pyflakes issues
Test Plan: run pyflakes tests on code

Reviewers: mitrandir, #mercurial

Reviewed By: mitrandir

Differential Revision: https://phabricator.intern.facebook.com/D6675880

Tasks: T24908724

Signature: 6675880:1515448132:e5862b173df2921781cdef9ae5f3dff4f708b4dd
2018-01-09 05:53:12 -08:00
Ryan McElroy
c0cff5877a hggit: remove unused files
Test Plan: run-tests.py

Reviewers: mitrandir, #mercurial

Reviewed By: mitrandir

Differential Revision: https://phabricator.intern.facebook.com/D6675875

Tasks: T24908724

Signature: 6675875:1515448076:0faf1091382e81ae2a333b17608b98465c48f4e0
2018-01-09 05:53:05 -08:00
Ryan McElroy
dc858619e0 help: improve extension help messages
Test Plan: run-tests.py

Reviewers: ikostia, #mercurial

Reviewed By: ikostia

Differential Revision: https://phabricator.intern.facebook.com/D6683060

Signature: 6683060:1515505954:91bdc8841c2168bf93e7448cb0fa4d136d7a6e2f
2018-01-09 05:52:58 -08:00
Ryan McElroy
49de7f00d1 absorb: avoid object as default argument
Summary: This fixes a test-check issue and makes the code safer.

Test Plan: run-tests.py

Reviewers: ikostia, #mercurial

Reviewed By: ikostia

Differential Revision: https://phabricator.intern.facebook.com/D6682545

Signature: 6682545:1515505853:0e9f81c33bbf4c2579ec16f14153fab5fea832fd
2018-01-09 05:52:50 -08:00
Kostia Balytskyi
11636a21ce tesst_: fix test-gendoc-ja.t
Summary: Seems like some unneeded stuff.

Test Plan: - run this test, see it passing

Reviewers: rmcelroy, #sourcecontrol

Reviewed By: rmcelroy

Differential Revision: https://phabricator.intern.facebook.com/D6682999

Signature: 6682999:1515505094:237d85fb2393393a5ac2936949772f4aec5f47c1
2018-01-09 05:40:37 -08:00
Kostia Balytskyi
ad3e7ccf17 tests_: fix test-fb-hgext-remotefilelog-sparse.t
Summary: Missed fix of wrong imports.

Test Plan: - run this test, it passes now

Reviewers: rmcelroy, #sourcecontrol

Reviewed By: rmcelroy

Differential Revision: https://phabricator.intern.facebook.com/D6682995

Signature: 6682995:1515504928:f8a0f2bff4c6dc1ff311ecdc12db63a3cfb69b3f
2018-01-09 05:40:12 -08:00
Kostia Balytskyi
df77a0c04e fb-hgext: temporarily accept failures for test-check-py3-compat.t
Summary:
Temporary change. Meant to be fixed later.

Depends on D6675437

Test Plan: - all the tests pass!

Reviewers: #sourcecontrol

Differential Revision: https://phabricator.intern.facebook.com/D6675475
2018-01-09 04:45:57 -08:00
Kostia Balytskyi
6a5054bc6a fb-hgext: temporarily accept failures for test-check-module-imports.t
Summary:
Temporary change. Meant to be fixed later.

Depends on D6675412

Test Plan: - test passes

Reviewers: rmcelroy, #sourcecontrol

Reviewed By: rmcelroy

Differential Revision: https://phabricator.intern.facebook.com/D6675437

Signature: 6675437:1515501996:6c09db7f95740ec7e14985a730b9741a9d4ea01f
2018-01-09 04:50:43 -08:00
Kostia Balytskyi
c40bd9954a fb-hgext: temporarily accept failures for test-check-code.t
Summary: This is a temporary commit, meant to be fixed later.

Test Plan: - test passes now

Reviewers: #sourcecontrol

Differential Revision: https://phabricator.intern.facebook.com/D6675412
2018-01-09 04:45:57 -08:00
Kostia Balytskyi
4d47dfcb56 fb-hgext: remove some useless scripts from fb-hgext
Summary:
These scripts are not necessary anymore.

Depends on D6675381

Test Plan: - less complaints from styling tests

Reviewers: #sourcecontrol

Differential Revision: https://phabricator.intern.facebook.com/D6675405
2018-01-09 04:45:57 -08:00
Kostia Balytskyi
9aa3ee0721 fb-hgext: accept new help contents in test-help.t
Summary:
Some new help contents are now generated with test-help.t

Depends on D6675351

Test Plan: - test-help.t is passing now

Reviewers: #sourcecontrol

Differential Revision: https://phabricator.intern.facebook.com/D6675363
2018-01-09 04:40:31 -08:00
Ryan McElroy
9cf8ea29dd gendoc: fix doc generation to use extensions from repository
Summary:
Previously, we were loading extensions from the environment which
is not good for actually getting the right docs.

> It is just plain wrong. --ikostia

Test Plan: run-tets.py

Reviewers: ikostia, #mercurial

Reviewed By: ikostia

Differential Revision: https://phabricator.intern.facebook.com/D6682879

Signature: 6682879:1515500917:a0b79bdae32dfa300fcab83488012c77a5145e15
2018-01-09 04:29:10 -08:00
Kostia Balytskyi
0e4d95b67e fb-hgext: fix gendoc-related issues
Summary:
These fixes are related to documentation-related check-style tests.

Depends on D6675344

Test Plan: - more tests pass

Reviewers: #sourcecontrol

Differential Revision: https://phabricator.intern.facebook.com/D6675351
2018-01-09 03:44:33 -08:00
Kostia Balytskyi
b27a46c987 fb-hgext: fix copied fb-hgext tests
Summary:
This is a big bulk of generally almost-obvious fixes to the moved tests. Mostly
these fixes have to do with correct importing of the actual extensions.

Depends on D6675329

Test Plan:
- ./run-tests.py fails less after this commit
- see further commits for more test fixes

Reviewers: #sourcecontrol

Differential Revision: https://phabricator.intern.facebook.com/D6675344
2018-01-09 03:06:09 -08:00
Kostia Balytskyi
e75b9fc1b1 fb-hgext: move most of hgext3rd and related tests to core
Summary:
This commit moves most of the stuff in hgext3rd and related tests to
hg-crew/hgext and hg-crew/test respectively.

The things that are not moved are the ones which require some more complex
imports.


Depends on D6675309

Test Plan: - tests are failing at this commit, fixes are in the following commits

Reviewers: #sourcecontrol

Differential Revision: https://phabricator.intern.facebook.com/D6675329
2018-01-09 03:03:59 -08:00
Phil Cohen
c0545cf009 build: fix issue if destdir is missing
Summary: Fixes an issue where the build would fail if the directory had not been made.

Test Plan: ./setup.py build works now

Reviewers: mbthomas, #mercurial

Differential Revision: https://phabricator.intern.facebook.com/D6681061
2018-01-08 19:29:53 -08:00
Durham Goode
fe980ff373 remotefilelog: move to hgext/
Summary:
Moves the remotefilelog extension into hgext/ and it's tests into
tests/.

I did not fix up all the check-module errors, since it's a ton of work for
very little impact at this point.

Test Plan: make local && ./run-tests.py

Reviewers: #mercurial

Differential Revision: https://phabricator.intern.facebook.com/D6680030
2018-01-08 18:58:08 -08:00