Add a go_test to //build_tests

I wanted to provide an example for students to write tests. This
should hopefully get them started.

Signed-off-by: Philipp Schrader <philipp.schrader@gmail.com>
Change-Id: I5b5e5509075cc6e30f5138b3a213c8966fd15763
diff --git a/build_tests/go_greeter/BUILD b/build_tests/go_greeter/BUILD
new file mode 100644
index 0000000..b4dbdc0
--- /dev/null
+++ b/build_tests/go_greeter/BUILD
@@ -0,0 +1,16 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+    name = "go_greeter",
+    srcs = ["greeter.go"],
+    importpath = "github.com/frc971/971-Robot-Code/build_tests/go_greeter",
+    target_compatible_with = ["@platforms//cpu:x86_64"],
+    visibility = ["//visibility:public"],
+)
+
+go_test(
+    name = "go_greeter_test",
+    srcs = ["greeter_test.go"],
+    embed = [":go_greeter"],
+    target_compatible_with = ["@platforms//cpu:x86_64"],
+)
diff --git a/build_tests/go_greeter/greeter.go b/build_tests/go_greeter/greeter.go
new file mode 100644
index 0000000..53f837a
--- /dev/null
+++ b/build_tests/go_greeter/greeter.go
@@ -0,0 +1,5 @@
+package go_greeter
+
+func Greet(name string) string {
+	return "Hello, " + name
+}
diff --git a/build_tests/go_greeter/greeter_test.go b/build_tests/go_greeter/greeter_test.go
new file mode 100644
index 0000000..207f360
--- /dev/null
+++ b/build_tests/go_greeter/greeter_test.go
@@ -0,0 +1,18 @@
+package go_greeter
+
+import "testing"
+
+func TestGreetings(t *testing.T) {
+	cases := []struct {
+		input, expected string
+	}{
+		{"world", "Hello, world"},
+		{"  foobar", "Hello,   foobar"},
+	}
+	for _, c := range cases {
+		greeting := Greet(c.input)
+		if greeting != c.expected {
+			t.Errorf("Got %q, but expected %q.", greeting, c.expected)
+		}
+	}
+}