File: lj-505-fold-no-strref-for-ptrdiff.test.lua

package info (click to toggle)
tarantool 2.6.0-1.4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 85,412 kB
  • sloc: ansic: 513,775; cpp: 69,493; sh: 25,650; python: 19,190; perl: 14,973; makefile: 4,178; yacc: 1,329; sql: 1,074; pascal: 620; ruby: 190; awk: 18; lisp: 7
file content (21 lines) | stat: -rwxr-xr-x 648 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/env tarantool

local tap = require('tap')

local test = tap.test("lj-505-fold-icorrect-behavior")
test:plan(1)

-- Test file to demonstrate Lua fold machinery icorrect behavior, details:
--     https://github.com/LuaJIT/LuaJIT/issues/505

jit.opt.start("hotloop=1")
for _ = 1, 20 do
    local value = "abc"
    local pos_c = string.find(value, "c", 1, true)
    local value2 = string.sub(value, 1, pos_c - 1)
    local pos_b = string.find(value2, "b", 2, true)
    assert(pos_b == 2, "FAIL: position of 'b' is " .. pos_b)
end
test:ok(true, "string.find offset aritmetics wasn't broken while recording")

os.exit(test:check() and 0 or 1)