Enable lj-releng tool to lint lua code.
This commit is contained in:
parent
36f7dd2e0b
commit
bafbd4cccf
36 changed files with 213 additions and 93 deletions
|
|
@ -1,9 +1,15 @@
|
|||
function mock_ngx(mock)
|
||||
local _ngx = mock
|
||||
setmetatable(_ngx, {__index = _G.ngx})
|
||||
_G.ngx = _ngx
|
||||
end
|
||||
|
||||
describe("Balancer chash", function()
|
||||
local balancer_chash = require("balancer.chash")
|
||||
|
||||
describe("balance()", function()
|
||||
it("uses correct key for given backend", function()
|
||||
_G.ngx = { var = { request_uri = "/alma/armud" }}
|
||||
mock_ngx({var = { request_uri = "/alma/armud"}})
|
||||
local balancer_chash = require("balancer.chash")
|
||||
|
||||
local resty_chash = package.loaded["resty.chash"]
|
||||
resty_chash.new = function(self, nodes)
|
||||
|
|
|
|||
|
|
@ -1,3 +1,8 @@
|
|||
function mock_ngx(mock)
|
||||
local _ngx = mock
|
||||
setmetatable(_ngx, {__index = _G.ngx})
|
||||
_G.ngx = _ngx
|
||||
end
|
||||
|
||||
local function get_test_backend(n_endpoints)
|
||||
local backend = {
|
||||
|
|
@ -18,11 +23,15 @@ local function get_test_backend(n_endpoints)
|
|||
end
|
||||
|
||||
describe("Balancer chash subset", function()
|
||||
local balancer_chashsubset = require("balancer.chashsubset")
|
||||
local balancer_chashsubset
|
||||
|
||||
before_each(function()
|
||||
mock_ngx({ var = { request_uri = "/alma/armud" }})
|
||||
balancer_chashsubset = require("balancer.chashsubset")
|
||||
end)
|
||||
|
||||
describe("balance()", function()
|
||||
it("returns peers from the same subset", function()
|
||||
_G.ngx = { var = { request_uri = "/alma/armud" }}
|
||||
|
||||
local backend = get_test_backend(9)
|
||||
|
||||
|
|
@ -67,7 +76,6 @@ describe("Balancer chash subset", function()
|
|||
end)
|
||||
describe("new(backend)", function()
|
||||
it("fills last subset correctly", function()
|
||||
_G.ngx = { var = { request_uri = "/alma/armud" }}
|
||||
|
||||
local backend = get_test_backend(7)
|
||||
|
||||
|
|
|
|||
|
|
@ -34,6 +34,8 @@ describe("Balancer ewma", function()
|
|||
|
||||
before_each(function()
|
||||
mock_ngx({ now = function() return ngx_now end, var = { balancer_ewma_score = -1 } })
|
||||
package.loaded["balancer.ewma"] = nil
|
||||
balancer_ewma = require("balancer.ewma")
|
||||
|
||||
backend = {
|
||||
name = "namespace-service-port", ["load-balance"] = "ewma",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
local sticky_balanced = require("balancer.sticky_balanced")
|
||||
local sticky_persistent = require("balancer.sticky_persistent")
|
||||
local sticky_balanced
|
||||
local sticky_persistent
|
||||
local cookie = require("resty.cookie")
|
||||
local util = require("util")
|
||||
|
||||
|
|
@ -15,6 +15,14 @@ local function reset_ngx()
|
|||
_G.ngx = original_ngx
|
||||
end
|
||||
|
||||
local function reset_sticky_balancer()
|
||||
package.loaded["balancer.sticky"] = nil
|
||||
package.loaded["balancer.sticky_balanced"] = nil
|
||||
package.loaded["balancer.sticky_persistent"] = nil
|
||||
sticky_balanced = require("balancer.sticky_balanced")
|
||||
sticky_persistent = require("balancer.sticky_persistent")
|
||||
end
|
||||
|
||||
function get_mocked_cookie_new()
|
||||
local o = { value = nil }
|
||||
local mock = {
|
||||
|
|
@ -47,6 +55,7 @@ end
|
|||
describe("Sticky", function()
|
||||
before_each(function()
|
||||
mock_ngx({ var = { location_path = "/", host = "test.com" } })
|
||||
reset_sticky_balancer()
|
||||
end)
|
||||
|
||||
after_each(function()
|
||||
|
|
@ -302,11 +311,8 @@ describe("Sticky", function()
|
|||
local mocked_cookie_new = cookie.new
|
||||
|
||||
before_each(function()
|
||||
package.loaded["balancer.sticky_balanced"] = nil
|
||||
package.loaded["balancer.sticky_persistent"] = nil
|
||||
sticky_balanced = require("balancer.sticky_balanced")
|
||||
sticky_persistent = require("balancer.sticky_persistent")
|
||||
mock_ngx({ var = { location_path = "/", host = "test.com" } })
|
||||
reset_sticky_balancer()
|
||||
end)
|
||||
|
||||
after_each(function()
|
||||
|
|
@ -459,6 +465,7 @@ describe("Sticky", function()
|
|||
end)
|
||||
it("returns a cookie without SameSite=None when user specifies samesite None and conditional samesite none with unsupported user agent", function()
|
||||
mock_ngx({ var = { location_path = "/", host = "test.com" , http_user_agent = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"} })
|
||||
reset_sticky_balancer()
|
||||
test_set_cookie(sticky_balanced, "None", true, "/", nil)
|
||||
end)
|
||||
end)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
_G._TEST = true
|
||||
|
||||
local balancer, expected_implementations, backends
|
||||
local original_ngx = ngx
|
||||
|
|
@ -110,11 +109,12 @@ describe("Balancer", function()
|
|||
},
|
||||
}
|
||||
|
||||
mock_ngx({ var = { proxy_upstream_name = backend.name } })
|
||||
reset_balancer()
|
||||
|
||||
balancer.sync_backend(backend)
|
||||
balancer.sync_backend(canary_backend)
|
||||
|
||||
mock_ngx({ var = { proxy_upstream_name = backend.name } })
|
||||
|
||||
local expected = balancer.get_balancer()
|
||||
|
||||
for i = 1,50,1 do
|
||||
|
|
@ -134,6 +134,7 @@ describe("Balancer", function()
|
|||
}
|
||||
}
|
||||
mock_ngx({ var = { request_uri = "/" } })
|
||||
reset_balancer()
|
||||
end)
|
||||
|
||||
it("returns false when no trafficShapingPolicy is set", function()
|
||||
|
|
@ -171,8 +172,6 @@ describe("Balancer", function()
|
|||
|
||||
context("canary by cookie", function()
|
||||
it("returns correct result for given cookies", function()
|
||||
backend.trafficShapingPolicy.cookie = "canaryCookie"
|
||||
balancer.sync_backend(backend)
|
||||
local test_patterns = {
|
||||
{
|
||||
case_title = "cookie_value is 'always'",
|
||||
|
|
@ -204,6 +203,9 @@ describe("Balancer", function()
|
|||
["cookie_" .. test_pattern.request_cookie_name] = test_pattern.request_cookie_value,
|
||||
request_uri = "/"
|
||||
}})
|
||||
reset_balancer()
|
||||
backend.trafficShapingPolicy.cookie = "canaryCookie"
|
||||
balancer.sync_backend(backend)
|
||||
assert.message("\nTest data pattern: " .. test_pattern.case_title)
|
||||
.equal(test_pattern.expected_result, balancer.route_to_alternative_balancer(_balancer))
|
||||
reset_ngx()
|
||||
|
|
@ -275,14 +277,14 @@ describe("Balancer", function()
|
|||
}
|
||||
|
||||
for _, test_pattern in pairs(test_patterns) do
|
||||
reset_balancer()
|
||||
backend.trafficShapingPolicy.header = test_pattern.header_name
|
||||
backend.trafficShapingPolicy.headerValue = test_pattern.header_value
|
||||
balancer.sync_backend(backend)
|
||||
mock_ngx({ var = {
|
||||
["http_" .. test_pattern.request_header_name] = test_pattern.request_header_value,
|
||||
request_uri = "/"
|
||||
}})
|
||||
reset_balancer()
|
||||
backend.trafficShapingPolicy.header = test_pattern.header_name
|
||||
backend.trafficShapingPolicy.headerValue = test_pattern.header_value
|
||||
balancer.sync_backend(backend)
|
||||
assert.message("\nTest data pattern: " .. test_pattern.case_title)
|
||||
.equal(test_pattern.expected_result, balancer.route_to_alternative_balancer(_balancer))
|
||||
reset_ngx()
|
||||
|
|
|
|||
|
|
@ -165,6 +165,9 @@ describe("Certificate", function()
|
|||
_G.ngx = _ngx
|
||||
ngx.ctx.cert_configured_for_current_request = nil
|
||||
|
||||
package.loaded["certificate"] = nil
|
||||
certificate = require("certificate")
|
||||
|
||||
set_certificate("hostname", EXAMPLE_CERT, UUID)
|
||||
end)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
_G._TEST = true
|
||||
local cjson = require("cjson")
|
||||
local configuration = require("configuration")
|
||||
|
||||
|
|
@ -48,12 +47,12 @@ end
|
|||
describe("Configuration", function()
|
||||
before_each(function()
|
||||
_G.ngx = get_mocked_ngx_env()
|
||||
package.loaded["configuration"] = nil
|
||||
configuration = require("configuration")
|
||||
end)
|
||||
|
||||
after_each(function()
|
||||
_G.ngx = unmocked_ngx
|
||||
package.loaded["configuration"] = nil
|
||||
configuration = require("configuration")
|
||||
end)
|
||||
|
||||
describe("Backends", function()
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
_G._TEST = true
|
||||
|
||||
local original_ngx = ngx
|
||||
local function reset_ngx()
|
||||
|
|
@ -31,8 +30,8 @@ describe("Monitor", function()
|
|||
end)
|
||||
|
||||
it("batches metrics", function()
|
||||
local monitor = require("monitor")
|
||||
mock_ngx({ var = {} })
|
||||
local monitor = require("monitor")
|
||||
|
||||
for i = 1,10,1 do
|
||||
monitor.call()
|
||||
|
|
@ -44,8 +43,8 @@ describe("Monitor", function()
|
|||
describe("flush", function()
|
||||
it("short circuits when premmature is true (when worker is shutting down)", function()
|
||||
local tcp_mock = mock_ngx_socket_tcp()
|
||||
local monitor = require("monitor")
|
||||
mock_ngx({ var = {} })
|
||||
local monitor = require("monitor")
|
||||
|
||||
for i = 1,10,1 do
|
||||
monitor.call()
|
||||
|
|
@ -64,7 +63,6 @@ describe("Monitor", function()
|
|||
|
||||
it("JSON encodes and sends the batched metrics", function()
|
||||
local tcp_mock = mock_ngx_socket_tcp()
|
||||
local monitor = require("monitor")
|
||||
|
||||
local ngx_var_mock = {
|
||||
host = "example.com",
|
||||
|
|
@ -86,6 +84,7 @@ describe("Monitor", function()
|
|||
upstream_status = "200",
|
||||
}
|
||||
mock_ngx({ var = ngx_var_mock })
|
||||
local monitor = require("monitor")
|
||||
monitor.call()
|
||||
|
||||
local ngx_var_mock1 = ngx_var_mock
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ do
|
|||
|
||||
-- if there's more constants need to be whitelisted for test runs, add here.
|
||||
local GLOBALS_ALLOWED_IN_TEST = {
|
||||
_TEST = true,
|
||||
helpers = true,
|
||||
}
|
||||
local newindex = function(table, key, value)
|
||||
|
|
@ -35,7 +34,6 @@ do
|
|||
end
|
||||
|
||||
_G.helpers = require("test.helpers")
|
||||
_G._TEST = true
|
||||
|
||||
local ffi = require("ffi")
|
||||
local lua_ingress = require("lua_ingress")
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
local original_ngx = ngx
|
||||
local util = require("util")
|
||||
local util
|
||||
|
||||
local function reset_ngx()
|
||||
_G.ngx = original_ngx
|
||||
|
|
@ -20,6 +20,7 @@ describe("utility", function()
|
|||
describe("ngx_complex_value", function()
|
||||
before_each(function()
|
||||
mock_ngx({ var = { remote_addr = "192.168.1.1", [1] = "nginx/regexp/1/group/capturing" } })
|
||||
util = require("util")
|
||||
end)
|
||||
|
||||
local ngx_complex_value = function(data)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue