summaryrefslogtreecommitdiffhomepage
path: root/test/unit
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit')
-rw-r--r--test/unit/applications/lang/go.py4
-rw-r--r--test/unit/applications/lang/java.py4
-rw-r--r--test/unit/applications/lang/node.py2
-rw-r--r--test/unit/applications/lang/perl.py2
-rw-r--r--test/unit/applications/lang/php.py9
-rw-r--r--test/unit/applications/lang/python.py9
-rw-r--r--test/unit/applications/lang/ruby.py2
-rw-r--r--test/unit/applications/tls.py4
-rw-r--r--test/unit/applications/websockets.py13
-rw-r--r--test/unit/check/check_prerequisites.py1
-rw-r--r--test/unit/check/chroot.py2
-rw-r--r--test/unit/check/discover_available.py2
-rw-r--r--test/unit/check/isolation.py27
-rw-r--r--test/unit/check/node.py4
-rw-r--r--test/unit/control.py2
-rw-r--r--test/unit/http.py12
-rw-r--r--test/unit/option.py1
-rw-r--r--test/unit/status.py10
18 files changed, 56 insertions, 54 deletions
diff --git a/test/unit/applications/lang/go.py b/test/unit/applications/lang/go.py
index 93e0738b..2479d4f6 100644
--- a/test/unit/applications/lang/go.py
+++ b/test/unit/applications/lang/go.py
@@ -53,7 +53,7 @@ class ApplicationGo(ApplicationProto):
replace_path = f'{option.current_dir}/build/go/src/unit.nginx.org/go'
- with open(f'{temp_dir}go.mod', 'w') as f:
+ with open(f'{temp_dir}go.mod', 'w', encoding='utf-8') as f:
f.write(
f"""module test/app
require unit.nginx.org/go v0.0.0
@@ -91,7 +91,7 @@ replace unit.nginx.org/go => {replace_path}
ApplicationGo.prepare_env(script, name, static=static_build)
conf = {
- "listeners": {"*:7080": {"pass": f"applications/{script}"}},
+ "listeners": {"*:8080": {"pass": f"applications/{script}"}},
"applications": {
script: {
"type": "external",
diff --git a/test/unit/applications/lang/java.py b/test/unit/applications/lang/java.py
index dc6d2bfc..351d04ce 100644
--- a/test/unit/applications/lang/java.py
+++ b/test/unit/applications/lang/java.py
@@ -53,7 +53,7 @@ class ApplicationJava(ApplicationProto):
os.makedirs(classes_path)
classpath = (
- f'{option.current_dir}/build/tomcat-servlet-api-9.0.82.jar'
+ f'{option.current_dir}/build/tomcat-servlet-api-9.0.86.jar'
)
ws_jars = glob.glob(
@@ -97,7 +97,7 @@ class ApplicationJava(ApplicationProto):
script_path = f'{option.test_dir}/java/{script}/'
self._load_conf(
{
- "listeners": {"*:7080": {"pass": f"applications/{script}"}},
+ "listeners": {"*:8080": {"pass": f"applications/{script}"}},
"applications": {
script: {
"unit_jars": f'{option.current_dir}/build',
diff --git a/test/unit/applications/lang/node.py b/test/unit/applications/lang/node.py
index 4f18c780..ff95fbd5 100644
--- a/test/unit/applications/lang/node.py
+++ b/test/unit/applications/lang/node.py
@@ -44,7 +44,7 @@ class ApplicationNode(ApplicationProto):
self._load_conf(
{
"listeners": {
- "*:7080": {"pass": f"applications/{quote(script, '')}"}
+ "*:8080": {"pass": f"applications/{quote(script, '')}"}
},
"applications": {
script: {
diff --git a/test/unit/applications/lang/perl.py b/test/unit/applications/lang/perl.py
index 037e98e8..e99c2aca 100644
--- a/test/unit/applications/lang/perl.py
+++ b/test/unit/applications/lang/perl.py
@@ -11,7 +11,7 @@ class ApplicationPerl(ApplicationProto):
self._load_conf(
{
- "listeners": {"*:7080": {"pass": f"applications/{script}"}},
+ "listeners": {"*:8080": {"pass": f"applications/{script}"}},
"applications": {
script: {
"type": self.get_application_type(),
diff --git a/test/unit/applications/lang/php.py b/test/unit/applications/lang/php.py
index b9b6dbf1..ac59ec1b 100644
--- a/test/unit/applications/lang/php.py
+++ b/test/unit/applications/lang/php.py
@@ -1,4 +1,4 @@
-import os
+from pathlib import Path
import shutil
from unit.applications.proto import ApplicationProto
@@ -15,10 +15,9 @@ class ApplicationPHP(ApplicationProto):
if kwargs.get('isolation') and kwargs['isolation'].get('rootfs'):
rootfs = kwargs['isolation']['rootfs']
- if not os.path.exists(f'{rootfs}/app/php/'):
- os.makedirs(f'{rootfs}/app/php/')
+ Path(f'{rootfs}/app/php/').mkdir(parents=True, exist_ok=True)
- if not os.path.exists(f'{rootfs}/app/php/{script}'):
+ if not Path(f'{rootfs}/app/php/{script}').exists():
shutil.copytree(script_path, f'{rootfs}/app/php/{script}')
script_path = f'/app/php/{script}'
@@ -42,7 +41,7 @@ class ApplicationPHP(ApplicationProto):
self._load_conf(
{
- "listeners": {"*:7080": {"pass": f"applications/{script}"}},
+ "listeners": {"*:8080": {"pass": f"applications/{script}"}},
"applications": {script: app},
},
**kwargs,
diff --git a/test/unit/applications/lang/python.py b/test/unit/applications/lang/python.py
index 4e1fd897..67684b04 100644
--- a/test/unit/applications/lang/python.py
+++ b/test/unit/applications/lang/python.py
@@ -1,4 +1,4 @@
-import os
+from pathlib import Path
import shutil
from urllib.parse import quote
@@ -26,10 +26,9 @@ class ApplicationPython(ApplicationProto):
if kwargs.get('isolation') and kwargs['isolation'].get('rootfs'):
rootfs = kwargs['isolation']['rootfs']
- if not os.path.exists(f'{rootfs}/app/python/'):
- os.makedirs(f'{rootfs}/app/python/')
+ Path(f'{rootfs}/app/python/').mkdir(parents=True, exist_ok=True)
- if not os.path.exists(f'{rootfs}/app/python/{name}'):
+ if not Path(f'{rootfs}/app/python/{name}').exists():
shutil.copytree(script_path, f'{rootfs}/app/python/{name}')
script_path = f'/app/python/{name}'
@@ -59,7 +58,7 @@ class ApplicationPython(ApplicationProto):
self._load_conf(
{
"listeners": {
- "*:7080": {"pass": f"applications/{quote(name, '')}"}
+ "*:8080": {"pass": f"applications/{quote(name, '')}"}
},
"applications": {name: app},
},
diff --git a/test/unit/applications/lang/ruby.py b/test/unit/applications/lang/ruby.py
index f6c4f6c3..1268f8c7 100644
--- a/test/unit/applications/lang/ruby.py
+++ b/test/unit/applications/lang/ruby.py
@@ -37,7 +37,7 @@ class ApplicationRuby(ApplicationProto):
self._load_conf(
{
- "listeners": {"*:7080": {"pass": f"applications/{script}"}},
+ "listeners": {"*:8080": {"pass": f"applications/{script}"}},
"applications": {script: app},
},
**kwargs,
diff --git a/test/unit/applications/tls.py b/test/unit/applications/tls.py
index e9bcc514..75354dd9 100644
--- a/test/unit/applications/tls.py
+++ b/test/unit/applications/tls.py
@@ -79,7 +79,7 @@ subjectAltName = @alt_names
{a_names}'''
- with open(conf_path, 'w') as f:
+ with open(conf_path, 'w', encoding='utf-8') as f:
f.write(
f'''[ req ]
default_bits = 2048
@@ -97,7 +97,7 @@ distinguished_name = req_distinguished_name
script_path = f'{option.test_dir}/python/{script}'
self._load_conf(
{
- "listeners": {"*:7080": {"pass": f"applications/{name}"}},
+ "listeners": {"*:8080": {"pass": f"applications/{name}"}},
"applications": {
name: {
"type": "python",
diff --git a/test/unit/applications/websockets.py b/test/unit/applications/websockets.py
index 29725943..a8e563d0 100644
--- a/test/unit/applications/websockets.py
+++ b/test/unit/applications/websockets.py
@@ -6,6 +6,7 @@ import select
import struct
import pytest
+
from unit.applications.proto import ApplicationProto
GUID = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"
@@ -69,7 +70,7 @@ class ApplicationWebsocket(ApplicationProto):
return struct.pack('!H', code) + reason.encode('utf-8')
def frame_read(self, sock, read_timeout=60):
- def recv_bytes(sock, bytes):
+ def recv_bytes(sock, bytes_len):
data = b''
while True:
rlist = select.select([sock], [], [], read_timeout)[0]
@@ -80,9 +81,9 @@ class ApplicationWebsocket(ApplicationProto):
pytest.fail("Can't read response from server.")
break
- data += sock.recv(bytes - len(data))
+ data += sock.recv(bytes_len - len(data))
- if len(data) == bytes:
+ if len(data) == bytes_len:
break
return data
@@ -206,18 +207,18 @@ class ApplicationWebsocket(ApplicationProto):
end = frame_len
pos = end
- def message(self, sock, type, message, fragmention_size=None, **kwargs):
+ def message(self, sock, mes_type, message, fragmention_size=None, **kwargs):
message_len = len(message)
if fragmention_size is None:
fragmention_size = message_len
if message_len <= fragmention_size:
- self.frame_write(sock, type, message, **kwargs)
+ self.frame_write(sock, mes_type, message, **kwargs)
return
pos = 0
- op_code = type
+ op_code = mes_type
while pos < message_len:
end = min(pos + fragmention_size, message_len)
fin = end == message_len
diff --git a/test/unit/check/check_prerequisites.py b/test/unit/check/check_prerequisites.py
index 44c3f10f..ea319346 100644
--- a/test/unit/check/check_prerequisites.py
+++ b/test/unit/check/check_prerequisites.py
@@ -1,4 +1,5 @@
import pytest
+
from unit.option import option
diff --git a/test/unit/check/chroot.py b/test/unit/check/chroot.py
index b749fab6..466b6ba4 100644
--- a/test/unit/check/chroot.py
+++ b/test/unit/check/chroot.py
@@ -15,7 +15,7 @@ def check_chroot():
addr=f'{option.temp_dir}/control.unit.sock',
body=json.dumps(
{
- "listeners": {"*:7080": {"pass": "routes"}},
+ "listeners": {"*:8080": {"pass": "routes"}},
"routes": [
{
"action": {
diff --git a/test/unit/check/discover_available.py b/test/unit/check/discover_available.py
index 0942581b..1383a0c3 100644
--- a/test/unit/check/discover_available.py
+++ b/test/unit/check/discover_available.py
@@ -18,6 +18,8 @@ def discover_available(unit):
[unit['unitd'], '--version'], stderr=subprocess.STDOUT
).decode()
+ option.configure_flag['asan'] = '-fsanitize=address' in output_version
+
# wait for controller start
if Log.wait_for_record(r'controller started') is None:
diff --git a/test/unit/check/isolation.py b/test/unit/check/isolation.py
index e4674f4d..861c0818 100644
--- a/test/unit/check/isolation.py
+++ b/test/unit/check/isolation.py
@@ -1,5 +1,5 @@
import json
-import os
+from pathlib import Path
from unit.applications.lang.go import ApplicationGo
from unit.applications.lang.java import ApplicationJava
@@ -21,7 +21,7 @@ def check_isolation():
ApplicationGo().prepare_env('empty', 'app')
conf = {
- "listeners": {"*:7080": {"pass": "applications/empty"}},
+ "listeners": {"*:8080": {"pass": "applications/empty"}},
"applications": {
"empty": {
"type": "external",
@@ -35,7 +35,7 @@ def check_isolation():
elif 'python' in available['modules']:
conf = {
- "listeners": {"*:7080": {"pass": "applications/empty"}},
+ "listeners": {"*:8080": {"pass": "applications/empty"}},
"applications": {
"empty": {
"type": "python",
@@ -50,7 +50,7 @@ def check_isolation():
elif 'php' in available['modules']:
conf = {
- "listeners": {"*:7080": {"pass": "applications/phpinfo"}},
+ "listeners": {"*:8080": {"pass": "applications/phpinfo"}},
"applications": {
"phpinfo": {
"type": "php",
@@ -67,7 +67,7 @@ def check_isolation():
ApplicationRuby().prepare_env('empty')
conf = {
- "listeners": {"*:7080": {"pass": "applications/empty"}},
+ "listeners": {"*:8080": {"pass": "applications/empty"}},
"applications": {
"empty": {
"type": "ruby",
@@ -83,7 +83,7 @@ def check_isolation():
ApplicationJava().prepare_env('empty')
conf = {
- "listeners": {"*:7080": {"pass": "applications/empty"}},
+ "listeners": {"*:8080": {"pass": "applications/empty"}},
"applications": {
"empty": {
"unit_jars": f"{option.current_dir}/build",
@@ -100,7 +100,7 @@ def check_isolation():
ApplicationNode().prepare_env('basic')
conf = {
- "listeners": {"*:7080": {"pass": "applications/basic"}},
+ "listeners": {"*:8080": {"pass": "applications/basic"}},
"applications": {
"basic": {
"type": "external",
@@ -114,7 +114,7 @@ def check_isolation():
elif 'perl' in available['modules']:
conf = {
- "listeners": {"*:7080": {"pass": "applications/body_empty"}},
+ "listeners": {"*:8080": {"pass": "applications/body_empty"}},
"applications": {
"body_empty": {
"type": "perl",
@@ -145,11 +145,12 @@ def check_isolation():
isolation = {'user': userns}
- unp_clone_path = '/proc/sys/kernel/unprivileged_userns_clone'
- if os.path.exists(unp_clone_path):
- with open(unp_clone_path, 'r') as f:
- if str(f.read()).rstrip() == '1':
- isolation['unprivileged_userns_clone'] = True
+ path_clone = Path('/proc/sys/kernel/unprivileged_userns_clone')
+ if (
+ path_clone.exists()
+ and path_clone.read_text(encoding='utf-8').rstrip() == '1'
+ ):
+ isolation['unprivileged_userns_clone'] = True
for ns in allns:
ns_value = getns(ns)
diff --git a/test/unit/check/node.py b/test/unit/check/node.py
index 6a3d581f..b206e914 100644
--- a/test/unit/check/node.py
+++ b/test/unit/check/node.py
@@ -1,11 +1,11 @@
-import os
import subprocess
+from pathlib import Path
from unit.option import option
def check_node():
- if not os.path.exists(f'{option.current_dir}/node/node_modules'):
+ if not Path(f'{option.current_dir}/node/node_modules').exists():
return False
try:
diff --git a/test/unit/control.py b/test/unit/control.py
index 164d0e60..8cdf1887 100644
--- a/test/unit/control.py
+++ b/test/unit/control.py
@@ -16,7 +16,7 @@ def args_handler(conf_func):
elif argcount == 3:
conf = args[0]
- if isinstance(conf, dict) or isinstance(conf, list):
+ if isinstance(conf, (dict, list)):
conf = json.dumps(conf)
url = args[1] if len(args) == 2 else url_default
diff --git a/test/unit/http.py b/test/unit/http.py
index 347382f5..9401501b 100644
--- a/test/unit/http.py
+++ b/test/unit/http.py
@@ -7,13 +7,14 @@ import select
import socket
import pytest
+
from unit.option import option
class HTTP1:
def http(self, start_str, **kwargs):
sock_type = kwargs.get('sock_type', 'ipv4')
- port = kwargs.get('port', 7080)
+ port = kwargs.get('port', 8080)
url = kwargs.get('url', '/')
http = 'HTTP/1.0' if 'http_10' in kwargs else 'HTTP/1.1'
@@ -38,10 +39,7 @@ class HTTP1:
if 'sock' not in kwargs:
sock = socket.socket(sock_types[sock_type], socket.SOCK_STREAM)
- if (
- sock_type == sock_types['ipv4']
- or sock_type == sock_types['ipv6']
- ):
+ if sock_type in (sock_types['ipv4'], sock_types['ipv6']):
sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
if 'wrapper' in kwargs:
@@ -202,7 +200,7 @@ class HTTP1:
data += part
- if not len(part):
+ if not part:
break
return data
@@ -263,7 +261,7 @@ class HTTP1:
size = int(chunks.pop(0), 16)
except ValueError:
- pytest.fail(f'Invalid chunk size {size}')
+ pytest.fail('Invalid chunk size')
if size == 0:
assert len(chunks) == 1, 'last zero size'
diff --git a/test/unit/option.py b/test/unit/option.py
index ee1f46dd..7c66c619 100644
--- a/test/unit/option.py
+++ b/test/unit/option.py
@@ -6,6 +6,7 @@ class Options:
_options = {
'architecture': platform.architecture()[0],
'available': {'modules': {}, 'features': {}},
+ 'configure_flag': {},
'is_privileged': os.geteuid() == 0,
'skip_alerts': [],
'skip_sanitizer': False,
diff --git a/test/unit/status.py b/test/unit/status.py
index 84c958a3..95096a96 100644
--- a/test/unit/status.py
+++ b/test/unit/status.py
@@ -30,16 +30,16 @@ class Status:
for k in d1
if k in d2
}
- else:
- return d1 - d2
+
+ return d1 - d2
return find_diffs(Status.control.conf_get('/status'), Status._status)
def get(path='/'):
- path = path.split('/')[1:]
+ path_lst = path.split('/')[1:]
diff = Status.diff()
- for p in path:
- diff = diff[p]
+ for part in path_lst:
+ diff = diff[part]
return diff