|
| 1 | +@static if VERSION >= v"0.7.0-DEV.2915" |
| 2 | +using Distributed |
| 3 | +end |
| 4 | +while nworkers() < 5 |
| 5 | + addprocs(1) |
| 6 | +end |
| 7 | + |
1 | 8 | using HTTP
|
2 | 9 | using HTTP.Test
|
3 | 10 |
|
| 11 | + |
| 12 | +using HTTP |
| 13 | + |
4 | 14 | port = rand(8000:8999)
|
5 | 15 |
|
6 |
| -function testget(url) |
7 |
| - mktempdir() do d |
8 |
| - cd(d) do |
9 |
| - cmd = `"curl -v -s $url > tmpout 2>&1"` |
10 |
| - cmd = `bash -c $cmd` |
11 |
| - #println(cmd) |
12 |
| - run(cmd) |
13 |
| - return String(read(joinpath(d, "tmpout"))) |
14 |
| - end |
| 16 | +""" |
| 17 | + n: number of remotes |
| 18 | + m: number of async requests per remote |
| 19 | +""" |
| 20 | +function testget(url, n=1, m=1) |
| 21 | + r = [] |
| 22 | + @sync for i in 1:n |
| 23 | + @async push!(r, remote((url, mm) -> begin |
| 24 | + rr = [] |
| 25 | + @sync for ii in 1:mm |
| 26 | + l = rand([0,0,10,1000,10000]) |
| 27 | + body = Vector{UInt8}(rand('A':'Z', l)) |
| 28 | + @async push!(rr, HTTP.request("GET", "$url/$ii", [], body)) |
| 29 | + end |
| 30 | + return rr |
| 31 | + end)("$url/$i", m)) |
15 | 32 | end
|
| 33 | + return join([String(x) for x in vcat(r...)], "\n") |
16 | 34 | end
|
17 | 35 |
|
18 | 36 | @testset "HTTP.Servers.serve" begin
|
@@ -45,18 +63,19 @@ r = testget("http://127.0.0.1:$port/")
|
45 | 63 | @test ismatch(r"HTTP/1.1 200 OK", r)
|
46 | 64 |
|
47 | 65 | rv = []
|
48 |
| -n = 3 |
| 66 | +n = 5 |
| 67 | +m = 20 |
49 | 68 | @sync for i = 1:n
|
50 | 69 | @async begin
|
51 |
| - r = testget(repeat("http://127.0.0.1:$port/$i ", n)) |
| 70 | + r = testget("http://127.0.0.1:$port/$i", n, m) |
52 | 71 | #println(r)
|
53 | 72 | push!(rv, r)
|
54 | 73 | end
|
55 | 74 | sleep(0.01)
|
56 | 75 | end
|
57 | 76 | for i = 1:n
|
58 | 77 | @test length(filter(l->ismatch(r"HTTP/1.1 200 OK", l),
|
59 |
| - split(rv[i], "\n"))) == n |
| 78 | + split(rv[i], "\n"))) == n * m |
60 | 79 | end
|
61 | 80 |
|
62 | 81 | r = HTTP.get("http://127.0.0.1:$port/"; readtimeout=30)
|
@@ -85,7 +104,7 @@ tcp = connect(ip"127.0.0.1", port)
|
85 | 104 | write(tcp, "SOMEMETHOD HTTP/1.1\r\nContent-Length: 0\r\n\r\n")
|
86 | 105 | r = String(read(tcp))
|
87 | 106 | !HTTP.Parsers.strict && @test ismatch(r"HTTP/1.1 400 Bad Request", r)
|
88 |
| -!HTTP.Parsers.strict && @test ismatch(r"invalid URL", r) |
| 107 | +!HTTP.Parsers.strict && @test ismatch(r"invalid HTTP request target", r) |
89 | 108 | sleep(2.0)
|
90 | 109 |
|
91 | 110 |
|
|
0 commit comments