fix: use AF_INET6 in ./tools/http_server.py (#3374)

This commit is contained in:
Bartek Iwańczuk 2019-11-19 18:56:37 +01:00 committed by Ry Dahl
parent e73a82dc42
commit 2ac107f548
2 changed files with 14 additions and 17 deletions

View File

@ -156,13 +156,11 @@ itest!(_018_async_catch {
output: "018_async_catch.ts.out",
});
/* TODO(ry) Re-enable this test. It is flaky and only fails occasionally.
itest!(_019_media_types {
args: "run --reload 019_media_types.ts",
output: "019_media_types.ts.out",
http_server: true,
});
*/
itest!(_020_json_modules {
args: "run --reload 020_json_modules.ts",
@ -174,13 +172,11 @@ itest!(_021_mjs_modules {
output: "021_mjs_modules.ts.out",
});
/* TODO(ry) Re-enable this test. It is flaky and only fails occasionally.
itest!(_022_info_flag_script {
args: "info http://127.0.0.1:4545/cli/tests/019_media_types.ts",
output: "022_info_flag_script.out",
http_server: true,
});
*/
itest!(_023_no_ext_with_headers {
args: "run --reload 023_no_ext_with_headers",
@ -337,21 +333,17 @@ itest!(_047_jsx {
output: "047_jsx_test.jsx.out",
});
/* TODO(ry) Re-enable this test. It is flaky and only fails occasionally.
itest!(_048_media_types_jsx {
args: "run --reload 048_media_types_jsx.ts",
output: "048_media_types_jsx.ts.out",
http_server: true,
});
*/
/* TODO(ry) Re-enable this test. It is flaky and only fails occasionally.
itest!(_049_info_flag_script_jsx {
args: "info http://127.0.0.1:4545/cli/tests/048_media_types_jsx.ts",
output: "049_info_flag_script_jsx.out",
http_server: true,
});
*/
itest!(_050_more_jsons {
args: "run --reload 050_more_jsons.ts",
@ -370,13 +362,11 @@ itest!(lock_check_ok {
http_server: true,
});
/* TODO(ry) Re-enable this test. It is flaky and only fails occasionally.
itest!(lock_check_ok2 {
args: "run 019_media_types.ts --lock=lock_check_ok2.json",
output: "019_media_types.ts.out",
http_server: true,
});
*/
itest!(lock_check_err {
args: "run --lock=lock_check_err.json http://127.0.0.1:4545/cli/tests/003_relative_import.ts",
@ -386,7 +376,6 @@ itest!(lock_check_err {
http_server: true,
});
/* TODO(ry) Re-enable this test. It is flaky and only fails occasionally.
itest!(lock_check_err2 {
args: "run 019_media_types.ts --lock=lock_check_err2.json",
output: "lock_check_err2.out",
@ -394,7 +383,6 @@ itest!(lock_check_err2 {
exit_code: 10,
http_server: true,
});
*/
itest!(async_error {
exit_code: 1,

View File

@ -7,6 +7,7 @@ from contextlib import contextmanager
import os
import SimpleHTTPServer
import SocketServer
import socket
import sys
from time import sleep
from threading import Thread
@ -105,6 +106,17 @@ class ContentTypeHandler(QuietSimpleHTTPRequestHandler):
RunningServer = namedtuple("RunningServer", ["server", "thread"])
def get_socket(port, handler):
SocketServer.TCPServer.allow_reuse_address = True
if os.name != "nt":
# We use AF_INET6 to avoid flaky test issue, particularly with
# the test 019_media_types. It's not well understood why this fixes the
# flaky tests, but it does appear to...
# See https://github.com/denoland/deno/issues/3332
SocketServer.TCPServer.address_family = socket.AF_INET6
return SocketServer.TCPServer(("", port), handler)
def server():
os.chdir(root_path) # Hopefully the main thread doesn't also chdir.
Handler = ContentTypeHandler
@ -115,8 +127,7 @@ def server():
".jsx": "application/javascript",
".json": "application/json",
})
SocketServer.TCPServer.allow_reuse_address = True
s = SocketServer.TCPServer(("", PORT), Handler)
s = get_socket(PORT, Handler)
if not QUIET:
print "Deno test server http://localhost:%d/" % PORT
return RunningServer(s, start(s))
@ -133,9 +144,7 @@ def base_redirect_server(host_port, target_port, extra_path_segment=""):
target_host + extra_path_segment + self.path)
self.end_headers()
Handler = RedirectHandler
SocketServer.TCPServer.allow_reuse_address = True
s = SocketServer.TCPServer(("", host_port), Handler)
s = get_socket(host_port, RedirectHandler)
if not QUIET:
print "redirect server http://localhost:%d/ -> http://localhost:%d/" % (
host_port, target_port)