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

feat(logger): Add tlog for better test logging #3913

Merged
merged 1 commit into from
Jul 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions test/e2e/e2e_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import (
"k8s.io/apimachinery/pkg/util/sets"
"sigs.k8s.io/gateway-api/conformance/utils/flags"
"sigs.k8s.io/gateway-api/conformance/utils/suite"
"sigs.k8s.io/gateway-api/conformance/utils/tlog"
"sigs.k8s.io/gateway-api/pkg/features"

"github.com/envoyproxy/gateway/test/e2e/tests"
Expand All @@ -28,10 +29,10 @@ func TestE2E(t *testing.T) {
c := kubetest.NewClient(t)

if flags.RunTest != nil && *flags.RunTest != "" {
t.Logf("Running E2E test %s with %s GatewayClass\n cleanup: %t\n debug: %t",
tlog.Logf(t, "Running E2E test %s with %s GatewayClass\n cleanup: %t\n debug: %t",
*flags.RunTest, *flags.GatewayClassName, *flags.CleanupBaseResources, *flags.ShowDebug)
} else {
t.Logf("Running E2E tests with %s GatewayClass\n cleanup: %t\n debug: %t",
tlog.Logf(t, "Running E2E tests with %s GatewayClass\n cleanup: %t\n debug: %t",
*flags.GatewayClassName, *flags.CleanupBaseResources, *flags.ShowDebug)
}

Expand All @@ -54,7 +55,7 @@ func TestE2E(t *testing.T) {
}

cSuite.Setup(t, tests.ConformanceTests)
t.Logf("Running %d E2E tests", len(tests.ConformanceTests))
tlog.Logf(t, "Running %d E2E tests", len(tests.ConformanceTests))
err = cSuite.Run(t, tests.ConformanceTests)
if err != nil {
t.Fatalf("Failed to run E2E tests: %v", err)
Expand Down
7 changes: 4 additions & 3 deletions test/e2e/merge_gateways/merge_gateways_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import (
"sigs.k8s.io/gateway-api/conformance/utils/flags"
"sigs.k8s.io/gateway-api/conformance/utils/kubernetes"
"sigs.k8s.io/gateway-api/conformance/utils/suite"
"sigs.k8s.io/gateway-api/conformance/utils/tlog"
"sigs.k8s.io/gateway-api/pkg/features"

"github.com/envoyproxy/gateway/test/e2e"
Expand All @@ -30,10 +31,10 @@ func TestMergeGateways(t *testing.T) {
c := kubetest.NewClient(t)

if flags.RunTest != nil && *flags.RunTest != "" {
t.Logf("Running E2E test %s with %s GatewayClass\n cleanup: %t\n debug: %t",
tlog.Logf(t, "Running E2E test %s with %s GatewayClass\n cleanup: %t\n debug: %t",
*flags.RunTest, *flags.GatewayClassName, *flags.CleanupBaseResources, *flags.ShowDebug)
} else {
t.Logf("Running E2E tests with %s GatewayClass\n cleanup: %t\n debug: %t",
tlog.Logf(t, "Running E2E tests with %s GatewayClass\n cleanup: %t\n debug: %t",
*flags.GatewayClassName, *flags.CleanupBaseResources, *flags.ShowDebug)
}

Expand All @@ -58,7 +59,7 @@ func TestMergeGateways(t *testing.T) {
cSuite.Applier.GatewayClass = *flags.GatewayClassName
cSuite.ControllerName = kubernetes.GWCMustHaveAcceptedConditionTrue(t, cSuite.Client, cSuite.TimeoutConfig, cSuite.GatewayClassName)

t.Logf("Running %d MergeGateways tests", len(tests.MergeGatewaysTests))
tlog.Logf(t, "Running %d MergeGateways tests", len(tests.MergeGatewaysTests))
err = cSuite.Run(t, tests.MergeGatewaysTests)
if err != nil {
t.Fatalf("Failed to run MergeGateways tests: %v", err)
Expand Down
9 changes: 5 additions & 4 deletions test/e2e/multiple_gc/multiple_gc_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import (
"sigs.k8s.io/gateway-api/conformance/utils/flags"
"sigs.k8s.io/gateway-api/conformance/utils/kubernetes"
"sigs.k8s.io/gateway-api/conformance/utils/suite"
"sigs.k8s.io/gateway-api/conformance/utils/tlog"
"sigs.k8s.io/gateway-api/pkg/features"

"github.com/envoyproxy/gateway/test/e2e"
Expand All @@ -30,10 +31,10 @@ func TestMultipleGC(t *testing.T) {
c := kubetest.NewClient(t)

if flags.RunTest != nil && *flags.RunTest != "" {
t.Logf("Running E2E test %s with %s GatewayClass\n cleanup: %t\n debug: %t",
tlog.Logf(t, "Running E2E test %s with %s GatewayClass\n cleanup: %t\n debug: %t",
*flags.RunTest, *flags.GatewayClassName, *flags.CleanupBaseResources, *flags.ShowDebug)
} else {
t.Logf("Running E2E tests with %s GatewayClass\n cleanup: %t\n debug: %t",
tlog.Logf(t, "Running E2E tests with %s GatewayClass\n cleanup: %t\n debug: %t",
*flags.GatewayClassName, *flags.CleanupBaseResources, *flags.ShowDebug)
}

Expand Down Expand Up @@ -61,7 +62,7 @@ func TestMultipleGC(t *testing.T) {
internetGatewaySuite.Applier.GatewayClass = internetGatewaySuiteGatewayClassName
internetGatewaySuite.ControllerName = kubernetes.GWCMustHaveAcceptedConditionTrue(t, internetGatewaySuite.Client, internetGatewaySuite.TimeoutConfig, internetGatewaySuite.GatewayClassName)

t.Logf("Running %d MultipleGC tests", len(tests.MultipleGCTests[internetGatewaySuiteGatewayClassName]))
tlog.Logf(t, "Running %d MultipleGC tests", len(tests.MultipleGCTests[internetGatewaySuiteGatewayClassName]))

err = internetGatewaySuite.Run(t, tests.MultipleGCTests[internetGatewaySuiteGatewayClassName])
if err != nil {
Expand Down Expand Up @@ -93,7 +94,7 @@ func TestMultipleGC(t *testing.T) {
privateGatewaySuite.Applier.GatewayClass = privateGatewaySuiteGatewayClassName
privateGatewaySuite.ControllerName = kubernetes.GWCMustHaveAcceptedConditionTrue(t, privateGatewaySuite.Client, privateGatewaySuite.TimeoutConfig, privateGatewaySuite.GatewayClassName)

t.Logf("Running %d MultipleGC tests", len(tests.MultipleGCTests[privateGatewaySuiteGatewayClassName]))
tlog.Logf(t, "Running %d MultipleGC tests", len(tests.MultipleGCTests[privateGatewaySuiteGatewayClassName]))
err = privateGatewaySuite.Run(t, tests.MultipleGCTests[privateGatewaySuiteGatewayClassName])
if err != nil {
t.Fatalf("Failed to run PrivateGC tests: %v", err)
Expand Down
11 changes: 6 additions & 5 deletions test/e2e/tests/accesslog.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import (
httputils "sigs.k8s.io/gateway-api/conformance/utils/http"
"sigs.k8s.io/gateway-api/conformance/utils/kubernetes"
"sigs.k8s.io/gateway-api/conformance/utils/suite"
"sigs.k8s.io/gateway-api/conformance/utils/tlog"
)

func init() {
Expand Down Expand Up @@ -159,7 +160,7 @@ var ALSTest = suite.ConformanceTest{
func(ctx context.Context) (bool, error) {
curCount, err := ALSLogCount(suite)
if err != nil {
t.Logf("failed to get log count from loki: %v", err)
tlog.Logf(t, "failed to get log count from loki: %v", err)
return false, nil
}
preCount = curCount
Expand Down Expand Up @@ -187,7 +188,7 @@ var ALSTest = suite.ConformanceTest{
func(ctx context.Context) (bool, error) {
curCount, err := ALSLogCount(suite)
if err != nil {
t.Logf("failed to get log count from loki: %v", err)
tlog.Logf(t, "failed to get log count from loki: %v", err)
return false, nil
}
return preCount < curCount, nil
Expand All @@ -206,7 +207,7 @@ func runLogTest(t *testing.T, suite *suite.ConformanceTestSuite, gwAddr string,
// query log count from loki
preCount, err := QueryLogCountFromLoki(t, suite.Client, expectedLabels, expectedMatch)
if err != nil {
t.Logf("failed to get log count from loki: %v", err)
tlog.Logf(t, "failed to get log count from loki: %v", err)
return false, nil
}

Expand All @@ -217,7 +218,7 @@ func runLogTest(t *testing.T, suite *suite.ConformanceTestSuite, gwAddr string,
if err := wait.PollUntilContextTimeout(ctx, 500*time.Millisecond, 15*time.Second, true, func(_ context.Context) (bool, error) {
count, err := QueryLogCountFromLoki(t, suite.Client, expectedLabels, expectedMatch)
if err != nil {
t.Logf("failed to get log count from loki: %v", err)
tlog.Logf(t, "failed to get log count from loki: %v", err)
return false, nil
}

Expand All @@ -226,7 +227,7 @@ func runLogTest(t *testing.T, suite *suite.ConformanceTestSuite, gwAddr string,
return true, nil
}

t.Logf("preCount=%d, count=%d", preCount, count)
tlog.Logf(t, "preCount=%d, count=%d", preCount, count)
return false, nil
}); err != nil {
return false, nil
Expand Down
5 changes: 3 additions & 2 deletions test/e2e/tests/backend_health_check.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import (
"sigs.k8s.io/gateway-api/conformance/utils/http"
"sigs.k8s.io/gateway-api/conformance/utils/kubernetes"
"sigs.k8s.io/gateway-api/conformance/utils/suite"
"sigs.k8s.io/gateway-api/conformance/utils/tlog"

"github.com/envoyproxy/gateway/internal/gatewayapi"
"github.com/envoyproxy/gateway/test/utils/prometheus"
Expand Down Expand Up @@ -77,7 +78,7 @@ var BackendHealthCheckActiveHTTPTest = suite.ConformanceTest{
// wait until Prometheus sync stats
return false
}
t.Logf("cluster pass health check: success stats query count: %v", v)
tlog.Logf(t, "cluster pass health check: success stats query count: %v", v)

if v == 0 {
t.Error("success is not the same as expected")
Expand All @@ -100,7 +101,7 @@ var BackendHealthCheckActiveHTTPTest = suite.ConformanceTest{
// wait until Prometheus sync stats
return false
}
t.Logf("cluster fail health check: failure stats query count: %v", v)
tlog.Logf(t, "cluster fail health check: failure stats query count: %v", v)

if v == 0 {
t.Error("failure is not same as expected")
Expand Down
3 changes: 2 additions & 1 deletion test/e2e/tests/client_timeout.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import (
httputils "sigs.k8s.io/gateway-api/conformance/utils/http"
"sigs.k8s.io/gateway-api/conformance/utils/kubernetes"
"sigs.k8s.io/gateway-api/conformance/utils/suite"
"sigs.k8s.io/gateway-api/conformance/utils/tlog"
)

func init() {
Expand Down Expand Up @@ -58,7 +59,7 @@ var ClientTimeoutTest = suite.ConformanceTest{
if http.StatusGatewayTimeout == resp.StatusCode {
return true
} else {
t.Logf("response status code: %d, (after %v) ", resp.StatusCode, elapsed)
tlog.Logf(t, "response status code: %d, (after %v) ", resp.StatusCode, elapsed)
return false
}
})
Expand Down
7 changes: 4 additions & 3 deletions test/e2e/tests/connection_limit.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import (
"sigs.k8s.io/gateway-api/conformance/utils/http"
"sigs.k8s.io/gateway-api/conformance/utils/kubernetes"
"sigs.k8s.io/gateway-api/conformance/utils/suite"
"sigs.k8s.io/gateway-api/conformance/utils/tlog"

"github.com/envoyproxy/gateway/internal/gatewayapi"
"github.com/envoyproxy/gateway/test/utils/prometheus"
Expand Down Expand Up @@ -63,7 +64,7 @@ var ConnectionLimitTest = suite.ConformanceTest{
func(_ context.Context) (done bool, err error) {
_, err = net.DialTimeout("tcp", gwAddr, 100*time.Millisecond)
if err != nil {
t.Logf("failed to open connection: %v", err)
tlog.Logf(t, "failed to open connection: %v", err)
return false, nil
}
t.Log("opened connection 1")
Expand All @@ -75,7 +76,7 @@ var ConnectionLimitTest = suite.ConformanceTest{
// Open the remaining 5 connections
for i := 1; i < 6; i++ {
conn, err := net.Dial("tcp", gwAddr)
t.Logf("opened connection %d", i+1)
tlog.Logf(t, "opened connection %d", i+1)
if err != nil {
t.Errorf("failed to open connection: %v", err)
} else {
Expand All @@ -98,7 +99,7 @@ var ConnectionLimitTest = suite.ConformanceTest{
// wait until Prometheus sync stats
return false
}
t.Logf("connection_limit stats query count: %v", v)
tlog.Logf(t, "connection_limit stats query count: %v", v)

// connection interruptions or other connection errors may occur
// we just need to determine whether there is a connection limit stats
Expand Down
3 changes: 2 additions & 1 deletion test/e2e/tests/controlplane.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import (
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/wait"
"sigs.k8s.io/gateway-api/conformance/utils/suite"
"sigs.k8s.io/gateway-api/conformance/utils/tlog"
)

func init() {
Expand Down Expand Up @@ -64,7 +65,7 @@ var ControlPlaneMetricTest = suite.ConformanceTest{
if err := wait.PollUntilContextTimeout(context.TODO(), time.Second, 2*time.Minute, true,
func(_ context.Context) (done bool, err error) {
if err := ScrapeMetrics(t, suite.Client, nn, 19001, "/metrics"); err != nil {
t.Logf("failed to get metric: %v", err)
tlog.Logf(t, "failed to get metric: %v", err)
return false, nil
}
return true, nil
Expand Down
4 changes: 2 additions & 2 deletions test/e2e/tests/eg_upgrade.go
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ func cleanUpResources(c client.Client, t *testing.T) {
}

for _, o := range list.Items {
t.Logf("deleting %s: %s/%s", o.GetObjectKind(), o.GetNamespace(), o.GetName())
tlog.Logf(t, "deleting %s: %s/%s", o.GetObjectKind(), o.GetNamespace(), o.GetName())
if err := c.Delete(context.Background(), &o); err != nil {
if !kerrors.IsNotFound(err) {
t.Fatalf("error deleting %s: %s/%s : %v", o.GetObjectKind(), o.GetNamespace(), o.GetName(), err)
Expand All @@ -192,7 +192,7 @@ func cleanUpResources(c client.Client, t *testing.T) {
}

if len(list.Items) > 0 {
t.Logf("Waiting for deletion of %d %s", len(list.Items), gvk.String())
tlog.Logf(t, "Waiting for deletion of %d %s", len(list.Items), gvk.String())
return false, nil
}

Expand Down
5 changes: 3 additions & 2 deletions test/e2e/tests/load_balancing.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import (
"sigs.k8s.io/gateway-api/conformance/utils/kubernetes"
"sigs.k8s.io/gateway-api/conformance/utils/roundtripper"
"sigs.k8s.io/gateway-api/conformance/utils/suite"
"sigs.k8s.io/gateway-api/conformance/utils/tlog"

"github.com/envoyproxy/gateway/internal/gatewayapi"
)
Expand Down Expand Up @@ -364,7 +365,7 @@ var ConsistentHashCookieLoadBalancingTest = suite.ConformanceTest{
return true, nil
}

t.Logf("Cookie have not been generated yet")
tlog.Logf(t, "Cookie have not been generated yet")
return false, nil
})
require.NoError(t, waitErr)
Expand All @@ -387,7 +388,7 @@ func WaitDeployment(t *testing.T, cli client.Client, name types.NamespacedName,
return true, nil
}

t.Logf("Deployment not yet accepted: %s", name.String())
tlog.Logf(t, "Deployment not yet accepted: %s", name.String())
return false, nil
})

Expand Down
5 changes: 3 additions & 2 deletions test/e2e/tests/metric.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import (
httputils "sigs.k8s.io/gateway-api/conformance/utils/http"
"sigs.k8s.io/gateway-api/conformance/utils/kubernetes"
"sigs.k8s.io/gateway-api/conformance/utils/suite"
"sigs.k8s.io/gateway-api/conformance/utils/tlog"
)

func init() {
Expand Down Expand Up @@ -54,7 +55,7 @@ var MetricTest = suite.ConformanceTest{
Namespace: "envoy-gateway-system",
Name: "same-namespace-gw-metrics",
}, 19001, "/stats/prometheus"); err != nil {
t.Logf("failed to get metric: %v", err)
tlog.Logf(t, "failed to get metric: %v", err)
return false, nil
}
return true, nil
Expand Down Expand Up @@ -88,7 +89,7 @@ var MetricTest = suite.ConformanceTest{
Namespace: "monitoring",
Name: "otel-collecot-prometheus",
}, 19001, "/metrics"); err != nil {
t.Logf("failed to get metric: %v", err)
tlog.Logf(t, "failed to get metric: %v", err)
return false, nil
}
return true, nil
Expand Down
5 changes: 3 additions & 2 deletions test/e2e/tests/oidc.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import (
gwhttp "sigs.k8s.io/gateway-api/conformance/utils/http"
"sigs.k8s.io/gateway-api/conformance/utils/kubernetes"
"sigs.k8s.io/gateway-api/conformance/utils/suite"
"sigs.k8s.io/gateway-api/conformance/utils/tlog"

"github.com/envoyproxy/gateway/internal/gatewayapi"
)
Expand Down Expand Up @@ -80,7 +81,7 @@ var OIDCTest = suite.ConformanceTest{

if err := wait.PollUntilContextTimeout(context.TODO(), time.Second, 5*time.Minute, true,
func(_ context.Context) (done bool, err error) {
t.Logf("sending request to %s", testURL)
tlog.Logf(t, "sending request to %s", testURL)

// Send a request to the http route with OIDC configured.
// It will be redirected to the keycloak login page
Expand All @@ -90,7 +91,7 @@ var OIDCTest = suite.ConformanceTest{

// Parse the response body to get the URL where the login page would post the user-entered credentials
if err := client.ParseLoginForm(res.Body, keyCloakLoginFormID); err != nil {
t.Logf("failed to parse login form: %v", err)
tlog.Logf(t, "failed to parse login form: %v", err)
return false, nil
}

Expand Down
5 changes: 3 additions & 2 deletions test/e2e/tests/retry.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import (
"sigs.k8s.io/gateway-api/conformance/utils/http"
"sigs.k8s.io/gateway-api/conformance/utils/kubernetes"
"sigs.k8s.io/gateway-api/conformance/utils/suite"
"sigs.k8s.io/gateway-api/conformance/utils/tlog"

"github.com/envoyproxy/gateway/test/utils/prometheus"
)
Expand Down Expand Up @@ -60,7 +61,7 @@ var RetryTest = suite.ConformanceTest{
if err == nil {
before = v
}
t.Logf("query count %s before: %v", promQL, before)
tlog.Logf(t, "query count %s before: %v", promQL, before)

req := http.MakeRequest(t, &expectedResponse, gwAddr, "HTTP", "http")
cReq, cResp, err := suite.RoundTripper.CaptureRoundTrip(req)
Expand All @@ -81,7 +82,7 @@ var RetryTest = suite.ConformanceTest{
if err != nil {
return false
}
t.Logf("query count %s after: %v", promQL, v)
tlog.Logf(t, "query count %s after: %v", promQL, v)

delta := int64(v - before)
// numRetries is 5, so delta mod 5 equals 0
Expand Down
5 changes: 3 additions & 2 deletions test/e2e/tests/tcp_route.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import (
"sigs.k8s.io/gateway-api/conformance/utils/http"
"sigs.k8s.io/gateway-api/conformance/utils/kubernetes"
"sigs.k8s.io/gateway-api/conformance/utils/suite"
"sigs.k8s.io/gateway-api/conformance/utils/tlog"
)

func init() {
Expand Down Expand Up @@ -85,7 +86,7 @@ func GatewayAndTCPRoutesMustBeAccepted(t *testing.T, c client.Client, timeoutCon
tcpRoute := &gwapiv1a2.TCPRoute{}
err := c.Get(context.Background(), routeNNs[0], tcpRoute)
if err != nil {
t.Logf("error fetching TCPRoute: %v", err)
tlog.Logf(t, "error fetching TCPRoute: %v", err)
}

gwAddr, err := WaitForGatewayAddress(t, c, timeoutConfig, gw.NamespacedName, string(*tcpRoute.Spec.ParentRefs[0].SectionName))
Expand Down Expand Up @@ -134,7 +135,7 @@ func WaitForGatewayAddress(t *testing.T, client client.Client, timeoutConfig con
gw := &gwapiv1.Gateway{}
err := client.Get(ctx, gwName, gw)
if err != nil {
t.Logf("error fetching Gateway: %v", err)
tlog.Logf(t, "error fetching Gateway: %v", err)
return false, fmt.Errorf("error fetching Gateway: %w", err)
}

Expand Down
Loading
Loading