22use lib ' .' ;
33use t::TestCore;
44
5- plan tests => repeat_each() * (blocks() * 3 + 2 );
5+ plan tests => repeat_each() * (blocks() * 3 + 1 );
66
77add_block_preprocessor(sub {
88 my $block = shift ;
@@ -180,85 +180,40 @@ in content:\s+
180180
181181
182182=== TEST 8: os.getenv() overwrite is reverted in worker phases
183- --- http_config
184- lua_package_path "$TEST_NGINX_LUA_PACKAGE_PATH";
185- lua_load_resty_core off;
186-
187- init_by_lua_block {
188- package.loaded.os_getenv = os.getenv
189- require "resty.core"
190- package.loaded.is_os_getenv = os.getenv == package.loaded.os_getenv
191- }
192- --- config
193- location /t {
194- content_by_lua_block {
195- os.getenv("")
196-
197- ngx.say("in init: ", package.loaded.is_os_getenv, "\n",
198- "in content: ", os.getenv == package.loaded.os_getenv)
199- }
200- }
201- --- response_body
202- in init: false
203- in content: true
204-
205-
206-
207- === TEST 9: os.getenv() can be localized before loading resty.core
208183--- main_config
209184env FOO=hello;
210185--- http_config
211186 lua_package_path "$TEST_NGINX_LUA_PACKAGE_PATH";
212- lua_load_resty_core off;
213187
214188 init_by_lua_block {
215- package.loaded.os_getenv = os.getenv
216- require "resty.core"
217-
218- do
219- local getenv = os.getenv
220-
221- package.loaded.f = function ()
222- ngx.log(ngx.NOTICE, "FOO: ", getenv("FOO"))
223- end
224- end
225-
226- package.loaded.f()
227-
228- package.loaded.is_os_getenv = os.getenv == package.loaded.os_getenv
189+ package.loaded.init_os_getenv = os.getenv
229190 }
230191--- config
231192location /t {
232193 content_by_lua_block {
233- package.loaded.f()
234- package.loaded.f()
194+ ngx.say("FOO=", os.getenv("FOO"))
195+
196+ if os.getenv ~= package.loaded.init_os_getenv then
197+ ngx.say("os.getenv() overwrite was reverted")
235198
236- ngx.say("in init: ", package.loaded.is_os_getenv, "\n",
237- "in content: ", os.getenv == package.loaded.os_getenv)
199+ else
200+ ngx.say("os.getenv() overwrite was not reverted")
201+ end
238202 }
239203}
240204--- response_body
241- in init: false
242- in content: true
243- --- grep_error_log eval
244- qr/FOO: [a-z]+/
245- --- grep_error_log_out
246- FOO: hello
247- FOO: hello
248- FOO: hello
205+ FOO=hello
206+ os.getenv() overwrite was reverted
249207
250208
251209
252- === TEST 10 : os.getenv() can be localized after loading resty.core
210+ === TEST 9 : os.getenv() can be localized after loading resty.core
253211--- main_config
254212env FOO=hello;
255213--- http_config
256214 lua_package_path "$TEST_NGINX_LUA_PACKAGE_PATH";
257- lua_load_resty_core off;
258215
259216 init_by_lua_block {
260- package.loaded.os_getenv = os.getenv
261-
262217 do
263218 local getenv = os.getenv
264219
@@ -279,16 +234,19 @@ location /t {
279234 package.loaded.f()
280235 package.loaded.f()
281236
282- ngx.say("in init: ", package.loaded.is_os_getenv, "\n",
283- "in content: ", os.getenv == package.loaded.os_getenv)
237+ if os.getenv ~= package.loaded.init_os_getenv then
238+ ngx.say("os.getenv() overwrite was reverted")
239+
240+ else
241+ ngx.say("os.getenv() overwrite was not reverted")
242+ end
284243 }
285244}
286245--- response_body
287- in init: false
288- in content: false
246+ os.getenv() overwrite was reverted
289247--- grep_error_log eval
290248qr/FOO: [a-z]+/
291249--- grep_error_log_out
292- FOO: nil
250+ FOO: hello
293251FOO: hello
294252FOO: hello
0 commit comments