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/BUILD b/build_tests/BUILD
index 5d9c3bf..c74407e 100644
--- a/build_tests/BUILD
+++ b/build_tests/BUILD
@@ -111,4 +111,5 @@
     importpath = "github.com/frc971/971-Robot-Code/build_tests",
     target_compatible_with = ["@platforms//cpu:x86_64"],
     visibility = ["//visibility:private"],
+    deps = ["//build_tests/go_greeter"],
 )
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)
+		}
+	}
+}
diff --git a/build_tests/hello.go b/build_tests/hello.go
index d2c4e91..2c741a8 100644
--- a/build_tests/hello.go
+++ b/build_tests/hello.go
@@ -1,7 +1,11 @@
 package main
 
-import "fmt"
+import (
+	"fmt"
+
+	"github.com/frc971/971-Robot-Code/build_tests/go_greeter"
+)
 
 func main() {
-	fmt.Println("Hello world")
+	fmt.Println(go_greeter.Greet("world"))
 }