Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update consul to v1.4.0 - fixes #569 #571

Merged
merged 1 commit into from
Nov 15, 2018
Merged

Conversation

aaronhurt
Copy link
Member

Updated and tested with local consul and vault server instances:

ahurt1:fabio ahurt$ make test
gofmt -s -w `find . -type f -name '*.go' | grep -v vendor`
go build
go test -v -test.timeout 15s `go list ./... | grep -v '/vendor/'`
?   	github.com/fabiolb/fabio	[no test files]
=== RUN   TestAdminServerAccess
=== RUN   TestAdminServerAccess/ro/api/manual
=== RUN   TestAdminServerAccess/ro/api/paths
=== RUN   TestAdminServerAccess/ro/api/config
=== RUN   TestAdminServerAccess/ro/api/routes
=== RUN   TestAdminServerAccess/ro/api/version
=== RUN   TestAdminServerAccess/ro/manual
=== RUN   TestAdminServerAccess/ro/routes
=== RUN   TestAdminServerAccess/ro/health
=== RUN   TestAdminServerAccess/ro/logo.svg
=== RUN   TestAdminServerAccess/ro/
=== RUN   TestAdminServerAccess/rw/api/manual
=== RUN   TestAdminServerAccess/rw/api/paths
=== RUN   TestAdminServerAccess/rw/api/config
=== RUN   TestAdminServerAccess/rw/api/routes
=== RUN   TestAdminServerAccess/rw/api/version
=== RUN   TestAdminServerAccess/rw/manual
=== RUN   TestAdminServerAccess/rw/routes
=== RUN   TestAdminServerAccess/rw/health
=== RUN   TestAdminServerAccess/rw/logo.svg
=== RUN   TestAdminServerAccess/rw/
--- PASS: TestAdminServerAccess (0.01s)
    --- PASS: TestAdminServerAccess/ro/api/manual (0.00s)
    --- PASS: TestAdminServerAccess/ro/api/paths (0.00s)
    --- PASS: TestAdminServerAccess/ro/api/config (0.00s)
    --- PASS: TestAdminServerAccess/ro/api/routes (0.00s)
    --- PASS: TestAdminServerAccess/ro/api/version (0.00s)
    --- PASS: TestAdminServerAccess/ro/manual (0.00s)
    --- PASS: TestAdminServerAccess/ro/routes (0.00s)
    --- PASS: TestAdminServerAccess/ro/health (0.00s)
    --- PASS: TestAdminServerAccess/ro/logo.svg (0.00s)
    --- PASS: TestAdminServerAccess/ro/ (0.00s)
    --- PASS: TestAdminServerAccess/rw/api/manual (0.00s)
    --- PASS: TestAdminServerAccess/rw/api/paths (0.00s)
    --- PASS: TestAdminServerAccess/rw/api/config (0.00s)
    --- PASS: TestAdminServerAccess/rw/api/routes (0.00s)
    --- PASS: TestAdminServerAccess/rw/api/version (0.00s)
    --- PASS: TestAdminServerAccess/rw/manual (0.00s)
    --- PASS: TestAdminServerAccess/rw/routes (0.00s)
    --- PASS: TestAdminServerAccess/rw/health (0.00s)
    --- PASS: TestAdminServerAccess/rw/logo.svg (0.00s)
    --- PASS: TestAdminServerAccess/rw/ (0.00s)
PASS
ok  	github.com/fabiolb/fabio/admin	(cached)
?   	github.com/fabiolb/fabio/admin/api	[no test files]
?   	github.com/fabiolb/fabio/admin/ui	[no test files]
?   	github.com/fabiolb/fabio/assert	[no test files]
=== RUN   TestParseConsulURL
=== RUN   TestParseConsulURL/empty_url
=== RUN   TestParseConsulURL/invalid_url
=== RUN   TestParseConsulURL/no_kv_store_url
=== RUN   TestParseConsulURL/url_without_token
=== RUN   TestParseConsulURL/https_url
=== RUN   TestParseConsulURL/url_with_token
--- PASS: TestParseConsulURL (0.00s)
    --- PASS: TestParseConsulURL/empty_url (0.00s)
    --- PASS: TestParseConsulURL/invalid_url (0.00s)
    --- PASS: TestParseConsulURL/no_kv_store_url (0.00s)
    --- PASS: TestParseConsulURL/url_without_token (0.00s)
    --- PASS: TestParseConsulURL/https_url (0.00s)
    --- PASS: TestParseConsulURL/url_with_token (0.00s)
=== RUN   TestBase
--- PASS: TestBase (0.00s)
=== RUN   TestReplaceSuffix
--- PASS: TestReplaceSuffix (0.00s)
=== RUN   TestUpgradeCACertificate
2018/11/15 13:57:45 [INFO] cert: Upgrading cert ApiGateway to CA cert
--- PASS: TestUpgradeCACertificate (0.00s)
=== RUN   TestTLSConfig
--- PASS: TestTLSConfig (0.01s)
=== RUN   TestNewSource
=== RUN   TestNewSource/invalid
=== RUN   TestNewSource/file
=== RUN   TestNewSource/path
=== RUN   TestNewSource/http
=== RUN   TestNewSource/consul
=== RUN   TestNewSource/vault
--- PASS: TestNewSource (0.00s)
    --- PASS: TestNewSource/invalid (0.00s)
    --- PASS: TestNewSource/file (0.00s)
    --- PASS: TestNewSource/path (0.00s)
    --- PASS: TestNewSource/http (0.00s)
    --- PASS: TestNewSource/consul (0.00s)
    --- PASS: TestNewSource/vault (0.00s)
=== RUN   TestStaticSource
2018/11/15 13:57:45 [INFO] cert: Store has certificates for ["localhost"]
--- PASS: TestStaticSource (0.07s)
=== RUN   TestFileSource
--- PASS: TestFileSource (0.07s)
=== RUN   TestPathSource
2018/11/15 13:57:46 [INFO] cert: Store has certificates for ["localhost"]
--- PASS: TestPathSource (0.11s)
=== RUN   TestHTTPSource
2018/11/15 13:57:46 [INFO] cert: Store has certificates for ["localhost"]
--- PASS: TestHTTPSource (0.58s)
=== RUN   TestConsulSource
2018/11/15 13:57:46 [DEBUG] cert: Certificate index changed to #65
2018/11/15 13:57:46 [INFO] cert: Store has certificates for ["localhost"]
2018/11/15 13:57:47 [DEBUG] cert: Certificate index changed to #66
--- PASS: TestConsulSource (0.58s)
    source_test.go:276: Using existing consul server
=== RUN   TestVaultSource
2018/11/15 13:57:47 [INFO] cert: Store has certificates for [""]
=== RUN   TestVaultSource/renewable_token
2018/11/15 13:57:47 [INFO] cert: Store has certificates for ["localhost"]
=== RUN   TestVaultSource/non-renewable_token
2018/11/15 13:57:48 [INFO] cert: Store has certificates for ["localhost"]
=== RUN   TestVaultSource/renewable_orphan_token
2018/11/15 13:57:48 [INFO] cert: Store has certificates for ["localhost"]
=== RUN   TestVaultSource/non-renewable_orphan_token
2018/11/15 13:57:49 [INFO] cert: Store has certificates for ["localhost"]
=== RUN   TestVaultSource/renewable_wrapped_token
2018/11/15 13:57:49 [INFO] vault: Unwrapped token 65uRBNjaKfdWlaTUnKxBAP0a
2018/11/15 13:57:49 [INFO] cert: Store has certificates for ["localhost"]
=== RUN   TestVaultSource/non-renewable_wrapped_token
2018/11/15 13:57:50 [INFO] vault: Unwrapped token 5u5Faytxd4mFYKjjDYWou6x5
2018/11/15 13:57:50 [INFO] cert: Store has certificates for ["localhost"]
--- PASS: TestVaultSource (3.41s)
    source_test.go:316: Starting vault: "Vault v0.11.4 ('612120e76de651ef669c9af5e77b27a749b0dba3')\n"
    source_test.go:458: Vault: KV backend: V2
    --- PASS: TestVaultSource/renewable_token (0.56s)
    --- PASS: TestVaultSource/non-renewable_token (0.56s)
    --- PASS: TestVaultSource/renewable_orphan_token (0.55s)
    --- PASS: TestVaultSource/non-renewable_orphan_token (0.56s)
    --- PASS: TestVaultSource/renewable_wrapped_token (0.56s)
    --- PASS: TestVaultSource/non-renewable_wrapped_token (0.56s)
=== RUN   TestVaultPKISource
=== RUN   TestVaultPKISource/renewable_token
=== RUN   TestVaultPKISource/non-renewable_token
=== RUN   TestVaultPKISource/renewable_orphan_token
=== RUN   TestVaultPKISource/non-renewable_orphan_token
=== RUN   TestVaultPKISource/renewable_wrapped_token
=== RUN   TestVaultPKISource/non-renewable_wrapped_token
--- PASS: TestVaultPKISource (2.49s)
    source_test.go:316: Starting vault: "Vault v0.11.4 ('612120e76de651ef669c9af5e77b27a749b0dba3')\n"
    --- PASS: TestVaultPKISource/renewable_token (0.30s)
    --- PASS: TestVaultPKISource/non-renewable_token (0.43s)
    --- PASS: TestVaultPKISource/renewable_orphan_token (0.25s)
    --- PASS: TestVaultPKISource/non-renewable_orphan_token (0.38s)
    --- PASS: TestVaultPKISource/renewable_wrapped_token (0.37s)
    --- PASS: TestVaultPKISource/non-renewable_wrapped_token (0.59s)
=== RUN   TestGetCertificate
2018/11/15 13:57:53 [INFO] cert: vault: issued cert for localhost; serial = 6d-4e-9e-a2-54-e3-2d-75-52-ec-0a-d6-79-23-9a-c3-5f-6e-f0-7d
2018/11/15 13:57:53 [INFO] cert: Store has certificates for ["localhost"]
2018/11/15 13:57:53 [INFO] cert: vault: issued cert for localhost; serial = 0c-05-f4-e8-44-2f-04-77-02-91-6a-51-3b-a2-3b-4e-5e-c4-59-93
2018/11/15 13:57:53 [INFO] cert: Store has certificates for ["localhost"]
--- PASS: TestGetCertificate (0.07s)
PASS
ok  	github.com/fabiolb/fabio/cert	(cached)
=== RUN   TestParseFlags
=== RUN   TestParseFlags/cmdline_should_win
=== RUN   TestParseFlags/env_should_win
=== RUN   TestParseFlags/env_with_prefix_should_win
=== RUN   TestParseFlags/props_should_win
=== RUN   TestParseFlags/string_slice_in_cmdline
=== RUN   TestParseFlags/string_slice_in_env
=== RUN   TestParseFlags/string_slice_in_props
--- PASS: TestParseFlags (0.00s)
    --- PASS: TestParseFlags/cmdline_should_win (0.00s)
    --- PASS: TestParseFlags/env_should_win (0.00s)
    --- PASS: TestParseFlags/env_with_prefix_should_win (0.00s)
    --- PASS: TestParseFlags/props_should_win (0.00s)
    --- PASS: TestParseFlags/string_slice_in_cmdline (0.00s)
    --- PASS: TestParseFlags/string_slice_in_env (0.00s)
    --- PASS: TestParseFlags/string_slice_in_props (0.00s)
