Show More
@@ -53,7 +53,7 b' another bad extension' | |||||
53 |
|
53 | |||
54 | $ hg -q help help 2>&1 |grep extension |
|
54 | $ hg -q help help 2>&1 |grep extension | |
55 | *** failed to import extension "badext" from $TESTTMP/badext.py: bit bucket overflow |
|
55 | *** failed to import extension "badext" from $TESTTMP/badext.py: bit bucket overflow | |
56 |
*** failed to import extension "badext2": No module named 'badext2' |
|
56 | *** failed to import extension "badext2": No module named 'badext2' | |
57 |
|
57 | |||
58 | show traceback |
|
58 | show traceback | |
59 |
|
59 | |||
@@ -61,14 +61,14 b' show traceback' | |||||
61 | *** failed to import extension "badext" from $TESTTMP/badext.py: bit bucket overflow |
|
61 | *** failed to import extension "badext" from $TESTTMP/badext.py: bit bucket overflow | |
62 | Traceback (most recent call last): |
|
62 | Traceback (most recent call last): | |
63 | Exception: bit bucket overflow |
|
63 | Exception: bit bucket overflow | |
64 |
*** failed to import extension "badext2": No module named 'badext2' |
|
64 | *** failed to import extension "badext2": No module named 'badext2' | |
65 | Traceback (most recent call last): |
|
65 | Traceback (most recent call last): | |
66 | ImportError: No module named 'hgext.badext2' (py3 no-py36 !) |
|
66 | ImportError: No module named 'hgext.badext2' (py3 no-py36 !) | |
67 | ModuleNotFoundError: No module named 'hgext.badext2' (py36 !) |
|
67 | ModuleNotFoundError: No module named 'hgext.badext2' (py36 !) | |
68 |
Traceback (most recent call last): |
|
68 | Traceback (most recent call last): | |
69 | ImportError: No module named 'hgext3rd.badext2' (py3 no-py36 !) |
|
69 | ImportError: No module named 'hgext3rd.badext2' (py3 no-py36 !) | |
70 | ModuleNotFoundError: No module named 'hgext3rd.badext2' (py36 !) |
|
70 | ModuleNotFoundError: No module named 'hgext3rd.badext2' (py36 !) | |
71 |
Traceback (most recent call last): |
|
71 | Traceback (most recent call last): | |
72 | ImportError: No module named 'badext2' (py3 no-py36 !) |
|
72 | ImportError: No module named 'badext2' (py3 no-py36 !) | |
73 | ModuleNotFoundError: No module named 'badext2' (py36 !) |
|
73 | ModuleNotFoundError: No module named 'badext2' (py36 !) | |
74 |
|
74 | |||
@@ -117,17 +117,17 b' show traceback for ImportError of hgext.' | |||||
117 | Traceback (most recent call last): |
|
117 | Traceback (most recent call last): | |
118 | ImportError: No module named 'hgext.badext2' (py3 no-py36 !) |
|
118 | ImportError: No module named 'hgext.badext2' (py3 no-py36 !) | |
119 | ModuleNotFoundError: No module named 'hgext.badext2' (py36 !) |
|
119 | ModuleNotFoundError: No module named 'hgext.badext2' (py36 !) | |
120 |
Traceback (most recent call last): |
|
120 | Traceback (most recent call last): | |
121 | ImportError: No module named 'hgext3rd.badext2' (py3 no-py36 !) |
|
121 | ImportError: No module named 'hgext3rd.badext2' (py3 no-py36 !) | |
122 | ModuleNotFoundError: No module named 'hgext3rd.badext2' (py36 !) |
|
122 | ModuleNotFoundError: No module named 'hgext3rd.badext2' (py36 !) | |
123 |
*** failed to import extension "badext2": No module named 'badext2' |
|
123 | *** failed to import extension "badext2": No module named 'badext2' | |
124 | Traceback (most recent call last): |
|
124 | Traceback (most recent call last): | |
125 | ImportError: No module named 'hgext.badext2' (py3 no-py36 !) |
|
125 | ImportError: No module named 'hgext.badext2' (py3 no-py36 !) | |
126 | ModuleNotFoundError: No module named 'hgext.badext2' (py36 !) |
|
126 | ModuleNotFoundError: No module named 'hgext.badext2' (py36 !) | |
127 |
Traceback (most recent call last): |
|
127 | Traceback (most recent call last): | |
128 | ImportError: No module named 'hgext3rd.badext2' (py3 no-py36 !) |
|
128 | ImportError: No module named 'hgext3rd.badext2' (py3 no-py36 !) | |
129 | ModuleNotFoundError: No module named 'hgext3rd.badext2' (py36 !) |
|
129 | ModuleNotFoundError: No module named 'hgext3rd.badext2' (py36 !) | |
130 |
Traceback (most recent call last): |
|
130 | Traceback (most recent call last): | |
131 | ModuleNotFoundError: No module named 'badext2' (py36 !) |
|
131 | ModuleNotFoundError: No module named 'badext2' (py36 !) | |
132 | ImportError: No module named 'badext2' (py3 no-py36 !) |
|
132 | ImportError: No module named 'badext2' (py3 no-py36 !) | |
133 | YYYY/MM/DD HH:MM:SS (PID)> > loaded 2 extensions, total time * (glob) |
|
133 | YYYY/MM/DD HH:MM:SS (PID)> > loaded 2 extensions, total time * (glob) | |
@@ -157,7 +157,7 b" confirm that there's no crash when an ex" | |||||
157 |
|
157 | |||
158 | $ hg help --keyword baddocext |
|
158 | $ hg help --keyword baddocext | |
159 | *** failed to import extension "badext" from $TESTTMP/badext.py: bit bucket overflow |
|
159 | *** failed to import extension "badext" from $TESTTMP/badext.py: bit bucket overflow | |
160 |
*** failed to import extension "badext2": No module named 'badext2' |
|
160 | *** failed to import extension "badext2": No module named 'badext2' | |
161 | Topics: |
|
161 | Topics: | |
162 |
|
162 | |||
163 | extensions Using Additional Features |
|
163 | extensions Using Additional Features |
@@ -742,7 +742,7 b' Check output capture control.' | |||||
742 | remote: adding changesets |
|
742 | remote: adding changesets | |
743 | remote: adding manifests |
|
743 | remote: adding manifests | |
744 | remote: adding file changes |
|
744 | remote: adding file changes | |
745 |
remote: Fail early! |
|
745 | remote: Fail early! | |
746 | remote: transaction abort! |
|
746 | remote: transaction abort! | |
747 | remote: Cleaning up the mess... |
|
747 | remote: Cleaning up the mess... | |
748 | remote: rollback completed |
|
748 | remote: rollback completed |
@@ -307,7 +307,7 b' error case are ignored' | |||||
307 | malformatted run limit entry, missing "-": 500 |
|
307 | malformatted run limit entry, missing "-": 500 | |
308 | ! wall * comb * user * sys * (best of 5) (glob) |
|
308 | ! wall * comb * user * sys * (best of 5) (glob) | |
309 | $ hg perfparents --config perf.stub=no --config perf.run-limits='aaa-12, 0.000000001-5' |
|
309 | $ hg perfparents --config perf.stub=no --config perf.run-limits='aaa-12, 0.000000001-5' | |
310 |
malformatted run limit entry, could not convert string to float: 'aaa': aaa-12 |
|
310 | malformatted run limit entry, could not convert string to float: 'aaa': aaa-12 | |
311 | ! wall * comb * user * sys * (best of 5) (glob) |
|
311 | ! wall * comb * user * sys * (best of 5) (glob) | |
312 | $ hg perfparents --config perf.stub=no --config perf.run-limits='12-aaaaaa, 0.000000001-5' |
|
312 | $ hg perfparents --config perf.stub=no --config perf.run-limits='12-aaaaaa, 0.000000001-5' | |
313 | malformatted run limit entry, invalid literal for int() with base 10: 'aaaaaa': 12-aaaaaa |
|
313 | malformatted run limit entry, invalid literal for int() with base 10: 'aaaaaa': 12-aaaaaa |
@@ -221,7 +221,7 b' debugdelta chain basic output' | |||||
221 | { |
|
221 | { | |
222 | "chainid": 1, |
|
222 | "chainid": 1, | |
223 | "chainlen": 1, |
|
223 | "chainlen": 1, | |
224 |
"chainratio": 1.0232558139534884, |
|
224 | "chainratio": 1.0232558139534884, | |
225 | "chainsize": 44, |
|
225 | "chainsize": 44, | |
226 | "compsize": 44, |
|
226 | "compsize": 44, | |
227 | "deltatype": "base", |
|
227 | "deltatype": "base", | |
@@ -261,7 +261,7 b' debugdelta chain basic output' | |||||
261 | { |
|
261 | { | |
262 | "chainid": 3, |
|
262 | "chainid": 3, | |
263 | "chainlen": 1, |
|
263 | "chainlen": 1, | |
264 |
"chainratio": 1.0232558139534884, |
|
264 | "chainratio": 1.0232558139534884, | |
265 | "chainsize": 44, |
|
265 | "chainsize": 44, | |
266 | "compsize": 44, |
|
266 | "compsize": 44, | |
267 | "deltatype": "base", |
|
267 | "deltatype": "base", | |
@@ -302,7 +302,7 b' debugdelta chain with sparse read enable' | |||||
302 | { |
|
302 | { | |
303 | "chainid": 1, |
|
303 | "chainid": 1, | |
304 | "chainlen": 1, |
|
304 | "chainlen": 1, | |
305 |
"chainratio": 1.0232558139534884, |
|
305 | "chainratio": 1.0232558139534884, | |
306 | "chainsize": 44, |
|
306 | "chainsize": 44, | |
307 | "compsize": 44, |
|
307 | "compsize": 44, | |
308 | "deltatype": "base", |
|
308 | "deltatype": "base", | |
@@ -342,7 +342,7 b' debugdelta chain with sparse read enable' | |||||
342 | { |
|
342 | { | |
343 | "chainid": 3, |
|
343 | "chainid": 3, | |
344 | "chainlen": 1, |
|
344 | "chainlen": 1, | |
345 |
"chainratio": 1.0232558139534884, |
|
345 | "chainratio": 1.0232558139534884, | |
346 | "chainsize": 44, |
|
346 | "chainsize": 44, | |
347 | "compsize": 44, |
|
347 | "compsize": 44, | |
348 | "deltatype": "base", |
|
348 | "deltatype": "base", |
@@ -574,9 +574,9 b" Python 3's lazy importer verifies module" | |||||
574 | module stub. Our custom lazy importer for Python 2 always returns a stub. |
|
574 | module stub. Our custom lazy importer for Python 2 always returns a stub. | |
575 |
|
575 | |||
576 | $ (PYTHONPATH=${PYTHONPATH}${PATHSEP}${TESTTMP}; hg --config extensions.checkrelativity=$TESTTMP/checkrelativity.py checkrelativity) || true |
|
576 | $ (PYTHONPATH=${PYTHONPATH}${PATHSEP}${TESTTMP}; hg --config extensions.checkrelativity=$TESTTMP/checkrelativity.py checkrelativity) || true | |
577 |
*** failed to import extension "checkrelativity" from $TESTTMP/checkrelativity.py: No module named 'extlibroot.lsub1.lsub2.notexist' |
|
577 | *** failed to import extension "checkrelativity" from $TESTTMP/checkrelativity.py: No module named 'extlibroot.lsub1.lsub2.notexist' | |
578 |
hg: unknown command 'checkrelativity' |
|
578 | hg: unknown command 'checkrelativity' | |
579 |
(use 'hg help' for a list of commands) |
|
579 | (use 'hg help' for a list of commands) | |
580 |
|
580 | |||
581 | #endif |
|
581 | #endif | |
582 |
|
582 | |||
@@ -1862,7 +1862,7 b' Prohibit the use of unicode strings as t' | |||||
1862 | > test_unicode_default_value = $TESTTMP/test_unicode_default_value.py |
|
1862 | > test_unicode_default_value = $TESTTMP/test_unicode_default_value.py | |
1863 | > EOF |
|
1863 | > EOF | |
1864 | $ hg -R $TESTTMP/opt-unicode-default dummy |
|
1864 | $ hg -R $TESTTMP/opt-unicode-default dummy | |
1865 |
*** failed to import extension "test_unicode_default_value" from $TESTTMP/test_unicode_default_value.py: unicode 'value' found in cmdtable.dummy |
|
1865 | *** failed to import extension "test_unicode_default_value" from $TESTTMP/test_unicode_default_value.py: unicode 'value' found in cmdtable.dummy | |
1866 | *** (use b'' to make it byte string) |
|
1866 | *** (use b'' to make it byte string) | |
1867 | hg: unknown command 'dummy' |
|
1867 | hg: unknown command 'dummy' | |
1868 | (did you mean summary?) |
|
1868 | (did you mean summary?) |
@@ -213,11 +213,11 b' Ensure the data got to the server OK' | |||||
213 | File "*/mercurial/revlogutils/flagutil.py", line *, in insertflagprocessor (glob) (no-pyoxidizer !) |
|
213 | File "*/mercurial/revlogutils/flagutil.py", line *, in insertflagprocessor (glob) (no-pyoxidizer !) | |
214 | File "mercurial.revlogutils.flagutil", line *, in insertflagprocessor (glob) (pyoxidizer !) |
|
214 | File "mercurial.revlogutils.flagutil", line *, in insertflagprocessor (glob) (pyoxidizer !) | |
215 | raise error.Abort(msg) |
|
215 | raise error.Abort(msg) | |
216 |
mercurial.error.Abort: cannot register multiple processors on flag '0x8'. |
|
216 | mercurial.error.Abort: cannot register multiple processors on flag '0x8'. | |
217 | *** failed to set up extension duplicate: cannot register multiple processors on flag '0x8'. |
|
217 | *** failed to set up extension duplicate: cannot register multiple processors on flag '0x8'. | |
218 | $ hg st 2>&1 | egrep 'cannot register multiple processors|flagprocessorext' |
|
218 | $ hg st 2>&1 | egrep 'cannot register multiple processors|flagprocessorext' | |
219 | File "*/tests/flagprocessorext.py", line *, in extsetup (glob) |
|
219 | File "*/tests/flagprocessorext.py", line *, in extsetup (glob) | |
220 |
mercurial.error.Abort: cannot register multiple processors on flag '0x8'. |
|
220 | mercurial.error.Abort: cannot register multiple processors on flag '0x8'. | |
221 | *** failed to set up extension duplicate: cannot register multiple processors on flag '0x8'. |
|
221 | *** failed to set up extension duplicate: cannot register multiple processors on flag '0x8'. | |
222 | File "*/tests/flagprocessorext.py", line *, in b64decode (glob) |
|
222 | File "*/tests/flagprocessorext.py", line *, in b64decode (glob) | |
223 |
|
223 |
@@ -272,7 +272,7 b' Testing --traceback:' | |||||
272 | #if no-chg no-rhg |
|
272 | #if no-chg no-rhg | |
273 | $ hg --cwd c --config x --traceback id 2>&1 | grep -i 'traceback' |
|
273 | $ hg --cwd c --config x --traceback id 2>&1 | grep -i 'traceback' | |
274 | Traceback (most recent call last): |
|
274 | Traceback (most recent call last): | |
275 |
Traceback (most recent call last): |
|
275 | Traceback (most recent call last): | |
276 | #else |
|
276 | #else | |
277 | Traceback for '--config' errors not supported with chg. |
|
277 | Traceback for '--config' errors not supported with chg. | |
278 | $ hg --cwd c --config x --traceback id 2>&1 | grep -i 'traceback' |
|
278 | $ hg --cwd c --config x --traceback id 2>&1 | grep -i 'traceback' |
@@ -975,19 +975,19 b' test python hooks' | |||||
975 | Traceback (most recent call last): |
|
975 | Traceback (most recent call last): | |
976 | SyntaxError: * (glob) |
|
976 | SyntaxError: * (glob) | |
977 | exception from second failed import attempt: |
|
977 | exception from second failed import attempt: | |
978 |
Traceback (most recent call last): |
|
978 | Traceback (most recent call last): | |
979 |
SyntaxError: * (glob) |
|
979 | SyntaxError: * (glob) | |
980 | Traceback (most recent call last): |
|
980 | Traceback (most recent call last): | |
981 | ImportError: No module named 'hgext_syntaxerror' (py3 no-py36 !) |
|
981 | ImportError: No module named 'hgext_syntaxerror' (py3 no-py36 !) | |
982 | ModuleNotFoundError: No module named 'hgext_syntaxerror' (py36 !) |
|
982 | ModuleNotFoundError: No module named 'hgext_syntaxerror' (py36 !) | |
983 | Traceback (most recent call last): |
|
983 | Traceback (most recent call last): | |
984 |
SyntaxError: * (glob) |
|
984 | SyntaxError: * (glob) | |
985 |
Traceback (most recent call last): |
|
985 | Traceback (most recent call last): | |
986 | ImportError: No module named 'hgext_syntaxerror' (py3 no-py36 !) |
|
986 | ImportError: No module named 'hgext_syntaxerror' (py3 no-py36 !) | |
987 | ModuleNotFoundError: No module named 'hgext_syntaxerror' (py36 !) |
|
987 | ModuleNotFoundError: No module named 'hgext_syntaxerror' (py36 !) | |
988 |
Traceback (most recent call last): |
|
988 | Traceback (most recent call last): | |
989 | raise error.HookLoadError( (py38 !) |
|
989 | raise error.HookLoadError( (py38 !) | |
990 |
mercurial.error.HookLoadError: preoutgoing.syntaxerror hook is invalid: import of "syntaxerror" failed |
|
990 | mercurial.error.HookLoadError: preoutgoing.syntaxerror hook is invalid: import of "syntaxerror" failed | |
991 | abort: preoutgoing.syntaxerror hook is invalid: import of "syntaxerror" failed |
|
991 | abort: preoutgoing.syntaxerror hook is invalid: import of "syntaxerror" failed | |
992 |
|
992 | |||
993 | $ echo '[hooks]' > ../a/.hg/hgrc |
|
993 | $ echo '[hooks]' > ../a/.hg/hgrc | |
@@ -1120,7 +1120,7 b' test python hook configured with python:' | |||||
1120 |
|
1120 | |||
1121 | $ hg id |
|
1121 | $ hg id | |
1122 | loading pre-identify.npmd hook failed: |
|
1122 | loading pre-identify.npmd hook failed: | |
1123 |
abort: No module named 'repo' |
|
1123 | abort: No module named 'repo' | |
1124 | [255] |
|
1124 | [255] | |
1125 |
|
1125 | |||
1126 | $ cd ../../b |
|
1126 | $ cd ../../b | |
@@ -1143,13 +1143,13 b' make sure --traceback works on hook impo' | |||||
1143 | ImportError: No module named 'somebogusmodule' (py3 no-py36 !) |
|
1143 | ImportError: No module named 'somebogusmodule' (py3 no-py36 !) | |
1144 | ModuleNotFoundError: No module named 'somebogusmodule' (py36 !) |
|
1144 | ModuleNotFoundError: No module named 'somebogusmodule' (py36 !) | |
1145 | exception from second failed import attempt: |
|
1145 | exception from second failed import attempt: | |
1146 |
Traceback (most recent call last): |
|
1146 | Traceback (most recent call last): | |
1147 | ImportError: No module named 'somebogusmodule' (py3 no-py36 !) |
|
1147 | ImportError: No module named 'somebogusmodule' (py3 no-py36 !) | |
1148 | ModuleNotFoundError: No module named 'somebogusmodule' (py36 !) |
|
1148 | ModuleNotFoundError: No module named 'somebogusmodule' (py36 !) | |
1149 |
Traceback (most recent call last): |
|
1149 | Traceback (most recent call last): | |
1150 | ImportError: No module named 'hgext_importfail' (py3 no-py36 !) |
|
1150 | ImportError: No module named 'hgext_importfail' (py3 no-py36 !) | |
1151 | ModuleNotFoundError: No module named 'hgext_importfail' (py36 !) |
|
1151 | ModuleNotFoundError: No module named 'hgext_importfail' (py36 !) | |
1152 |
Traceback (most recent call last): |
|
1152 | Traceback (most recent call last): | |
1153 | ImportError: No module named 'somebogusmodule' (py3 no-py36 !) |
|
1153 | ImportError: No module named 'somebogusmodule' (py3 no-py36 !) | |
1154 | ModuleNotFoundError: No module named 'somebogusmodule' (py36 !) |
|
1154 | ModuleNotFoundError: No module named 'somebogusmodule' (py36 !) | |
1155 | Traceback (most recent call last): |
|
1155 | Traceback (most recent call last): | |
@@ -1157,7 +1157,7 b' make sure --traceback works on hook impo' | |||||
1157 | ModuleNotFoundError: No module named 'hgext_importfail' (py36 !) |
|
1157 | ModuleNotFoundError: No module named 'hgext_importfail' (py36 !) | |
1158 | Traceback (most recent call last): |
|
1158 | Traceback (most recent call last): | |
1159 | raise error.HookLoadError( (py38 !) |
|
1159 | raise error.HookLoadError( (py38 !) | |
1160 |
mercurial.error.HookLoadError: precommit.importfail hook is invalid: import of "importfail" failed |
|
1160 | mercurial.error.HookLoadError: precommit.importfail hook is invalid: import of "importfail" failed | |
1161 | abort: precommit.importfail hook is invalid: import of "importfail" failed |
|
1161 | abort: precommit.importfail hook is invalid: import of "importfail" failed | |
1162 |
|
1162 | |||
1163 | Issue1827: Hooks Update & Commit not completely post operation |
|
1163 | Issue1827: Hooks Update & Commit not completely post operation |
@@ -522,7 +522,7 b' Server stops before it sends transfer en' | |||||
522 | $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob) |
|
522 | $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=getbundle': (glob) | |
523 | Traceback (most recent call last): |
|
523 | Traceback (most recent call last): | |
524 | Exception: connection closed after sending N bytes |
|
524 | Exception: connection closed after sending N bytes | |
525 |
write(293) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\nHTTP/1.1 500 Internal Server Error\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nTransfer-Encoding: chunked\r\n\r\n |
|
525 | write(293) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\nHTTP/1.1 500 Internal Server Error\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nTransfer-Encoding: chunked\r\n\r\n | |
526 |
|
526 | |||
527 | #endif |
|
527 | #endif | |
528 |
|
528 | |||
@@ -679,8 +679,8 b' Server sends partial bundle2 header magi' | |||||
679 |
|
679 | |||
680 | #else |
|
680 | #else | |
681 | $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -11 |
|
681 | $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -11 | |
682 |
readline(~) -> (2) \r\n |
|
682 | readline(~) -> (2) \r\n | |
683 |
write(167) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n |
|
683 | write(167) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n | |
684 | write(6) -> 1\\r\\n\x04\\r\\n (esc) |
|
684 | write(6) -> 1\\r\\n\x04\\r\\n (esc) | |
685 | write(9) -> 4\r\nnone\r\n |
|
685 | write(9) -> 4\r\nnone\r\n | |
686 | write(6 from 9) -> (0) 4\r\nHG2 |
|
686 | write(6 from 9) -> (0) 4\r\nHG2 | |
@@ -724,8 +724,8 b' Server sends incomplete bundle2 stream p' | |||||
724 |
|
724 | |||
725 | #else |
|
725 | #else | |
726 | $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -12 |
|
726 | $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -12 | |
727 |
readline(~) -> (2) \r\n |
|
727 | readline(~) -> (2) \r\n | |
728 |
write(167) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n |
|
728 | write(167) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n | |
729 | write(41) -> Content-Type: application/mercurial-0.2\r\n |
|
729 | write(41) -> Content-Type: application/mercurial-0.2\r\n | |
730 | write(6) -> 1\\r\\n\x04\\r\\n (esc) |
|
730 | write(6) -> 1\\r\\n\x04\\r\\n (esc) | |
731 | write(9) -> 4\r\nnone\r\n |
|
731 | write(9) -> 4\r\nnone\r\n | |
@@ -771,8 +771,8 b' Servers stops after bundle2 stream param' | |||||
771 |
|
771 | |||
772 | #else |
|
772 | #else | |
773 | $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -12 |
|
773 | $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -12 | |
774 |
readline(~) -> (2) \r\n |
|
774 | readline(~) -> (2) \r\n | |
775 |
write(167) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n |
|
775 | write(167) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n | |
776 | write(41) -> Content-Type: application/mercurial-0.2\r\n |
|
776 | write(41) -> Content-Type: application/mercurial-0.2\r\n | |
777 | write(6) -> 1\\r\\n\x04\\r\\n (esc) |
|
777 | write(6) -> 1\\r\\n\x04\\r\\n (esc) | |
778 | write(9) -> 4\r\nnone\r\n |
|
778 | write(9) -> 4\r\nnone\r\n | |
@@ -820,8 +820,8 b' Server stops sending after bundle2 part ' | |||||
820 | #else |
|
820 | #else | |
821 |
|
821 | |||
822 | $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -13 |
|
822 | $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -13 | |
823 |
readline(~) -> (2) \r\n |
|
823 | readline(~) -> (2) \r\n | |
824 |
write(167) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n |
|
824 | write(167) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n | |
825 | write(41) -> Content-Type: application/mercurial-0.2\r\n |
|
825 | write(41) -> Content-Type: application/mercurial-0.2\r\n | |
826 | write(6) -> 1\\r\\n\x04\\r\\n (esc) |
|
826 | write(6) -> 1\\r\\n\x04\\r\\n (esc) | |
827 | write(9) -> 4\r\nnone\r\n |
|
827 | write(9) -> 4\r\nnone\r\n | |
@@ -873,8 +873,8 b' Server stops sending after bundle2 part ' | |||||
873 |
|
873 | |||
874 | #else |
|
874 | #else | |
875 | $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -14 |
|
875 | $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -14 | |
876 |
readline(~) -> (2) \r\n |
|
876 | readline(~) -> (2) \r\n | |
877 |
write(167) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n |
|
877 | write(167) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n | |
878 | write(41) -> Content-Type: application/mercurial-0.2\r\n |
|
878 | write(41) -> Content-Type: application/mercurial-0.2\r\n | |
879 | write(6) -> 1\\r\\n\x04\\r\\n (esc) |
|
879 | write(6) -> 1\\r\\n\x04\\r\\n (esc) | |
880 | write(9) -> 4\r\nnone\r\n |
|
880 | write(9) -> 4\r\nnone\r\n | |
@@ -929,7 +929,7 b' Server stops after bundle2 part payload ' | |||||
929 |
|
929 | |||
930 | #else |
|
930 | #else | |
931 | $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -15 |
|
931 | $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -15 | |
932 |
write(167) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n |
|
932 | write(167) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n | |
933 | write(28) -> Transfer-Encoding: chunked\r\n |
|
933 | write(28) -> Transfer-Encoding: chunked\r\n | |
934 | write(6) -> 1\\r\\n\x04\\r\\n (esc) |
|
934 | write(6) -> 1\\r\\n\x04\\r\\n (esc) | |
935 | write(9) -> 4\r\nnone\r\n |
|
935 | write(9) -> 4\r\nnone\r\n | |
@@ -986,8 +986,8 b' Server stops sending in middle of bundle' | |||||
986 |
|
986 | |||
987 | #else |
|
987 | #else | |
988 | $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -16 |
|
988 | $ "$PYTHON" $TESTDIR/filtertraceback.py < error.log | tail -16 | |
989 |
readline(~) -> (2) \r\n |
|
989 | readline(~) -> (2) \r\n | |
990 |
write(167) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n |
|
990 | write(167) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.2\r\nTransfer-Encoding: chunked\r\n\r\n | |
991 | write(41) -> Content-Type: application/mercurial-0.2\r\n |
|
991 | write(41) -> Content-Type: application/mercurial-0.2\r\n | |
992 | write(6) -> 1\\r\\n\x04\\r\\n (esc) |
|
992 | write(6) -> 1\\r\\n\x04\\r\\n (esc) | |
993 | write(9) -> 4\r\nnone\r\n |
|
993 | write(9) -> 4\r\nnone\r\n |
@@ -3,7 +3,7 b' hg debuginstall' | |||||
3 | checking encoding (ascii)... |
|
3 | checking encoding (ascii)... | |
4 | checking Python executable (*) (glob) |
|
4 | checking Python executable (*) (glob) | |
5 | checking Python implementation (*) (glob) |
|
5 | checking Python implementation (*) (glob) | |
6 |
checking Python version (3.*) (glob) |
|
6 | checking Python version (3.*) (glob) | |
7 | checking Python lib (.*[Ll]ib.*)... (re) (no-pyoxidizer !) |
|
7 | checking Python lib (.*[Ll]ib.*)... (re) (no-pyoxidizer !) | |
8 | checking Python lib (.*pyoxidizer.*)... (re) (pyoxidizer !) |
|
8 | checking Python lib (.*pyoxidizer.*)... (re) (pyoxidizer !) | |
9 | checking Python security support (*) (glob) |
|
9 | checking Python security support (*) (glob) | |
@@ -68,7 +68,7 b' hg debuginstall with no username' | |||||
68 | checking encoding (ascii)... |
|
68 | checking encoding (ascii)... | |
69 | checking Python executable (*) (glob) |
|
69 | checking Python executable (*) (glob) | |
70 | checking Python implementation (*) (glob) |
|
70 | checking Python implementation (*) (glob) | |
71 |
checking Python version (3.*) (glob) |
|
71 | checking Python version (3.*) (glob) | |
72 | checking Python lib (.*[Ll]ib.*)... (re) (no-pyoxidizer !) |
|
72 | checking Python lib (.*[Ll]ib.*)... (re) (no-pyoxidizer !) | |
73 | checking Python lib (.*pyoxidizer.*)... (re) (pyoxidizer !) |
|
73 | checking Python lib (.*pyoxidizer.*)... (re) (pyoxidizer !) | |
74 | checking Python security support (*) (glob) |
|
74 | checking Python security support (*) (glob) | |
@@ -118,7 +118,7 b' path variables are expanded (~ is the sa' | |||||
118 | checking encoding (ascii)... |
|
118 | checking encoding (ascii)... | |
119 | checking Python executable (*) (glob) |
|
119 | checking Python executable (*) (glob) | |
120 | checking Python implementation (*) (glob) |
|
120 | checking Python implementation (*) (glob) | |
121 |
checking Python version (3.*) (glob) |
|
121 | checking Python version (3.*) (glob) | |
122 | checking Python lib (.*[Ll]ib.*)... (re) (no-pyoxidizer !) |
|
122 | checking Python lib (.*[Ll]ib.*)... (re) (no-pyoxidizer !) | |
123 | checking Python lib (.*pyoxidizer.*)... (re) (pyoxidizer !) |
|
123 | checking Python lib (.*pyoxidizer.*)... (re) (pyoxidizer !) | |
124 | checking Python security support (*) (glob) |
|
124 | checking Python security support (*) (glob) | |
@@ -148,7 +148,7 b' not found (this is intentionally using b' | |||||
148 | checking encoding (ascii)... |
|
148 | checking encoding (ascii)... | |
149 | checking Python executable (*) (glob) |
|
149 | checking Python executable (*) (glob) | |
150 | checking Python implementation (*) (glob) |
|
150 | checking Python implementation (*) (glob) | |
151 |
checking Python version (3.*) (glob) |
|
151 | checking Python version (3.*) (glob) | |
152 | checking Python lib (.*[Ll]ib.*)... (re) (no-pyoxidizer !) |
|
152 | checking Python lib (.*[Ll]ib.*)... (re) (no-pyoxidizer !) | |
153 | checking Python lib (.*pyoxidizer.*)... (re) (pyoxidizer !) |
|
153 | checking Python lib (.*pyoxidizer.*)... (re) (pyoxidizer !) | |
154 | checking Python security support (*) (glob) |
|
154 | checking Python security support (*) (glob) |
@@ -355,7 +355,7 b' Test a checksum failure during the proce' | |||||
355 | $LOCALIP - - [$ERRDATE$] HG error: super(badstore, self).download(oid, src, contentlength) |
|
355 | $LOCALIP - - [$ERRDATE$] HG error: super(badstore, self).download(oid, src, contentlength) | |
356 | $LOCALIP - - [$ERRDATE$] HG error: raise LfsCorruptionError( (glob) (py38 !) |
|
356 | $LOCALIP - - [$ERRDATE$] HG error: raise LfsCorruptionError( (glob) (py38 !) | |
357 | $LOCALIP - - [$ERRDATE$] HG error: _(b'corrupt remote lfs object: %s') % oid (glob) (no-py38 !) |
|
357 | $LOCALIP - - [$ERRDATE$] HG error: _(b'corrupt remote lfs object: %s') % oid (glob) (no-py38 !) | |
358 |
$LOCALIP - - [$ERRDATE$] HG error: hgext.lfs.blobstore.LfsCorruptionError: corrupt remote lfs object: b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c ( |
|
358 | $LOCALIP - - [$ERRDATE$] HG error: hgext.lfs.blobstore.LfsCorruptionError: corrupt remote lfs object: b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c (glob) | |
359 | $LOCALIP - - [$ERRDATE$] HG error: (glob) |
|
359 | $LOCALIP - - [$ERRDATE$] HG error: (glob) | |
360 | $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/.hg/lfs/objects/276f73cfd75f9fb519810df5f5d96d6594ca2521abd86cbcd92122f7d51a1f3d': (glob) |
|
360 | $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/.hg/lfs/objects/276f73cfd75f9fb519810df5f5d96d6594ca2521abd86cbcd92122f7d51a1f3d': (glob) | |
361 | Traceback (most recent call last): |
|
361 | Traceback (most recent call last): | |
@@ -379,7 +379,7 b' Test a checksum failure during the proce' | |||||
379 | $LOCALIP - - [$ERRDATE$] HG error: blobstore._verify(oid, b'dummy content') (glob) |
|
379 | $LOCALIP - - [$ERRDATE$] HG error: blobstore._verify(oid, b'dummy content') (glob) | |
380 | $LOCALIP - - [$ERRDATE$] HG error: raise LfsCorruptionError( (glob) (py38 !) |
|
380 | $LOCALIP - - [$ERRDATE$] HG error: raise LfsCorruptionError( (glob) (py38 !) | |
381 | $LOCALIP - - [$ERRDATE$] HG error: hint=_(b'run hg verify'), (glob) (no-py38 !) |
|
381 | $LOCALIP - - [$ERRDATE$] HG error: hint=_(b'run hg verify'), (glob) (no-py38 !) | |
382 |
$LOCALIP - - [$ERRDATE$] HG error: hgext.lfs.blobstore.LfsCorruptionError: detected corrupt lfs object: 276f73cfd75f9fb519810df5f5d96d6594ca2521abd86cbcd92122f7d51a1f3d ( |
|
382 | $LOCALIP - - [$ERRDATE$] HG error: hgext.lfs.blobstore.LfsCorruptionError: detected corrupt lfs object: 276f73cfd75f9fb519810df5f5d96d6594ca2521abd86cbcd92122f7d51a1f3d (glob) | |
383 | $LOCALIP - - [$ERRDATE$] HG error: (glob) |
|
383 | $LOCALIP - - [$ERRDATE$] HG error: (glob) | |
384 |
|
384 | |||
385 | Basic Authorization headers are returned by the Batch API, and sent back with |
|
385 | Basic Authorization headers are returned by the Batch API, and sent back with |
@@ -467,7 +467,7 b' non-ascii content and truncation of mult' | |||||
467 | Content-Transfer-Encoding: 8bit |
|
467 | Content-Transfer-Encoding: 8bit | |
468 | X-Test: foo |
|
468 | X-Test: foo | |
469 | Date: * (glob) |
|
469 | Date: * (glob) | |
470 |
Subject: =?utf-8?b?w6AuLi4=?= |
|
470 | Subject: =?utf-8?b?w6AuLi4=?= | |
471 | From: test@test.com |
|
471 | From: test@test.com | |
472 | X-Hg-Notification: changeset 0f25f9c22b4c |
|
472 | X-Hg-Notification: changeset 0f25f9c22b4c | |
473 | Message-Id: <*> (glob) |
|
473 | Message-Id: <*> (glob) |
@@ -513,7 +513,7 b' mime encoded mbox (base64):' | |||||
513 | X-Mercurial-Series-Id: <f81ef97829467e868fc4.240@test-hostname> |
|
513 | X-Mercurial-Series-Id: <f81ef97829467e868fc4.240@test-hostname> | |
514 | User-Agent: Mercurial-patchbomb/* (glob) |
|
514 | User-Agent: Mercurial-patchbomb/* (glob) | |
515 | Date: Thu, 01 Jan 1970 00:04:00 +0000 |
|
515 | Date: Thu, 01 Jan 1970 00:04:00 +0000 | |
516 |
From: =?iso-8859-1?q?Q?= <quux> |
|
516 | From: =?iso-8859-1?q?Q?= <quux> | |
517 | To: foo |
|
517 | To: foo | |
518 | Cc: bar |
|
518 | Cc: bar | |
519 |
|
519 | |||
@@ -2398,9 +2398,9 b' test multi-address parsing:' | |||||
2398 | User-Agent: Mercurial-patchbomb/* (glob) |
|
2398 | User-Agent: Mercurial-patchbomb/* (glob) | |
2399 | Date: Tue, 01 Jan 1980 00:01:00 +0000 |
|
2399 | Date: Tue, 01 Jan 1980 00:01:00 +0000 | |
2400 | From: quux |
|
2400 | From: quux | |
2401 |
To: =?iso-8859-1?q?spam?= <spam>, eggs, toast |
|
2401 | To: =?iso-8859-1?q?spam?= <spam>, eggs, toast | |
2402 |
Cc: foo, bar@example.com, =?iso-8859-1?q?A=2C_B_=3C=3E?= <a@example.com> |
|
2402 | Cc: foo, bar@example.com, =?iso-8859-1?q?A=2C_B_=3C=3E?= <a@example.com> | |
2403 |
Bcc: =?iso-8859-1?q?Quux=2C_A=2E?= <quux> |
|
2403 | Bcc: =?iso-8859-1?q?Quux=2C_A=2E?= <quux> | |
2404 |
|
2404 | |||
2405 | # HG changeset patch |
|
2405 | # HG changeset patch | |
2406 | # User test |
|
2406 | # User test | |
@@ -2717,7 +2717,7 b' Test without revisions specified' | |||||
2717 | MIME-Version: 1.0 |
|
2717 | MIME-Version: 1.0 | |
2718 | Content-Type: text/plain; charset="iso-8859-1" |
|
2718 | Content-Type: text/plain; charset="iso-8859-1" | |
2719 | Content-Transfer-Encoding: quoted-printable |
|
2719 | Content-Transfer-Encoding: quoted-printable | |
2720 |
Subject: =?utf-8?b?W1BBVENIIDIgb2YgNl0gw6dh?= |
|
2720 | Subject: =?utf-8?b?W1BBVENIIDIgb2YgNl0gw6dh?= | |
2721 | X-Mercurial-Node: f81ef97829467e868fc405fccbcfa66217e4d3e6 |
|
2721 | X-Mercurial-Node: f81ef97829467e868fc405fccbcfa66217e4d3e6 | |
2722 | X-Mercurial-Series-Index: 2 |
|
2722 | X-Mercurial-Series-Index: 2 | |
2723 | X-Mercurial-Series-Total: 6 |
|
2723 | X-Mercurial-Series-Total: 6 |
@@ -2086,4 +2086,4 b' Test that a proper "python" has been set' | |||||
2086 | $ ./test-py3.py |
|
2086 | $ ./test-py3.py | |
2087 | 3.* (glob) |
|
2087 | 3.* (glob) | |
2088 | $ ./test-py.py |
|
2088 | $ ./test-py.py | |
2089 |
3.* (glob) |
|
2089 | 3.* (glob) |
@@ -277,7 +277,7 b' push should succeed even though it has a' | |||||
277 | remote: adding changesets |
|
277 | remote: adding changesets | |
278 | remote: adding manifests |
|
278 | remote: adding manifests | |
279 | remote: adding file changes |
|
279 | remote: adding file changes | |
280 |
remote: added 1 changesets with 1 changes to 1 files |
|
280 | remote: added 1 changesets with 1 changes to 1 files | |
281 | remote: KABOOM |
|
281 | remote: KABOOM | |
282 |
$ |
|
282 | $ hg -R ../remote heads | |
283 | changeset: 5:1383141674ec |
|
283 | changeset: 5:1383141674ec | |
@@ -445,7 +445,7 b' stderr from remote commands should be pr' | |||||
445 | remote: adding changesets |
|
445 | remote: adding changesets | |
446 | remote: adding manifests |
|
446 | remote: adding manifests | |
447 | remote: adding file changes |
|
447 | remote: adding file changes | |
448 |
remote: added 1 changesets with 1 changes to 1 files |
|
448 | remote: added 1 changesets with 1 changes to 1 files | |
449 | remote: KABOOM |
|
449 | remote: KABOOM | |
450 | local stdout |
|
450 | local stdout | |
451 |
|
451 |
@@ -274,7 +274,7 b' push should succeed even though it has a' | |||||
274 | remote: adding changesets |
|
274 | remote: adding changesets | |
275 | remote: adding manifests |
|
275 | remote: adding manifests | |
276 | remote: adding file changes |
|
276 | remote: adding file changes | |
277 |
remote: added 1 changesets with 1 changes to 1 files |
|
277 | remote: added 1 changesets with 1 changes to 1 files | |
278 | remote: KABOOM |
|
278 | remote: KABOOM | |
279 | remote: KABOOM IN PROCESS |
|
279 | remote: KABOOM IN PROCESS | |
280 | $ hg -R ../remote heads |
|
280 | $ hg -R ../remote heads | |
@@ -306,7 +306,7 b' try again with remote chg, which should ' | |||||
306 | remote: adding changesets |
|
306 | remote: adding changesets | |
307 | remote: adding manifests |
|
307 | remote: adding manifests | |
308 | remote: adding file changes |
|
308 | remote: adding file changes | |
309 |
remote: added 1 changesets with 1 changes to 1 files |
|
309 | remote: added 1 changesets with 1 changes to 1 files | |
310 | remote: KABOOM |
|
310 | remote: KABOOM | |
311 | remote: KABOOM IN PROCESS |
|
311 | remote: KABOOM IN PROCESS | |
312 |
|
312 | |||
@@ -497,7 +497,7 b' stderr from remote commands should be pr' | |||||
497 | remote: adding changesets |
|
497 | remote: adding changesets | |
498 | remote: adding manifests |
|
498 | remote: adding manifests | |
499 | remote: adding file changes |
|
499 | remote: adding file changes | |
500 |
remote: added 1 changesets with 1 changes to 1 files |
|
500 | remote: added 1 changesets with 1 changes to 1 files | |
501 | remote: KABOOM |
|
501 | remote: KABOOM | |
502 | remote: KABOOM IN PROCESS |
|
502 | remote: KABOOM IN PROCESS | |
503 | local stdout |
|
503 | local stdout |
@@ -967,7 +967,7 b' We can restrict optimization to some rev' | |||||
967 | Check that the repo still works fine |
|
967 | Check that the repo still works fine | |
968 |
|
968 | |||
969 | $ hg log -G --stat |
|
969 | $ hg log -G --stat | |
970 |
@ changeset: 2:fca376863211 |
|
970 | @ changeset: 2:fca376863211 | |
971 | | tag: tip |
|
971 | | tag: tip | |
972 | | parent: 0:ba592bf28da2 |
|
972 | | parent: 0:ba592bf28da2 | |
973 | | user: test |
|
973 | | user: test |
@@ -86,9 +86,9 b' Known exception should be caught, but pr' | |||||
86 | $ hg --config "extensions.t=$abspath" --config 'worker.numcpus=8' \ |
|
86 | $ hg --config "extensions.t=$abspath" --config 'worker.numcpus=8' \ | |
87 | > test 100000.0 abort --traceback 2>&1 | egrep '(WorkerError|Abort)' |
|
87 | > test 100000.0 abort --traceback 2>&1 | egrep '(WorkerError|Abort)' | |
88 | raise error.Abort(b'known exception') |
|
88 | raise error.Abort(b'known exception') | |
89 |
mercurial.error.Abort: known exception |
|
89 | mercurial.error.Abort: known exception | |
90 | raise error.WorkerError(status) |
|
90 | raise error.WorkerError(status) | |
91 |
mercurial.error.WorkerError: 255 |
|
91 | mercurial.error.WorkerError: 255 | |
92 |
|
92 | |||
93 | Traceback must be printed for unknown exceptions |
|
93 | Traceback must be printed for unknown exceptions | |
94 |
|
94 |
General Comments 0
You need to be logged in to leave comments.
Login now