diff options
author | Andrei Zeliankou <zelenkov@nginx.com> | 2020-10-01 10:17:00 +0100 |
---|---|---|
committer | Andrei Zeliankou <zelenkov@nginx.com> | 2020-10-01 10:17:00 +0100 |
commit | d491527555c076695a4202577198e12bf0b919ec (patch) | |
tree | 6640d7466137b41780c1ce94683fc869b68241cc /test/unit | |
parent | 1fe1518ab1b9ad5dac6f2f8a1e41571cbc4d96e9 (diff) | |
download | unit-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 'test/unit')
-rw-r--r-- | test/unit/applications/lang/go.py | 16 | ||||
-rw-r--r-- | test/unit/applications/lang/java.py | 8 | ||||
-rw-r--r-- | test/unit/applications/lang/node.py | 13 | ||||
-rw-r--r-- | test/unit/applications/tls.py | 21 | ||||
-rw-r--r-- | test/unit/check/go.py | 29 | ||||
-rw-r--r-- | test/unit/check/node.py | 6 | ||||
-rw-r--r-- | test/unit/check/tls.py | 13 | ||||
-rw-r--r-- | test/unit/main.py | 23 |
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' |