=== RUN   TestDefaults
--- PASS: TestDefaults (0.00s)
=== RUN   TestParseKVSlice
=== RUN   TestParseKVSlice/empty
=== RUN   TestParseKVSlice/key=val
=== RUN   TestParseKVSlice/key_with_spaces
=== RUN   TestParseKVSlice/quoted_value
=== RUN   TestParseKVSlice/single_quoted_value
=== RUN   TestParseKVSlice/quoted_value_with_backslash
=== RUN   TestParseKVSlice/ignore_empty_map_front
=== RUN   TestParseKVSlice/ignore_empty_map_back
=== RUN   TestParseKVSlice/ignore_empty_value_front
=== RUN   TestParseKVSlice/ignore_empty_value_back
=== RUN   TestParseKVSlice/multiple_values
=== RUN   TestParseKVSlice/multiple_maps
=== RUN   TestParseKVSlice/multiple_values_and_maps
=== RUN   TestParseKVSlice/first_key_empty
=== RUN   TestParseKVSlice/first_key_empty_and_more_values
=== RUN   TestParseKVSlice/first_key_empty_and_more_maps
=== RUN   TestParseKVSlice/first_key_empty_and_more_maps_and_values
=== RUN   TestParseKVSlice/issue_305
=== RUN   TestParseKVSlice/issue_305#01
=== RUN   TestParseKVSlice/issue_305#02
--- PASS: TestParseKVSlice (0.00s)
    --- PASS: TestParseKVSlice/empty (0.00s)
    --- PASS: TestParseKVSlice/key=val (0.00s)
    --- PASS: TestParseKVSlice/key_with_spaces (0.00s)
    --- PASS: TestParseKVSlice/quoted_value (0.00s)
    --- PASS: TestParseKVSlice/single_quoted_value (0.00s)
    --- PASS: TestParseKVSlice/quoted_value_with_backslash (0.00s)
    --- PASS: TestParseKVSlice/ignore_empty_map_front (0.00s)
    --- PASS: TestParseKVSlice/ignore_empty_map_back (0.00s)
    --- PASS: TestParseKVSlice/ignore_empty_value_front (0.00s)
    --- PASS: TestParseKVSlice/ignore_empty_value_back (0.00s)
    --- PASS: TestParseKVSlice/multiple_values (0.00s)
    --- PASS: TestParseKVSlice/multiple_maps (0.00s)
    --- PASS: TestParseKVSlice/multiple_values_and_maps (0.00s)
    --- PASS: TestParseKVSlice/first_key_empty (0.00s)
    --- PASS: TestParseKVSlice/first_key_empty_and_more_values (0.00s)
    --- PASS: TestParseKVSlice/first_key_empty_and_more_maps (0.00s)
    --- PASS: TestParseKVSlice/first_key_empty_and_more_maps_and_values (0.00s)
    --- PASS: TestParseKVSlice/issue_305 (0.00s)
    --- PASS: TestParseKVSlice/issue_305#01 (0.00s)
    --- PASS: TestParseKVSlice/issue_305#02 (0.00s)
