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
