mirror of https://github.com/rusefi/lua.git
Added tests for string reuse by the scanner
This commit is contained in:
parent
e2c07dcbf7
commit
59acd79c05
|
@ -241,7 +241,7 @@ do -- named objects (field '__name')
|
||||||
assert(o == x)
|
assert(o == x)
|
||||||
return "ABC"
|
return "ABC"
|
||||||
end})
|
end})
|
||||||
a, b, c = T.testC("pushint 10; Ltolstring -2; return 3", x)
|
local a, b, c = T.testC("pushint 10; Ltolstring -2; return 3", x)
|
||||||
assert(a == x and b == 10 and c == "ABC")
|
assert(a == x and b == 10 and c == "ABC")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -208,6 +208,30 @@ a = nil
|
||||||
b = nil
|
b = nil
|
||||||
|
|
||||||
|
|
||||||
|
do -- reuse of long strings
|
||||||
|
|
||||||
|
-- get the address of a string
|
||||||
|
local function getadd (s) return string.format("%p", s) end
|
||||||
|
|
||||||
|
local s1 <const> = "01234567890123456789012345678901234567890123456789"
|
||||||
|
local s2 <const> = "01234567890123456789012345678901234567890123456789"
|
||||||
|
local s3 = "01234567890123456789012345678901234567890123456789"
|
||||||
|
local function foo() return s1 end
|
||||||
|
local function foo1() return s3 end
|
||||||
|
local function foo2()
|
||||||
|
return "01234567890123456789012345678901234567890123456789"
|
||||||
|
end
|
||||||
|
local a1 = getadd(s1)
|
||||||
|
assert(a1 == getadd(s2))
|
||||||
|
assert(a1 == getadd(foo()))
|
||||||
|
assert(a1 == getadd(foo1()))
|
||||||
|
assert(a1 == getadd(foo2()))
|
||||||
|
|
||||||
|
local sd = "0123456789" .. "0123456789012345678901234567890123456789"
|
||||||
|
assert(sd == s1 and getadd(sd) ~= a1)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
-- testing line ends
|
-- testing line ends
|
||||||
prog = [[
|
prog = [[
|
||||||
a = 1 -- a comment
|
a = 1 -- a comment
|
||||||
|
|
Loading…
Reference in New Issue