cmd/screentest: use default testdata when run with go command

Change-Id: I9e3a1a71ec62cfbb171f55e765b5f58d3ddba4e5
Reviewed-on: https://go-review.googlesource.com/c/website/+/373717
Run-TryBot: Jamal Carvalho <jamal@golang.org>
Trust: Jamal Carvalho <jamalcarvalho@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Jonathan Amsterdam <jba@google.com>
diff --git a/cmd/screentest/main.go b/cmd/screentest/main.go
index 0476314..a628459 100644
--- a/cmd/screentest/main.go
+++ b/cmd/screentest/main.go
@@ -10,6 +10,7 @@
 	"fmt"
 	"log"
 	"os"
+	"path/filepath"
 	"strings"
 
 	"golang.org/x/website/internal/screentest"
@@ -27,10 +28,15 @@
 	}
 	flag.Parse()
 	args := flag.Args()
-	if len(args) != 1 {
+	// Require testdata glob when invoked as an installed command.
+	if len(args) != 1 && os.Args[0] == "screentest" {
 		flag.Usage()
 		os.Exit(1)
 	}
+	glob := filepath.Join("cmd", "screentest", "testdata", "*")
+	if len(args) == 1 {
+		glob = args[0]
+	}
 	parsedVars := make(map[string]string)
 	if *vars != "" {
 		for _, pair := range strings.Split(*vars, ",") {
@@ -41,7 +47,7 @@
 			parsedVars[strings.TrimSpace(parts[0])] = strings.TrimSpace(parts[1])
 		}
 	}
-	if err := screentest.CheckHandler(args[0], *update, parsedVars); err != nil {
+	if err := screentest.CheckHandler(glob, *update, parsedVars); err != nil {
 		log.Fatal(err)
 	}
 }
diff --git a/cmd/screentest/testdata/godev.txt b/cmd/screentest/testdata/godev.txt
index a19ea05..26451b3 100644
--- a/cmd/screentest/testdata/godev.txt
+++ b/cmd/screentest/testdata/godev.txt
@@ -1,5 +1,5 @@
 windowsize 1536x960
-compare https://go.dev http://localhost:6060/go.dev
+compare https://go.dev::cache http://localhost:6060/go.dev
 
 test homepage
 pathname /