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")
 	}
 }
 
