diff options
author | Max Romanov <max.romanov@nginx.com> | 2021-11-09 15:48:44 +0300 |
---|---|---|
committer | Max Romanov <max.romanov@nginx.com> | 2021-11-09 15:48:44 +0300 |
commit | b424a00ec5746884f8ebb1d75b3f0fec0b3a05ff (patch) | |
tree | 77c7ca06d1298d97c9818eb9f875e9dc41508f44 /test | |
parent | 506ec2b8258cfe03d0d7e3b19eb79d1075a6174c (diff) | |
download | unit-b424a00ec5746884f8ebb1d75b3f0fec0b3a05ff.tar.gz unit-b424a00ec5746884f8ebb1d75b3f0fec0b3a05ff.tar.bz2 |
Tests: PHP shared opcache test added.
Diffstat (limited to 'test')
-rw-r--r-- | test/php/opcache/index.php | 18 | ||||
-rw-r--r-- | test/php/opcache/test.php | 1 | ||||
-rw-r--r-- | test/test_php_application.py | 17 | ||||
-rw-r--r-- | test/unit/applications/lang/php.py | 27 |
4 files changed, 54 insertions, 9 deletions
diff --git a/test/php/opcache/index.php b/test/php/opcache/index.php new file mode 100644 index 00000000..de4002bb --- /dev/null +++ b/test/php/opcache/index.php @@ -0,0 +1,18 @@ +<?php + +$pid = getmypid(); + +header('X-Pid: ' . $pid); + +if (function_exists('opcache_is_script_cached')) { + if (opcache_is_script_cached(__DIR__ . '/test.php')) { + header('X-Cached: 1'); + } else { + header('X-Cached: 0'); + opcache_compile_file(__DIR__ . '/test.php'); + } +} else { + header('X-Cached: -1'); +} + +?> diff --git a/test/php/opcache/test.php b/test/php/opcache/test.php new file mode 100644 index 00000000..147cebcd --- /dev/null +++ b/test/php/opcache/test.php @@ -0,0 +1 @@ +<?php phpinfo(); ?> diff --git a/test/test_php_application.py b/test/test_php_application.py index bb7d978c..d9c16a6d 100644 --- a/test/test_php_application.py +++ b/test/test_php_application.py @@ -713,3 +713,20 @@ class TestPHPApplication(TestApplicationPHP): ), 'relative path w/ chdir' assert self.get()['body'] == 'test', 'relative path 2' + + def test_php_application_shared_opcache(self): + self.load('opcache', limits={'requests': 1}) + + r = self.get() + cached = r['headers']['X-Cached'] + if cached == '-1': + pytest.skip('opcache is not supported') + + pid = r['headers']['X-Pid'] + + assert cached == '0', 'not cached' + + r = self.get() + + assert r['headers']['X-Pid'] != pid, 'new instance' + assert r['headers']['X-Cached'] == '1', 'cached' diff --git a/test/unit/applications/lang/php.py b/test/unit/applications/lang/php.py index 90c0078c..5319d2ca 100644 --- a/test/unit/applications/lang/php.py +++ b/test/unit/applications/lang/php.py @@ -22,18 +22,27 @@ class TestApplicationPHP(TestApplicationProto): script_path = '/app/php/' + script + app = { + "type": self.get_application_type(), + "processes": kwargs.pop('processes', {"spare": 0}), + "root": script_path, + "working_directory": script_path, + "index": index, + } + + for attr in ( + 'environment', + 'limits', + 'options', + 'targets', + ): + if attr in kwargs: + app[attr] = kwargs.pop(attr) + self._load_conf( { "listeners": {"*:7080": {"pass": "applications/" + script}}, - "applications": { - script: { - "type": self.get_application_type(), - "processes": {"spare": 0}, - "root": script_path, - "working_directory": script_path, - "index": index, - } - }, + "applications": {script: app}, }, **kwargs ) |