treewide: introduce osbase package and move things around

All except localregistry moved from metropolis/pkg to osbase,
localregistry moved to metropolis/test as its only used there anyway.

Change-Id: If1a4bf377364bef0ac23169e1b90379c71b06d72
Reviewed-on: https://review.monogon.dev/c/monogon/+/3079
Tested-by: Jenkins CI
Reviewed-by: Serge Bazanski <serge@monogon.tech>
diff --git a/osbase/test/ktest/ktest.bzl b/osbase/test/ktest/ktest.bzl
new file mode 100644
index 0000000..a9f5fdd
--- /dev/null
+++ b/osbase/test/ktest/ktest.bzl
@@ -0,0 +1,58 @@
+#  Copyright 2020 The Monogon Project Authors.
+#
+#  SPDX-License-Identifier: Apache-2.0
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+"""
+Ktest provides a macro to run tests under a normal Metropolis node kernel
+"""
+
+load("//metropolis/node/build:def.bzl", "node_initramfs")
+
+def _dict_union(x, y):
+    z = {}
+    z.update(x)
+    z.update(y)
+    return z
+
+def ktest(tester, cmdline = "", files = {}, fsspecs = [], files_cc = {}):
+    node_initramfs(
+        name = "test_initramfs",
+        fsspecs = [
+            "//metropolis/node/build:earlydev.fsspec",
+        ] + fsspecs,
+        files = _dict_union({
+            "//osbase/test/ktest/init": "/init",
+            tester: "/tester",
+        }, files),
+        files_cc = files_cc,
+        testonly = True,
+    )
+
+    native.sh_test(
+        name = "ktest",
+        args = [
+            "$(location //osbase/test/ktest)",
+            "$(location :test_initramfs)",
+            "$(location //osbase/test/ktest:linux-testing)",
+            cmdline,
+        ],
+        size = "small",
+        srcs = ["//osbase/test/ktest:test-script"],
+        data = [
+            "//osbase/test/ktest",
+            ":test_initramfs",
+            "//osbase/test/ktest:linux-testing",
+        ],
+    )