[release] Snap to bc88ee2daf
Change-Id: I34278dc74c57d5955ac52f7cc669886ab2a6ac6b
diff --git a/src/lib/zxc/tests/BUILD.gn b/src/lib/zxc/tests/BUILD.gn
index d2cdc52..b3e088f 100644
--- a/src/lib/zxc/tests/BUILD.gn
+++ b/src/lib/zxc/tests/BUILD.gn
@@ -4,15 +4,19 @@
 # license that can be found in the LICENSE file or at
 # https://opensource.org/licenses/MIT
 
+import("//build/test.gni")
 import("//build/test/test_package.gni")
 import("//build/testing/environments.gni")
 
 group("tests") {
   testonly = true
-  deps = [ ":zxc-tests" ]
+  deps = [
+    ":zxc-tests",
+    ":zxc_unittests($host_toolchain)",
+  ]
 }
 
-executable("zxc_unittests") {
+test("zxc_unittests") {
   testonly = true
   output_name = "zxc_unittests"
   sources = [
diff --git a/src/lib/zxc/tests/result_tests.cc b/src/lib/zxc/tests/result_tests.cc
index 9aa1957..22144f2 100644
--- a/src/lib/zxc/tests/result_tests.cc
+++ b/src/lib/zxc/tests/result_tests.cc
@@ -116,14 +116,14 @@
   int b;
 };
 
-static_assert(fitx::result<fitx::failed, test_members> { zx::ok(test_members{10, 20}) }->a == 10);
-static_assert(fitx::result<fitx::failed, test_members> { zx::ok(test_members{10, 20}) }->b == 20);
+static_assert(fitx::result<fitx::failed, test_members> { zx::ok(test_members{10, 20}) } -> a == 10);
+static_assert(fitx::result<fitx::failed, test_members> { zx::ok(test_members{10, 20}) } -> b == 20);
 static_assert(fitx::result<fitx::failed, std::optional<test_members>> {
   zx::ok(test_members{10, 20})
-}->a == 10);
+} -> a == 10);
 static_assert(fitx::result<fitx::failed, std::optional<test_members>> {
   zx::ok(test_members{10, 20})
-}->b == 20);
+} -> b == 20);
 
 // Status-only, no value.
 static_assert(zx::status<>{zx::ok()}.is_ok() == true);
@@ -931,6 +931,9 @@
   counter_b::reset();
 }
 
+// status_string() is only defined in userspace Fuchsia code
+#if defined(__Fuchsia__)
+
 TEST(LibZxCommon, StatusString) {
   {
     zx::status<> status = zx::ok();
@@ -953,6 +956,8 @@
   }
 }
 
+#endif  // defined(__Fuchsia__)
+
 struct ErrorMsg {
   zx_status_t status;
   std::vector<std::string> details{};
diff --git a/tools/qemu/aemu.go b/tools/qemu/aemu.go
index 6b23a38..0e5ea72 100644
--- a/tools/qemu/aemu.go
+++ b/tools/qemu/aemu.go
@@ -5,6 +5,7 @@
 package qemu
 
 import (
+	"fmt"
 	"sort"
 	"strings"
 )
@@ -34,6 +35,19 @@
 	return a
 }
 
+func (a *AEMUCommandBuilder) AddSerial(c Chardev) {
+	args := []string{"stdio", fmt.Sprintf("id=%s", c.ID)}
+	if c.Logfile != "" {
+		args = append(args, fmt.Sprintf("logfile=%s", c.Logfile))
+	}
+	if !c.Signal {
+		args = append(args, "signal=off")
+	}
+	args = append(args, "echo=off")
+	a.SetFlag("-chardev", strings.Join(args, ","))
+	a.SetFlag("-serial", fmt.Sprintf("chardev:%s", c.ID))
+}
+
 func (a *AEMUCommandBuilder) SetFeature(feature string) {
 	a.features = append(a.features, feature)
 }
diff --git a/tools/qemu/aemu_test.go b/tools/qemu/aemu_test.go
index e98d276..008ea4b 100644
--- a/tools/qemu/aemu_test.go
+++ b/tools/qemu/aemu_test.go
@@ -181,4 +181,41 @@
 			"-append", "infra.foo=bar kernel.serial=legacy"},
 		err: nil,
 	}, cmd, err)
+
+	b.AddSerial(
+		Chardev{
+			ID:      "char0",
+			Logfile: "logfile.txt",
+			Signal:  false,
+		},
+	)
+
+	cmd, err = b.Build()
+	check(t, expected{
+		cmd: []string{
+			"./bin/emulator",
+			"-feature", "GLDirectMem,KVM,VirtioInput,Vulkan",
+			"-gpu", "swiftshader_indirect",
+			"-no-window",
+			"-fuchsia",
+			"-kernel", "./data/qemu-kernel",
+			"-initrd", "./data/zircon-a",
+			"-vga", "none",
+			"-device", "virtio-keyboard-pci",
+			"-device", "virtio_input_multi_touch_pci_1",
+			"-machine", "virt-2.12,gic-version=host",
+			"-cpu", "host",
+			"-enable-kvm",
+			"-m", "4096",
+			"-smp", "4",
+			"-object", "iothread,id=iothread-otherdisk",
+			"-drive", "id=otherdisk,file=./data/otherdisk,format=raw,if=none,cache=unsafe,aio=threads",
+			"-device", "virtio-blk-pci,drive=otherdisk,iothread=iothread-otherdisk,addr=04.2",
+			"-netdev", "user,id=net0",
+			"-device", "virtio-net-pci,mac=52:54:00:63:5e:7a,netdev=net0",
+			"-chardev", "stdio,id=char0,logfile=logfile.txt,signal=off,echo=off",
+			"-serial", "chardev:char0",
+			"-append", "infra.foo=bar kernel.serial=legacy"},
+		err: nil,
+	}, cmd, err)
 }