From e5293c7530f195a57f08dee2e6b9c17c7580a532 Mon Sep 17 00:00:00 2001
From: Simon McVittie <smcv@collabora.com>
Date: Wed, 5 Aug 2020 14:58:26 +0100
Subject: [PATCH] tests: Test adverb --pass-fd

Signed-off-by: Simon McVittie <smcv@collabora.com>
---
 tests/adverb.py | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/tests/adverb.py b/tests/adverb.py
index 1490ca235..09d9d6a06 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()
 
-- 
GitLab