=== RUN   TestLoad
=== RUN   TestLoad/-v
=== RUN   TestLoad/--version
=== RUN   TestLoad/-v_with_other_args
=== RUN   TestLoad/--version_with_other_args
=== RUN   TestLoad/default_config
=== RUN   TestLoad/-insecure=true
=== RUN   TestLoad/-profile.mode_foo
=== RUN   TestLoad/-profile.path_foo
=== RUN   TestLoad/-proxy.addr_:5555
=== RUN   TestLoad/-proxy.addr_:5555;proto=http
=== RUN   TestLoad/-proxy.addr_:5555;proto=tcp
=== RUN   TestLoad/-proxy.addr_:5555;proto=tcp+sni
=== RUN   TestLoad/-proxy.addr_with_tls_configs
=== RUN   TestLoad/-proxy.addr_with_named_tls_configs
=== RUN   TestLoad/-proxy.addr_with_file_cert_source
=== RUN   TestLoad/-proxy.addr_with_path_cert_source
=== RUN   TestLoad/-proxy.addr_with_http_cert_source
=== RUN   TestLoad/-proxy.addr_with_consul_cert_source
=== RUN   TestLoad/-proxy.addr_with_vault_cert_source
=== RUN   TestLoad/-proxy.addr_with_vault-pki_cert_source
2018/11/15 13:23:43 [INFO] vault-pki requires strictmatch; enabling strictmatch for listener :5555
=== RUN   TestLoad/-proxy.addr_with_vault-pki_cert_source,_-proxy.cs_first
2018/11/15 13:23:43 [INFO] vault-pki requires strictmatch; enabling strictmatch for listener :5555
=== RUN   TestLoad/-proxy.addr_with_cert_source
=== RUN   TestLoad/-proxy.addr_with_cert_source_with_full_options
=== RUN   TestLoad/issue_305
=== RUN   TestLoad/-proxy.localip_1.2.3.4
=== RUN   TestLoad/-proxy.strategy_rnd
=== RUN   TestLoad/-proxy.strategy_rr
=== RUN   TestLoad/-proxy.matcher_prefix
=== RUN   TestLoad/-proxy.matcher_glob
=== RUN   TestLoad/-proxy.matcher_iprefix
=== RUN   TestLoad/-proxy.noroutestatus_555
=== RUN   TestLoad/-proxy.shutdownwait_5ms
=== RUN   TestLoad/-proxy.responseheadertimeout_5ms
=== RUN   TestLoad/-proxy.keepalivetimeout_5ms
=== RUN   TestLoad/-proxy.dialtimeout_5ms
=== RUN   TestLoad/-proxy.readtimeout_5ms
=== RUN   TestLoad/-proxy.writetimeout_5ms
=== RUN   TestLoad/-proxy.flushinterval_5ms
=== RUN   TestLoad/-proxy.globalflushinterval_5ms
=== RUN   TestLoad/-proxy.maxconn_555
=== RUN   TestLoad/-proxy.header.clientip_value
=== RUN   TestLoad/-proxy.header.tls_value
=== RUN   TestLoad/-proxy.header.tls.value_value
=== RUN   TestLoad/-proxy.header.requestid_value
=== RUN   TestLoad/-proxy.header.sts.maxage_31536000
=== RUN   TestLoad/-proxy.header.sts.subdomains_true
=== RUN   TestLoad/-proxy.header.sts.preload_true
=== RUN   TestLoad/-proxy.gzip.contenttype_^text/.*$
=== RUN   TestLoad/-proxy.gzip.contenttype_^(text/.*|application/(javascript|json|font-woff|xml)|.*\+(json|xml))(;.*)?$
=== RUN   TestLoad/-proxy.log.routes_foobar
2018/11/15 13:23:43 [WARN] proxy.log.routes has been deprecated. Please use 'log.routes.format' instead
=== RUN   TestLoad/-registry.backend_value
=== RUN   TestLoad/-registry.timeout_5s
=== RUN   TestLoad/-registry.retry_500ms
=== RUN   TestLoad/-registry.file.path_value
=== RUN   TestLoad/-registry.file.noroutehtmlpath_value
=== RUN   TestLoad/-registry.static.routes_value
=== RUN   TestLoad/-registry.static.noroutehtml_value
=== RUN   TestLoad/-registry.consul.addr_1.2.3.4:5555
=== RUN   TestLoad/-registry.consul.addr_http://1.2.3.4:5555/
=== RUN   TestLoad/-registry.consul.addr_https://1.2.3.4:5555/
=== RUN   TestLoad/-registry.consul.addr_HTTPS://1.2.3.4:5555/
=== RUN   TestLoad/-registry.consul.token_some-token
=== RUN   TestLoad/-registry.consul.kvpath_/some/path
=== RUN   TestLoad/-registry.consul.noroutehtmlpath_/some/path
=== RUN   TestLoad/-registry.consul.tagprefix_p-
=== RUN   TestLoad/-registry.consul.register.enabled=false
=== RUN   TestLoad/-registry.consul.register.addr_1.2.3.4:5555
=== RUN   TestLoad/-registry.consul.register.name_fab
=== RUN   TestLoad/-registry.consul.register.checkTLSSkipVerify=true
=== RUN   TestLoad/-registry.consul.register.tags_a,_b,_c,_
=== RUN   TestLoad/-registry.consul.register.checkInterval_5ms
=== RUN   TestLoad/-registry.consul.register.checkTimeout_5ms
=== RUN   TestLoad/-registry.consul.service.status_a,_b,_
=== RUN   TestLoad/-log.access.format_foobar
=== RUN   TestLoad/-log.access.target_foobar
=== RUN   TestLoad/-log.routes.format_foobar
=== RUN   TestLoad/-log.level_foobar
=== RUN   TestLoad/-metrics.target_some-target
=== RUN   TestLoad/-metrics.prefix_some-prefix
=== RUN   TestLoad/-metrics.names_some_names
=== RUN   TestLoad/-metrics.interval_5ms
=== RUN   TestLoad/-metrics.timeout_5s
=== RUN   TestLoad/-metrics.retry_500ms
=== RUN   TestLoad/-metrics.graphite.addr_1.2.3.4:5555
=== RUN   TestLoad/-metrics.statsd.addr_1.2.3.4:5555
=== RUN   TestLoad/-metrics.circonus.apiapp_value
=== RUN   TestLoad/-metrics.circonus.apikey_value
=== RUN   TestLoad/-metrics.circonus.apiurl_value
=== RUN   TestLoad/-metrics.circonus.brokerid_value
=== RUN   TestLoad/-metrics.circonus.checkid_value
=== RUN   TestLoad/-runtime.gogc_555
=== RUN   TestLoad/-runtime.gomaxprocs_555
=== RUN   TestLoad/-ui.access_ro
=== RUN   TestLoad/-ui.access_rw
=== RUN   TestLoad/-ui.addr_1.2.3.4:5555
=== RUN   TestLoad/-ui.addr_:9998;cs=ui_-proxy.cs_cs=ui;type=file;cert=value
=== RUN   TestLoad/-ui.color_value
=== RUN   TestLoad/-ui.title_value
=== RUN   TestLoad/ignore_aws.apigw.cert.cn
=== RUN   TestLoad/config_from_environ
=== RUN   TestLoad/config_from_url
=== RUN   TestLoad/config_from_file_I
=== RUN   TestLoad/config_from_file_II
=== RUN   TestLoad/config_from_file_III
=== RUN   TestLoad/config_from_file_IV
=== RUN   TestLoad/cmdline_over_config_file_I
=== RUN   TestLoad/cmdline_over_config_file_II
=== RUN   TestLoad/environ_over_config_file
=== RUN   TestLoad/cmdline_over_environ
=== RUN   TestLoad/-proxy.addr_with_unknown_cert_source_'foo'
=== RUN   TestLoad/-proxy.addr_with_unknown_proto_'foo'
=== RUN   TestLoad/-proxy.addr_with_proto_'https'_requires_cert_source
=== RUN   TestLoad/-proxy.addr_with_cert_source_and_proto_'http'_requires_proto_'https'_or_'tcp'
=== RUN   TestLoad/-proxy.addr_with_cert_source_and_proto_'tcp+sni'_requires_proto_'https'_or_'tcp'
=== RUN   TestLoad/-proxy.noroutestatus_too_small
=== RUN   TestLoad/-proxy.noroutestatus_too_big
=== RUN   TestLoad/-cfg
=== RUN   TestLoad/-cfg=''
=== RUN   TestLoad/-cfg=""
--- PASS: TestLoad (0.03s)
    --- PASS: TestLoad/-v (0.00s)
    --- PASS: TestLoad/--version (0.00s)
    --- PASS: TestLoad/-v_with_other_args (0.00s)
    --- PASS: TestLoad/--version_with_other_args (0.00s)
    --- PASS: TestLoad/default_config (0.00s)
    --- PASS: TestLoad/-insecure=true (0.00s)
    --- PASS: TestLoad/-profile.mode_foo (0.00s)
    --- PASS: TestLoad/-profile.path_foo (0.00s)
    --- PASS: TestLoad/-proxy.addr_:5555 (0.00s)
    --- PASS: TestLoad/-proxy.addr_:5555;proto=http (0.00s)
    --- PASS: TestLoad/-proxy.addr_:5555;proto=tcp (0.00s)
    --- PASS: TestLoad/-proxy.addr_:5555;proto=tcp+sni (0.00s)
    --- PASS: TestLoad/-proxy.addr_with_tls_configs (0.00s)
    --- PASS: TestLoad/-proxy.addr_with_named_tls_configs (0.00s)
    --- PASS: TestLoad/-proxy.addr_with_file_cert_source (0.00s)
    --- PASS: TestLoad/-proxy.addr_with_path_cert_source (0.00s)
    --- PASS: TestLoad/-proxy.addr_with_http_cert_source (0.00s)
    --- PASS: TestLoad/-proxy.addr_with_consul_cert_source (0.00s)
    --- PASS: TestLoad/-proxy.addr_with_vault_cert_source (0.00s)
    --- PASS: TestLoad/-proxy.addr_with_vault-pki_cert_source (0.00s)
    --- PASS: TestLoad/-proxy.addr_with_vault-pki_cert_source,_-proxy.cs_first (0.00s)
    --- PASS: TestLoad/-proxy.addr_with_cert_source (0.00s)
    --- PASS: TestLoad/-proxy.addr_with_cert_source_with_full_options (0.00s)
    --- PASS: TestLoad/issue_305 (0.00s)
    --- PASS: TestLoad/-proxy.localip_1.2.3.4 (0.00s)
    --- PASS: TestLoad/-proxy.strategy_rnd (0.00s)
    --- PASS: TestLoad/-proxy.strategy_rr (0.00s)
    --- PASS: TestLoad/-proxy.matcher_prefix (0.00s)
    --- PASS: TestLoad/-proxy.matcher_glob (0.00s)
    --- PASS: TestLoad/-proxy.matcher_iprefix (0.00s)
    --- PASS: TestLoad/-proxy.noroutestatus_555 (0.00s)
    --- PASS: TestLoad/-proxy.shutdownwait_5ms (0.00s)
    --- PASS: TestLoad/-proxy.responseheadertimeout_5ms (0.00s)
    --- PASS: TestLoad/-proxy.keepalivetimeout_5ms (0.00s)
    --- PASS: TestLoad/-proxy.dialtimeout_5ms (0.00s)
    --- PASS: TestLoad/-proxy.readtimeout_5ms (0.00s)
    --- PASS: TestLoad/-proxy.writetimeout_5ms (0.00s)
    --- PASS: TestLoad/-proxy.flushinterval_5ms (0.00s)
    --- PASS: TestLoad/-proxy.globalflushinterval_5ms (0.00s)
    --- PASS: TestLoad/-proxy.maxconn_555 (0.00s)
    --- PASS: TestLoad/-proxy.header.clientip_value (0.00s)
    --- PASS: TestLoad/-proxy.header.tls_value (0.00s)
    --- PASS: TestLoad/-proxy.header.tls.value_value (0.00s)
    --- PASS: TestLoad/-proxy.header.requestid_value (0.00s)
    --- PASS: TestLoad/-proxy.header.sts.maxage_31536000 (0.00s)
    --- PASS: TestLoad/-proxy.header.sts.subdomains_true (0.00s)
    --- PASS: TestLoad/-proxy.header.sts.preload_true (0.00s)
    --- PASS: TestLoad/-proxy.gzip.contenttype_^text/.*$ (0.00s)
    --- PASS: TestLoad/-proxy.gzip.contenttype_^(text/.*|application/(javascript|json|font-woff|xml)|.*\+(json|xml))(;.*)?$ (0.00s)
    --- PASS: TestLoad/-proxy.log.routes_foobar (0.00s)
    --- PASS: TestLoad/-registry.backend_value (0.00s)
    --- PASS: TestLoad/-registry.timeout_5s (0.00s)
    --- PASS: TestLoad/-registry.retry_500ms (0.00s)
    --- PASS: TestLoad/-registry.file.path_value (0.00s)
    --- PASS: TestLoad/-registry.file.noroutehtmlpath_value (0.00s)
    --- PASS: TestLoad/-registry.static.routes_value (0.00s)
    --- PASS: TestLoad/-registry.static.noroutehtml_value (0.00s)
    --- PASS: TestLoad/-registry.consul.addr_1.2.3.4:5555 (0.00s)
    --- PASS: TestLoad/-registry.consul.addr_http://1.2.3.4:5555/ (0.00s)
    --- PASS: TestLoad/-registry.consul.addr_https://1.2.3.4:5555/ (0.00s)
    --- PASS: TestLoad/-registry.consul.addr_HTTPS://1.2.3.4:5555/ (0.00s)
    --- PASS: TestLoad/-registry.consul.token_some-token (0.00s)
    --- PASS: TestLoad/-registry.consul.kvpath_/some/path (0.00s)
    --- PASS: TestLoad/-registry.consul.noroutehtmlpath_/some/path (0.00s)
    --- PASS: TestLoad/-registry.consul.tagprefix_p- (0.00s)
    --- PASS: TestLoad/-registry.consul.register.enabled=false (0.00s)
    --- PASS: TestLoad/-registry.consul.register.addr_1.2.3.4:5555 (0.00s)
    --- PASS: TestLoad/-registry.consul.register.name_fab (0.00s)
    --- PASS: TestLoad/-registry.consul.register.checkTLSSkipVerify=true (0.00s)
    --- PASS: TestLoad/-registry.consul.register.tags_a,_b,_c,_ (0.00s)
    --- PASS: TestLoad/-registry.consul.register.checkInterval_5ms (0.00s)
    --- PASS: TestLoad/-registry.consul.register.checkTimeout_5ms (0.00s)
    --- PASS: TestLoad/-registry.consul.service.status_a,_b,_ (0.00s)
    --- PASS: TestLoad/-log.access.format_foobar (0.00s)
    --- PASS: TestLoad/-log.access.target_foobar (0.00s)
    --- PASS: TestLoad/-log.routes.format_foobar (0.00s)
    --- PASS: TestLoad/-log.level_foobar (0.00s)
    --- PASS: TestLoad/-metrics.target_some-target (0.00s)
    --- PASS: TestLoad/-metrics.prefix_some-prefix (0.00s)
    --- PASS: TestLoad/-metrics.names_some_names (0.00s)
    --- PASS: TestLoad/-metrics.interval_5ms (0.00s)
    --- PASS: TestLoad/-metrics.timeout_5s (0.00s)
    --- PASS: TestLoad/-metrics.retry_500ms (0.00s)
    --- PASS: TestLoad/-metrics.graphite.addr_1.2.3.4:5555 (0.00s)
    --- PASS: TestLoad/-metrics.statsd.addr_1.2.3.4:5555 (0.00s)
    --- PASS: TestLoad/-metrics.circonus.apiapp_value (0.00s)
    --- PASS: TestLoad/-metrics.circonus.apikey_value (0.00s)
    --- PASS: TestLoad/-metrics.circonus.apiurl_value (0.00s)
    --- PASS: TestLoad/-metrics.circonus.brokerid_value (0.00s)
    --- PASS: TestLoad/-metrics.circonus.checkid_value (0.00s)
    --- PASS: TestLoad/-runtime.gogc_555 (0.00s)
    --- PASS: TestLoad/-runtime.gomaxprocs_555 (0.00s)
    --- PASS: TestLoad/-ui.access_ro (0.00s)
    --- PASS: TestLoad/-ui.access_rw (0.00s)
    --- PASS: TestLoad/-ui.addr_1.2.3.4:5555 (0.00s)
    --- PASS: TestLoad/-ui.addr_:9998;cs=ui_-proxy.cs_cs=ui;type=file;cert=value (0.00s)
    --- PASS: TestLoad/-ui.color_value (0.00s)
    --- PASS: TestLoad/-ui.title_value (0.00s)
    --- PASS: TestLoad/ignore_aws.apigw.cert.cn (0.00s)
    --- PASS: TestLoad/config_from_environ (0.00s)
    --- PASS: TestLoad/config_from_url (0.00s)
    --- PASS: TestLoad/config_from_file_I (0.00s)
    --- PASS: TestLoad/config_from_file_II (0.00s)
    --- PASS: TestLoad/config_from_file_III (0.00s)
    --- PASS: TestLoad/config_from_file_IV (0.00s)
    --- PASS: TestLoad/cmdline_over_config_file_I (0.00s)
    --- PASS: TestLoad/cmdline_over_config_file_II (0.00s)
    --- PASS: TestLoad/environ_over_config_file (0.00s)
    --- PASS: TestLoad/cmdline_over_environ (0.00s)
    --- PASS: TestLoad/-proxy.addr_with_unknown_cert_source_'foo' (0.00s)
    --- PASS: TestLoad/-proxy.addr_with_unknown_proto_'foo' (0.00s)
    --- PASS: TestLoad/-proxy.addr_with_proto_'https'_requires_cert_source (0.00s)
    --- PASS: TestLoad/-proxy.addr_with_cert_source_and_proto_'http'_requires_proto_'https'_or_'tcp' (0.00s)
    --- PASS: TestLoad/-proxy.addr_with_cert_source_and_proto_'tcp+sni'_requires_proto_'https'_or_'tcp' (0.00s)
    --- PASS: TestLoad/-proxy.noroutestatus_too_small (0.00s)
    --- PASS: TestLoad/-proxy.noroutestatus_too_big (0.00s)
    --- PASS: TestLoad/-cfg (0.00s)
    --- PASS: TestLoad/-cfg='' (0.00s)
    --- PASS: TestLoad/-cfg="" (0.00s)
