MCPcopy
hub / github.com/grafana/dskit / TestLogSourceIPs

Function TestLogSourceIPs

server/server_test.go:783–852  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

781}
782
783func TestLogSourceIPs(t *testing.T) {
784 var level log.Level
785 require.NoError(t, level.Set("info"))
786 cfg := Config{
787 HTTPMiddleware: []middleware.Interface{middleware.Log{Log: log.Global()}},
788 MetricsNamespace: "testing_mux",
789 LogLevel: level,
790 LogSourceIPs: true,
791 }
792 setAutoAssignedPorts(DefaultNetwork, &cfg)
793
794 startServer := func(cfg Config) *Server {
795 prometheus.DefaultRegisterer = prometheus.NewRegistry()
796 server, err := New(cfg)
797 require.NoError(t, err)
798
799 server.HTTP.HandleFunc("/error500", func(w http.ResponseWriter, _ *http.Request) {
800 w.WriteHeader(500)
801 })
802
803 go func() {
804 require.NoError(t, server.Run())
805 }()
806
807 return server
808 }
809
810 t.Run("without PROXY protocol", func(t *testing.T) {
811 logger := newFakeLogger()
812 cfg.Log = logger
813
814 server := startServer(cfg)
815 defer server.Shutdown()
816
817 logger.assertNotContains(t, "sourceIPs")
818
819 req, err := http.NewRequest("GET", httpTarget(server, "/error500"), nil)
820 require.NoError(t, err)
821 _, err = http.DefaultClient.Do(req)
822 require.NoError(t, err)
823
824 logger.assertContains(t, "sourceIPs=127.0.0.1")
825 })
826
827 t.Run("with PROXY protocol", func(t *testing.T) {
828 logger := newFakeLogger()
829 cfg.Log = logger
830 cfg.ProxyProtocolEnabled = true
831
832 server := startServer(cfg)
833 defer server.Shutdown()
834
835 logger.assertNotContains(t, "sourceIPs")
836
837 fakeSourceIP := "1.2.3.4"
838 proxyHeader := fmt.Sprintf("PROXY TCP4 %s 192.168.0.1 51234 80\r\n", fakeSourceIP)
839 client := &http.Client{
840 Transport: &http.Transport{

Callers

nothing calls this directly

Calls 13

SetMethod · 0.95
GlobalFunction · 0.92
setAutoAssignedPortsFunction · 0.85
newFakeLoggerFunction · 0.85
httpTargetFunction · 0.85
proxyDialerFunction · 0.85
RunMethod · 0.80
NewFunction · 0.70
WriteHeaderMethod · 0.45
ShutdownMethod · 0.45
assertNotContainsMethod · 0.45
DoMethod · 0.45

Tested by

no test coverage detected