[fuchsia] Introduce ScopedDevZero.
FileUtilTest.ReadFileToStringWithUnknownFileSize opens /dev/zero and
reads from it. This new ScopedDevZero class allows us to move away from
relying on /dev/zero being provided by the runtime.
The attempt to make IPCSendFdsTest.DescriptorTest use ScopedDevZero
doesn't quite work, so it is disabled for now.
Bug: 1256502,1272424
Change-Id: Ib8cf077d40deb0063a21fe05c43ed6c7372ee198
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3256795
Auto-Submit: Greg Thompson <grt@chromium.org>
Reviewed-by: David Dorwin <ddorwin@chromium.org>
Reviewed-by: Ken Rockot <rockot@google.com>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Fabrice de Gans <fdegans@chromium.org>
Commit-Queue: Greg Thompson <grt@chromium.org>
Cr-Commit-Position: refs/heads/main@{#947084}
diff --git a/ipc/ipc_send_fds_test.cc b/ipc/ipc_send_fds_test.cc
index a81ebaf..0523d9b 100644
--- a/ipc/ipc_send_fds_test.cc
+++ b/ipc/ipc_send_fds_test.cc
@@ -33,6 +33,9 @@
#if BUILDFLAG(IS_MAC)
#include "sandbox/mac/seatbelt.h"
+#elif BUILDFLAG(IS_FUCHSIA)
+#include "base/memory/scoped_refptr.h"
+#include "base/test/scoped_dev_zero_fuchsia.h"
#endif
namespace {
@@ -107,6 +110,12 @@
class IPCSendFdsTest : public IPCChannelMojoTestBase {
protected:
+ void SetUp() override {
+#if BUILDFLAG(IS_FUCHSIA)
+ ASSERT_TRUE(dev_zero_);
+#endif
+ }
+
void RunServer() {
// Set up IPC channel and start client.
MyChannelDescriptorListener listener(-1);
@@ -134,9 +143,20 @@
EXPECT_TRUE(WaitForClientShutdown());
DestroyChannel();
}
+
+ private:
+#if BUILDFLAG(IS_FUCHSIA)
+ scoped_refptr<base::ScopedDevZero> dev_zero_ = base::ScopedDevZero::Get();
+#endif
};
-TEST_F(IPCSendFdsTest, DescriptorTest) {
+// Disabled on Fuchsia due to failures; see https://crbug.com/1272424.
+#if BUILDFLAG(IS_FUCHSIA)
+#define MAYBE_DescriptorTest DISABLED_DescriptorTest
+#else
+#define MAYBE_DescriptorTest DescriptorTest
+#endif
+TEST_F(IPCSendFdsTest, MAYBE_DescriptorTest) {
Init("SendFdsClient");
RunServer();
}