PASS
ok  	github.com/fabiolb/fabio/config	(cached)
?   	github.com/fabiolb/fabio/demo/server	[no test files]
?   	github.com/fabiolb/fabio/demo/wsclient	[no test files]
=== RUN   TestExit
--- PASS: TestExit (0.00s)
PASS
ok  	github.com/fabiolb/fabio/exit	(cached)
=== RUN   TestLevelWriter
=== RUN   TestLevelWriter/TRACE
=== RUN   TestLevelWriter/DEBUG
=== RUN   TestLevelWriter/INFO
=== RUN   TestLevelWriter/WARN
=== RUN   TestLevelWriter/ERROR
=== RUN   TestLevelWriter/FATAL
--- PASS: TestLevelWriter (0.00s)
    --- PASS: TestLevelWriter/TRACE (0.00s)
    --- PASS: TestLevelWriter/DEBUG (0.00s)
    --- PASS: TestLevelWriter/INFO (0.00s)
    --- PASS: TestLevelWriter/WARN (0.00s)
    --- PASS: TestLevelWriter/ERROR (0.00s)
    --- PASS: TestLevelWriter/FATAL (0.00s)
=== RUN   TestParse
--- PASS: TestParse (0.00s)
=== RUN   TestLog
=== RUN   TestLog/$header.Referer
=== RUN   TestLog/$header.X-Forwarded-For
=== RUN   TestLog/$header.user-agent
=== RUN   TestLog/$remote_addr
=== RUN   TestLog/$remote_host
=== RUN   TestLog/$remote_port
=== RUN   TestLog/$request
=== RUN   TestLog/$request_args
=== RUN   TestLog/$request_host
=== RUN   TestLog/$request_method
=== RUN   TestLog/$request_proto
=== RUN   TestLog/$request_scheme
=== RUN   TestLog/$request_uri
=== RUN   TestLog/$request_url
=== RUN   TestLog/$response_body_size
=== RUN   TestLog/$response_status
=== RUN   TestLog/$response_time_ms
=== RUN   TestLog/$response_time_ns
=== RUN   TestLog/$response_time_us
=== RUN   TestLog/$time_common
=== RUN   TestLog/$time_rfc3339
=== RUN   TestLog/$time_rfc3339_ms
=== RUN   TestLog/$time_rfc3339_ns
=== RUN   TestLog/$time_rfc3339_us
=== RUN   TestLog/$time_unix_ms
=== RUN   TestLog/$time_unix_ns
=== RUN   TestLog/$time_unix_us
=== RUN   TestLog/$upstream_addr
=== RUN   TestLog/$upstream_host
=== RUN   TestLog/$upstream_port
=== RUN   TestLog/$upstream_request_scheme
=== RUN   TestLog/$upstream_request_uri
=== RUN   TestLog/$upstream_request_url
=== RUN   TestLog/$upstream_service
--- PASS: TestLog (0.00s)
    --- PASS: TestLog/$header.Referer (0.00s)
    --- PASS: TestLog/$header.X-Forwarded-For (0.00s)
    --- PASS: TestLog/$header.user-agent (0.00s)
    --- PASS: TestLog/$remote_addr (0.00s)
    --- PASS: TestLog/$remote_host (0.00s)
    --- PASS: TestLog/$remote_port (0.00s)
    --- PASS: TestLog/$request (0.00s)
    --- PASS: TestLog/$request_args (0.00s)
    --- PASS: TestLog/$request_host (0.00s)
    --- PASS: TestLog/$request_method (0.00s)
    --- PASS: TestLog/$request_proto (0.00s)
    --- PASS: TestLog/$request_scheme (0.00s)
    --- PASS: TestLog/$request_uri (0.00s)
    --- PASS: TestLog/$request_url (0.00s)
    --- PASS: TestLog/$response_body_size (0.00s)
    --- PASS: TestLog/$response_status (0.00s)
    --- PASS: TestLog/$response_time_ms (0.00s)
    --- PASS: TestLog/$response_time_ns (0.00s)
    --- PASS: TestLog/$response_time_us (0.00s)
    --- PASS: TestLog/$time_common (0.00s)
    --- PASS: TestLog/$time_rfc3339 (0.00s)
    --- PASS: TestLog/$time_rfc3339_ms (0.00s)
    --- PASS: TestLog/$time_rfc3339_ns (0.00s)
    --- PASS: TestLog/$time_rfc3339_us (0.00s)
    --- PASS: TestLog/$time_unix_ms (0.00s)
    --- PASS: TestLog/$time_unix_ns (0.00s)
    --- PASS: TestLog/$time_unix_us (0.00s)
    --- PASS: TestLog/$upstream_addr (0.00s)
    --- PASS: TestLog/$upstream_host (0.00s)
    --- PASS: TestLog/$upstream_port (0.00s)
    --- PASS: TestLog/$upstream_request_scheme (0.00s)
    --- PASS: TestLog/$upstream_request_uri (0.00s)
    --- PASS: TestLog/$upstream_request_url (0.00s)
    --- PASS: TestLog/$upstream_service (0.00s)
=== RUN   TestAtoi
--- PASS: TestAtoi (0.00s)
PASS
ok  	github.com/fabiolb/fabio/logger	(cached)
=== RUN   TestRegistry
--- PASS: TestRegistry (0.00s)
    circonus_test.go:12: Testing registry interface
    circonus_test.go:16: 	Names()
    circonus_test.go:22: 	Unregister()
    circonus_test.go:25: 	UnregisterAll()
    circonus_test.go:28: 	GetTimer()
=== RUN   TestTimer
--- PASS: TestTimer (0.00s)
    circonus_test.go:36: Testing timer interface
    circonus_test.go:40: 	Percentile()
    circonus_test.go:46: 	Rate1()
=== RUN   TestAll
--- SKIP: TestAll (0.00s)
    circonus_test.go:57: skipping test; $CIRCONUS_API_TOKEN not set
=== RUN   TestParsePrefix
--- PASS: TestParsePrefix (0.00s)
=== RUN   TestTargetName
--- PASS: TestTargetName (0.00s)
PASS
ok  	github.com/fabiolb/fabio/metrics	(cached)
=== RUN   TestStoreSetGet
--- PASS: TestStoreSetGet (0.00s)
PASS
ok  	github.com/fabiolb/fabio/noroute	(cached)
=== RUN   TestAddHeaders
=== RUN   TestAddHeaders/error
=== RUN   TestAddHeaders/http_request
=== RUN   TestAddHeaders/https_request
=== RUN   TestAddHeaders/ws_request
=== RUN   TestAddHeaders/wss_request
=== RUN   TestAddHeaders/set_client_ip_header
=== RUN   TestAddHeaders/set_Forwarded_with_localIP
=== RUN   TestAddHeaders/set_Forwarded_with_localIP_for_https
=== RUN   TestAddHeaders/set_httpproto,_tlsver_and_tlscipher_on_Forwarded_for_https
=== RUN   TestAddHeaders/set_httpproto_on_Forwarded
=== RUN   TestAddHeaders/extend_Forwarded_with_localIP
=== RUN   TestAddHeaders/set_tls_header
=== RUN   TestAddHeaders/set_tls_header_with_value
=== RUN   TestAddHeaders/overwrite_tls_header_for_https,_when_set
=== RUN   TestAddHeaders/drop_tls_header_for_http,_when_set
=== RUN   TestAddHeaders/do_not_overwrite_X-Forwarded-Proto,_if_present
=== RUN   TestAddHeaders/set_scheme_from_X-Forwarded-Proto,_if_present_and_Forwarded_is_missing
=== RUN   TestAddHeaders/set_scheme_from_Forwarded,_if_present_and_X-Forwarded-Proto_is_missing
=== RUN   TestAddHeaders/do_not_modify_scheme_when_both_Forwarded_and_X-Forwarded-Proto_are_present
=== RUN   TestAddHeaders/set_X-Forwarded-Port_from_Host
=== RUN   TestAddHeaders/set_X-Forwarded-Port_from_Host_for_https
=== RUN   TestAddHeaders/do_not_overwrite_X-Forwarded-Port_header,_if_present
=== RUN   TestAddHeaders/set_X-Forwarded-Host_from_Host
=== RUN   TestAddHeaders/do_not_overwrite_X-Forwarded-Host,_if_present
=== RUN   TestAddHeaders/do_not_overwrite_X-Real-Ip,_if_present
--- PASS: TestAddHeaders (0.00s)
    --- PASS: TestAddHeaders/error (0.00s)
    --- PASS: TestAddHeaders/http_request (0.00s)
    --- PASS: TestAddHeaders/https_request (0.00s)
    --- PASS: TestAddHeaders/ws_request (0.00s)
    --- PASS: TestAddHeaders/wss_request (0.00s)
    --- PASS: TestAddHeaders/set_client_ip_header (0.00s)
    --- PASS: TestAddHeaders/set_Forwarded_with_localIP (0.00s)
    --- PASS: TestAddHeaders/set_Forwarded_with_localIP_for_https (0.00s)
    --- PASS: TestAddHeaders/set_httpproto,_tlsver_and_tlscipher_on_Forwarded_for_https (0.00s)
    --- PASS: TestAddHeaders/set_httpproto_on_Forwarded (0.00s)
    --- PASS: TestAddHeaders/extend_Forwarded_with_localIP (0.00s)
    --- PASS: TestAddHeaders/set_tls_header (0.00s)
    --- PASS: TestAddHeaders/set_tls_header_with_value (0.00s)
    --- PASS: TestAddHeaders/overwrite_tls_header_for_https,_when_set (0.00s)
    --- PASS: TestAddHeaders/drop_tls_header_for_http,_when_set (0.00s)
    --- PASS: TestAddHeaders/do_not_overwrite_X-Forwarded-Proto,_if_present (0.00s)
    --- PASS: TestAddHeaders/set_scheme_from_X-Forwarded-Proto,_if_present_and_Forwarded_is_missing (0.00s)
    --- PASS: TestAddHeaders/set_scheme_from_Forwarded,_if_present_and_X-Forwarded-Proto_is_missing (0.00s)
    --- PASS: TestAddHeaders/do_not_modify_scheme_when_both_Forwarded_and_X-Forwarded-Proto_are_present (0.00s)
    --- PASS: TestAddHeaders/set_X-Forwarded-Port_from_Host (0.00s)
    --- PASS: TestAddHeaders/set_X-Forwarded-Port_from_Host_for_https (0.00s)
    --- PASS: TestAddHeaders/do_not_overwrite_X-Forwarded-Port_header,_if_present (0.00s)
    --- PASS: TestAddHeaders/set_X-Forwarded-Host_from_Host (0.00s)
    --- PASS: TestAddHeaders/do_not_overwrite_X-Forwarded-Host,_if_present (0.00s)
    --- PASS: TestAddHeaders/do_not_overwrite_X-Real-Ip,_if_present (0.00s)
