[mock_ddk] Convert goodix driver tests to mock_ddk

This is part of a set of changes to discontinue use of the fake_ddk.
New drivers are instead recommended to use the mock_ddk or depend on
//src/devices/testing/no_ddk to get the necessary functions linked in.

Testing: This is a change to test code.
Change-Id: I5faf65a8893b8f61d1fb5450e108e526916e053b
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/560248
Fuchsia-Auto-Submit: Garratt Gallagher <garratt@google.com>
Commit-Queue: Auto-Submit <auto-submit@fuchsia-infra.iam.gserviceaccount.com>
Reviewed-by: Suraj Malhotra <surajmalhotra@google.com>
diff --git a/src/ui/input/drivers/goodix/BUILD.gn b/src/ui/input/drivers/goodix/BUILD.gn
index c5e409d8e..0d14d59 100644
--- a/src/ui/input/drivers/goodix/BUILD.gn
+++ b/src/ui/input/drivers/goodix/BUILD.gn
@@ -101,7 +101,7 @@
     "//src/devices/i2c/lib/device-protocol-i2c-channel",
     "//src/devices/i2c/testing/fake-i2c",
     "//src/devices/i2c/testing/mock-i2c",
-    "//src/devices/testing/fake_ddk",
+    "//src/devices/testing/mock-ddk",
     "//src/lib/ddk",
     "//src/lib/ddk:ddk-metadata-headers",
     "//src/lib/ddktl",
diff --git a/src/ui/input/drivers/goodix/gt92xx-firmware-test.cc b/src/ui/input/drivers/goodix/gt92xx-firmware-test.cc
index 34b83f0..7fd762d 100644
--- a/src/ui/input/drivers/goodix/gt92xx-firmware-test.cc
+++ b/src/ui/input/drivers/goodix/gt92xx-firmware-test.cc
@@ -6,7 +6,6 @@
 #include <fuchsia/hardware/gpio/cpp/banjo-mock.h>
 #include <fuchsia/hardware/gpio/cpp/banjo.h>
 #include <lib/fake-i2c/fake-i2c.h>
-#include <lib/fake_ddk/fake_ddk.h>
 #include <lib/fzl/vmo-mapper.h>
 
 #include <array>
@@ -14,6 +13,7 @@
 #include <zxtest/zxtest.h>
 
 #include "gt92xx.h"
