osbase/blockdev: add tests, fix minor issues
Add a lot of bounds checks which should make BlockDev safer to use. Fix
a bug in the ReadWriteSeeker.Seek function with io.SeekEnd; the offset
should be added to, not subtracted from the size. Add the Sync()
function to the BlockDev interface.
Change-Id: I247095b3dbc6410064844b4ac7c6208d88a7abcd
Reviewed-on: https://review.monogon.dev/c/monogon/+/3338
Tested-by: Jenkins CI
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
diff --git a/osbase/blockdev/BUILD.bazel b/osbase/blockdev/BUILD.bazel
index 0805ef6..f476e8b 100644
--- a/osbase/blockdev/BUILD.bazel
+++ b/osbase/blockdev/BUILD.bazel
@@ -1,4 +1,5 @@
-load("@io_bazel_rules_go//go:def.bzl", "go_library")
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+load("//osbase/test/ktest:ktest.bzl", "ktest")
go_library(
name = "blockdev",
@@ -26,3 +27,25 @@
"//conditions:default": [],
}),
)
+
+go_test(
+ name = "blockdev_test",
+ srcs = [
+ "blockdev_linux_test.go",
+ "blockdev_test.go",
+ ],
+ embed = [":blockdev"],
+ deps = select({
+ "@io_bazel_rules_go//go/platform:android": [
+ "//osbase/loop",
+ ],
+ "@io_bazel_rules_go//go/platform:linux": [
+ "//osbase/loop",
+ ],
+ "//conditions:default": [],
+ }),
+)
+
+ktest(
+ tester = ":blockdev_test",
+)