##// END OF EJS Templates
procutil: introduce pseudo file object that just raises EBADF...
procutil: introduce pseudo file object that just raises EBADF This should be safer than closing underlying fd as the fd may be reused. On Python 2, closed sys.stdin could be redirected to a random file having fd=0, but we'd be better not copying this behavior. Only readinto() and write() are implemented according to the following ABC table. fileno() is not implemented since fd=0/1/2 may be assigned later to other files. https://docs.python.org/3/library/io.html#class-hierarchy

File last commit:

r46636:f44b9c72 default
r46790:a1601ff3 default
Show More
test-basic.t
229 lines | 4.8 KiB | text/troff | Tads3Lexer
Matt Mackall
tests: unify test-basic
r11742 Create a repository:
Gregory Szorc
tests: conditionalize tests based on presence of custom extensions...
r37360 #if no-extraextensions
Matt Mackall
config: make repo optional again
r20608 $ hg config
Pierre-Yves David
devel: rename 'all' to 'all-warnings' (BC)...
r25290 devel.all-warnings=true
devel: activate default-date in tests...
r32410 devel.default-date=0 0
FUJIWARA Katsunori
tests: add extra output for fsmonitor at showconfig
r33426 extensions.fsmonitor= (fsmonitor !)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 largefiles.usercache=$TESTTMP/.cache/largefiles
lfs.usercache=$TESTTMP/.cache/lfs
Matt Mackall
config: make repo optional again
r20608 ui.slash=True
ui.interactive=False
Martin von Zweigbergk
errors: add config that lets user get more detailed exit codes...
r46430 ui.detailed-exit-code=True
Boris Feld
run-tests: define the default merge tool through configuration...
r40506 ui.merge=internal:merge
FUJIWARA Katsunori
filemerge: use 'basic' as the default of '[ui] mergemarkers' for safety...
r21918 ui.mergemarkers=detailed
Yuya Nishihara
ui: separate option to show prompt echo, enabled only in tests (issue4417)...
r23053 ui.promptecho=True
run-tests: allow some slack about 'waiting on lock' message...
r46636 ui.timeout.warn=15
Jun Wu
runtests: set web.address to localhost...
r31009 web.address=localhost
Jun Wu
runtests: always set web.ipv6...
r31010 web\.ipv6=(?:True|False) (re)
Gregory Szorc
hgweb: allow defining Server response header for HTTP server...
r37027 web.server-header=testing stub value
Gregory Szorc
tests: conditionalize tests based on presence of custom extensions...
r37360 #endif
Martin Geisler
tests: remove redundant mkdir...
r13956 $ hg init t
Matt Mackall
tests: unify test-basic
r11742 $ cd t
Bryan O'Sullivan
stdio: add Linux-specific tests for error checking
r31964 Prepare a changeset:
Matt Mackall
tests: unify test-basic
r11742
$ echo a > a
$ hg add a
Bryan O'Sullivan
stdio: add Linux-specific tests for error checking
r31964
$ hg status
A a
Writes to stdio succeed and fail appropriately
#if devfull
$ hg status 2>/dev/full
A a
$ hg status >/dev/full
abort: No space left on device
[255]
Saurabh Singh
test-basic: make test compatible with chg...
r34449 #endif
Bryan O'Sullivan
stdio: add Linux-specific tests for error checking
r31964
Gregory Szorc
dispatch: handle IOError when writing to stderr...
r35671 #if devfull
Saurabh Singh
test-basic: make test compatible with chg...
r34449 $ hg status >/dev/full 2>&1
[255]
$ hg status ENOENT 2>/dev/full
[255]
#endif
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m test
Matt Mackall
tests: unify test-basic
r11742
This command is ancient:
$ hg history
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 0:acb14030fe0a
Matt Mackall
tests: unify test-basic
r11742 tag: tip
user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Matt Mackall
tests: unify test-basic
r11742 summary: test
Mark Drago
commands.update() now works properly with a revision of 0...
r13568 Verify that updating to revision 0 via commands.update() works properly
$ cat <<EOF > update_to_rev0.py
Matt Harbison
py3: fix module imports in tests, as flagged by test-check-module-imports.t...
r40405 > from mercurial import commands, hg, ui as uimod
> myui = uimod.ui.load()
Yuya Nishihara
py3: make test-basic.t pass on Python 3
r36656 > repo = hg.repository(myui, path=b'.')
Martin von Zweigbergk
tests: pass "rev" argument to commands.update() as string...
r38499 > commands.update(myui, repo, rev=b"0")
Mark Drago
commands.update() now works properly with a revision of 0...
r13568 > EOF
$ hg up null
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" ./update_to_rev0.py
Mark Drago
commands.update() now works properly with a revision of 0...
r13568 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg identify -n
0
Mads Kiilerich
check-code: fix check for trailing whitespace on empty lines...
r17346
Mark Drago
commands.update() now works properly with a revision of 0...
r13568
Matt Mackall
tests: unify test-basic
r11742 Poke around at hashes:
$ hg manifest --debug
b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 644 a
$ hg cat a
a
Verify should succeed:
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 1 changesets with 1 changes to 1 files
Matt Mackall
tests: unify test-basic
r11742
Yuya Nishihara
templatekw: add {reporoot} keyword...
r36261 Repository root:
$ hg root
$TESTTMP/t
$ hg log -l1 -T '{reporoot}\n'
$TESTTMP/t
Yuya Nishihara
root: add support for -Tformatter option...
r42610 $ hg root -Tjson | sed 's|\\\\|\\|g'
[
{
Yuya Nishihara
root: add template variables pointing to repository directories...
r42611 "hgpath": "$TESTTMP/t/.hg",
"reporoot": "$TESTTMP/t",
"storepath": "$TESTTMP/t/.hg/store"
Yuya Nishihara
root: add support for -Tformatter option...
r42610 }
]
Yuya Nishihara
templatekw: add {reporoot} keyword...
r36261
Matt Mackall
tests: unify test-basic
r11742 At the end...
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
$ cd ..
Yuya Nishihara
ui: add config knob to redirect status messages to stderr (API)...
r40580
Status message redirection:
$ hg init empty
status messages are sent to stdout by default:
$ hg outgoing -R t empty -Tjson 2>/dev/null
comparing with empty
searching for changes
[
{
"bookmarks": [],
"branch": "default",
"date": [0, 0],
"desc": "test",
"node": "acb14030fe0a21b60322c440ad2d20cf7685a376",
"parents": ["0000000000000000000000000000000000000000"],
"phase": "draft",
"rev": 0,
"tags": ["tip"],
"user": "test"
}
]
which can be configured to send to stderr, so the output wouldn't be
interleaved:
$ cat <<'EOF' >> "$HGRCPATH"
> [ui]
> message-output = stderr
> EOF
$ hg outgoing -R t empty -Tjson 2>/dev/null
[
{
"bookmarks": [],
"branch": "default",
"date": [0, 0],
"desc": "test",
"node": "acb14030fe0a21b60322c440ad2d20cf7685a376",
"parents": ["0000000000000000000000000000000000000000"],
"phase": "draft",
"rev": 0,
"tags": ["tip"],
"user": "test"
}
]
$ hg outgoing -R t empty -Tjson >/dev/null
comparing with empty
searching for changes
this option should be turned off by HGPLAIN= since it may break scripting use:
$ HGPLAIN= hg outgoing -R t empty -Tjson 2>/dev/null
comparing with empty
searching for changes
[
{
"bookmarks": [],
"branch": "default",
"date": [0, 0],
"desc": "test",
"node": "acb14030fe0a21b60322c440ad2d20cf7685a376",
"parents": ["0000000000000000000000000000000000000000"],
"phase": "draft",
"rev": 0,
"tags": ["tip"],
"user": "test"
}
]
but still overridden by --config:
$ HGPLAIN= hg outgoing -R t empty -Tjson --config ui.message-output=stderr \
> 2>/dev/null
[
{
"bookmarks": [],
"branch": "default",
"date": [0, 0],
"desc": "test",
"node": "acb14030fe0a21b60322c440ad2d20cf7685a376",
"parents": ["0000000000000000000000000000000000000000"],
"phase": "draft",
"rev": 0,
"tags": ["tip"],
"user": "test"
}
]
Invalid ui.message-output option:
$ hg log -R t --config ui.message-output=bad
abort: invalid ui.message-output destination: bad
[255]
Underlying message streams should be updated when ui.fout/ferr are set:
$ cat <<'EOF' > capui.py
> from mercurial import pycompat, registrar
> cmdtable = {}
> command = registrar.command(cmdtable)
> @command(b'capui', norepo=True)
> def capui(ui):
> out = ui.fout
> ui.fout = pycompat.bytesio()
> ui.status(b'status\n')
> ui.ferr = pycompat.bytesio()
> ui.warn(b'warn\n')
> out.write(b'stdout: %s' % ui.fout.getvalue())
> out.write(b'stderr: %s' % ui.ferr.getvalue())
> EOF
$ hg --config extensions.capui=capui.py --config ui.message-output=stdio capui
stdout: status
stderr: warn