Update xml, fix + improve robustness of unions.lua unit tests

- unit_action_fields(): handled primitive union members correctly
- unit_action_type(): added messages to make failures easier to diagnose
    - Also removed redundant checks that effectively checked that
      `enum.attrs[k] == enum.attrs[v]` - this is out of scope of union tests
develop
lethosor 2021-03-23 21:24:57 -04:00
parent 3e67b8f00f
commit e9efa6c961
No known key found for this signature in database
GPG Key ID: 76A269552F4F58C1
2 changed files with 8 additions and 5 deletions

@ -1 +1 @@
Subproject commit ad1c98cf852936694300eaf8d69e91c10b7ea57f
Subproject commit 9a936001d9095681d5cb6225eb18bfe0ed2bcf28

@ -3,7 +3,7 @@ local utils = require('utils')
function test.unit_action_fields()
dfhack.with_temp_object(df.unit_action:new(), function(action)
for k in pairs(action.data) do
expect.eq(utils.addressof(action.data.raw_data), utils.addressof(action.data[k]),
expect.eq(utils.addressof(action.data.raw_data), utils.addressof(action.data:_field(k)),
'address of ' .. k .. ' does not match')
end
end)
@ -11,9 +11,12 @@ end
function test.unit_action_type()
dfhack.with_temp_object(df.unit_action:new(), function(action)
for k, v in ipairs(df.unit_action_type) do
expect.true_(action.data[df.unit_action_type.attrs[k].tag])
expect.true_(action.data[df.unit_action_type.attrs[v].tag])
for index, name in ipairs(df.unit_action_type) do
expect.true_(name, "unit_action_type entry without name: " .. tostring(index))
local tag = df.unit_action_type.attrs[name].tag
expect.true_(tag, "unit_action_type entry missing tag: name=" .. name)
expect.pairs_contains(action.data, tag,
"unit_action_type entry missing from unit_action.data: name=" .. name)
end
end)
end