treewide: use Fatal in tests instead of Error

Error doesn't return the goroutine, but these cases are final and should end the test case.

Change-Id: I9d87e268b56acd7d1ff5883bb82bf3d74c309176
Reviewed-on: https://review.monogon.dev/c/monogon/+/4044
Reviewed-by: Jan Schär <jan@monogon.tech>
Tested-by: Jenkins CI
diff --git a/osbase/bringup/test/run_test.go b/osbase/bringup/test/run_test.go
index 70003cb..085b875 100644
--- a/osbase/bringup/test/run_test.go
+++ b/osbase/bringup/test/run_test.go
@@ -69,7 +69,7 @@
 	expectedOutput := "_BRINGUP_LAUNCH_SUCCESS_"
 	result, err := runQemu(ctx, extraArgs, expectedOutput)
 	if err != nil {
-		t.Error(err.Error())
+		t.Error(err)
 	}
 	if !result {
 		t.Errorf("QEMU didn't produce the expected output %q", expectedOutput)
@@ -85,7 +85,7 @@
 	expectedOutput := "root runnable paniced"
 	result, err := runQemu(ctx, extraArgs, expectedOutput)
 	if err != nil {
-		t.Error(err.Error())
+		t.Error(err)
 	}
 	if !result {
 		t.Errorf("QEMU didn't produce the expected output %q", expectedOutput)
@@ -102,7 +102,7 @@
 	expectedOutput := "this is an error"
 	result, err := runQemu(ctx, extraArgs, expectedOutput)
 	if err != nil {
-		t.Error(err.Error())
+		t.Error(err)
 	}
 	if !result {
 		t.Errorf("QEMU didn't produce the expected output %q", expectedOutput)
diff --git a/osbase/erofs/erofs_test.go b/osbase/erofs/erofs_test.go
index cc02047..7ab4f51 100644
--- a/osbase/erofs/erofs_test.go
+++ b/osbase/erofs/erofs_test.go
@@ -251,7 +251,7 @@
 			}
 			_ = file.Close()
 			if err := os.MkdirAll("/test", 0755); err != nil {
-				t.Error(err)
+				t.Fatal(err)
 			}
 			if err := unix.Mount("/dev/ram0", "/test", "erofs", unix.MS_NOEXEC|unix.MS_NODEV, ""); err != nil {
 				t.Fatal(err)
diff --git a/osbase/fat32/linux_test.go b/osbase/fat32/linux_test.go
index 002ac2c..29699a4 100644
--- a/osbase/fat32/linux_test.go
+++ b/osbase/fat32/linux_test.go
@@ -262,14 +262,16 @@
 			}
 			_ = file.Close()
 			if err := os.MkdirAll("/dut", 0755); err != nil {
-				t.Error(err)
+				t.Fatal(err)
 			}
 			// TODO(lorenz): Set CONFIG_FAT_DEFAULT_UTF8 for Monogon Kernel
 			if err := unix.Mount("/dev/ram0", "/dut", "vfat", unix.MS_NOEXEC|unix.MS_NODEV, "utf8=1"); err != nil {
 				t.Fatal(err)
 			}
 			defer unix.Unmount("/dut", 0)
-			test.validate(t)
+			if err := test.validate(t); err != nil {
+				t.Fatal(err)
+			}
 		})
 
 	}
