diff --git a/tests/adverb.py b/tests/adverb.py
index 1490ca2357e5f137f2f940ac13359485b5ea193c..09d9d6a06d37c4d4249eea66d3035c983a1d4f76 100755
--- a/tests/adverb.py
+++ b/tests/adverb.py
@@ -83,6 +83,30 @@ class TestAdverb(BaseTest):
                 (128 + signal.SIGTERM, -signal.SIGTERM),
             )
 
+    def test_fd_passthrough(self) -> None:
+        read_end, write_end = os.pipe2(os.O_CLOEXEC)
+
+        proc = subprocess.Popen(
+            self.adverb + [
+                '--pass-fd=%d' % write_end,
+                '--',
+                'sh', '-euc', 'echo hello >&%d' % write_end,
+            ],
+            pass_fds=[write_end],
+            stdout=2,
+            stderr=2,
+            universal_newlines=True,
+        )
+
+        try:
+            os.close(write_end)
+
+            with os.fdopen(read_end, 'rb') as reader:
+                self.assertEqual(reader.read(), b'hello\n')
+        finally:
+            proc.wait()
+            self.assertEqual(proc.returncode, 0)
+
     def tearDown(self) -> None:
         super().tearDown()