From 7c3a22d289492dd5366b8e41133d9f0e1c323a7c Mon Sep 17 00:00:00 2001 From: Nia Waldvogel Date: Tue, 18 Jan 2022 12:17:43 -0500 Subject: [PATCH] wasmtest: fix resource cleanup and add logging The chromedp context was not cancelled, so resources may have been leaking. Additionally this waits for the browser to start before the timer starts, and extends the timeout to 20 seconds. Logging from chromedp has also been enabled, which may help identify possible issues? --- tests/wasm/chan_test.go | 3 +-- tests/wasm/event_test.go | 3 +-- tests/wasm/fmt_test.go | 3 +-- tests/wasm/fmtprint_test.go | 3 +-- tests/wasm/log_test.go | 3 +-- tests/wasm/setup_test.go | 19 ++++++++++++------- 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/tests/wasm/chan_test.go b/tests/wasm/chan_test.go index fe981974..c22410f6 100644 --- a/tests/wasm/chan_test.go +++ b/tests/wasm/chan_test.go @@ -15,8 +15,7 @@ func TestChan(t *testing.T) { t.Fatal(err) } - ctx, cancel := chromectx() - defer cancel() + ctx := chromectx(t) err = chromedp.Run(ctx, chromedp.Navigate(server.URL+"/run?file=chan.wasm"), diff --git a/tests/wasm/event_test.go b/tests/wasm/event_test.go index a29a01c7..5dabc707 100644 --- a/tests/wasm/event_test.go +++ b/tests/wasm/event_test.go @@ -15,8 +15,7 @@ func TestEvent(t *testing.T) { t.Fatal(err) } - ctx, cancel := chromectx() - defer cancel() + ctx := chromectx(t) var log1, log2 string err = chromedp.Run(ctx, diff --git a/tests/wasm/fmt_test.go b/tests/wasm/fmt_test.go index d3695f07..cb88e36d 100644 --- a/tests/wasm/fmt_test.go +++ b/tests/wasm/fmt_test.go @@ -15,8 +15,7 @@ func TestFmt(t *testing.T) { t.Fatal(err) } - ctx, cancel := chromectx() - defer cancel() + ctx := chromectx(t) var log1 string err = chromedp.Run(ctx, diff --git a/tests/wasm/fmtprint_test.go b/tests/wasm/fmtprint_test.go index 3c750239..ec83c77f 100644 --- a/tests/wasm/fmtprint_test.go +++ b/tests/wasm/fmtprint_test.go @@ -15,8 +15,7 @@ func TestFmtprint(t *testing.T) { t.Fatal(err) } - ctx, cancel := chromectx() - defer cancel() + ctx := chromectx(t) var log1 string err = chromedp.Run(ctx, diff --git a/tests/wasm/log_test.go b/tests/wasm/log_test.go index 1f6c79fe..ac747431 100644 --- a/tests/wasm/log_test.go +++ b/tests/wasm/log_test.go @@ -15,8 +15,7 @@ func TestLog(t *testing.T) { t.Fatal(err) } - ctx, cancel := chromectx() - defer cancel() + ctx := chromectx(t) var log1 string err = chromedp.Run(ctx, diff --git a/tests/wasm/setup_test.go b/tests/wasm/setup_test.go index e5a18daf..b56b6f33 100644 --- a/tests/wasm/setup_test.go +++ b/tests/wasm/setup_test.go @@ -32,16 +32,21 @@ func runargs(t *testing.T, args ...string) error { return nil } -func chromectx() (context.Context, context.CancelFunc) { - - var ctx context.Context - +func chromectx(t *testing.T) context.Context { // looks for locally installed Chrome - ctx, _ = chromedp.NewContext(context.Background()) + ctx, ccancel := chromedp.NewContext(context.Background(), chromedp.WithErrorf(t.Errorf), chromedp.WithDebugf(t.Logf), chromedp.WithLogf(t.Logf)) + t.Cleanup(ccancel) - ctx, cancel := context.WithTimeout(ctx, 10*time.Second) + // Wait for browser to be ready. + err := chromedp.Run(ctx) + if err != nil { + t.Fatalf("failed to start browser: %s", err.Error()) + } - return ctx, cancel + ctx, tcancel := context.WithTimeout(ctx, 30*time.Second) + t.Cleanup(tcancel) + + return ctx } func startServer(t *testing.T) (string, *httptest.Server) {