diff --git a/osbase/fsquota/fsquota_test.go b/osbase/fsquota/fsquota_test.go
index 97cf8bc..2850b4f 100644
--- a/osbase/fsquota/fsquota_test.go
+++ b/osbase/fsquota/fsquota_test.go
@@ -45,7 +45,7 @@
 		t.Fatal(err, string(out))
 	}
 	if err := os.Mkdir("/test", 0755); err != nil {
-		t.Error(err)
+		t.Fatal(err)
 	}
 
 	if err := unix.Mount("/dev/ram0", "/test", "xfs", unix.MS_NOEXEC|unix.MS_NODEV, "prjquota"); err != nil {
diff --git a/osbase/kmod/manager_test.go b/osbase/kmod/manager_test.go
index 2169703..05f7826 100644
--- a/osbase/kmod/manager_test.go
+++ b/osbase/kmod/manager_test.go
@@ -19,22 +19,22 @@
 	}
 	t.Run("LoadExampleModule", func(t *testing.T) {
 		if err := mgr.LoadModule("r8169"); err != nil {
-			t.Error(err)
+			t.Fatal(err)
 		}
 		if _, err := os.Stat("/sys/module/r8169"); err != nil {
-			t.Error("module load returned success, but module not in sysfs")
+			t.Fatal("module load returned success, but module not in sysfs")
 		}
 	})
 	t.Run("LoadNonexistentModule", func(t *testing.T) {
 		err := mgr.LoadModule("definitelynomodule")
 		var notFoundErr *ErrNotFound
 		if !errors.As(err, &notFoundErr) {
-			t.Errorf("expected ErrNotFound, got %v", err)
+			t.Fatalf("expected ErrNotFound, got %v", err)
 		}
 	})
 	t.Run("LoadModuleTwice", func(t *testing.T) {
 		if err := mgr.LoadModule("r8169"); err != nil {
-			t.Error(err)
+			t.Fatal(err)
 		}
 	})
 	// TODO(lorenz): Should test loading dependencies here, but we currently
@@ -42,10 +42,10 @@
 	// just for this.
 	t.Run("LoadDeviceModule", func(t *testing.T) {
 		if err := mgr.LoadModulesForDevice("pci:v00008086d00001591sv00001043sd000085F0bc02sc00i00"); err != nil {
-			t.Error(err)
+			t.Fatal(err)
 		}
 		if _, err := os.Stat("/sys/module/ice"); err != nil {
-			t.Error("module load returned success, but module not in sysfs")
+			t.Fatalf("module load returned success, but module not in sysfs")
 		}
 	})
 }
diff --git a/osbase/kmod/radix_test.go b/osbase/kmod/radix_test.go
index 6185beb..fa31f67 100644
--- a/osbase/kmod/radix_test.go
+++ b/osbase/kmod/radix_test.go
@@ -45,7 +45,7 @@
 			}
 			diff := cmp.Diff(c.expectedNodes, out, protocmp.Transform())
 			if diff != "" {
-				t.Error(diff)
+				t.Fatal(diff)
 			}
 		})
 	}
@@ -56,18 +56,18 @@
 		Type: kmodpb.RadixNode_TYPE_LITERAL,
 	}
 	if err := AddPattern(root, "usb:v0B95p1790d*dc*dsc*dp*icFFiscFFip00in*", 2); err != nil {
-		t.Error(err)
+		t.Fatal(err)
 	}
 	if err := AddPattern(root, "usb:v0B95p178Ad*dc*dsc*dp*icFFiscFFip00in*", 3); err != nil {
-		t.Error(err)
+		t.Fatal(err)
 	}
 	if err := AddPattern(root, "acpi*:PNP0C14:*", 10); err != nil {
-		t.Error(err)
+		t.Fatal(err)
 	}
 	matches := make(map[uint32]bool)
 	lookupModulesRec(root, "acpi:PNP0C14:asdf", matches)
 	if !matches[10] {
-		t.Error("value should match pattern 10")
+		t.Fatal("value should match pattern 10")
 	}
 }
 
diff --git a/osbase/pstore/pstore_test.go b/osbase/pstore/pstore_test.go
index d4024e6..36423f3 100644
--- a/osbase/pstore/pstore_test.go
+++ b/osbase/pstore/pstore_test.go
@@ -110,10 +110,10 @@
 			dumps, err := getKmsgDumpsFromFS(c.inputFS)
 			switch {
 			case err == nil && c.expectErr:
-				t.Error("Expected error, but got none")
+				t.Fatal("Expected error, but got none")
 				return
 			case err != nil && !c.expectErr:
-				t.Errorf("Got unexpected error: %v", err)
+				t.Fatalf("Got unexpected error: %v", err)
 				return
 			case err != nil && c.expectErr:
 				// Got expected error