diff options
author | Thomas Haller <thaller@redhat.com> | 2023-03-31 17:43:11 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2023-03-31 17:43:11 +0200 |
commit | 17601acd3d7ba02a15a43dd4ecf718acb7a2acf0 (patch) | |
tree | c6d60cb936cff0a768b605026b27ba19ee771740 | |
parent | 9ed802b0c289ec785efb23e76272e61466242d8b (diff) | |
parent | 342ee618c75b350cf5cccf49f2bade85c5dfa3ea (diff) | |
download | NetworkManager-17601acd3d7ba02a15a43dd4ecf718acb7a2acf0.tar.gz |
clients/tests: merge branch 'th/test-client-fixes'
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1591
-rwxr-xr-x | src/tests/client/test-client.py | 12 | ||||
-rwxr-xr-x | tools/test-cloud-meta-mock.py | 6 |
2 files changed, 8 insertions, 10 deletions
diff --git a/src/tests/client/test-client.py b/src/tests/client/test-client.py index e603203e3e..b6f7cf00a4 100755 --- a/src/tests/client/test-client.py +++ b/src/tests/client/test-client.py @@ -2146,8 +2146,11 @@ class TestNmCloudSetup(TestNmClient): if pexpect is None: raise unittest.SkipTest("pexpect not available") + if tuple(sys.version_info[0:2]) < (3, 2): + # subprocess.Popen()'s "pass_fd" argument requires at least Python 3.2. + raise unittest.SkipTest("This test requires at least Python 3.2") + s = socket.socket() - s.set_inheritable(True) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1) s.bind(("localhost", 0)) @@ -2157,18 +2160,14 @@ class TestNmCloudSetup(TestNmClient): # hallucinogenic substances. s.listen(5) - def pass_socket(): - os.dup2(s.fileno(), 3, inheritable=True) - service_path = PathConfiguration.test_cloud_meta_mock_path() env = os.environ.copy() - env["LISTEN_FDS"] = "1" + env["LISTEN_FD"] = str(s.fileno()) p = subprocess.Popen( [sys.executable, service_path], stdin=subprocess.PIPE, env=env, pass_fds=(s.fileno(),), - preexec_fn=pass_socket, ) self.md_url = "http://%s:%d" % s.getsockname() @@ -2178,6 +2177,7 @@ class TestNmCloudSetup(TestNmClient): func(self) self._nm_test_post() + p.stdin.close() p.terminate() p.wait() diff --git a/tools/test-cloud-meta-mock.py b/tools/test-cloud-meta-mock.py index 262dc2ffb3..392955b8ad 100755 --- a/tools/test-cloud-meta-mock.py +++ b/tools/test-cloud-meta-mock.py @@ -68,11 +68,9 @@ class SocketHTTPServer(HTTPServer): # See sd_listen_fds(3) -fileno = os.getenv("LISTEN_FDS") +fileno = os.getenv("LISTEN_FD") if fileno is not None: - if fileno != "1": - raise Exception("Bad LISTEN_FDS") - s = socket.socket(fileno=3) + s = socket.socket(fileno=int(fileno)) else: addr = ("localhost", 0) s = socket.socket() |