Show More
@@ -2964,9 +2964,9 def debugwireproto(ui, repo, path=None, | |||||
2964 | del args['PUSHFILE'] |
|
2964 | del args['PUSHFILE'] | |
2965 | res, output = peer._callpush(command, fh, |
|
2965 | res, output = peer._callpush(command, fh, | |
2966 | **pycompat.strkwargs(args)) |
|
2966 | **pycompat.strkwargs(args)) | |
2967 |
ui.status(_('result: %s\n') % stringutil.escape |
|
2967 | ui.status(_('result: %s\n') % stringutil.escapestr(res)) | |
2968 | ui.status(_('remote output: %s\n') % |
|
2968 | ui.status(_('remote output: %s\n') % | |
2969 |
stringutil.escape |
|
2969 | stringutil.escapestr(output)) | |
2970 | else: |
|
2970 | else: | |
2971 | res = peer._call(command, **pycompat.strkwargs(args)) |
|
2971 | res = peer._call(command, **pycompat.strkwargs(args)) | |
2972 | ui.status(_('response: %s\n') % stringutil.pprint(res)) |
|
2972 | ui.status(_('response: %s\n') % stringutil.pprint(res)) | |
@@ -2984,7 +2984,7 def debugwireproto(ui, repo, path=None, | |||||
2984 | len(batchedcommands)) |
|
2984 | len(batchedcommands)) | |
2985 | for i, chunk in enumerate(peer._submitbatch(batchedcommands)): |
|
2985 | for i, chunk in enumerate(peer._submitbatch(batchedcommands)): | |
2986 | ui.status(_('response #%d: %s\n') % |
|
2986 | ui.status(_('response #%d: %s\n') % | |
2987 |
(i, stringutil.escape |
|
2987 | (i, stringutil.escapestr(chunk))) | |
2988 |
|
2988 | |||
2989 | batchedcommands = None |
|
2989 | batchedcommands = None | |
2990 |
|
2990 |
@@ -748,10 +748,10 class baseproxyobserver(object): | |||||
748 | # Simple case writes all data on a single line. |
|
748 | # Simple case writes all data on a single line. | |
749 | if b'\n' not in data: |
|
749 | if b'\n' not in data: | |
750 | if self.logdataapis: |
|
750 | if self.logdataapis: | |
751 |
self.fh.write(': %s\n' % stringutil.escape |
|
751 | self.fh.write(': %s\n' % stringutil.escapestr(data)) | |
752 | else: |
|
752 | else: | |
753 | self.fh.write('%s> %s\n' |
|
753 | self.fh.write('%s> %s\n' | |
754 |
% (self.name, stringutil.escape |
|
754 | % (self.name, stringutil.escapestr(data))) | |
755 | self.fh.flush() |
|
755 | self.fh.flush() | |
756 | return |
|
756 | return | |
757 |
|
757 | |||
@@ -762,7 +762,7 class baseproxyobserver(object): | |||||
762 | lines = data.splitlines(True) |
|
762 | lines = data.splitlines(True) | |
763 | for line in lines: |
|
763 | for line in lines: | |
764 | self.fh.write('%s> %s\n' |
|
764 | self.fh.write('%s> %s\n' | |
765 |
% (self.name, stringutil.escape |
|
765 | % (self.name, stringutil.escapestr(line))) | |
766 | self.fh.flush() |
|
766 | self.fh.flush() | |
767 |
|
767 | |||
768 | class fileobjectobserver(baseproxyobserver): |
|
768 | class fileobjectobserver(baseproxyobserver): | |
@@ -3845,7 +3845,6 gui = _deprecatedfunc(procutil.gui, '4.6 | |||||
3845 | hgcmd = _deprecatedfunc(procutil.hgcmd, '4.6') |
|
3845 | hgcmd = _deprecatedfunc(procutil.hgcmd, '4.6') | |
3846 | rundetached = _deprecatedfunc(procutil.rundetached, '4.6') |
|
3846 | rundetached = _deprecatedfunc(procutil.rundetached, '4.6') | |
3847 |
|
3847 | |||
3848 | escapedata = _deprecatedfunc(stringutil.escapedata, '4.6') |
|
|||
3849 | binary = _deprecatedfunc(stringutil.binary, '4.6') |
|
3848 | binary = _deprecatedfunc(stringutil.binary, '4.6') | |
3850 | stringmatcher = _deprecatedfunc(stringutil.stringmatcher, '4.6') |
|
3849 | stringmatcher = _deprecatedfunc(stringutil.stringmatcher, '4.6') | |
3851 | shortuser = _deprecatedfunc(stringutil.shortuser, '4.6') |
|
3850 | shortuser = _deprecatedfunc(stringutil.shortuser, '4.6') |
@@ -23,24 +23,10 from .. import ( | |||||
23 | pycompat, |
|
23 | pycompat, | |
24 | ) |
|
24 | ) | |
25 |
|
25 | |||
26 | _DATA_ESCAPE_MAP = {pycompat.bytechr(i): br'\x%02x' % i for i in range(256)} |
|
|||
27 | _DATA_ESCAPE_MAP.update({ |
|
|||
28 | b'\\': b'\\\\', |
|
|||
29 | b'\r': br'\r', |
|
|||
30 | b'\n': br'\n', |
|
|||
31 | }) |
|
|||
32 | _DATA_ESCAPE_RE = remod.compile(br'[\x00-\x08\x0a-\x1f\\\x7f-\xff]') |
|
|||
33 |
|
||||
34 | def escapedata(s): |
|
|||
35 | if isinstance(s, bytearray): |
|
|||
36 | s = bytes(s) |
|
|||
37 |
|
||||
38 | return _DATA_ESCAPE_RE.sub(lambda m: _DATA_ESCAPE_MAP[m.group(0)], s) |
|
|||
39 |
|
||||
40 | def pprint(o): |
|
26 | def pprint(o): | |
41 | """Pretty print an object.""" |
|
27 | """Pretty print an object.""" | |
42 | if isinstance(o, (bytes, bytearray)): |
|
28 | if isinstance(o, (bytes, bytearray)): | |
43 |
return "b'%s'" % escape |
|
29 | return "b'%s'" % escapestr(o) | |
44 | elif isinstance(o, list): |
|
30 | elif isinstance(o, list): | |
45 | return '[%s]' % (b', '.join(pprint(a) for a in o)) |
|
31 | return '[%s]' % (b', '.join(pprint(a) for a in o)) | |
46 | elif isinstance(o, dict): |
|
32 | elif isinstance(o, dict): |
@@ -393,7 +393,7 Command frames can be reflected via debu | |||||
393 | s> content-length: 47\r\n |
|
393 | s> content-length: 47\r\n | |
394 | s> host: $LOCALIP:$HGPORT\r\n (glob) |
|
394 | s> host: $LOCALIP:$HGPORT\r\n (glob) | |
395 | s> \r\n |
|
395 | s> \r\n | |
396 | s> '\x00\x00\x01\x00\x01\x01\x11\xa2Dargs\xa2CfooDval1Dbar1CvalDnameHcommand1 |
|
396 | s> \'\x00\x00\x01\x00\x01\x01\x11\xa2Dargs\xa2CfooDval1Dbar1CvalDnameHcommand1 | |
397 | s> makefile('rb', None) |
|
397 | s> makefile('rb', None) | |
398 | s> HTTP/1.1 200 OK\r\n |
|
398 | s> HTTP/1.1 200 OK\r\n | |
399 | s> Server: testing stub value\r\n |
|
399 | s> Server: testing stub value\r\n | |
@@ -504,9 +504,9 Interleaved requests to "multirequest" a | |||||
504 | s> Transfer-Encoding: chunked\r\n |
|
504 | s> Transfer-Encoding: chunked\r\n | |
505 | s> \r\n |
|
505 | s> \r\n | |
506 | s> 26\r\n |
|
506 | s> 26\r\n | |
507 |
s> \x1e\x00\x00\x03\x00\x02\x01Bbookmarks |
|
507 | s> \x1e\x00\x00\x03\x00\x02\x01Bbookmarks\t\n | |
508 |
s> namespaces |
|
508 | s> namespaces\t\n | |
509 |
s> phases |
|
509 | s> phases\t | |
510 | s> \r\n |
|
510 | s> \r\n | |
511 | s> 8\r\n |
|
511 | s> 8\r\n | |
512 | s> \x00\x00\x00\x01\x00\x02\x00B |
|
512 | s> \x00\x00\x00\x01\x00\x02\x00B |
@@ -206,10 +206,10 Test listkeys for listing namespaces | |||||
206 | s> Content-Type: application/mercurial-0.1\r\n |
|
206 | s> Content-Type: application/mercurial-0.1\r\n | |
207 | s> Content-Length: 30\r\n |
|
207 | s> Content-Length: 30\r\n | |
208 | s> \r\n |
|
208 | s> \r\n | |
209 |
s> bookmarks |
|
209 | s> bookmarks\t\n | |
210 |
s> namespaces |
|
210 | s> namespaces\t\n | |
211 |
s> phases |
|
211 | s> phases\t | |
212 |
response: b'bookmarks |
|
212 | response: b'bookmarks\t\nnamespaces\t\nphases\t' | |
213 |
|
213 | |||
214 | Same thing, but with "httprequest" command |
|
214 | Same thing, but with "httprequest" command | |
215 |
|
215 | |||
@@ -232,8 +232,8 Same thing, but with "httprequest" comma | |||||
232 | s> Content-Type: application/mercurial-0.1\r\n |
|
232 | s> Content-Type: application/mercurial-0.1\r\n | |
233 | s> Content-Length: 30\r\n |
|
233 | s> Content-Length: 30\r\n | |
234 | s> \r\n |
|
234 | s> \r\n | |
235 |
s> bookmarks |
|
235 | s> bookmarks\t\n | |
236 |
s> namespaces |
|
236 | s> namespaces\t\n | |
237 |
s> phases |
|
237 | s> phases\t | |
238 |
|
238 | |||
239 | $ killdaemons.py |
|
239 | $ killdaemons.py |
@@ -1342,10 +1342,10 Test listkeys for listing namespaces | |||||
1342 | o> bufferedreadline() -> 3: |
|
1342 | o> bufferedreadline() -> 3: | |
1343 | o> 30\n |
|
1343 | o> 30\n | |
1344 | o> bufferedread(30) -> 30: |
|
1344 | o> bufferedread(30) -> 30: | |
1345 |
o> bookmarks |
|
1345 | o> bookmarks\t\n | |
1346 |
o> namespaces |
|
1346 | o> namespaces\t\n | |
1347 |
o> phases |
|
1347 | o> phases\t | |
1348 |
response: b'bookmarks |
|
1348 | response: b'bookmarks\t\nnamespaces\t\nphases\t' | |
1349 |
|
1349 | |||
1350 | testing ssh2 |
|
1350 | testing ssh2 | |
1351 | creating ssh peer from handshake results |
|
1351 | creating ssh peer from handshake results | |
@@ -1373,10 +1373,10 Test listkeys for listing namespaces | |||||
1373 | o> bufferedreadline() -> 3: |
|
1373 | o> bufferedreadline() -> 3: | |
1374 | o> 30\n |
|
1374 | o> 30\n | |
1375 | o> bufferedread(30) -> 30: |
|
1375 | o> bufferedread(30) -> 30: | |
1376 |
o> bookmarks |
|
1376 | o> bookmarks\t\n | |
1377 |
o> namespaces |
|
1377 | o> namespaces\t\n | |
1378 |
o> phases |
|
1378 | o> phases\t | |
1379 |
response: b'bookmarks |
|
1379 | response: b'bookmarks\t\nnamespaces\t\nphases\t' | |
1380 |
|
1380 | |||
1381 | $ cd .. |
|
1381 | $ cd .. | |
1382 |
|
1382 | |||
@@ -1482,8 +1482,8 With a single bookmark set | |||||
1482 | i> flush() -> None |
|
1482 | i> flush() -> None | |
1483 | o> bufferedreadline() -> 3: |
|
1483 | o> bufferedreadline() -> 3: | |
1484 | o> 46\n |
|
1484 | o> 46\n | |
1485 |
o> bufferedread(46) -> 46: bookA |
|
1485 | o> bufferedread(46) -> 46: bookA\t68986213bd4485ea51533535e3fc9e78007a711f | |
1486 |
response: b'bookA |
|
1486 | response: b'bookA\t68986213bd4485ea51533535e3fc9e78007a711f' | |
1487 |
|
1487 | |||
1488 | testing ssh2 |
|
1488 | testing ssh2 | |
1489 | creating ssh peer from handshake results |
|
1489 | creating ssh peer from handshake results | |
@@ -1510,8 +1510,8 With a single bookmark set | |||||
1510 | i> flush() -> None |
|
1510 | i> flush() -> None | |
1511 | o> bufferedreadline() -> 3: |
|
1511 | o> bufferedreadline() -> 3: | |
1512 | o> 46\n |
|
1512 | o> 46\n | |
1513 |
o> bufferedread(46) -> 46: bookA |
|
1513 | o> bufferedread(46) -> 46: bookA\t68986213bd4485ea51533535e3fc9e78007a711f | |
1514 |
response: b'bookA |
|
1514 | response: b'bookA\t68986213bd4485ea51533535e3fc9e78007a711f' | |
1515 |
|
1515 | |||
1516 | With multiple bookmarks set |
|
1516 | With multiple bookmarks set | |
1517 |
|
1517 | |||
@@ -1546,9 +1546,9 With multiple bookmarks set | |||||
1546 | o> bufferedreadline() -> 3: |
|
1546 | o> bufferedreadline() -> 3: | |
1547 | o> 93\n |
|
1547 | o> 93\n | |
1548 | o> bufferedread(93) -> 93: |
|
1548 | o> bufferedread(93) -> 93: | |
1549 |
o> bookA |
|
1549 | o> bookA\t68986213bd4485ea51533535e3fc9e78007a711f\n | |
1550 |
o> bookB |
|
1550 | o> bookB\t1880f3755e2e52e3199e0ee5638128b08642f34d | |
1551 |
response: b'bookA |
|
1551 | response: b'bookA\t68986213bd4485ea51533535e3fc9e78007a711f\nbookB\t1880f3755e2e52e3199e0ee5638128b08642f34d' | |
1552 |
|
1552 | |||
1553 | testing ssh2 |
|
1553 | testing ssh2 | |
1554 | creating ssh peer from handshake results |
|
1554 | creating ssh peer from handshake results | |
@@ -1576,9 +1576,9 With multiple bookmarks set | |||||
1576 | o> bufferedreadline() -> 3: |
|
1576 | o> bufferedreadline() -> 3: | |
1577 | o> 93\n |
|
1577 | o> 93\n | |
1578 | o> bufferedread(93) -> 93: |
|
1578 | o> bufferedread(93) -> 93: | |
1579 |
o> bookA |
|
1579 | o> bookA\t68986213bd4485ea51533535e3fc9e78007a711f\n | |
1580 |
o> bookB |
|
1580 | o> bookB\t1880f3755e2e52e3199e0ee5638128b08642f34d | |
1581 |
response: b'bookA |
|
1581 | response: b'bookA\t68986213bd4485ea51533535e3fc9e78007a711f\nbookB\t1880f3755e2e52e3199e0ee5638128b08642f34d' | |
1582 |
|
1582 | |||
1583 | Test pushkey for bookmarks |
|
1583 | Test pushkey for bookmarks | |
1584 |
|
1584 | |||
@@ -1706,8 +1706,8 Phases on empty repo | |||||
1706 | i> flush() -> None |
|
1706 | i> flush() -> None | |
1707 | o> bufferedreadline() -> 3: |
|
1707 | o> bufferedreadline() -> 3: | |
1708 | o> 15\n |
|
1708 | o> 15\n | |
1709 |
o> bufferedread(15) -> 15: publishing |
|
1709 | o> bufferedread(15) -> 15: publishing\tTrue | |
1710 |
response: b'publishing |
|
1710 | response: b'publishing\tTrue' | |
1711 |
|
1711 | |||
1712 | testing ssh2 |
|
1712 | testing ssh2 | |
1713 | creating ssh peer from handshake results |
|
1713 | creating ssh peer from handshake results | |
@@ -1734,8 +1734,8 Phases on empty repo | |||||
1734 | i> flush() -> None |
|
1734 | i> flush() -> None | |
1735 | o> bufferedreadline() -> 3: |
|
1735 | o> bufferedreadline() -> 3: | |
1736 | o> 15\n |
|
1736 | o> 15\n | |
1737 |
o> bufferedread(15) -> 15: publishing |
|
1737 | o> bufferedread(15) -> 15: publishing\tTrue | |
1738 |
response: b'publishing |
|
1738 | response: b'publishing\tTrue' | |
1739 |
|
1739 | |||
1740 | Create some commits |
|
1740 | Create some commits | |
1741 |
|
1741 | |||
@@ -1786,10 +1786,10 Two draft heads | |||||
1786 | o> bufferedreadline() -> 4: |
|
1786 | o> bufferedreadline() -> 4: | |
1787 | o> 101\n |
|
1787 | o> 101\n | |
1788 | o> bufferedread(101) -> 101: |
|
1788 | o> bufferedread(101) -> 101: | |
1789 |
o> 20b8a89289d80036e6c4e87c2083e3bea1586637 |
|
1789 | o> 20b8a89289d80036e6c4e87c2083e3bea1586637\t1\n | |
1790 |
o> c4750011d906c18ea2f0527419cbc1a544435150 |
|
1790 | o> c4750011d906c18ea2f0527419cbc1a544435150\t1\n | |
1791 |
o> publishing |
|
1791 | o> publishing\tTrue | |
1792 |
response: b'20b8a89289d80036e6c4e87c2083e3bea1586637 |
|
1792 | response: b'20b8a89289d80036e6c4e87c2083e3bea1586637\t1\nc4750011d906c18ea2f0527419cbc1a544435150\t1\npublishing\tTrue' | |
1793 |
|
1793 | |||
1794 | testing ssh2 |
|
1794 | testing ssh2 | |
1795 | creating ssh peer from handshake results |
|
1795 | creating ssh peer from handshake results | |
@@ -1817,10 +1817,10 Two draft heads | |||||
1817 | o> bufferedreadline() -> 4: |
|
1817 | o> bufferedreadline() -> 4: | |
1818 | o> 101\n |
|
1818 | o> 101\n | |
1819 | o> bufferedread(101) -> 101: |
|
1819 | o> bufferedread(101) -> 101: | |
1820 |
o> 20b8a89289d80036e6c4e87c2083e3bea1586637 |
|
1820 | o> 20b8a89289d80036e6c4e87c2083e3bea1586637\t1\n | |
1821 |
o> c4750011d906c18ea2f0527419cbc1a544435150 |
|
1821 | o> c4750011d906c18ea2f0527419cbc1a544435150\t1\n | |
1822 |
o> publishing |
|
1822 | o> publishing\tTrue | |
1823 |
response: b'20b8a89289d80036e6c4e87c2083e3bea1586637 |
|
1823 | response: b'20b8a89289d80036e6c4e87c2083e3bea1586637\t1\nc4750011d906c18ea2f0527419cbc1a544435150\t1\npublishing\tTrue' | |
1824 |
|
1824 | |||
1825 | Single draft head |
|
1825 | Single draft head | |
1826 |
|
1826 | |||
@@ -1855,9 +1855,9 Single draft head | |||||
1855 | o> bufferedreadline() -> 3: |
|
1855 | o> bufferedreadline() -> 3: | |
1856 | o> 58\n |
|
1856 | o> 58\n | |
1857 | o> bufferedread(58) -> 58: |
|
1857 | o> bufferedread(58) -> 58: | |
1858 |
o> c4750011d906c18ea2f0527419cbc1a544435150 |
|
1858 | o> c4750011d906c18ea2f0527419cbc1a544435150\t1\n | |
1859 |
o> publishing |
|
1859 | o> publishing\tTrue | |
1860 |
response: b'c4750011d906c18ea2f0527419cbc1a544435150 |
|
1860 | response: b'c4750011d906c18ea2f0527419cbc1a544435150\t1\npublishing\tTrue' | |
1861 |
|
1861 | |||
1862 | testing ssh2 |
|
1862 | testing ssh2 | |
1863 | creating ssh peer from handshake results |
|
1863 | creating ssh peer from handshake results | |
@@ -1885,9 +1885,9 Single draft head | |||||
1885 | o> bufferedreadline() -> 3: |
|
1885 | o> bufferedreadline() -> 3: | |
1886 | o> 58\n |
|
1886 | o> 58\n | |
1887 | o> bufferedread(58) -> 58: |
|
1887 | o> bufferedread(58) -> 58: | |
1888 |
o> c4750011d906c18ea2f0527419cbc1a544435150 |
|
1888 | o> c4750011d906c18ea2f0527419cbc1a544435150\t1\n | |
1889 |
o> publishing |
|
1889 | o> publishing\tTrue | |
1890 |
response: b'c4750011d906c18ea2f0527419cbc1a544435150 |
|
1890 | response: b'c4750011d906c18ea2f0527419cbc1a544435150\t1\npublishing\tTrue' | |
1891 |
|
1891 | |||
1892 | All public heads |
|
1892 | All public heads | |
1893 |
|
1893 | |||
@@ -1921,8 +1921,8 All public heads | |||||
1921 | i> flush() -> None |
|
1921 | i> flush() -> None | |
1922 | o> bufferedreadline() -> 3: |
|
1922 | o> bufferedreadline() -> 3: | |
1923 | o> 15\n |
|
1923 | o> 15\n | |
1924 |
o> bufferedread(15) -> 15: publishing |
|
1924 | o> bufferedread(15) -> 15: publishing\tTrue | |
1925 |
response: b'publishing |
|
1925 | response: b'publishing\tTrue' | |
1926 |
|
1926 | |||
1927 | testing ssh2 |
|
1927 | testing ssh2 | |
1928 | creating ssh peer from handshake results |
|
1928 | creating ssh peer from handshake results | |
@@ -1949,8 +1949,8 All public heads | |||||
1949 | i> flush() -> None |
|
1949 | i> flush() -> None | |
1950 | o> bufferedreadline() -> 3: |
|
1950 | o> bufferedreadline() -> 3: | |
1951 | o> 15\n |
|
1951 | o> 15\n | |
1952 |
o> bufferedread(15) -> 15: publishing |
|
1952 | o> bufferedread(15) -> 15: publishing\tTrue | |
1953 |
response: b'publishing |
|
1953 | response: b'publishing\tTrue' | |
1954 |
|
1954 | |||
1955 | Setting public phase via pushkey |
|
1955 | Setting public phase via pushkey | |
1956 |
|
1956 | |||
@@ -2099,13 +2099,13 Test batching of requests | |||||
2099 | o> 278\n |
|
2099 | o> 278\n | |
2100 | o> bufferedread(278) -> 278: |
|
2100 | o> bufferedread(278) -> 278: | |
2101 | o> bfebe6bd38eebc6f8202e419c1171268987ea6a6 4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\n |
|
2101 | o> bfebe6bd38eebc6f8202e419c1171268987ea6a6 4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\n | |
2102 |
o> ;bookA |
|
2102 | o> ;bookA\t4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\n | |
2103 |
o> bookB |
|
2103 | o> bookB\tbfebe6bd38eebc6f8202e419c1171268987ea6a6;4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\t1\n | |
2104 |
o> bfebe6bd38eebc6f8202e419c1171268987ea6a6 |
|
2104 | o> bfebe6bd38eebc6f8202e419c1171268987ea6a6\t1\n | |
2105 |
o> publishing |
|
2105 | o> publishing\tTrue | |
2106 | response #0: bfebe6bd38eebc6f8202e419c1171268987ea6a6 4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\n |
|
2106 | response #0: bfebe6bd38eebc6f8202e419c1171268987ea6a6 4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\n | |
2107 |
response #1: bookA |
|
2107 | response #1: bookA\t4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\nbookB\tbfebe6bd38eebc6f8202e419c1171268987ea6a6 | |
2108 |
response #2: 4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab |
|
2108 | response #2: 4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\t1\nbfebe6bd38eebc6f8202e419c1171268987ea6a6\t1\npublishing\tTrue | |
2109 |
|
2109 | |||
2110 | testing ssh2 |
|
2110 | testing ssh2 | |
2111 | creating ssh peer from handshake results |
|
2111 | creating ssh peer from handshake results | |
@@ -2136,10 +2136,10 Test batching of requests | |||||
2136 | o> 278\n |
|
2136 | o> 278\n | |
2137 | o> bufferedread(278) -> 278: |
|
2137 | o> bufferedread(278) -> 278: | |
2138 | o> bfebe6bd38eebc6f8202e419c1171268987ea6a6 4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\n |
|
2138 | o> bfebe6bd38eebc6f8202e419c1171268987ea6a6 4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\n | |
2139 |
o> ;bookA |
|
2139 | o> ;bookA\t4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\n | |
2140 |
o> bookB |
|
2140 | o> bookB\tbfebe6bd38eebc6f8202e419c1171268987ea6a6;4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\t1\n | |
2141 |
o> bfebe6bd38eebc6f8202e419c1171268987ea6a6 |
|
2141 | o> bfebe6bd38eebc6f8202e419c1171268987ea6a6\t1\n | |
2142 |
o> publishing |
|
2142 | o> publishing\tTrue | |
2143 | response #0: bfebe6bd38eebc6f8202e419c1171268987ea6a6 4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\n |
|
2143 | response #0: bfebe6bd38eebc6f8202e419c1171268987ea6a6 4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\n | |
2144 |
response #1: bookA |
|
2144 | response #1: bookA\t4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\nbookB\tbfebe6bd38eebc6f8202e419c1171268987ea6a6 | |
2145 |
response #2: 4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab |
|
2145 | response #2: 4ee3fcef1c800fa2bf23e20af7c83ff111d9c7ab\t1\nbfebe6bd38eebc6f8202e419c1171268987ea6a6\t1\npublishing\tTrue |
General Comments 0
You need to be logged in to leave comments.
Login now