+#include "src/devices/testing/mock-ddk/mock-device.h"
 
 namespace {
 
@@ -208,8 +208,9 @@
 
 class Gt92xxTest : public Gt92xxDevice {
  public:
-  Gt92xxTest(ddk::I2cChannel i2c, ddk::GpioProtocolClient intr, ddk::GpioProtocolClient reset)
-      : Gt92xxDevice(fake_ddk::kFakeParent, i2c, intr, reset) {}
+  Gt92xxTest(ddk::I2cChannel i2c, ddk::GpioProtocolClient intr, ddk::GpioProtocolClient reset,
+             zx_device_t* parent)
+      : Gt92xxDevice(parent, i2c, intr, reset) {}
 
   void Running(bool run) { Gt92xxDevice::running_.store(run); }
 
@@ -268,7 +269,8 @@
       .ExpectConfigOut(ZX_OK, 0)
       .ExpectConfigIn(ZX_OK, GPIO_PULL_UP);
 
-  Gt92xxTest device(i2c.GetProto(), intr.GetProto(), reset.GetProto());
+  auto fake_parent = MockDevice::FakeRootParent();
+  Gt92xxTest device(i2c.GetProto(), intr.GetProto(), reset.GetProto(), fake_parent.get());
   EXPECT_OK(device.Init());
   EXPECT_TRUE(i2c.FirmwareWritten());
   EXPECT_EQ(i2c.CurrentState(), FakeTouchDevice::kReady);
@@ -290,7 +292,8 @@
       .ExpectConfigIn(ZX_OK, GPIO_PULL_UP)
       .ExpectGetInterrupt(ZX_OK, ZX_INTERRUPT_MODE_EDGE_LOW, {});
 
-  Gt92xxTest device(i2c.GetProto(), intr.GetProto(), reset.GetProto());
+  auto fake_parent = MockDevice::FakeRootParent();
+  Gt92xxTest device(i2c.GetProto(), intr.GetProto(), reset.GetProto(), fake_parent.get());
   EXPECT_OK(device.Init());
   EXPECT_FALSE(i2c.FirmwareWritten());
   EXPECT_EQ(i2c.CurrentState(), FakeTouchDevice::kIdle);
@@ -313,7 +316,8 @@
       .ExpectConfigIn(ZX_OK, GPIO_PULL_UP)
       .ExpectGetInterrupt(ZX_OK, ZX_INTERRUPT_MODE_EDGE_LOW, {});
 
-  Gt92xxTest device(i2c.GetProto(), intr.GetProto(), reset.GetProto());
+  auto fake_parent = MockDevice::FakeRootParent();
+  Gt92xxTest device(i2c.GetProto(), intr.GetProto(), reset.GetProto(), fake_parent.get());
   EXPECT_OK(device.Init());
   EXPECT_FALSE(i2c.FirmwareWritten());
   EXPECT_EQ(i2c.CurrentState(), FakeTouchDevice::kIdle);
@@ -350,7 +354,8 @@
       .ExpectConfigOut(ZX_OK, 0)
       .ExpectConfigIn(ZX_OK, GPIO_PULL_UP);
 
-  Gt92xxTest device(i2c.GetProto(), intr.GetProto(), reset.GetProto());
+  auto fake_parent = MockDevice::FakeRootParent();
+  Gt92xxTest device(i2c.GetProto(), intr.GetProto(), reset.GetProto(), fake_parent.get());
   EXPECT_OK(device.Init());
   EXPECT_TRUE(i2c.FirmwareWritten());
   EXPECT_EQ(i2c.CurrentState(), FakeTouchDevice::kReady);
@@ -370,7 +375,8 @@
 
   corrupt_firmware_checksum = true;
 
-  Gt92xxTest device(i2c.GetProto(), intr.GetProto(), reset.GetProto());
+  auto fake_parent = MockDevice::FakeRootParent();
+  Gt92xxTest device(i2c.GetProto(), intr.GetProto(), reset.GetProto(), fake_parent.get());
   EXPECT_NOT_OK(device.Init());
   EXPECT_FALSE(i2c.FirmwareWritten());
   EXPECT_EQ(i2c.CurrentState(), FakeTouchDevice::kIdle);
@@ -394,7 +400,8 @@
   reset.ExpectConfigOut(ZX_OK, 0).ExpectConfigOut(ZX_OK, 1);
   intr.ExpectConfigOut(ZX_OK, 0);
 
-  Gt92xxTest device(i2c.GetProto(), intr.GetProto(), reset.GetProto());
+  auto fake_parent = MockDevice::FakeRootParent();
+  Gt92xxTest device(i2c.GetProto(), intr.GetProto(), reset.GetProto(), fake_parent.get());
   EXPECT_NOT_OK(device.Init());
   EXPECT_TRUE(i2c.FirmwareWritten());
   EXPECT_EQ(i2c.CurrentState(), FakeTouchDevice::kReadingDspIsp);
diff --git a/src/ui/input/drivers/goodix/gt92xx-test.cc b/src/ui/input/drivers/goodix/gt92xx-test.cc
index 7ccf573..c7f17b9 100644
--- a/src/ui/input/drivers/goodix/gt92xx-test.cc
+++ b/src/ui/input/drivers/goodix/gt92xx-test.cc
@@ -7,7 +7,6 @@
 #include <fuchsia/hardware/gpio/cpp/banjo-mock.h>
 #include <fuchsia/hardware/gpio/cpp/banjo.h>
 #include <lib/ddk/metadata.h>
-#include <lib/fake_ddk/fake_ddk.h>
 #include <lib/mock-i2c/mock-i2c.h>
 
 #include <atomic>
@@ -16,12 +15,15 @@
 #include <hid/gt92xx.h>
 #include <zxtest/zxtest.h>
 
+#include "src/devices/testing/mock-ddk/mock-device.h"
+
 namespace goodix {
 
 class Gt92xxTest : public Gt92xxDevice {
  public:
-  Gt92xxTest(ddk::I2cChannel i2c, ddk::GpioProtocolClient intr, ddk::GpioProtocolClient reset)
-      : Gt92xxDevice(fake_ddk::kFakeParent, i2c, intr, reset) {}
+  Gt92xxTest(ddk::I2cChannel i2c, ddk::GpioProtocolClient intr, ddk::GpioProtocolClient reset,
+             zx_device_t* parent)
+      : Gt92xxDevice(parent, i2c, intr, reset) {}
 
   void Running(bool run) { Gt92xxDevice::running_.store(run); }
 
@@ -80,7 +82,8 @@
 
   ddk::I2cChannel i2c(mock_i2c.GetProto());
 
-  Gt92xxTest device(i2c, intr, reset);
+  auto fake_parent = MockDevice::FakeRootParent();
+  Gt92xxTest device(i2c, intr, reset, fake_parent.get());
 
   mock_i2c
       .ExpectWrite({static_cast<uint8_t>(GT_REG_CONFIG_DATA >> 8),
@@ -118,7 +121,8 @@
 
   ddk::I2cChannel i2c(mock_i2c.GetProto());
 
-  Gt92xxTest device(i2c, intr, reset);
+  auto fake_parent = MockDevice::FakeRootParent();
+  Gt92xxTest device(i2c, intr, reset, fake_parent.get());
 
   fbl::Vector conf_data = Gt92xxDevice::GetConfData();
   EXPECT_NE(conf_data[sizeof(uint16_t)], 0x00);
@@ -163,7 +167,8 @@
 
   ddk::I2cChannel i2c(mock_i2c.GetProto());
 
-  Gt92xxTest device(i2c, intr_mock.GetProto(), reset_mock.GetProto());
+  auto fake_parent = MockDevice::FakeRootParent();\
+  Gt92xxTest device(i2c, intr_mock.GetProto(), reset_mock.GetProto(), fake_parent.get());
   EXPECT_OK(device.StartThread());
   zx_nanosleep(zx_deadline_after(ZX_MSEC(10)));