diff --git a/src/lua/console.lua b/src/lua/console.lua index 4e22b04b4bdfe8fd7b5a93d48df9c1bbf623f85f..baa4d84f8410640cd318a2ee1b8bfd7f29d1557d 100644 --- a/src/lua/console.lua +++ b/src/lua/console.lua @@ -309,6 +309,12 @@ local function connect(uri) error('Usage: console.connect("[login:password@][host:]port")') end + if u.login ~= nil and u.password == nil then + -- Not specifying a password means empty password. + -- Required for passwordless URI forms like admin@host + u.password = '' + end + -- connect to remote host local remote = require('net.box'):new(u.host, u.service, { user = u.login, password = u.password }) diff --git a/src/uri.rl b/src/uri.rl index 87dad36396de11eec70f1ae44abbc26866a3ba2d..c44ef4b12272987aa5c8e7faddfe18cbae93b2ca 100644 --- a/src/uri.rl +++ b/src/uri.rl @@ -138,7 +138,7 @@ uri_parse(struct uri *uri, const char *p) >{ s = p; } %{ login = s; login_len = p - s; }; - password = (unreserved | pct_encoded | sub_delims )+ + password = (unreserved | pct_encoded | sub_delims )* >{ s = p; } %{ uri->password = s; uri->password_len = p - s; }; diff --git a/test/app-tap/console.result b/test/app-tap/console.result index 4d4ee340c49e6778935381b1d4dc363bbccb8b9f..8e83c0c536bb2cc46cac2a8ea5f76fd448e15b57 100644 --- a/test/app-tap/console.result +++ b/test/app-tap/console.result @@ -1,5 +1,5 @@ TAP version 13 -1..32 +1..34 ok - console.listen started ok - Handshake ok - connect to console @@ -15,6 +15,8 @@ ok - remote network error ok - remote access denied ok - remote access denied ok - remote connect +ok - remote connect +ok - remote connect ok - remote eval ok - remote state.remote.host ok - remote state.remote.port diff --git a/test/app-tap/console.test.lua b/test/app-tap/console.test.lua index 774cc2cbe8c16153758a2443862396a39a0beb78..d9cf9fc9a3eecb9de53376425b0997b075ce5cd4 100755 --- a/test/app-tap/console.test.lua +++ b/test/app-tap/console.test.lua @@ -21,7 +21,7 @@ local EOL = "\n...\n" test = tap.test("console") -test:plan(32) +test:plan(34) -- Start console and connect to it local server = console.listen(CONSOLE_SOCKET) @@ -92,6 +92,18 @@ client:write(string.format("require('console').connect('test:pass@%s')\n", IPROTO_SOCKET)) test:ok(yaml.decode(client:read(EOL)), "remote connect") +-- Log in with an empty password +box.schema.user.create('test2', { password = '' }) +box.schema.user.grant('test2', 'execute', 'universe') + +client:write(string.format("require('console').connect('test2@%s')\n", + IPROTO_SOCKET)) +test:ok(yaml.decode(client:read(EOL)), "remote connect") + +client:write(string.format("require('console').connect('test2:@%s')\n", + IPROTO_SOCKET)) +test:ok(yaml.decode(client:read(EOL)), "remote connect") + -- Execute some command client:write("require('fiber').id()\n") local fid2 = yaml.decode(client:read(EOL))[1] diff --git a/test/app-tap/uri.result b/test/app-tap/uri.result index d1ab78669126331ee3f54316ce3c162bd26322fa..f10cc7c3e79a262809495e03aea83a3797a0f2fa 100644 --- a/test/app-tap/uri.result +++ b/test/app-tap/uri.result @@ -2,7 +2,7 @@ TAP version 13 # uri 1..1 # parse - 1..17 + 1..28 ok - scheme ok - login ok - password @@ -11,6 +11,17 @@ TAP version 13 ok - path ok - query ok - fragment + ok - scheme + ok - login + ok - password + ok - host + ok - service + ok - path + ok - query + ok - fragment + ok - login + ok - password + ok - host ok - ipv4 ok - ipv4 ok - ipv6 diff --git a/test/app-tap/uri.test.lua b/test/app-tap/uri.test.lua index 96f2f7a5e215b52b4407c0eb872a3084db5ce29b..f3f2ae499ac8169169125c5d7fbe2861ca7050d0 100755 --- a/test/app-tap/uri.test.lua +++ b/test/app-tap/uri.test.lua @@ -6,7 +6,7 @@ local uri = require('uri') local function test_parse(test) -- Tests for uri.parse() Lua bindings. -- Parser itself is tested by test/unit/uri unit test. - test:plan(17) + test:plan(28) local u @@ -21,6 +21,22 @@ local function test_parse(test) test:is(u.query, "q1=v1&q2=v2", "query") test:is(u.fragment, "fragment", "fragment") + u = uri.parse("scheme://login:@host:service".. + "/path1/path2/path3?q1=v1&q2=v2#fragment") + test:is(u.scheme, "scheme", "scheme") + test:is(u.login, "login", "login") + test:is(u.password, "", "password") + test:is(u.host, "host", "host") + test:is(u.service, "service", "service") + test:is(u.path, "/path1/path2/path3", "path") + test:is(u.query, "q1=v1&q2=v2", "query") + test:is(u.fragment, "fragment", "fragment") + + u = uri.parse('login@host') + test:is(u.login, "login", "login") + test:is(u.password, nil, "password") + test:is(u.host, "host", "host") + u = uri.parse('127.0.0.1') test:is(u.host, '127.0.0.1', 'ipv4') test:is(u.ipv4, '127.0.0.1', 'ipv4') diff --git a/test/unit/uri.c b/test/unit/uri.c index 33e7014caf2834c4f0376914dab7d8292c51363c..e8a81ee5d805edaf908ded188f142627788cad2b 100644 --- a/test/unit/uri.c +++ b/test/unit/uri.c @@ -49,7 +49,7 @@ test_invalid() int main(void) { - plan(60); + plan(61); /* General */ test("host", NULL, NULL, NULL, "host", NULL, NULL, NULL, NULL, 0); @@ -84,6 +84,8 @@ main(void) test("login:password@host", NULL, "login", "password", "host", NULL, NULL, NULL, NULL, 0); + test("login:@host", NULL, "login", "", "host", NULL, + NULL, NULL, NULL, 0); test("login:password@host/", NULL, "login", "password", "host", NULL, "/", NULL, NULL, 0); test("login:password@host/path1/path2/path3", NULL, "login", "password", diff --git a/test/unit/uri.result b/test/unit/uri.result index 7218a95036131d2b4315ffccf3b86a3b749689ed..50d0871a83901106962860060a5e5fe585a6e981 100644 --- a/test/unit/uri.result +++ b/test/unit/uri.result @@ -1,4 +1,4 @@ -1..60 +1..61 1..10 ok 1 - host: parse ok 2 - host: scheme @@ -155,6 +155,18 @@ ok 12 - subtests ok 9 - login:password@host: fragment ok 10 - login:password@host: host_hint ok 13 - subtests + 1..10 + ok 1 - login:@host: parse + ok 2 - login:@host: scheme + ok 3 - login:@host: login + ok 4 - login:@host: password + ok 5 - login:@host: host + ok 6 - login:@host: service + ok 7 - login:@host: path + ok 8 - login:@host: query + ok 9 - login:@host: fragment + ok 10 - login:@host: host_hint +ok 14 - subtests 1..10 ok 1 - login:password@host/: parse ok 2 - login:password@host/: scheme @@ -166,7 +178,7 @@ ok 13 - subtests ok 8 - login:password@host/: query ok 9 - login:password@host/: fragment ok 10 - login:password@host/: host_hint -ok 14 - subtests +ok 15 - subtests 1..10 ok 1 - login:password@host/path1/path2/path3: parse ok 2 - login:password@host/path1/path2/path3: scheme @@ -178,7 +190,7 @@ ok 14 - subtests ok 8 - login:password@host/path1/path2/path3: query ok 9 - login:password@host/path1/path2/path3: fragment ok 10 - login:password@host/path1/path2/path3: host_hint -ok 15 - subtests +ok 16 - subtests 1..10 ok 1 - login:password@host/path1/path2/path3?q1=v1&q2=v2#fragment: parse ok 2 - login:password@host/path1/path2/path3?q1=v1&q2=v2#fragment: scheme @@ -190,7 +202,7 @@ ok 15 - subtests ok 8 - login:password@host/path1/path2/path3?q1=v1&q2=v2#fragment: query ok 9 - login:password@host/path1/path2/path3?q1=v1&q2=v2#fragment: fragment ok 10 - login:password@host/path1/path2/path3?q1=v1&q2=v2#fragment: host_hint -ok 16 - subtests +ok 17 - subtests 1..10 ok 1 - login:password@host:service: parse ok 2 - login:password@host:service: scheme @@ -202,7 +214,7 @@ ok 16 - subtests ok 8 - login:password@host:service: query ok 9 - login:password@host:service: fragment ok 10 - login:password@host:service: host_hint -ok 17 - subtests +ok 18 - subtests 1..10 ok 1 - login:password@host:service/: parse ok 2 - login:password@host:service/: scheme @@ -214,7 +226,7 @@ ok 17 - subtests ok 8 - login:password@host:service/: query ok 9 - login:password@host:service/: fragment ok 10 - login:password@host:service/: host_hint -ok 18 - subtests +ok 19 - subtests 1..10 ok 1 - login:password@host:service/path1/path2/path3: parse ok 2 - login:password@host:service/path1/path2/path3: scheme @@ -226,7 +238,7 @@ ok 18 - subtests ok 8 - login:password@host:service/path1/path2/path3: query ok 9 - login:password@host:service/path1/path2/path3: fragment ok 10 - login:password@host:service/path1/path2/path3: host_hint -ok 19 - subtests +ok 20 - subtests 1..10 ok 1 - login:password@host:service/path1/path2/path3?q1=v1&q2=v2#fragment: parse ok 2 - login:password@host:service/path1/path2/path3?q1=v1&q2=v2#fragment: scheme @@ -238,7 +250,7 @@ ok 19 - subtests ok 8 - login:password@host:service/path1/path2/path3?q1=v1&q2=v2#fragment: query ok 9 - login:password@host:service/path1/path2/path3?q1=v1&q2=v2#fragment: fragment ok 10 - login:password@host:service/path1/path2/path3?q1=v1&q2=v2#fragment: host_hint -ok 20 - subtests +ok 21 - subtests 1..10 ok 1 - scheme://login:password@host:service: parse ok 2 - scheme://login:password@host:service: scheme @@ -250,7 +262,7 @@ ok 20 - subtests ok 8 - scheme://login:password@host:service: query ok 9 - scheme://login:password@host:service: fragment ok 10 - scheme://login:password@host:service: host_hint -ok 21 - subtests +ok 22 - subtests 1..10 ok 1 - scheme://login:password@host:service/: parse ok 2 - scheme://login:password@host:service/: scheme @@ -262,7 +274,7 @@ ok 21 - subtests ok 8 - scheme://login:password@host:service/: query ok 9 - scheme://login:password@host:service/: fragment ok 10 - scheme://login:password@host:service/: host_hint -ok 22 - subtests +ok 23 - subtests 1..10 ok 1 - scheme://login:password@host:service/path1/path2/path3: parse ok 2 - scheme://login:password@host:service/path1/path2/path3: scheme @@ -274,7 +286,7 @@ ok 22 - subtests ok 8 - scheme://login:password@host:service/path1/path2/path3: query ok 9 - scheme://login:password@host:service/path1/path2/path3: fragment ok 10 - scheme://login:password@host:service/path1/path2/path3: host_hint -ok 23 - subtests +ok 24 - subtests 1..10 ok 1 - scheme://login:password@host:service/path1/path2/path3?q1=v1&q2=v2#fragment: parse ok 2 - scheme://login:password@host:service/path1/path2/path3?q1=v1&q2=v2#fragment: scheme @@ -286,7 +298,7 @@ ok 23 - subtests ok 8 - scheme://login:password@host:service/path1/path2/path3?q1=v1&q2=v2#fragment: query ok 9 - scheme://login:password@host:service/path1/path2/path3?q1=v1&q2=v2#fragment: fragment ok 10 - scheme://login:password@host:service/path1/path2/path3?q1=v1&q2=v2#fragment: host_hint -ok 24 - subtests +ok 25 - subtests 1..10 ok 1 - host/path: parse ok 2 - host/path: scheme @@ -298,7 +310,7 @@ ok 24 - subtests ok 8 - host/path: query ok 9 - host/path: fragment ok 10 - host/path: host_hint -ok 25 - subtests +ok 26 - subtests 1..10 ok 1 - host//: parse ok 2 - host//: scheme @@ -310,7 +322,7 @@ ok 25 - subtests ok 8 - host//: query ok 9 - host//: fragment ok 10 - host//: host_hint -ok 26 - subtests +ok 27 - subtests 1..10 ok 1 - host//path: parse ok 2 - host//path: scheme @@ -322,7 +334,7 @@ ok 26 - subtests ok 8 - host//path: query ok 9 - host//path: fragment ok 10 - host//path: host_hint -ok 27 - subtests +ok 28 - subtests 1..10 ok 1 - host/;abc?q: parse ok 2 - host/;abc?q: scheme @@ -334,7 +346,7 @@ ok 27 - subtests ok 8 - host/;abc?q: query ok 9 - host/;abc?q: fragment ok 10 - host/;abc?q: host_hint -ok 28 - subtests +ok 29 - subtests 1..10 ok 1 - scheme://login:password@host:service/@path1/:path2?q1=v1&q2=v2#fragment: parse ok 2 - scheme://login:password@host:service/@path1/:path2?q1=v1&q2=v2#fragment: scheme @@ -346,7 +358,7 @@ ok 28 - subtests ok 8 - scheme://login:password@host:service/@path1/:path2?q1=v1&q2=v2#fragment: query ok 9 - scheme://login:password@host:service/@path1/:path2?q1=v1&q2=v2#fragment: fragment ok 10 - scheme://login:password@host:service/@path1/:path2?q1=v1&q2=v2#fragment: host_hint -ok 29 - subtests +ok 30 - subtests 1..10 ok 1 - host/~user: parse ok 2 - host/~user: scheme @@ -358,7 +370,7 @@ ok 29 - subtests ok 8 - host/~user: query ok 9 - host/~user: fragment ok 10 - host/~user: host_hint -ok 30 - subtests +ok 31 - subtests 1..10 ok 1 - try.tarantool.org: parse ok 2 - try.tarantool.org: scheme @@ -370,7 +382,7 @@ ok 30 - subtests ok 8 - try.tarantool.org: query ok 9 - try.tarantool.org: fragment ok 10 - try.tarantool.org: host_hint -ok 31 - subtests +ok 32 - subtests 1..10 ok 1 - try.tarantool.org: parse ok 2 - try.tarantool.org: scheme @@ -382,7 +394,7 @@ ok 31 - subtests ok 8 - try.tarantool.org: query ok 9 - try.tarantool.org: fragment ok 10 - try.tarantool.org: host_hint -ok 32 - subtests +ok 33 - subtests 1..10 ok 1 - www.llanfairpwllgwyngyllgogerychwyrndrobwyll-llantysiliogogogoch.com: parse ok 2 - www.llanfairpwllgwyngyllgogerychwyrndrobwyll-llantysiliogogogoch.com: scheme @@ -394,7 +406,7 @@ ok 32 - subtests ok 8 - www.llanfairpwllgwyngyllgogerychwyrndrobwyll-llantysiliogogogoch.com: query ok 9 - www.llanfairpwllgwyngyllgogerychwyrndrobwyll-llantysiliogogogoch.com: fragment ok 10 - www.llanfairpwllgwyngyllgogerychwyrndrobwyll-llantysiliogogogoch.com: host_hint -ok 33 - subtests +ok 34 - subtests 1..10 ok 1 - 0.0.0.0: parse ok 2 - 0.0.0.0: scheme @@ -406,7 +418,7 @@ ok 33 - subtests ok 8 - 0.0.0.0: query ok 9 - 0.0.0.0: fragment ok 10 - 0.0.0.0: host_hint -ok 34 - subtests +ok 35 - subtests 1..10 ok 1 - 127.0.0.1: parse ok 2 - 127.0.0.1: scheme @@ -418,7 +430,7 @@ ok 34 - subtests ok 8 - 127.0.0.1: query ok 9 - 127.0.0.1: fragment ok 10 - 127.0.0.1: host_hint -ok 35 - subtests +ok 36 - subtests 1..10 ok 1 - 127.0.0.1:3313: parse ok 2 - 127.0.0.1:3313: scheme @@ -430,7 +442,7 @@ ok 35 - subtests ok 8 - 127.0.0.1:3313: query ok 9 - 127.0.0.1:3313: fragment ok 10 - 127.0.0.1:3313: host_hint -ok 36 - subtests +ok 37 - subtests 1..10 ok 1 - scheme://login:password@127.0.0.1:3313: parse ok 2 - scheme://login:password@127.0.0.1:3313: scheme @@ -442,7 +454,7 @@ ok 36 - subtests ok 8 - scheme://login:password@127.0.0.1:3313: query ok 9 - scheme://login:password@127.0.0.1:3313: fragment ok 10 - scheme://login:password@127.0.0.1:3313: host_hint -ok 37 - subtests +ok 38 - subtests 1..10 ok 1 - [2001::11a3:09d7::1]: parse ok 2 - [2001::11a3:09d7::1]: scheme @@ -454,7 +466,7 @@ ok 37 - subtests ok 8 - [2001::11a3:09d7::1]: query ok 9 - [2001::11a3:09d7::1]: fragment ok 10 - [2001::11a3:09d7::1]: host_hint -ok 38 - subtests +ok 39 - subtests 1..10 ok 1 - scheme://login:password@[2001::11a3:09d7::1]:3313: parse ok 2 - scheme://login:password@[2001::11a3:09d7::1]:3313: scheme @@ -466,7 +478,7 @@ ok 38 - subtests ok 8 - scheme://login:password@[2001::11a3:09d7::1]:3313: query ok 9 - scheme://login:password@[2001::11a3:09d7::1]:3313: fragment ok 10 - scheme://login:password@[2001::11a3:09d7::1]:3313: host_hint -ok 39 - subtests +ok 40 - subtests 1..10 ok 1 - scheme://[2001:0db8:11a3:09d7::1]: parse ok 2 - scheme://[2001:0db8:11a3:09d7::1]: scheme @@ -478,7 +490,7 @@ ok 39 - subtests ok 8 - scheme://[2001:0db8:11a3:09d7::1]: query ok 9 - scheme://[2001:0db8:11a3:09d7::1]: fragment ok 10 - scheme://[2001:0db8:11a3:09d7::1]: host_hint -ok 40 - subtests +ok 41 - subtests 1..10 ok 1 - [::ffff:11.2.3.4]: parse ok 2 - [::ffff:11.2.3.4]: scheme @@ -490,7 +502,7 @@ ok 40 - subtests ok 8 - [::ffff:11.2.3.4]: query ok 9 - [::ffff:11.2.3.4]: fragment ok 10 - [::ffff:11.2.3.4]: host_hint -ok 41 - subtests +ok 42 - subtests 1..10 ok 1 - scheme://login:password@[::ffff:11.2.3.4]:3313: parse ok 2 - scheme://login:password@[::ffff:11.2.3.4]:3313: scheme @@ -502,7 +514,7 @@ ok 41 - subtests ok 8 - scheme://login:password@[::ffff:11.2.3.4]:3313: query ok 9 - scheme://login:password@[::ffff:11.2.3.4]:3313: fragment ok 10 - scheme://login:password@[::ffff:11.2.3.4]:3313: host_hint -ok 42 - subtests +ok 43 - subtests 1..10 ok 1 - 1: parse ok 2 - 1: scheme @@ -514,7 +526,7 @@ ok 42 - subtests ok 8 - 1: query ok 9 - 1: fragment ok 10 - 1: host_hint -ok 43 - subtests +ok 44 - subtests 1..10 ok 1 - 10: parse ok 2 - 10: scheme @@ -526,7 +538,7 @@ ok 43 - subtests ok 8 - 10: query ok 9 - 10: fragment ok 10 - 10: host_hint -ok 44 - subtests +ok 45 - subtests 1..10 ok 1 - 331: parse ok 2 - 331: scheme @@ -538,7 +550,7 @@ ok 44 - subtests ok 8 - 331: query ok 9 - 331: fragment ok 10 - 331: host_hint -ok 45 - subtests +ok 46 - subtests 1..10 ok 1 - 3313: parse ok 2 - 3313: scheme @@ -550,7 +562,7 @@ ok 45 - subtests ok 8 - 3313: query ok 9 - 3313: fragment ok 10 - 3313: host_hint -ok 46 - subtests +ok 47 - subtests 1..10 ok 1 - /: parse ok 2 - /: scheme @@ -562,7 +574,7 @@ ok 46 - subtests ok 8 - /: query ok 9 - /: fragment ok 10 - /: host_hint -ok 47 - subtests +ok 48 - subtests 1..10 ok 1 - /path1/path2/path3: parse ok 2 - /path1/path2/path3: scheme @@ -574,7 +586,7 @@ ok 47 - subtests ok 8 - /path1/path2/path3: query ok 9 - /path1/path2/path3: fragment ok 10 - /path1/path2/path3: host_hint -ok 48 - subtests +ok 49 - subtests 1..10 ok 1 - login:password@/path1/path2/path3: parse ok 2 - login:password@/path1/path2/path3: scheme @@ -586,7 +598,7 @@ ok 48 - subtests ok 8 - login:password@/path1/path2/path3: query ok 9 - login:password@/path1/path2/path3: fragment ok 10 - login:password@/path1/path2/path3: host_hint -ok 49 - subtests +ok 50 - subtests 1..10 ok 1 - unix/:/path1/path2/path3: parse ok 2 - unix/:/path1/path2/path3: scheme @@ -598,7 +610,7 @@ ok 49 - subtests ok 8 - unix/:/path1/path2/path3: query ok 9 - unix/:/path1/path2/path3: fragment ok 10 - unix/:/path1/path2/path3: host_hint -ok 50 - subtests +ok 51 - subtests 1..10 ok 1 - unix/:/path1/path2/path3:: parse ok 2 - unix/:/path1/path2/path3:: scheme @@ -610,7 +622,7 @@ ok 50 - subtests ok 8 - unix/:/path1/path2/path3:: query ok 9 - unix/:/path1/path2/path3:: fragment ok 10 - unix/:/path1/path2/path3:: host_hint -ok 51 - subtests +ok 52 - subtests 1..10 ok 1 - unix/:/path1/path2/path3:/: parse ok 2 - unix/:/path1/path2/path3:/: scheme @@ -622,7 +634,7 @@ ok 51 - subtests ok 8 - unix/:/path1/path2/path3:/: query ok 9 - unix/:/path1/path2/path3:/: fragment ok 10 - unix/:/path1/path2/path3:/: host_hint -ok 52 - subtests +ok 53 - subtests 1..10 ok 1 - unix/:/path1/path2/path3?q1=v1&q2=v2#fragment: parse ok 2 - unix/:/path1/path2/path3?q1=v1&q2=v2#fragment: scheme @@ -634,7 +646,7 @@ ok 52 - subtests ok 8 - unix/:/path1/path2/path3?q1=v1&q2=v2#fragment: query ok 9 - unix/:/path1/path2/path3?q1=v1&q2=v2#fragment: fragment ok 10 - unix/:/path1/path2/path3?q1=v1&q2=v2#fragment: host_hint -ok 53 - subtests +ok 54 - subtests 1..10 ok 1 - unix/:/path1/path2/path3:/p1/p2?q1=v1&q2=v2#fragment: parse ok 2 - unix/:/path1/path2/path3:/p1/p2?q1=v1&q2=v2#fragment: scheme @@ -646,7 +658,7 @@ ok 53 - subtests ok 8 - unix/:/path1/path2/path3:/p1/p2?q1=v1&q2=v2#fragment: query ok 9 - unix/:/path1/path2/path3:/p1/p2?q1=v1&q2=v2#fragment: fragment ok 10 - unix/:/path1/path2/path3:/p1/p2?q1=v1&q2=v2#fragment: host_hint -ok 54 - subtests +ok 55 - subtests 1..10 ok 1 - scheme://login:password@unix/:/tmp/unix.sock:/path1/path2/path3: parse ok 2 - scheme://login:password@unix/:/tmp/unix.sock:/path1/path2/path3: scheme @@ -658,7 +670,7 @@ ok 54 - subtests ok 8 - scheme://login:password@unix/:/tmp/unix.sock:/path1/path2/path3: query ok 9 - scheme://login:password@unix/:/tmp/unix.sock:/path1/path2/path3: fragment ok 10 - scheme://login:password@unix/:/tmp/unix.sock:/path1/path2/path3: host_hint -ok 55 - subtests +ok 56 - subtests 1..10 ok 1 - unix/:./relative/path.sock:/test: parse ok 2 - unix/:./relative/path.sock:/test: scheme @@ -670,7 +682,7 @@ ok 55 - subtests ok 8 - unix/:./relative/path.sock:/test: query ok 9 - unix/:./relative/path.sock:/test: fragment ok 10 - unix/:./relative/path.sock:/test: host_hint -ok 56 - subtests +ok 57 - subtests 1..10 ok 1 - scheme://unix/:./relative/path.sock:/test: parse ok 2 - scheme://unix/:./relative/path.sock:/test: scheme @@ -682,7 +694,7 @@ ok 56 - subtests ok 8 - scheme://unix/:./relative/path.sock:/test: query ok 9 - scheme://unix/:./relative/path.sock:/test: fragment ok 10 - scheme://unix/:./relative/path.sock:/test: host_hint -ok 57 - subtests +ok 58 - subtests 1..10 ok 1 - http://tarantool.org/dist/master/debian/pool/main/t/tarantool/tarantool_1.6.3+314+g91066ee+20140910+1434.orig.tar.gz: parse ok 2 - http://tarantool.org/dist/master/debian/pool/main/t/tarantool/tarantool_1.6.3+314+g91066ee+20140910+1434.orig.tar.gz: scheme @@ -694,7 +706,7 @@ ok 57 - subtests ok 8 - http://tarantool.org/dist/master/debian/pool/main/t/tarantool/tarantool_1.6.3+314+g91066ee+20140910+1434.orig.tar.gz: query ok 9 - http://tarantool.org/dist/master/debian/pool/main/t/tarantool/tarantool_1.6.3+314+g91066ee+20140910+1434.orig.tar.gz: fragment ok 10 - http://tarantool.org/dist/master/debian/pool/main/t/tarantool/tarantool_1.6.3+314+g91066ee+20140910+1434.orig.tar.gz: host_hint -ok 58 - subtests +ok 59 - subtests 1..10 ok 1 - https://www.google.com/search?safe=off&site=&tbm=isch&source=hp&biw=1918&bih=1109&q=Tarantool&oq=Tarantool&gs_l=img.3..0i24l3j0i10i24j0i24&gws_rd=ssl: parse ok 2 - https://www.google.com/search?safe=off&site=&tbm=isch&source=hp&biw=1918&bih=1109&q=Tarantool&oq=Tarantool&gs_l=img.3..0i24l3j0i10i24j0i24&gws_rd=ssl: scheme @@ -706,8 +718,8 @@ ok 58 - subtests ok 8 - https://www.google.com/search?safe=off&site=&tbm=isch&source=hp&biw=1918&bih=1109&q=Tarantool&oq=Tarantool&gs_l=img.3..0i24l3j0i10i24j0i24&gws_rd=ssl: query ok 9 - https://www.google.com/search?safe=off&site=&tbm=isch&source=hp&biw=1918&bih=1109&q=Tarantool&oq=Tarantool&gs_l=img.3..0i24l3j0i10i24j0i24&gws_rd=ssl: fragment ok 10 - https://www.google.com/search?safe=off&site=&tbm=isch&source=hp&biw=1918&bih=1109&q=Tarantool&oq=Tarantool&gs_l=img.3..0i24l3j0i10i24j0i24&gws_rd=ssl: host_hint -ok 59 - subtests +ok 60 - subtests 1..2 ok 1 - empty is invalid ok 2 - :// is invalid -ok 60 - subtests +ok 61 - subtests