Integration testing

This MR adds integration test support to this project. It uses the official nginx Docker image as a base, adding Lua support and leveraging its templating support to add the relevant configuration to nginx. This nginx image is configured to forward logs to a custom rsyslog docker image, which forwards these logs into a Redis instance. The integration test harness subscribes to the syslog topic on Redis and waits for log messages created with the project's Lua code to arrive, checking them for validity and completing the integration test flow.

The integration test code uses Lua lanes to listen for new messages. Lua lanes try to renice a thread when running as root. As Gitlab CI jobs run as root by default, there is a custom shell entrance in the Gitlab CI configuration to run the integration test as an unprivileged user, allowing the integration test code to run.

Edited by J. Eduardo

Merge request reports

Loading