summaryrefslogtreecommitdiffhomepage
path: root/test (follow)
AgeCommit message (Collapse)AuthorFilesLines
2020-09-24Tests: prerequisites check improved by using callable.Max Romanov1-15/+23
This is required for more flexible Python version check since ASGI works for Python 3.5+. Version check via 'startswith()' function removed as not consistent.
2020-09-22Tests: introduced module name configuration.Max Romanov1-3/+10
Also fixed problem with "/" in application name.
2020-09-22Tests: improved response receiving while upgrade.Max Romanov1-4/+1
The patch required to process non-101 response.
2020-09-22Tests: using dict.get() method with default value.Max Romanov1-18/+9
No functional changes. Only code readability improved.
2020-09-21Tests: added variable test with nonexistent upstream.Andrei Zeliankou1-0/+23
2020-09-21Tests: added test for "idle_timeout" with empty payload.Andrei Zeliankou1-0/+18
2020-09-21Tests: added multiple headers concatenation test.Max Romanov1-9/+13
2020-09-21Tests: changing Python application callable name.Max Romanov2-0/+35
2020-08-28Router: fixed "pass" to upstreams.hongzhidao1-0/+79
Messed up return values in nxt_upstream_find() caused error in applying any configuration with a valid "pass" value in router configuration pointing to upstream. That wasn't the case in "listeners" objects, where the return value wasn't checked. Also, it caused segfault in cases where the "pass" option was configured with variables and resulting value was pointing to a non-existent upstream. Added missing return checks as well to catch possible memory allocation errors. The bug was introduced in d32bc428f46b. This closes #472 issue on GitHub.
2020-09-16Tests: migrated to the pytest.Andrei Zeliankou53-6321/+4776
2020-08-31Tests: $host varaible test.Andrei Zeliankou1-7/+24
Also added few tests for $uri and minor style fixes.
2020-08-25Tests: disable of language_deps.Tiago Natel de Moura1-0/+69
2020-08-25Tests: PHP extension mounts.Tiago Natel de Moura3-0/+66
2020-08-20Tests: default tmpfs in rootfs.Tiago Natel de Moura1-0/+20
2020-08-13Tests: set root by unprivilaged user.Tiago Natel de Moura1-0/+27
2020-08-13Tests: added test with error on loading application.Andrei Zeliankou1-0/+11
2020-08-13Tests: added variables tests.Andrei Zeliankou1-0/+94
2020-08-11Tests: reducing the number of generated applications.Max Romanov1-1/+3
Each application initializes a shared port with 2 file descriptors, so the test fails because the router reaches the open files limit.
2020-08-11Tests: skipping idle zero timeout.Max Romanov1-0/+1
This is a temporary solution after the 'shared port' patch. The application process becomes idle immediately after creation. Even if it starts processing a request (without acknowledging it yet), it is stopped by the router because an 'out-of-idle-time' event occurs.
2020-07-28Tests: added PHP test with time check in error log messages.Andrei Zeliankou2-0/+29
2020-07-28Tests: fixed double stop() call for some tests.Andrei Zeliankou1-6/+11
2020-07-28Tests: style.Andrei Zeliankou4-7/+5
2020-07-22Tests: switching stdout to blocking before printing log.Max Romanov1-3/+6
This is another attempt to fix the following error message: BlockingIOError: [Errno 11] write could not complete without blocking
2020-07-10Router: route patterns multi wildcards fix.Axel Duch1-0/+21
Matching 'start' and 'end' position now adjusted to avoid false matching. This is related to #434 issue on Github. Thanks to 洪志道 (Hong Zhi Dao).
2020-07-04Router: route patterns multi wildcards support.Axel Duch1-5/+44
2020-06-26Tests: fixed opcache detection.Andrei Zeliankou1-1/+2
opcache_get_status() returns array, so square brackets should be used to access "opcache_enabled" value.
2020-06-24Tests: added chunked tests.Andrei Zeliankou1-0/+249
2020-05-28Tests: Added rootfs tests.Tiago Natel de Moura12-35/+543
2020-03-09Refactor of process management.Tiago Natel de Moura1-0/+1
The process abstraction has changed to: setup(task, process) start(task, process_data) prefork(task, process, mp) The prefork() occurs in the main process right before fork. The file src/nxt_main_process.c is completely free of process specific logic. The creation of a process now supports a PROCESS_CREATED state. The The setup() function of each process can set its state to either created or ready. If created, a MSG_PROCESS_CREATED is sent to main process, where external setup can be done (required for rootfs under container). The core processes (discovery, controller and router) doesn't need external setup, then they all proceeds to their start() function straight away. In the case of applications, the load of the module happens at the process setup() time and The module's init() function has changed to be the start() of the process. The module API has changed to: setup(task, process, conf) start(task, data) As a direct benefit of the PROCESS_CREATED message, the clone(2) of processes using pid namespaces now doesn't need to create a pipe to make the child block until parent setup uid/gid mappings nor it needs to receive the child pid.
2020-05-20Tests: print unit.log in case of errors.Andrei Zeliankou1-1/+2
Thanks to hongzhidao.
2020-05-15Tests: added tests for "targets" option.Andrei Zeliankou4-0/+141
2020-05-15Tests: added test for encoding in the "pass" option.Andrei Zeliankou1-0/+55
2020-05-15Tests: style.Andrei Zeliankou34-43/+60
2020-05-15Tests: test_proxy_invalid simplified.Andrei Zeliankou1-79/+20
2020-05-14Tests: decode uri and args.Axel Duch1-35/+158
2020-05-14Configuration: URI encoding in the "pass" option.Valentin Bartenev1-1/+4
This is useful to escape "/" in path fragments. For example, in order to reference the application named "foo/bar": { "pass": "applications/foo%2Fbar" }
2020-05-12Tests: added respawn tests.Andrei Zeliankou1-0/+95
2020-04-24Tests: introduced module version specification in prerequisites.Andrei Zeliankou25-26/+38
2020-04-20Tests: skips adjusted.Andrei Zeliankou2-9/+21
2020-04-14Tests: added test with rescheduling requests.Andrei Zeliankou1-0/+32
2020-04-14Tests: minor fixes and style.Andrei Zeliankou16-175/+99
2020-04-08Controller: improved handling of unix domain control socket.Valentin Bartenev1-4/+1
One of the ways to detect Unit's startup and subsequent readiness to accept commands relies on waiting for the control socket file to be created. Earlier, it was unreliable due to a race condition between the client's connect() and the daemon's listen() calls after the socket's bind() call. Now, unix domain listening sockets are created with a nxt_listen_socket_create() call as follows: s = socket(); unlink("path/to/socket.tmp") bind(s, "path/to/socket.tmp"); listen(s); rename("path/to/socket.tmp", "path/to/socket"); This eliminates a time-lapse when the socket file is already created but nobody is listening on it yet, which therefore prevents the condition described above. Also, it allows reliably detecting whether the socket is being used or simply wasn't cleaned after the daemon stopped abruptly. A successful connection to the socket file means the daemon has been started; otherwise, the file can be overwritten.
2020-04-03Tests: use "return" action in upstream tests.Andrei Zeliankou5-98/+101
2020-04-03Tests: added notification on "read_timeout" expiration.Andrei Zeliankou2-4/+30
2020-04-03Tests: minor fixes.Andrei Zeliankou3-9/+20
2020-03-30Tests: added tests for rational numbers in upstream server weight.Andrei Zeliankou2-12/+98
2020-03-30Fixing application process infinite loop.Max Romanov2-2/+1
Main process exiting before app process init may have caused hanging.
2020-03-30Handling change file message in libunit.Max Romanov2-2/+1
This is required for proper log file rotation action.
2020-03-27Tests: added tests for "location" option.Andrei Zeliankou1-0/+94
2020-03-27Tests: added tests for "return" action.Andrei Zeliankou4-270/+191