xref: /freebsd/contrib/libucl/lua/test.lua (revision 98e0ffaefb0f241cda3a72395d3be04192ae0d47)
1*4bf54857SBaptiste Daroussinlocal ucl = require("ucl")
2*4bf54857SBaptiste Daroussin
3*4bf54857SBaptiste Daroussinfunction test_simple()
4*4bf54857SBaptiste Daroussin  local expect =
5*4bf54857SBaptiste Daroussin    '['..
6*4bf54857SBaptiste Daroussin    '"float",1.5,'..
7*4bf54857SBaptiste Daroussin    '"integer",5,'..
8*4bf54857SBaptiste Daroussin    '"true",true,'..
9*4bf54857SBaptiste Daroussin    '"false",false,'..
10*4bf54857SBaptiste Daroussin    '"null",null,'..
11*4bf54857SBaptiste Daroussin    '"string","hello",'..
12*4bf54857SBaptiste Daroussin    '"array",[1,2],'..
13*4bf54857SBaptiste Daroussin    '"object",{"key":"value"}'..
14*4bf54857SBaptiste Daroussin    ']'
15*4bf54857SBaptiste Daroussin
16*4bf54857SBaptiste Daroussin  -- Input to to_value matches the output of to_string:
17*4bf54857SBaptiste Daroussin  local parser = ucl.parser()
18*4bf54857SBaptiste Daroussin  local res,err = parser:parse_string(expect)
19*4bf54857SBaptiste Daroussin  if not res then
20*4bf54857SBaptiste Daroussin    print('parser error: ' .. err)
21*4bf54857SBaptiste Daroussin    return 1
22*4bf54857SBaptiste Daroussin  end
23*4bf54857SBaptiste Daroussin
24*4bf54857SBaptiste Daroussin  local obj = parser:get_object()
25*4bf54857SBaptiste Daroussin  local got = ucl.to_json(obj, true)
26*4bf54857SBaptiste Daroussin  if expect == got then
27*4bf54857SBaptiste Daroussin    return 0
28*4bf54857SBaptiste Daroussin  else
29*4bf54857SBaptiste Daroussin   print(expect .. " == " .. tostring(got))
30*4bf54857SBaptiste Daroussin   return 1
31*4bf54857SBaptiste Daroussin  end
32*4bf54857SBaptiste Daroussinend
33*4bf54857SBaptiste Daroussin
34*4bf54857SBaptiste Daroussintest_simple()
35*4bf54857SBaptiste Daroussin
36*4bf54857SBaptiste Daroussinlocal table = {
37*4bf54857SBaptiste Daroussin  str = 'value',
38*4bf54857SBaptiste Daroussin  num = 100500,
39*4bf54857SBaptiste Daroussin  null = ucl.null,
40*4bf54857SBaptiste Daroussin  func = function ()
41*4bf54857SBaptiste Daroussin    return 'huh'
42*4bf54857SBaptiste Daroussin  end,
43*4bf54857SBaptiste Daroussin  badfunc = function()
44*4bf54857SBaptiste Daroussin    print("I'm bad")
45*4bf54857SBaptiste Daroussin  end
46*4bf54857SBaptiste Daroussin}
47*4bf54857SBaptiste Daroussin
48*4bf54857SBaptiste Daroussinprint(ucl.to_format(table, 'ucl'))
49