=== RUN   TestAddResponseHeaders
=== RUN   TestAddResponseHeaders/set_Strict-Transport-Security_for_TLS,_if_MaxAge_greater_than_0
=== RUN   TestAddResponseHeaders/set_Strict-Transport-Security_for_TLS,_if_MaxAge_greater_than_0_with_options
=== RUN   TestAddResponseHeaders/skip_Strict-Transport-Security_for_non-TLS,_if_MaxAge_greater_than_0
--- PASS: TestAddResponseHeaders (0.00s)
    --- PASS: TestAddResponseHeaders/set_Strict-Transport-Security_for_TLS,_if_MaxAge_greater_than_0 (0.00s)
    --- PASS: TestAddResponseHeaders/set_Strict-Transport-Security_for_TLS,_if_MaxAge_greater_than_0_with_options (0.00s)
    --- PASS: TestAddResponseHeaders/skip_Strict-Transport-Security_for_non-TLS,_if_MaxAge_greater_than_0 (0.00s)
=== RUN   TestLocalPort
--- PASS: TestLocalPort (0.00s)
=== RUN   TestUint16Base16
--- PASS: TestUint16Base16 (0.00s)
=== RUN   TestProxyProducesCorrectXForwardedSomethingHeader
--- PASS: TestProxyProducesCorrectXForwardedSomethingHeader (0.00s)
=== RUN   TestProxyRequestIDHeader
--- PASS: TestProxyRequestIDHeader (0.00s)
=== RUN   TestProxySTSHeader
--- PASS: TestProxySTSHeader (0.00s)
=== RUN   TestProxyChecksHeaderForAccessRules
2018/11/15 13:23:44 [INFO] route rules denied access from 1.2.3.4 to http://127.0.0.1:61204
--- PASS: TestProxyChecksHeaderForAccessRules (0.00s)
=== RUN   TestProxyNoRouteHTML
--- PASS: TestProxyNoRouteHTML (0.00s)
=== RUN   TestProxyNoRouteStatus
--- PASS: TestProxyNoRouteStatus (0.00s)
=== RUN   TestProxyStripsPath
--- PASS: TestProxyStripsPath (0.00s)
=== RUN   TestProxyHost
=== RUN   TestProxyHost/host_eq_dst
=== RUN   TestProxyHost/no_host
=== RUN   TestProxyHost/host_is_custom
--- PASS: TestProxyHost (0.00s)
    --- PASS: TestProxyHost/host_eq_dst (0.00s)
    --- PASS: TestProxyHost/no_host (0.00s)
    --- PASS: TestProxyHost/host_is_custom (0.00s)
=== RUN   TestHostRedirect
--- PASS: TestHostRedirect (0.00s)
=== RUN   TestPathRedirect
--- PASS: TestPathRedirect (0.00s)
=== RUN   TestProxyLogOutput
=== RUN   TestProxyLogOutput/uncompressed_response
=== RUN   TestProxyLogOutput/compression_enabled_but_no_match
=== RUN   TestProxyLogOutput/compression_enabled_and_active
--- PASS: TestProxyLogOutput (0.00s)
    --- PASS: TestProxyLogOutput/uncompressed_response (0.00s)
    --- PASS: TestProxyLogOutput/compression_enabled_but_no_match (0.00s)
    --- PASS: TestProxyLogOutput/compression_enabled_and_active (0.00s)
=== RUN   TestProxyHTTPSUpstream
--- PASS: TestProxyHTTPSUpstream (0.00s)
=== RUN   TestProxyHTTPSUpstreamSkipVerify
--- PASS: TestProxyHTTPSUpstreamSkipVerify (0.00s)
=== RUN   TestProxyGzipHandler
=== RUN   TestProxyGzipHandler/plain_body_-_compressed_response
=== RUN   TestProxyGzipHandler/plain_body_-_compressed_response_(with_charset)
=== RUN   TestProxyGzipHandler/compressed_body_-_compressed_response
=== RUN   TestProxyGzipHandler/plain_body_-_plain_response
=== RUN   TestProxyGzipHandler/compressed_body_-_plain_response
=== RUN   TestProxyGzipHandler/plain_body_-_plain_response_(no_match)
--- PASS: TestProxyGzipHandler (0.01s)
    --- PASS: TestProxyGzipHandler/plain_body_-_compressed_response (0.00s)
    --- PASS: TestProxyGzipHandler/plain_body_-_compressed_response_(with_charset) (0.00s)
    --- PASS: TestProxyGzipHandler/compressed_body_-_compressed_response (0.00s)
    --- PASS: TestProxyGzipHandler/plain_body_-_plain_response (0.00s)
    --- PASS: TestProxyGzipHandler/compressed_body_-_plain_response (0.00s)
    --- PASS: TestProxyGzipHandler/plain_body_-_plain_response_(no_match) (0.00s)
=== RUN   TestGracefulShutdown
--- PASS: TestGracefulShutdown (0.10s)
    listen_test.go:42: ListenAndServeHTTP:  http: Server closed
=== RUN   TestTCPProxy
--- PASS: TestTCPProxy (0.10s)
    tcp_integration_test.go:52: ListenAndServeTCP:  accept tcp 127.0.0.1:57778: use of closed network connection
=== RUN   TestTCPProxyWithTLS
2018/11/15 13:23:45 [INFO] cert: Store has certificates for ["example.com"]
--- PASS: TestTCPProxyWithTLS (0.26s)
=== RUN   TestTCPSNIProxy
--- PASS: TestTCPSNIProxy (0.00s)
    tcp_integration_test.go:159: ListenAndServeTCP:  accept tcp 127.0.0.1:57778: use of closed network connection
=== RUN   TestProxyWSUpstream
=== RUN   TestProxyWSUpstream/ws-ws_direct
=== RUN   TestProxyWSUpstream/wss-wss_direct
=== RUN   TestProxyWSUpstream/ws-ws_via_http_proxy
=== RUN   TestProxyWSUpstream/wss-ws_via_https_proxy
=== RUN   TestProxyWSUpstream/ws-wss_via_http_proxy
=== RUN   TestProxyWSUpstream/wss-wss_via_https_proxy
=== RUN   TestProxyWSUpstream/ws-wss_tlsskipverify=true_via_http_proxy
=== RUN   TestProxyWSUpstream/wss-wss_tlsskipverify=true_via_https_proxy
=== RUN   TestProxyWSUpstream/ws-ws_via_http_proxy_with_gzip
=== RUN   TestProxyWSUpstream/ws-ws_via_http_proxy_with_strip
--- PASS: TestProxyWSUpstream (0.02s)
    ws_integration_test.go:28: Started WS server:  http://127.0.0.1:61283
    ws_integration_test.go:34: Started WSS server:  https://127.0.0.1:61284
    ws_integration_test.go:53: Started HTTP proxy:  http://127.0.0.1:61285
    ws_integration_test.go:67: Started HTTPS proxy:  https://127.0.0.1:61286
    --- PASS: TestProxyWSUpstream/ws-ws_direct (0.00s)
    --- PASS: TestProxyWSUpstream/wss-wss_direct (0.00s)
    --- PASS: TestProxyWSUpstream/ws-ws_via_http_proxy (0.00s)
    --- PASS: TestProxyWSUpstream/wss-ws_via_https_proxy (0.00s)
    --- PASS: TestProxyWSUpstream/ws-wss_via_http_proxy (0.00s)
    --- PASS: TestProxyWSUpstream/wss-wss_via_https_proxy (0.00s)
    --- PASS: TestProxyWSUpstream/ws-wss_tlsskipverify=true_via_http_proxy (0.00s)
    --- PASS: TestProxyWSUpstream/wss-wss_tlsskipverify=true_via_https_proxy (0.00s)
    --- PASS: TestProxyWSUpstream/ws-ws_via_http_proxy_with_gzip (0.00s)
    --- PASS: TestProxyWSUpstream/ws-ws_via_http_proxy_with_strip (0.00s)
PASS
ok  	github.com/fabiolb/fabio/proxy	(cached)
=== RUN   TestContentTypes
=== RUN   TestContentTypes/text/foo
=== RUN   TestContentTypes/text/foo;_charset=UTF-8
=== RUN   TestContentTypes/text/plain
=== RUN   TestContentTypes/text/plain;_charset=UTF-8
=== RUN   TestContentTypes/application/json
=== RUN   TestContentTypes/application/json;_charset=UTF-8
=== RUN   TestContentTypes/application/javascript
=== RUN   TestContentTypes/application/javascript;_charset=UTF-8
=== RUN   TestContentTypes/application/font-woff
=== RUN   TestContentTypes/application/font-woff;_charset=UTF-8
=== RUN   TestContentTypes/application/xml
=== RUN   TestContentTypes/application/xml;_charset=UTF-8
=== RUN   TestContentTypes/vendor/vendor.foo+json
=== RUN   TestContentTypes/vendor/vendor.foo+json;_charset=UTF-8
=== RUN   TestContentTypes/vendor/vendor.foo+xml
=== RUN   TestContentTypes/vendor/vendor.foo+xml;_charset=UTF-8
--- PASS: TestContentTypes (0.00s)
    --- PASS: TestContentTypes/text/foo (0.00s)
    --- PASS: TestContentTypes/text/foo;_charset=UTF-8 (0.00s)
    --- PASS: TestContentTypes/text/plain (0.00s)
    --- PASS: TestContentTypes/text/plain;_charset=UTF-8 (0.00s)
    --- PASS: TestContentTypes/application/json (0.00s)
    --- PASS: TestContentTypes/application/json;_charset=UTF-8 (0.00s)
    --- PASS: TestContentTypes/application/javascript (0.00s)
    --- PASS: TestContentTypes/application/javascript;_charset=UTF-8 (0.00s)
    --- PASS: TestContentTypes/application/font-woff (0.00s)
    --- PASS: TestContentTypes/application/font-woff;_charset=UTF-8 (0.00s)
    --- PASS: TestContentTypes/application/xml (0.00s)
    --- PASS: TestContentTypes/application/xml;_charset=UTF-8 (0.00s)
    --- PASS: TestContentTypes/vendor/vendor.foo+json (0.00s)
    --- PASS: TestContentTypes/vendor/vendor.foo+json;_charset=UTF-8 (0.00s)
    --- PASS: TestContentTypes/vendor/vendor.foo+xml (0.00s)
    --- PASS: TestContentTypes/vendor/vendor.foo+xml;_charset=UTF-8 (0.00s)
