Add rules for building guest VM base ramdisk

The guest VM ramdisk is a combination of "base ramdisk" (containing the
init process and test binaries/resources) and a "vendor ramdisk"
(containing kernel modules).

This CL adds build rules that build the base ramdisk, an LZ4-compressed
CPIO archive built using a genrule. Sources are specified as target
modules and paths within the CPIO archive are provided in the same order.
A Bash script parses the information and places all files into a common
directory before calling `mkbootfs` on that directory and compressing
the result.

Test: m virt_hostside_tests_initramfs_base
Change-Id: Id9b4f0c87c97c7167572d4196497676c6d9469ad
diff --git a/tests/hostside/Android.bp b/tests/hostside/Android.bp
new file mode 100644
index 0000000..bfe215d
--- /dev/null
+++ b/tests/hostside/Android.bp
@@ -0,0 +1,30 @@
+// Copyright (C) 2020 The Android Open Source Project
+//
+// 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.
+
+// Ramdisk containing /init and test binaries/resources needed inside guest.
+genrule {
+    name: "virt_hostside_tests_initramfs_base",
+    tools: [
+        "mkbootfs",
+        "lz4",
+    ],
+    tool_files: ["scripts/place_files.sh"],
+    out: ["initramfs.lz4"],
+    srcs: [
+        ":virt_hostside_tests_guest_init",
+    ],
+    cmd: "$(location scripts/place_files.sh) $(in) -- " +
+        "$(genDir)/root/init " +
+        "&& $(location mkbootfs) $(genDir)/root | $(location lz4) -fq - $(out)",
+}