summaryrefslogtreecommitdiffhomepage
path: root/test/unit
diff options
context:
space:
mode:
authorAndrei Zeliankou <zelenkov@nginx.com>2020-10-01 10:17:00 +0100
committerAndrei Zeliankou <zelenkov@nginx.com>2020-10-01 10:17:00 +0100
commitd491527555c076695a4202577198e12bf0b919ec (patch)
tree6640d7466137b41780c1ce94683fc869b68241cc /test/unit
parent1fe1518ab1b9ad5dac6f2f8a1e41571cbc4d96e9 (diff)
downloadunit-d491527555c076695a4202577198e12bf0b919ec.tar.gz
unit-d491527555c076695a4202577198e12bf0b919ec.tar.bz2
Tests: minor fixes.
Fixed temporary dir removing. Fixed printing path to log. Module checks moved to the separate file.
Diffstat (limited to '')
-rw-r--r--test/unit/applications/lang/go.py16
-rw-r--r--test/unit/applications/lang/java.py8
-rw-r--r--test/unit/applications/lang/node.py13
-rw-r--r--test/unit/applications/tls.py21
-rw-r--r--test/unit/check/go.py29
-rw-r--r--test/unit/check/node.py6
-rw-r--r--test/unit/check/tls.py13
-rw-r--r--test/unit/main.py23
8 files changed, 60 insertions, 69 deletions
diff --git a/test/unit/applications/lang/go.py b/test/unit/applications/lang/go.py
index 069bdecb..946b5421 100644
--- a/test/unit/applications/lang/go.py
+++ b/test/unit/applications/lang/go.py
@@ -6,26 +6,12 @@ from conftest import option
class TestApplicationGo(TestApplicationProto):
- @classmethod
- def setup_class(cls, complete_check=True):
- unit = super().setup_class(complete_check=False)
-
- # check go module
-
- go_app = TestApplicationGo()
- go_app.temp_dir = unit.temp_dir
- proc = go_app.prepare_env('empty', 'app')
- if proc and proc.returncode == 0:
- cls.available['modules']['go'] = []
-
- return unit if not complete_check else unit.complete()
-
def prepare_env(self, script, name, static=False):
if not os.path.exists(self.temp_dir + '/go'):
os.mkdir(self.temp_dir + '/go')
env = os.environ.copy()
- env['GOPATH'] = self.pardir + '/build/go'
+ env['GOPATH'] = option.current_dir + '/build/go'
if static:
args = [
diff --git a/test/unit/applications/lang/java.py b/test/unit/applications/lang/java.py
index b5511883..93427709 100644
--- a/test/unit/applications/lang/java.py
+++ b/test/unit/applications/lang/java.py
@@ -49,10 +49,12 @@ class TestApplicationJava(TestApplicationProto):
if not os.path.isdir(classes_path):
os.makedirs(classes_path)
- classpath = self.pardir + '/build/tomcat-servlet-api-9.0.13.jar'
+ classpath = (
+ option.current_dir + '/build/tomcat-servlet-api-9.0.13.jar'
+ )
ws_jars = glob.glob(
- self.pardir + '/build/websocket-api-java-*.jar'
+ option.current_dir + '/build/websocket-api-java-*.jar'
)
if not ws_jars:
@@ -78,7 +80,7 @@ class TestApplicationJava(TestApplicationProto):
"listeners": {"*:7080": {"pass": "applications/" + script}},
"applications": {
script: {
- "unit_jars": self.pardir + '/build',
+ "unit_jars": option.current_dir + '/build',
"type": 'java',
"processes": {"spare": 0},
"working_directory": script_path,
diff --git a/test/unit/applications/lang/node.py b/test/unit/applications/lang/node.py
index f510acce..dbb7036b 100644
--- a/test/unit/applications/lang/node.py
+++ b/test/unit/applications/lang/node.py
@@ -7,17 +7,6 @@ from conftest import option, public_dir
class TestApplicationNode(TestApplicationProto):
- @classmethod
- def setup_class(cls, complete_check=True):
- unit = super().setup_class(complete_check=False)
-
- # check node module
-
- if os.path.exists(unit.pardir + '/node/node_modules'):
- cls.available['modules']['node'] = []
-
- return unit if not complete_check else unit.complete()
-
def load(self, script, name='app.js', **kwargs):
# copy application
@@ -28,7 +17,7 @@ class TestApplicationNode(TestApplicationProto):
# copy modules
shutil.copytree(
- self.pardir + '/node/node_modules',
+ option.current_dir + '/node/node_modules',
self.temp_dir + '/node/node_modules',
)
diff --git a/test/unit/applications/tls.py b/test/unit/applications/tls.py
index 5453eef0..7c95f27b 100644
--- a/test/unit/applications/tls.py
+++ b/test/unit/applications/tls.py
@@ -15,27 +15,6 @@ class TestApplicationTLS(TestApplicationProto):
self.context.check_hostname = False
self.context.verify_mode = ssl.CERT_NONE
- @classmethod
- def setup_class(cls, complete_check=True):
- unit = super().setup_class(complete_check=False)
-
- # check tls module
-
- try:
- subprocess.check_output(['which', 'openssl'])
-
- output = subprocess.check_output(
- [unit.unitd, '--version'], stderr=subprocess.STDOUT
- )
-
- if re.search('--openssl', output.decode()):
- cls.available['modules']['openssl'] = []
-
- except:
- pass
-
- return unit if not complete_check else unit.complete()
-
def certificate(self, name='default', load=True):
self.openssl_conf()
diff --git a/test/unit/check/go.py b/test/unit/check/go.py
new file mode 100644
index 00000000..dd2150eb
--- /dev/null
+++ b/test/unit/check/go.py
@@ -0,0 +1,29 @@
+import os
+import subprocess
+
+
+def check_go(current_dir, temp_dir, test_dir):
+ if not os.path.exists(temp_dir + '/go'):
+ os.mkdir(temp_dir + '/go')
+
+ env = os.environ.copy()
+ env['GOPATH'] = current_dir + '/build/go'
+
+ try:
+ process = subprocess.Popen(
+ [
+ 'go',
+ 'build',
+ '-o',
+ temp_dir + '/go/app',
+ test_dir + '/go/empty/app.go',
+ ],
+ env=env,
+ )
+ process.communicate()
+
+ if process.returncode == 0:
+ return True
+
+ except:
+ return None
diff --git a/test/unit/check/node.py b/test/unit/check/node.py
new file mode 100644
index 00000000..236ba7b5
--- /dev/null
+++ b/test/unit/check/node.py
@@ -0,0 +1,6 @@
+import os
+
+
+def check_node(current_dir):
+ if os.path.exists(current_dir + '/node/node_modules'):
+ return True
diff --git a/test/unit/check/tls.py b/test/unit/check/tls.py
new file mode 100644
index 00000000..b878ff7d
--- /dev/null
+++ b/test/unit/check/tls.py
@@ -0,0 +1,13 @@
+import re
+import subprocess
+
+
+def check_openssl(unitd):
+ subprocess.check_output(['which', 'openssl'])
+
+ output = subprocess.check_output(
+ [unitd, '--version'], stderr=subprocess.STDOUT
+ )
+
+ if re.search('--openssl', output.decode()):
+ return True
diff --git a/test/unit/main.py b/test/unit/main.py
index 18ea326e..053ce145 100644
--- a/test/unit/main.py
+++ b/test/unit/main.py
@@ -16,11 +16,6 @@ from multiprocessing import Process
class TestUnit():
-
- pardir = os.path.abspath(
- os.path.join(os.path.dirname(__file__), os.pardir, os.pardir)
- )
-
@classmethod
def setup_class(cls, complete_check=True):
cls.available = option.available
@@ -41,17 +36,9 @@ class TestUnit():
break
if m is None:
- _print_log()
+ _print_log(path=unit.temp_dir + '/unit.log')
exit("Unit is writing log too long")
- # discover available modules from unit.log
-
- for module in re.findall(r'module: ([a-zA-Z]+) (.*) ".*"$', log, re.M):
- if module[0] not in cls.available['modules']:
- cls.available['modules'][module[0]] = [module[1]]
- else:
- cls.available['modules'][module[0]].append(module[1])
-
def check(available, prerequisites):
missed = []
@@ -102,7 +89,7 @@ class TestUnit():
self._run()
def _run(self):
- build_dir = self.pardir + '/build'
+ build_dir = option.current_dir + '/build'
self.unitd = build_dir + '/unitd'
if not os.path.isfile(self.unitd):
@@ -122,7 +109,7 @@ class TestUnit():
[
self.unitd,
'--no-daemon',
- '--modules', self.pardir + '/build',
+ '--modules', build_dir,
'--state', self.temp_dir + '/state',
'--pid', self.temp_dir + '/unit.pid',
'--log', self.temp_dir + '/unit.log',
@@ -135,7 +122,7 @@ class TestUnit():
atexit.register(self.stop)
if not waitforfiles(self.temp_dir + '/control.unit.sock'):
- _print_log()
+ _print_log(path=self.temp_dir + '/unit.log')
exit("Could not start unit")
self._started = True
@@ -155,7 +142,7 @@ class TestUnit():
if not option.save_log:
shutil.rmtree(self.temp_dir)
else:
- _print_log()
+ _print_log(path=self.temp_dir)
assert self.stop_errors == [None, None], 'stop errors'