=== RUN   Test_GzipHandler_CompressableType
--- PASS: Test_GzipHandler_CompressableType (0.00s)
=== RUN   Test_GzipHandler_NotCompressingTwice
--- PASS: Test_GzipHandler_NotCompressingTwice (0.00s)
=== RUN   Test_GzipHandler_CompressableType_NoAccept
--- PASS: Test_GzipHandler_CompressableType_NoAccept (0.00s)
=== RUN   Test_GzipHandler_NonCompressableType
--- PASS: Test_GzipHandler_NonCompressableType (0.00s)
PASS
ok  	github.com/fabiolb/fabio/proxy/gzip	(cached)
?   	github.com/fabiolb/fabio/proxy/internal	[no test files]
=== RUN   TestClientHelloBufferSize
=== RUN   TestClientHelloBufferSize/valid_data
=== RUN   TestClientHelloBufferSize/not_enough_data
=== RUN   TestClientHelloBufferSize/not_a_TLS_record
=== RUN   TestClientHelloBufferSize/TLS_record_too_large
=== RUN   TestClientHelloBufferSize/TLS_record_length_zero
=== RUN   TestClientHelloBufferSize/Not_a_client_hello
=== RUN   TestClientHelloBufferSize/Invalid_handshake_message_record_length
=== RUN   TestClientHelloBufferSize/Fragmentation_(handshake_message_larger_than_record)
--- PASS: TestClientHelloBufferSize (0.00s)
    --- PASS: TestClientHelloBufferSize/valid_data (0.00s)
    --- PASS: TestClientHelloBufferSize/not_enough_data (0.00s)
    --- PASS: TestClientHelloBufferSize/not_a_TLS_record (0.00s)
    --- PASS: TestClientHelloBufferSize/TLS_record_too_large (0.00s)
    --- PASS: TestClientHelloBufferSize/TLS_record_length_zero (0.00s)
    --- PASS: TestClientHelloBufferSize/Not_a_client_hello (0.00s)
    --- PASS: TestClientHelloBufferSize/Invalid_handshake_message_record_length (0.00s)
    --- PASS: TestClientHelloBufferSize/Fragmentation_(handshake_message_larger_than_record) (0.00s)
=== RUN   TestReadServerName
=== RUN   TestReadServerName/valid_client_hello_with_server_name
=== RUN   TestReadServerName/valid_client_hello_but_no_server_name_extension
=== RUN   TestReadServerName/invalid_client_hello
--- PASS: TestReadServerName (0.00s)
    --- PASS: TestReadServerName/valid_client_hello_with_server_name (0.00s)
    --- PASS: TestReadServerName/valid_client_hello_but_no_server_name_extension (0.00s)
    --- PASS: TestReadServerName/invalid_client_hello (0.00s)
PASS
ok  	github.com/fabiolb/fabio/proxy/tcp	(cached)
?   	github.com/fabiolb/fabio/proxy/tcp/tcptest	[no test files]
?   	github.com/fabiolb/fabio/registry	[no test files]
=== RUN   TestParseTag
2018/11/15 13:23:45 [WARN] consul: Invalid p- tag "" - You need to have a trailing slash!
2018/11/15 13:23:45 [WARN] consul: Invalid p- tag "" - You need to have a trailing slash!
--- PASS: TestParseTag (0.00s)
=== RUN   TestPassingServices
=== RUN   TestPassingServices/expect_no_passing_checks_if_checks_array_is_nil
=== RUN   TestPassingServices/expect_no_passing_checks_if_checks_array_is_empty
=== RUN   TestPassingServices/expect_check_to_pass_if_it_has_a_matching_status
=== RUN   TestPassingServices/expect_all_checks_to_pass_if_they_have_a_matching_status
=== RUN   TestPassingServices/expect_that_internal_consul_checks_are_filtered_out
=== RUN   TestPassingServices/expect_no_passing_checks_if_consul_agent_is_unhealthy
2018/11/15 13:23:45 [DEBUG] consul: Skipping service "" since agent on node "node" is down: 
=== RUN   TestPassingServices/expect_no_passing_checks_if_node_is_in_maintenance_mode
2018/11/15 13:23:45 [DEBUG] consul: Skipping service "" since node "node" is in maintenance mode: 
=== RUN   TestPassingServices/expect_no_passing_check_if_corresponding_service_is_in_maintenance_mode
2018/11/15 13:23:45 [DEBUG] consul: Skipping service "abc-1" since it is in maintenance mode: 
2018/11/15 13:23:45 [DEBUG] consul: Skipping service "abc-1" since it is in maintenance mode: 
=== RUN   TestPassingServices/expect_no_passing_check_if_node_and_service_are_in_maintenance_mode
2018/11/15 13:23:45 [DEBUG] consul: Skipping service "" since node "node" is in maintenance mode: 
2018/11/15 13:23:45 [DEBUG] consul: Skipping service "" since node "node" is in maintenance mode: 
=== RUN   TestPassingServices/expect_no_passing_check_if_agent_is_unhealthy_or_node_and_service_are_in_maintenance_mode
2018/11/15 13:23:45 [DEBUG] consul: Skipping service "" since agent on node "node" is down: 
2018/11/15 13:23:45 [DEBUG] consul: Skipping service "" since agent on node "node" is down: 
=== RUN   TestPassingServices/expect_check_of_service_which_is_not_in_maintenance_mode_to_pass_if_another_instance_of_same_service_is_in_maintenance_mode
=== RUN   TestPassingServices/expect_that_no_checks_of_a_service_which_is_in_maintenance_mode_are_returned_even_if_it_has_a_passing_check
2018/11/15 13:23:45 [DEBUG] consul: Skipping service "abc-1" since it is in maintenance mode: 
2018/11/15 13:23:45 [DEBUG] consul: Skipping service "abc-1" since it is in maintenance mode: 
=== RUN   TestPassingServices/expect_that_a_service's_failing_check_does_not_affect_a_healthy_instance_of_same_service_running_on_different_node
=== RUN   TestPassingServices/service_in_maintenance_mode_does_not_affect_healthy_service_running_on_different_node
=== RUN   TestPassingServices/expect_that_internal_consul_check_and_failing_check_are_not_returned
=== RUN   TestPassingServices/expect_that_internal_consul_check_is_filtered_out_and_check_with_warning_is_passing
=== RUN   TestPassingServices/expect_that_warning_and_passing_non-internal_checks_are_returned
=== RUN   TestPassingServices/expect_that_warning_und_passing_non-internal_checks_are_returned
=== RUN   TestPassingServices/in_non-strict_mode,_expect_that_checks_which_belong_to_same_service_are_passing,_if_at_least_one_of_them_is_passing
=== RUN   TestPassingServices/in_strict_mode,_expect_that_no_checks_which_belong_to_same_service_are_passing,_if_not_all_of_them_are_passing
=== RUN   TestPassingServices/in_strict_mode,_expect_that_a_failing_check_of_one_service_does_not_affect_a_different_service's_passing_check
=== RUN   TestPassingServices/in_strict_mode,_expect_a_check_to_pass_if_all_of_the_other_checks_that_belong_to_the_same_service_are_passing
--- PASS: TestPassingServices (0.00s)
    --- PASS: TestPassingServices/expect_no_passing_checks_if_checks_array_is_nil (0.00s)
    --- PASS: TestPassingServices/expect_no_passing_checks_if_checks_array_is_empty (0.00s)
    --- PASS: TestPassingServices/expect_check_to_pass_if_it_has_a_matching_status (0.00s)
    --- PASS: TestPassingServices/expect_all_checks_to_pass_if_they_have_a_matching_status (0.00s)
    --- PASS: TestPassingServices/expect_that_internal_consul_checks_are_filtered_out (0.00s)
    --- PASS: TestPassingServices/expect_no_passing_checks_if_consul_agent_is_unhealthy (0.00s)
    --- PASS: TestPassingServices/expect_no_passing_checks_if_node_is_in_maintenance_mode (0.00s)
    --- PASS: TestPassingServices/expect_no_passing_check_if_corresponding_service_is_in_maintenance_mode (0.00s)
    --- PASS: TestPassingServices/expect_no_passing_check_if_node_and_service_are_in_maintenance_mode (0.00s)
    --- PASS: TestPassingServices/expect_no_passing_check_if_agent_is_unhealthy_or_node_and_service_are_in_maintenance_mode (0.00s)
    --- PASS: TestPassingServices/expect_check_of_service_which_is_not_in_maintenance_mode_to_pass_if_another_instance_of_same_service_is_in_maintenance_mode (0.00s)
    --- PASS: TestPassingServices/expect_that_no_checks_of_a_service_which_is_in_maintenance_mode_are_returned_even_if_it_has_a_passing_check (0.00s)
    --- PASS: TestPassingServices/expect_that_a_service's_failing_check_does_not_affect_a_healthy_instance_of_same_service_running_on_different_node (0.00s)
    --- PASS: TestPassingServices/service_in_maintenance_mode_does_not_affect_healthy_service_running_on_different_node (0.00s)
    --- PASS: TestPassingServices/expect_that_internal_consul_check_and_failing_check_are_not_returned (0.00s)
    --- PASS: TestPassingServices/expect_that_internal_consul_check_is_filtered_out_and_check_with_warning_is_passing (0.00s)
    --- PASS: TestPassingServices/expect_that_warning_and_passing_non-internal_checks_are_returned (0.00s)
    --- PASS: TestPassingServices/expect_that_warning_und_passing_non-internal_checks_are_returned (0.00s)
    --- PASS: TestPassingServices/in_non-strict_mode,_expect_that_checks_which_belong_to_same_service_are_passing,_if_at_least_one_of_them_is_passing (0.00s)
    --- PASS: TestPassingServices/in_strict_mode,_expect_that_no_checks_which_belong_to_same_service_are_passing,_if_not_all_of_them_are_passing (0.00s)
    --- PASS: TestPassingServices/in_strict_mode,_expect_that_a_failing_check_of_one_service_does_not_affect_a_different_service's_passing_check (0.00s)
    --- PASS: TestPassingServices/in_strict_mode,_expect_a_check_to_pass_if_all_of_the_other_checks_that_belong_to_the_same_service_are_passing (0.00s)
PASS
ok  	github.com/fabiolb/fabio/registry/consul	(cached)
?   	github.com/fabiolb/fabio/registry/file	[no test files]
?   	github.com/fabiolb/fabio/registry/static	[no test files]
=== RUN   TestAccessRules_parseAccessRule
=== RUN   TestAccessRules_parseAccessRule/valid_ipv4_rule
=== RUN   TestAccessRules_parseAccessRule/valid_ipv6_rule
=== RUN   TestAccessRules_parseAccessRule/invalid_rule_type
=== RUN   TestAccessRules_parseAccessRule/ip_rule_with_incomplete_address
=== RUN   TestAccessRules_parseAccessRule/ip_rule_with_bad_cidr_mask
=== RUN   TestAccessRules_parseAccessRule/single_ipv4_with_no_mask
=== RUN   TestAccessRules_parseAccessRule/single_ipv6_with_no_mask
--- PASS: TestAccessRules_parseAccessRule (0.00s)
    --- PASS: TestAccessRules_parseAccessRule/valid_ipv4_rule (0.00s)
    --- PASS: TestAccessRules_parseAccessRule/valid_ipv6_rule (0.00s)
    --- PASS: TestAccessRules_parseAccessRule/invalid_rule_type (0.00s)
    --- PASS: TestAccessRules_parseAccessRule/ip_rule_with_incomplete_address (0.00s)
    --- PASS: TestAccessRules_parseAccessRule/ip_rule_with_bad_cidr_mask (0.00s)
    --- PASS: TestAccessRules_parseAccessRule/single_ipv4_with_no_mask (0.00s)
    --- PASS: TestAccessRules_parseAccessRule/single_ipv6_with_no_mask (0.00s)
