Fix for Boolean types (#5379) (#5466)

The packing/unpacking steps for Boolean values was failing because the
code expected numerical values. I overrode the functions for the Boolean
metatable to account for this. I also had to exclude the Boolean
metatable from the GenerateTypes helper function, as that was overriding
the Pack/Unpack functions defined in its metatable.

Added Linux bash script to run Lua tests from the command line.

Bug: google/flatbuffers#5379

Tested: Added Lua tests that were failing and are now fixed with the
code changes.
This commit is contained in:
Derek Bailey
2019-08-01 10:28:54 -07:00
committed by Wouter van Oortmerssen
parent c953fa572b
commit a4e3ad808e
3 changed files with 36 additions and 6 deletions

22
tests/LuaTest.sh Executable file
View File

@@ -0,0 +1,22 @@
#!/bin/bash -eu
#
# Copyright 2019 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
pushd "$(dirname $0)" >/dev/null
test_dir="$(pwd)"
${test_dir}/../flatc --lua -I include_test monster_test.fbs
lua5.3 luatest.lua

View File

@@ -9,9 +9,7 @@ local function checkReadBuffer(buf, offset, sizePrefix)
if sizePrefix then
local size = flatbuffers.N.Int32:Unpack(buf, offset)
-- no longer matches python tests, but the latest 'monsterdata_test.mon'
-- is 448 bytes, minus 4 to arrive at the 444
assert(size == 444)
assert(size == #buf - offset - 4)
offset = offset + flatbuffers.N.Int32.bytewidth
end
@@ -136,6 +134,10 @@ local function generateMonster(sizePrefix)
monster.AddTestType(b, 1)
monster.AddTest(b, mon2)
monster.AddTest4(b, test4)
monster.AddTestbool(b, true)
monster.AddTestbool(b, false)
monster.AddTestbool(b, null)
monster.AddTestbool(b,"true")
monster.AddTestarrayofstring(b, testArrayOfString)
monster.AddVectorOfLongs(b, vectorOfLongs)
monster.AddVectorOfDoubles(b, vectorOfDoubles)