aboutsummaryrefslogtreecommitdiff
path: root/testes
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2020-10-26 11:15:51 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2020-10-26 11:15:51 -0300
commit69b71a69197de0cb6f7f58f5d7c55d9a9a6e529d (patch)
tree8323373db70b7feb06691634c5431c3d6bbe9f3e /testes
parentd742a193e57029d973aff0a5eb04d8ddd03fa0ff (diff)
downloadlua-69b71a69197de0cb6f7f58f5d7c55d9a9a6e529d.tar.gz
lua-69b71a69197de0cb6f7f58f5d7c55d9a9a6e529d.tar.bz2
lua-69b71a69197de0cb6f7f58f5d7c55d9a9a6e529d.zip
_PROMPT can have non-string values
'get_prompt' uses 'luaL_tolstring' to convert _PROMPT or _PROMPT2 value to a string. That conversion may invoke a '__tostring' metamethod.
Diffstat (limited to 'testes')
-rw-r--r--testes/main.lua27
1 files changed, 27 insertions, 0 deletions
diff --git a/testes/main.lua b/testes/main.lua
index d2d602de..56959abd 100644
--- a/testes/main.lua
+++ b/testes/main.lua
@@ -287,6 +287,33 @@ RUN([[lua "-e_PROMPT='%s'" -i < %s > %s]], prompt, prog, out)
287local t = getoutput() 287local t = getoutput()
288assert(string.find(t, prompt .. ".*" .. prompt .. ".*" .. prompt)) 288assert(string.find(t, prompt .. ".*" .. prompt .. ".*" .. prompt))
289 289
290-- using the prompt default
291prepfile[[ --
292a = 2
293]]
294RUN([[lua -i < %s > %s]], prog, out)
295local t = getoutput()
296prompt = "> " -- the default
297assert(string.find(t, prompt .. ".*" .. prompt .. ".*" .. prompt))
298
299
300-- non-string prompt
301prompt =
302 "local C = 0;\z
303 _PROMPT=setmetatable({},{__tostring = function () \z
304 C = C + 1; return C end})"
305prepfile[[ --
306a = 2
307]]
308RUN([[lua -e "%s" -i < %s > %s]], prompt, prog, out)
309local t = getoutput()
310assert(string.find(t, [[
3111 --
3122a = 2
3133
314]], 1, true))
315
316
290-- test for error objects 317-- test for error objects
291prepfile[[ 318prepfile[[
292debug = require "debug" 319debug = require "debug"