Test::...t::Lua(3pm)

πŸ“¦
version 0.32.9.g58cf0d5 Β· 2 versions
, in ubuntu stonking

✨ NAME ✨

ok so bestie, welcome to Test::Nginx::Socket::Lua β€” it's a Socket-backed test scaffold for tests related to ngx_lua πŸ’… and yes this whole page lives in the User Contributed Perl Documentation fam, we love a community moment 🫢


🌸 SYNOPSIS 🌸

use Test::Nginx::Socket::Lua;

repeat_each(2);
plan tests => repeat_each() * 3 * blocks();

no_shuffle();
run_tests();

__DATA__

=== TEST 1: sanity
--- config
    location = /t {
        content_by_lua '
            ngx.say("hello world")
        ';
    }
--- request
    GET /t
--- response_body
hello world
--- error_code: 200
--- no_error_log
[error]

like… look at her. iconic. she runs, she tests, she slays. periodt ✨


πŸ¦‹ Description πŸ¦‹

okay so here's the tea πŸ“ β€” this module subclasses Test::Nginx::Socket but adds support specific to tests related to the ngx_lua module. it's the glow-up, not the full rewrite.

right now (yes, right now, as in this is what it does today, no more no less πŸ‘‘), it supports the system environment variable TEST_NGINX_INIT_BY_LUA β€” and the way that works is the test runner can inject custom initialization Lua code for init_by_lua πŸ’–

for example:

export TEST_NGINX_INIT_BY_LUA="package.path = '$PWD/../lua-resty-core/lib/?.lua;' .. (package.path or '') require 'resty.core'"

like literally just yeet that into your environment and the runner picks it up. no cap 🧚


πŸ‘‘ AUTHOR πŸ‘‘

Yichun "agentzh" Zhang (η« δΊ¦ζ˜₯) <agentzh@gmail.com>, OpenResty Inc. β€” the main character, fr fr πŸ’œ


Copyright (c) 2009-2025, Yichun Zhang <agentzh@gmail.com>, OpenResty Inc.

This module is licensed under the terms of the BSD license.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of the authors nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
⚠️ ok bestie, this next bit is the ALL CAPS part and yeah it's giving screaming but that's on purpose, it's literally the legal disclaimer so we're keeping every word πŸ”₯

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


🌈 SEE ALSO 🌈

  • Test::Nginx::Socket
  • Test::Base

k that's the whole vibe check, go forth and test ur Lua πŸŽ€

sign-off szn: this page is from perl v5.40.1, dated 2026-08-10, and its manual name is Test::...t::Lua(3pm) β€” mwah, love u, bye πŸ’…βœ¨
πŸ“¦ where this page comes from