diff options
Diffstat (limited to 'unit_tests/scripts/misc/verbose_errors.lua')
| -rw-r--r-- | unit_tests/scripts/misc/verbose_errors.lua | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/unit_tests/scripts/misc/verbose_errors.lua b/unit_tests/scripts/misc/verbose_errors.lua index b38bf4c..8127980 100644 --- a/unit_tests/scripts/misc/verbose_errors.lua +++ b/unit_tests/scripts/misc/verbose_errors.lua | |||
| @@ -21,9 +21,13 @@ local do_test = function(key_) | |||
| 21 | local x, y = string.find(e, "arg#2.subtable[" .. key_ .. "].ud", 1, true) | 21 | local x, y = string.find(e, "arg#2.subtable[" .. key_ .. "].ud", 1, true) |
| 22 | assert(x and y, "got " .. e) | 22 | assert(x and y, "got " .. e) |
| 23 | elseif t_key == "userdata" then | 23 | elseif t_key == "userdata" then |
| 24 | local t_name | 24 | -- light userdata results in "userdata: <some uppercase hex value>" |
| 25 | local stringified_key = tostring(key_) | ||
| 26 | local hex = string.match(stringified_key, "userdata: (%x+)") | ||
| 27 | -- full userdata results in something else | ||
| 28 | local t_name = hex and ("0x" .. string.lower(hex)) or "<FULL>" | ||
| 25 | -- light userdata is formatted by std::format, where the pointer is written as a lowercase hex literal | 29 | -- light userdata is formatted by std::format, where the pointer is written as a lowercase hex literal |
| 26 | local expected = "arg#2.subtable[U:0x" .. string.lower(string.match(tostring(key_), "userdata: (%x+)")) .. "].ud" | 30 | local expected = "arg#2.subtable[U:" .. t_name .. "].ud" |
| 27 | -- expecting an error about arg#2.subtable[U:0x<some hex value>].ud | 31 | -- expecting an error about arg#2.subtable[U:0x<some hex value>].ud |
| 28 | local x, y = string.find(e, expected, 1, true) | 32 | local x, y = string.find(e, expected, 1, true) |
| 29 | assert(x and y, "expecting " .. expected .. " got " .. e) | 33 | assert(x and y, "expecting " .. expected .. " got " .. e) |
| @@ -36,3 +40,4 @@ do_test(false) | |||
| 36 | do_test(42) | 40 | do_test(42) |
| 37 | do_test(42.44) | 41 | do_test(42.44) |
| 38 | do_test(lanes.null) | 42 | do_test(lanes.null) |
| 43 | do_test(l) | ||
