summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2023-03-31 17:43:11 +0200
committerThomas Haller <thaller@redhat.com>2023-03-31 17:43:11 +0200
commit17601acd3d7ba02a15a43dd4ecf718acb7a2acf0 (patch)
treec6d60cb936cff0a768b605026b27ba19ee771740
parent9ed802b0c289ec785efb23e76272e61466242d8b (diff)
parent342ee618c75b350cf5cccf49f2bade85c5dfa3ea (diff)
downloadNetworkManager-17601acd3d7ba02a15a43dd4ecf718acb7a2acf0.tar.gz
clients/tests: merge branch 'th/test-client-fixes'
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1591
-rwxr-xr-xsrc/tests/client/test-client.py12
-rwxr-xr-xtools/test-cloud-meta-mock.py6
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()