=== RUN   TestAccessRules_denyByIP
=== RUN   TestAccessRules_denyByIP/allow_rule_with_included_ipv4
=== RUN   TestAccessRules_denyByIP/allow_rule_with_exluded_ipv4
2018/11/15 13:23:45 [INFO] route rules denied access from 1.2.3.4 to http://testing.test/
=== RUN   TestAccessRules_denyByIP/deny_rule_with_included_ipv4
2018/11/15 13:23:45 [INFO] route rules denied access from 10.10.0.1 to http://testing.test/
=== RUN   TestAccessRules_denyByIP/deny_rule_with_excluded_ipv4
=== RUN   TestAccessRules_denyByIP/allow_rule_with_included_ipv6
=== RUN   TestAccessRules_denyByIP/allow_rule_with_exluded_ipv6
2018/11/15 13:23:45 [INFO] route rules denied access from 1234:5678::1 to http://testing.test/
=== RUN   TestAccessRules_denyByIP/deny_rule_with_included_ipv6
2018/11/15 13:23:45 [INFO] route rules denied access from 1234:dead:beef:cafe::5678 to http://testing.test/
=== RUN   TestAccessRules_denyByIP/deny_rule_with_excluded_ipv6
--- PASS: TestAccessRules_denyByIP (0.00s)
    --- PASS: TestAccessRules_denyByIP/allow_rule_with_included_ipv4 (0.00s)
    --- PASS: TestAccessRules_denyByIP/allow_rule_with_exluded_ipv4 (0.00s)
    --- PASS: TestAccessRules_denyByIP/deny_rule_with_included_ipv4 (0.00s)
    --- PASS: TestAccessRules_denyByIP/deny_rule_with_excluded_ipv4 (0.00s)
    --- PASS: TestAccessRules_denyByIP/allow_rule_with_included_ipv6 (0.00s)
    --- PASS: TestAccessRules_denyByIP/allow_rule_with_exluded_ipv6 (0.00s)
    --- PASS: TestAccessRules_denyByIP/deny_rule_with_included_ipv6 (0.00s)
    --- PASS: TestAccessRules_denyByIP/deny_rule_with_excluded_ipv6 (0.00s)
=== RUN   TestAccessRules_AccessDeniedHTTP
=== RUN   TestAccessRules_AccessDeniedHTTP/single_denied_xff_and_allowed_remote_addr
2018/11/15 13:23:45 [INFO] route rules denied access from 1.1.1.2 to http://testing.test/
=== RUN   TestAccessRules_AccessDeniedHTTP/allowed_xff_and_denied_remote_addr
2018/11/15 13:23:45 [INFO] route rules denied access from 1.1.1.2 to http://testing.test/
=== RUN   TestAccessRules_AccessDeniedHTTP/single_allowed_xff_and_allowed_remote_addr
2018/11/15 13:23:45 [INFO] route rules denied access from 1.2.3.4 to http://testing.test/
=== RUN   TestAccessRules_AccessDeniedHTTP/denied_xff_and_denied_remote_addr
2018/11/15 13:23:45 [INFO] route rules denied access from 200.17.18.20 to http://testing.test/
=== RUN   TestAccessRules_AccessDeniedHTTP/all_allowed_xff_and_allowed_remote_addr
--- PASS: TestAccessRules_AccessDeniedHTTP (0.00s)
    --- PASS: TestAccessRules_AccessDeniedHTTP/single_denied_xff_and_allowed_remote_addr (0.00s)
    --- PASS: TestAccessRules_AccessDeniedHTTP/allowed_xff_and_denied_remote_addr (0.00s)
    --- PASS: TestAccessRules_AccessDeniedHTTP/single_allowed_xff_and_allowed_remote_addr (0.00s)
    --- PASS: TestAccessRules_AccessDeniedHTTP/denied_xff_and_denied_remote_addr (0.00s)
    --- PASS: TestAccessRules_AccessDeniedHTTP/all_allowed_xff_and_allowed_remote_addr (0.00s)
=== RUN   TestIssue57
--- PASS: TestIssue57 (0.00s)
=== RUN   TestPrefixMatcher
=== RUN   TestPrefixMatcher//foo
=== RUN   TestPrefixMatcher//fools
=== RUN   TestPrefixMatcher//fo
=== RUN   TestPrefixMatcher//bar
--- PASS: TestPrefixMatcher (0.00s)
    --- PASS: TestPrefixMatcher//foo (0.00s)
    --- PASS: TestPrefixMatcher//fools (0.00s)
    --- PASS: TestPrefixMatcher//fo (0.00s)
    --- PASS: TestPrefixMatcher//bar (0.00s)
=== RUN   TestGlobMatcher
=== RUN   TestGlobMatcher//foo
=== RUN   TestGlobMatcher//fool
=== RUN   TestGlobMatcher//fool#01
=== RUN   TestGlobMatcher//fools
=== RUN   TestGlobMatcher//fools#01
=== RUN   TestGlobMatcher//foo/x/bar
=== RUN   TestGlobMatcher//foo/x/y/z/w/bar
=== RUN   TestGlobMatcher//foo/x/y/z/w/bar#01
=== RUN   TestGlobMatcher//fo
=== RUN   TestGlobMatcher//fools#02
=== RUN   TestGlobMatcher//fo#01
=== RUN   TestGlobMatcher//fools#03
=== RUN   TestGlobMatcher//foo/x/y/z/w/baz
--- PASS: TestGlobMatcher (0.00s)
    --- PASS: TestGlobMatcher//foo (0.00s)
    --- PASS: TestGlobMatcher//fool (0.00s)
    --- PASS: TestGlobMatcher//fool#01 (0.00s)
    --- PASS: TestGlobMatcher//fools (0.00s)
    --- PASS: TestGlobMatcher//fools#01 (0.00s)
    --- PASS: TestGlobMatcher//foo/x/bar (0.00s)
    --- PASS: TestGlobMatcher//foo/x/y/z/w/bar (0.00s)
    --- PASS: TestGlobMatcher//foo/x/y/z/w/bar#01 (0.00s)
    --- PASS: TestGlobMatcher//fo (0.00s)
    --- PASS: TestGlobMatcher//fools#02 (0.00s)
    --- PASS: TestGlobMatcher//fo#01 (0.00s)
    --- PASS: TestGlobMatcher//fools#03 (0.00s)
    --- PASS: TestGlobMatcher//foo/x/y/z/w/baz (0.00s)
=== RUN   TestIPrefixMatcher
=== RUN   TestIPrefixMatcher//foo
=== RUN   TestIPrefixMatcher//foo#01
=== RUN   TestIPrefixMatcher//Fool
=== RUN   TestIPrefixMatcher//foo#02
--- PASS: TestIPrefixMatcher (0.00s)
    --- PASS: TestIPrefixMatcher//foo (0.00s)
    --- PASS: TestIPrefixMatcher//foo#01 (0.00s)
    --- PASS: TestIPrefixMatcher//Fool (0.00s)
    --- PASS: TestIPrefixMatcher//foo#02 (0.00s)
=== RUN   TestParse
=== RUN   TestParse/Parse-FailEmpty
=== RUN   TestParse/Parse-FailNoRoute
=== RUN   TestParse/Parse-FailRouteNoCmd
=== RUN   TestParse/Parse-FailRouteAddNoService
=== RUN   TestParse/Parse-FailRouteAddNoSrc
=== RUN   TestParse/Parse-RouteAddService
=== RUN   TestParse/Parse-RouteAddTCPService
=== RUN   TestParse/Parse-RouteAddServiceWeight
=== RUN   TestParse/Parse-RouteAddServiceWeightTags
=== RUN   TestParse/Parse-RouteAddServiceWeightOpts
=== RUN   TestParse/Parse-RouteAddServiceWeightTagsOpts
=== RUN   TestParse/Parse-RouteAddServiceWeightTagsOptsMoreSpaces
=== RUN   TestParse/Parse-RouteAddTags
=== RUN   TestParse/Parse-RouteAddTagsOpts
=== RUN   TestParse/Parse-RouteAddOpts
=== RUN   TestParse/Parse-RouteDelTags
=== RUN   TestParse/Parse-RouteDelTagsMoreSpaces
=== RUN   TestParse/Parse-RouteDelService
=== RUN   TestParse/Parse-RouteDelServiceTags
=== RUN   TestParse/Parse-RouteDelServiceTagsMoreSpaces
=== RUN   TestParse/Parse-RouteDelServiceSrc
=== RUN   TestParse/Parse-RouteDelTCPServiceSrc
=== RUN   TestParse/Parse-RouteDelServiceSrcDst
=== RUN   TestParse/Parse-RouteDelTCPServiceSrcDst
=== RUN   TestParse/Parse-RouteDelServiceSrcDstMoreSpaces
=== RUN   TestParse/Parse-RouteWeightServiceSrc
=== RUN   TestParse/Parse-RouteWeightServiceSrcTags
=== RUN   TestParse/Parse-RouteWeightServiceSrcTagsMoreSpaces
=== RUN   TestParse/Parse-RouteWeightSrcTags
=== RUN   TestParse/Parse-RouteWeightSrcTagsMoreSpaces
--- PASS: TestParse (0.00s)
    --- PASS: TestParse/Parse-FailEmpty (0.00s)
    --- PASS: TestParse/Parse-FailNoRoute (0.00s)
    --- PASS: TestParse/Parse-FailRouteNoCmd (0.00s)
    --- PASS: TestParse/Parse-FailRouteAddNoService (0.00s)
    --- PASS: TestParse/Parse-FailRouteAddNoSrc (0.00s)
    --- PASS: TestParse/Parse-RouteAddService (0.00s)
    --- PASS: TestParse/Parse-RouteAddTCPService (0.00s)
    --- PASS: TestParse/Parse-RouteAddServiceWeight (0.00s)
    --- PASS: TestParse/Parse-RouteAddServiceWeightTags (0.00s)
    --- PASS: TestParse/Parse-RouteAddServiceWeightOpts (0.00s)
    --- PASS: TestParse/Parse-RouteAddServiceWeightTagsOpts (0.00s)
    --- PASS: TestParse/Parse-RouteAddServiceWeightTagsOptsMoreSpaces (0.00s)
    --- PASS: TestParse/Parse-RouteAddTags (0.00s)
    --- PASS: TestParse/Parse-RouteAddTagsOpts (0.00s)
    --- PASS: TestParse/Parse-RouteAddOpts (0.00s)
    --- PASS: TestParse/Parse-RouteDelTags (0.00s)
    --- PASS: TestParse/Parse-RouteDelTagsMoreSpaces (0.00s)
    --- PASS: TestParse/Parse-RouteDelService (0.00s)
    --- PASS: TestParse/Parse-RouteDelServiceTags (0.00s)
    --- PASS: TestParse/Parse-RouteDelServiceTagsMoreSpaces (0.00s)
    --- PASS: TestParse/Parse-RouteDelServiceSrc (0.00s)
    --- PASS: TestParse/Parse-RouteDelTCPServiceSrc (0.00s)
    --- PASS: TestParse/Parse-RouteDelServiceSrcDst (0.00s)
    --- PASS: TestParse/Parse-RouteDelTCPServiceSrcDst (0.00s)
    --- PASS: TestParse/Parse-RouteDelServiceSrcDstMoreSpaces (0.00s)
    --- PASS: TestParse/Parse-RouteWeightServiceSrc (0.00s)
    --- PASS: TestParse/Parse-RouteWeightServiceSrcTags (0.00s)
    --- PASS: TestParse/Parse-RouteWeightServiceSrcTagsMoreSpaces (0.00s)
    --- PASS: TestParse/Parse-RouteWeightSrcTags (0.00s)
    --- PASS: TestParse/Parse-RouteWeightSrcTagsMoreSpaces (0.00s)
