File: minimal.test.lua

package info (click to toggle)
tarantool 2.6.0-1.4
  • links: PTS, VCS
  • area: main
  • in suites: 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 (68 lines) | stat: -rwxr-xr-x 1,682 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/usr/bin/env tarantool

print('Hello, World!')

--
-- Command-line argument handling
--
local script = io.open('script-args.lua', 'w')
script:write([[
-- Tarantool binary
print('arg[-1]', arg[-1]:match('tarantool'))
-- Script name
print('arg[0] ', arg[0])
-- Command-line arguments
print('arg', arg[1], arg[2], arg[3])
print('...', ...)
]])
script:close()

io.flush()

os.execute("tarantool ./script-args.lua 1 2 3")

--
-- LUA_PATH and LUA_CPATH argument handling
--
local script = io.open('script-path.lua', 'w')
script:write([[
print(package.path)
os.exit(0)
]])
script:close()
local script = io.open('script-cpath.lua', 'w')
script:write([[
print(package.cpath)
os.exit(0)
]])
script:close()

io.flush()

-- gh-1428: Ensure that LUA_PATH/LUA_CPATH have the same behaviour, as in
-- LuaJIT/Lua
local tap = require('tap').test('lua_path/lua_cpath')
tap:plan(8)

for _, env in ipairs({
    {'LUA_PATH', 'script-path.lua', package.path},
    {'LUA_CPATH', 'script-cpath.lua', package.cpath}
}) do
    for _, res in ipairs({
        {' is empty', '', ''},
        {' isn\'t empty (without ";;")', 'bla-bla.lua',      'bla-bla.lua'            },
        {' isn\'t empty (without ";;")', 'bla-bla.lua;',     'bla-bla.lua;'           },
        {' isn\'t empty (with ";;")',    'bla-bla.lua;.*;;', 'bla-bla.lua;' .. env[3] },
    }) do
        local cmd = table.concat({
            ("%s='%s'"):format(env[1], res[2]),
            ('tarantool %s'):format(env[2]),
        }, ' ')
        local fh = io.popen(cmd)
        local rv = fh:read():gsub('-', '%%-'):gsub('+', '%%+'):gsub('?', '%%?')
        tap:like(res[3], rv, env[1] .. res[1])
        fh:close()
    end
end

tap:check()