diff options
author | Andrei Belov <defan@nginx.com> | 2021-05-27 17:03:24 +0300 |
---|---|---|
committer | Andrei Belov <defan@nginx.com> | 2021-05-27 17:03:24 +0300 |
commit | 0afb4b5790c5a37ba6b880eb351a65fe00521fbe (patch) | |
tree | c7e0b6bed92ee62a5e8b13c945c4134e68554cec /test/test_configuration.py | |
parent | 21ff5e086ece7188df3b7338d228fa4fb7f886af (diff) | |
parent | d06e55dfa3692e27a92ff6c2534bb083416bc0c8 (diff) | |
download | unit-0afb4b5790c5a37ba6b880eb351a65fe00521fbe.tar.gz unit-0afb4b5790c5a37ba6b880eb351a65fe00521fbe.tar.bz2 |
Merged with the default branch.1.24.0-1
Diffstat (limited to '')
-rw-r--r-- | test/test_configuration.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/test_configuration.py b/test/test_configuration.py index b7417264..880aef6c 100644 --- a/test/test_configuration.py +++ b/test/test_configuration.py @@ -1,4 +1,6 @@ import pytest + +import socket from unit.control import TestControl @@ -260,6 +262,33 @@ class TestConfiguration(TestControl): } ), 'explicit ipv6' + def test_listeners_port_release(self): + for i in range(10): + fail = False + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: + s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + + self.conf( + { + "listeners": {"127.0.0.1:7080": {"pass": "routes"}}, + "routes": [], + } + ) + + resp = self.conf({"listeners": {}, "applications": {}}) + + try: + s.bind(('127.0.0.1', 7080)) + s.listen() + + except OSError: + fail = True + + if fail: + pytest.fail('cannot bind or listen to the address') + + assert 'success' in resp, 'port release' + @pytest.mark.skip('not yet, unsafe') def test_listeners_no_port(self): assert 'error' in self.conf( |