=== RUN   TestParseAliases
=== RUN   TestParseAliases/ParseAliases-FailEmpty
=== RUN   TestParseAliases/ParseAliases-FailNoRoute
=== RUN   TestParseAliases/ParseAliases-FailRouteNoCmd
=== RUN   TestParseAliases/ParseAliases-FailRouteAddNoService
=== RUN   TestParseAliases/ParseAliases-FailRouteAddNoSrc
=== RUN   TestParseAliases/ParseAliases-RouteAddServiceWithoutAlias
=== RUN   TestParseAliases/ParseAliases-RouteAddServiceWithAlias
=== RUN   TestParseAliases/ParseAliases-RouteAddServicesWithoutAliases
=== RUN   TestParseAliases/ParseAliases-RouteAddServicesWithAliases
--- PASS: TestParseAliases (0.00s)
    --- PASS: TestParseAliases/ParseAliases-FailEmpty (0.00s)
    --- PASS: TestParseAliases/ParseAliases-FailNoRoute (0.00s)
    --- PASS: TestParseAliases/ParseAliases-FailRouteNoCmd (0.00s)
    --- PASS: TestParseAliases/ParseAliases-FailRouteAddNoService (0.00s)
    --- PASS: TestParseAliases/ParseAliases-FailRouteAddNoSrc (0.00s)
    --- PASS: TestParseAliases/ParseAliases-RouteAddServiceWithoutAlias (0.00s)
    --- PASS: TestParseAliases/ParseAliases-RouteAddServiceWithAlias (0.00s)
    --- PASS: TestParseAliases/ParseAliases-RouteAddServicesWithoutAliases (0.00s)
    --- PASS: TestParseAliases/ParseAliases-RouteAddServicesWithAliases (0.00s)
=== RUN   TestRndPicker
--- PASS: TestRndPicker (0.00s)
=== RUN   TestRRPicker
--- PASS: TestRRPicker (0.00s)
=== RUN   TestSyncRegistry
2018/11/15 13:23:45 [INFO] Unregistered timer svc-b._./bbb.localhost_5678
--- PASS: TestSyncRegistry (0.00s)
=== RUN   TestTableParse
=== RUN   TestTableParse/1_service,_1_prefix
=== RUN   TestTableParse/1_service,_1_prefix,_3_instances
=== RUN   TestTableParse/1_service,_1_prefix_with_option
=== RUN   TestTableParse/1_service,_1_prefix,_2_instances_with_different_options
=== RUN   TestTableParse/2_service,_1_prefix
=== RUN   TestTableParse/1_service,_2_prefix
=== RUN   TestTableParse/2_service,_2_prefix
=== RUN   TestTableParse/sort_by_more_specific_prefix
=== RUN   TestTableParse/sort_prefix_with_host_before_prefix_without_host
=== RUN   TestTableParse/add_more_specific_prefix_to_existing_host
=== RUN   TestTableParse/delete_route_by_service,_path_and_target
=== RUN   TestTableParse/delete_route_by_service_and_path
=== RUN   TestTableParse/delete_route_by_service
=== RUN   TestTableParse/delete_route_by_service_and_tags
=== RUN   TestTableParse/delete_route_by_tags
=== RUN   TestTableParse/weigh_fixed_weight_0_->_auto_distribution
=== RUN   TestTableParse/weigh_only_fixed_weights_and_sum(fixedWeight)_<_1_->_normalize_to_100%
=== RUN   TestTableParse/weigh_only_fixed_weights_and_sum(fixedWeight)_>_1_->_normalize_to_100%
=== RUN   TestTableParse/weigh_multiple_entries_for_same_instance_with_no_fixed_weight_->_de-duplication
=== RUN   TestTableParse/weigh_multiple_entries_with_no_fixed_weight_->_even_distribution
=== RUN   TestTableParse/weigh_multiple_entries_with_de-dup_and_no_fixed_weight_->_even_distribution
=== RUN   TestTableParse/weigh_mixed_fixed_and_auto_weights_->_even_distribution_of_remaining_weight_across_non-fixed_weighted_targets
=== RUN   TestTableParse/weigh_fixed_weight_==_100%_->_route_only_to_fixed_weighted_targets
=== RUN   TestTableParse/weigh_fixed_weight_>_100%__->_route_only_to_fixed_weighted_targets_and_normalize_weight
=== RUN   TestTableParse/weigh_dynamic_weight_matched_on_service_name
=== RUN   TestTableParse/weigh_dynamic_weight_matched_on_service_name_and_tags
=== RUN   TestTableParse/weigh_dynamic_weight_matched_on_tags
=== RUN   TestTableParse/weigh_more_than_1000_routes
=== RUN   TestTableParse/weigh_more_than_1000_routes_with_a_fixed_route_target
--- PASS: TestTableParse (0.51s)
    --- PASS: TestTableParse/1_service,_1_prefix (0.00s)
    --- PASS: TestTableParse/1_service,_1_prefix,_3_instances (0.00s)
    --- PASS: TestTableParse/1_service,_1_prefix_with_option (0.00s)
    --- PASS: TestTableParse/1_service,_1_prefix,_2_instances_with_different_options (0.00s)
    --- PASS: TestTableParse/2_service,_1_prefix (0.00s)
    --- PASS: TestTableParse/1_service,_2_prefix (0.00s)
    --- PASS: TestTableParse/2_service,_2_prefix (0.00s)
    --- PASS: TestTableParse/sort_by_more_specific_prefix (0.00s)
    --- PASS: TestTableParse/sort_prefix_with_host_before_prefix_without_host (0.00s)
    --- PASS: TestTableParse/add_more_specific_prefix_to_existing_host (0.00s)
    --- PASS: TestTableParse/delete_route_by_service,_path_and_target (0.00s)
    --- PASS: TestTableParse/delete_route_by_service_and_path (0.00s)
    --- PASS: TestTableParse/delete_route_by_service (0.00s)
    --- PASS: TestTableParse/delete_route_by_service_and_tags (0.00s)
    --- PASS: TestTableParse/delete_route_by_tags (0.00s)
    --- PASS: TestTableParse/weigh_fixed_weight_0_->_auto_distribution (0.00s)
    --- PASS: TestTableParse/weigh_only_fixed_weights_and_sum(fixedWeight)_<_1_->_normalize_to_100% (0.00s)
    --- PASS: TestTableParse/weigh_only_fixed_weights_and_sum(fixedWeight)_>_1_->_normalize_to_100% (0.00s)
    --- PASS: TestTableParse/weigh_multiple_entries_for_same_instance_with_no_fixed_weight_->_de-duplication (0.00s)
    --- PASS: TestTableParse/weigh_multiple_entries_with_no_fixed_weight_->_even_distribution (0.00s)
    --- PASS: TestTableParse/weigh_multiple_entries_with_de-dup_and_no_fixed_weight_->_even_distribution (0.00s)
    --- PASS: TestTableParse/weigh_mixed_fixed_and_auto_weights_->_even_distribution_of_remaining_weight_across_non-fixed_weighted_targets (0.01s)
    --- PASS: TestTableParse/weigh_fixed_weight_==_100%_->_route_only_to_fixed_weighted_targets (0.00s)
    --- PASS: TestTableParse/weigh_fixed_weight_>_100%__->_route_only_to_fixed_weighted_targets_and_normalize_weight (0.00s)
    --- PASS: TestTableParse/weigh_dynamic_weight_matched_on_service_name (0.00s)
    --- PASS: TestTableParse/weigh_dynamic_weight_matched_on_service_name_and_tags (0.00s)
    --- PASS: TestTableParse/weigh_dynamic_weight_matched_on_tags (0.00s)
    --- PASS: TestTableParse/weigh_more_than_1000_routes (0.24s)
    --- PASS: TestTableParse/weigh_more_than_1000_routes_with_a_fixed_route_target (0.25s)
=== RUN   TestNormalizeHost
--- PASS: TestNormalizeHost (0.00s)
=== RUN   TestTableLookupIssue448
--- PASS: TestTableLookupIssue448 (0.00s)
=== RUN   TestTableLookup
--- PASS: TestTableLookup (0.00s)
=== RUN   TestTarget_BuildRedirectURL
--- PASS: TestTarget_BuildRedirectURL (0.00s)
PASS
ok  	github.com/fabiolb/fabio/route	(cached)
=== RUN   TestCreateCollectorHTTP
--- PASS: TestCreateCollectorHTTP (0.00s)
=== RUN   TestCreateSpanNoGlobalTracer
--- PASS: TestCreateSpanNoGlobalTracer (0.00s)
=== RUN   TestCreateSpanWithNoParent
--- PASS: TestCreateSpanWithNoParent (0.00s)
=== RUN   TestCreateSpanWithParent
--- PASS: TestCreateSpanWithParent (0.00s)
=== RUN   TestInitializeTracer
2018/11/15 13:23:45 Tracing initializing - type: http, connection string: , service name: , topic: , samplerRate: 0
--- PASS: TestInitializeTracer (0.00s)
=== RUN   TestInitializeTracerWhileDisabled
--- PASS: TestInitializeTracerWhileDisabled (0.00s)
=== RUN   TestInjectHeaders
--- PASS: TestInjectHeaders (0.00s)
=== RUN   TestInjectHeadersWithParentSpan
--- PASS: TestInjectHeadersWithParentSpan (0.00s)
PASS
ok  	github.com/fabiolb/fabio/trace	(cached)
?   	github.com/fabiolb/fabio/uuid	[no test files]

@aaronhurt aaronhurt merged commit 92c6115 into fabiolb:master Nov 15, 2018
@aaronhurt aaronhurt deleted the update/consul branch January 22, 2020 22:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant