1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2026-03-02 03:49:30 +00:00
This commit is contained in:
gnosygnu
2019-03-10 20:44:35 -04:00
parent b1af77320f
commit fcdd36c369
198 changed files with 4843 additions and 5721 deletions

View File

@@ -25,13 +25,13 @@
Applies to the Luaj engine (as opposed to the Lua engine)
</li>
<li>
Calls code in <a href="http://xowa.org/home/wiki/Module:Diagnostics/Luaj.html" id="xolnki_2" title="Module:Diagnostics/Luaj" class="xowa-visited">Module:Diagnostics/Luaj</a>
Calls code in <a href="http://xowa.org/home/wiki/Module:Diagnostics/Luaj" id="xolnki_2" title="Module:Diagnostics/Luaj" class="xowa-visited">Module:Diagnostics/Luaj</a>
</li>
<li>
Tests changes to the luaj_xowa.jar
</li>
<li>
Further notes available at <a href="http://xowa.org/home/wiki/App/Xtn/Mediawiki/Scribunto/Luaj.html" id="xolnki_3" title="App/Xtn/Mediawiki/Scribunto/Luaj">App/Xtn/Mediawiki/Scribunto/Luaj</a>
Further notes available at <a href="http://xowa.org/home/wiki/App/Xtn/Mediawiki/Scribunto/Luaj" id="xolnki_3" title="App/Xtn/Mediawiki/Scribunto/Luaj">App/Xtn/Mediawiki/Scribunto/Luaj</a>
</li>
</ul>
<h3>
@@ -53,6 +53,9 @@
</th>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.format fails for bad format; fails with ""
</td>
@@ -60,13 +63,16 @@
{{#invoke:Diagnostics/Luaj|string_format_2|%d:%02.f|3|4}}
</td>
<td>
3:04
</td>
<td>
<span style='color: green;'>pass</span>
3:04
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
os.time does not handle dates before 1970 on Windows; fails with false on Windows<br>
NOTE: always fails on Windows with the lua engine
@@ -75,13 +81,16 @@
{{#invoke:Diagnostics/Luaj|os_time|1234|05|06}}
</td>
<td>
true
</td>
<td>
<span style='color: green;'>pass</span>
true
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
pairs.next fails when setting val to null; fails with ""
</td>
@@ -89,10 +98,10 @@
{{#invoke:Diagnostics/Luaj|pairs_next}}
</td>
<td>
ok
</td>
<td>
<span style='color: green;'>pass</span>
ok
<p>
<br>
</p>
</td>
</tr>
</table>
@@ -115,6 +124,9 @@
</th>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.gfind deprecated; should be alias to gmatch; fails with ""
</td>
@@ -122,13 +134,16 @@
{{#invoke:Diagnostics/Luaj|string_gfind|ab cd|%w+}}
</td>
<td>
ab
</td>
<td>
<span style='color: green;'>pass</span>
ab
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
tonumber returns original value if value has decimal and base is 10; fails with ""
</td>
@@ -136,13 +151,16 @@
{{#invoke:Diagnostics/Luaj|tonumber|12.34|10}}
</td>
<td>
12.34
</td>
<td>
<span style='color: green;'>pass</span>
12.34
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
tonumber('-') should be nil not 0
</td>
@@ -150,12 +168,15 @@
{{#invoke:Diagnostics/Luaj|tonumber_lone|-}}
</td>
<td>
</td>
<td>
<span style='color: green;'>pass</span>
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
math.log10 deprecated; now calls Math.log10; fails with ""
</td>
@@ -163,13 +184,16 @@
{{#invoke:Diagnostics/Luaj|math_log10|100}}
</td>
<td>
2
</td>
<td>
<span style='color: green;'>pass</span>
2
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
math.mod deprecated; now aliased to math.fmod; fails with ""
</td>
@@ -177,13 +201,16 @@
{{#invoke:Diagnostics/Luaj|math_mod|3|2}}
</td>
<td>
1
</td>
<td>
<span style='color: green;'>pass</span>
1
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
table.maxn deprecated; fails with ""
</td>
@@ -191,13 +218,16 @@
{{#invoke:Diagnostics/Luaj|table_maxn}}
</td>
<td>
3
</td>
<td>
<span style='color: green;'>pass</span>
3
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
table.getn deprecated -- key_is_num; fails with ""
</td>
@@ -205,13 +235,16 @@
{{#invoke:Diagnostics/Luaj|table_getn__key_is_num}}
</td>
<td>
3
</td>
<td>
<span style='color: green;'>pass</span>
3
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
table.getn deprecated -- key_is_str; fails with ""
</td>
@@ -219,13 +252,16 @@
{{#invoke:Diagnostics/Luaj|table_getn__key_is_str}}
</td>
<td>
0
</td>
<td>
<span style='color: green;'>pass</span>
0
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
automatic arg variable in varargs function deprecated; fails with ""
</td>
@@ -233,10 +269,10 @@
{{#invoke:Diagnostics/Luaj|varargs_arg}}
</td>
<td>
a
</td>
<td>
<span style='color: green;'>pass</span>
a
<p>
<br>
</p>
</td>
</tr>
</table>
@@ -259,6 +295,9 @@
</th>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
tonumber should trim all white space, not just \s; fails with ""
</td>
@@ -266,13 +305,16 @@
{{#invoke:Diagnostics/Luaj|value_tonumber_trim}}
</td>
<td>
123
</td>
<td>
<span style='color: green;'>pass</span>
123
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.rep fails if negative repetition; return ""; fails with ""
</td>
@@ -280,13 +322,16 @@
{{#invoke:Diagnostics/Luaj|string_rep_test|a|-1}}
</td>
<td>
pass:
</td>
<td>
<span style='color: green;'>pass</span>
pass:
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.gsub fails with ArrayIndexOutOfBoundsException; check for OutOfBounds; fails with ""
</td>
@@ -294,13 +339,16 @@
{{#invoke:Diagnostics/Luaj|string_gsub|a#b|#|}}
</td>
<td>
ab
</td>
<td>
<span style='color: green;'>pass</span>
ab
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.gsub fails if src is empty string; exit early if empty; fails with ""
</td>
@@ -308,12 +356,15 @@
{{#invoke:Diagnostics/Luaj|string_gsub||%b&lt;&gt;|}}
</td>
<td>
</td>
<td>
<span style='color: green;'>pass</span>
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.gmatch: non-match
</td>
@@ -321,13 +372,16 @@
{{#invoke:Diagnostics/Luaj|string_gmatch|a|[^,]*}}
</td>
<td>
a;;
</td>
<td>
<span style='color: green;'>pass</span>
a;;
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.gmatch: match
</td>
@@ -335,13 +389,16 @@
{{#invoke:Diagnostics/Luaj|string_gmatch|a,b|[^,]*}}
</td>
<td>
a;;b;;
</td>
<td>
<span style='color: green;'>pass</span>
a;;b;;
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.gmatch: convert example; plain text
</td>
@@ -349,12 +406,15 @@
{{#invoke:Diagnostics/Luaj|string_gmatch_convert|a}}
</td>
<td>
</td>
<td>
<span style='color: green;'>pass</span>
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.gmatch: convert example; lnki
</td>
@@ -362,12 +422,15 @@
{{#invoke:Diagnostics/Luaj|string_gmatch_convert|[[a]]}}
</td>
<td>
</td>
<td>
<span style='color: green;'>pass</span>
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.format does not use format args for double; call java.lang.String.format; fails with 1.234
</td>
@@ -375,13 +438,16 @@
{{#invoke:Diagnostics/Luaj|string_format|%.1f|1.234}}
</td>
<td>
1.2
</td>
<td>
<span style='color: green;'>pass</span>
1.2
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.format fails for bad format; fails with ""
</td>
@@ -389,13 +455,16 @@
{{#invoke:Diagnostics/Luaj|string_format|(%0.1f%%)|1.234}}
</td>
<td>
(1.2%)
</td>
<td>
<span style='color: green;'>pass</span>
(1.2%)
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.format fails if no number after "."; fails with ""
</td>
@@ -403,13 +472,16 @@
{{#invoke:Diagnostics/Luaj|string_format|%02.f|3}}
</td>
<td>
03
</td>
<td>
<span style='color: green;'>pass</span>
03
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.format fails for char; fails with ""
</td>
@@ -417,13 +489,16 @@
{{#invoke:Diagnostics/Luaj|string_format|%c|97}}
</td>
<td>
a
</td>
<td>
<span style='color: green;'>pass</span>
a
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.format fails for multibyte chars; fails with ""
</td>
@@ -431,13 +506,16 @@
{{#invoke:Diagnostics/Luaj|string_format|âbç%f|1}}
</td>
<td>
âbç1.0
</td>
<td>
<span style='color: green;'>pass</span>
âbç1.0
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
multibyte strings not supported; fails with ""
</td>
@@ -445,13 +523,16 @@
{{#invoke:Diagnostics/Luaj|string_multibyte_2}}
</td>
<td>
â
</td>
<td>
<span style='color: green;'>pass</span>
â
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
multibyte strings not supported; fails with ""
</td>
@@ -459,13 +540,16 @@
{{#invoke:Diagnostics/Luaj|string_multibyte_3}}
</td>
<td>
อา
</td>
<td>
<span style='color: green;'>pass</span>
อา
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
multibyte chars in lua variables; used to return "?"
</td>
@@ -473,13 +557,16 @@
{{#invoke:Diagnostics/Luaj|ustring_match_multibyte|𠀀}}
</td>
<td>
𠀀
</td>
<td>
<span style='color: green;'>pass</span>
𠀀
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
handle backslash-escaped sequences like \239\191\185; used to return "11"
</td>
@@ -487,12 +574,15 @@
{{#invoke:Diagnostics/Luaj|multibyte__backslash_escaped}}
</td>
<td>
</td>
<td>
<span style='color: green;'>pass</span>
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
surrogate pair chars not supported; fails with ""
</td>
@@ -500,13 +590,16 @@
{{#invoke:Diagnostics/Luaj|string_surrogate_pair}}
</td>
<td>
1
</td>
<td>
<span style='color: green;'>pass</span>
1
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
table.concat fails if end is nil; convert nil to list len; fails with ""
</td>
@@ -514,13 +607,16 @@
{{#invoke:Diagnostics/Luaj|table_concat|.|1||a|b|c}}
</td>
<td>
a.b.c
</td>
<td>
<span style='color: green;'>pass</span>
a.b.c
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
table.concat fails if sep is nil; convert nil to ""; fails with ""
</td>
@@ -528,13 +624,16 @@
{{#invoke:Diagnostics/Luaj|table_concat_nil_sep}}
</td>
<td>
ab
</td>
<td>
<span style='color: green;'>pass</span>
ab
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
table.concat fails if 1st argument is nil; fails with "bad argument: string expected, got nil"
</td>
@@ -542,13 +641,16 @@
{{#invoke:Diagnostics/Luaj|table_remove_nil_arg_at_pos_1}}
</td>
<td>
ab
</td>
<td>
<span style='color: green;'>pass</span>
ab
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
os_date does not accept utc argument; fails with ""<br>
NOTE: test assumes EST / EDT; if ! is not applied, then date would be 1969-12-31
@@ -557,13 +659,16 @@
{{#invoke:Diagnostics/Luaj|os_date|!*t|3600}}
</td>
<td>
1970-01-01
</td>
<td>
<span style='color: green;'>pass</span>
1970-01-01
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
os_date non-utc check;
</td>
@@ -571,13 +676,16 @@
{{#invoke:Diagnostics/Luaj|os_date|*t|0}}
</td>
<td>
1969-12-31
</td>
<td>
<span style='color: green;'>pass</span>
1969-12-31
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
os_date format: %e; fails with ""; NOTE: test assumes time zone within 11 hours of UTC
</td>
@@ -585,13 +693,16 @@
{{#invoke:Diagnostics/Luaj|os_date_format|%e|2014|07|15|1|2|3}}
</td>
<td>
15
</td>
<td>
<span style='color: green;'>pass</span>
15
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
os_date format: %R; fails with ""
</td>
@@ -599,13 +710,16 @@
{{#invoke:Diagnostics/Luaj|os_date_format|%R|2014|07|15|13|2|3}}
</td>
<td>
13:02
</td>
<td>
<span style='color: green;'>pass</span>
13:02
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
match.balanced: fails with out of bounds;
</td>
@@ -613,12 +727,15 @@
{{#invoke:Diagnostics/Luaj|string_match|a|%b()}}
</td>
<td>
</td>
<td>
<span style='color: green;'>pass</span>
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
match.balanced: fails with out of bounds; ^ at beginning
</td>
@@ -626,12 +743,15 @@
{{#invoke:Diagnostics/Luaj|string_match|a|^(.) ?%b()}}
</td>
<td>
</td>
<td>
<span style='color: green;'>pass</span>
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
match.frontier:error
</td>
@@ -639,12 +759,15 @@
{{#invoke:Diagnostics/Luaj|string_gmatch|a|%f[%a]b}}
</td>
<td>
</td>
<td>
<span style='color: green;'>pass</span>
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
match.frontier:bad-implementation; used to return ""
</td>
@@ -652,13 +775,16 @@
{{#invoke:Diagnostics/Luaj|lua_match|bz|%f[%a][%a]z$}}
</td>
<td>
bz
</td>
<td>
<span style='color: green;'>pass</span>
bz
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
tonumber hex fails if incomplete
</td>
@@ -666,12 +792,15 @@
{{#invoke:Diagnostics/Luaj|tonumber_hex|0x}}
</td>
<td>
</td>
<td>
<span style='color: green;'>pass</span>
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
tonumber hex check
</td>
@@ -679,13 +808,16 @@
{{#invoke:Diagnostics/Luaj|tonumber_hex|0xFF}}
</td>
<td>
255
</td>
<td>
<span style='color: green;'>pass</span>
255
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.gsub does not match $ at end of string
</td>
@@ -693,13 +825,16 @@
{{#invoke:Diagnostics/Luaj|string_gsub|ab|e?$|1}}
</td>
<td>
abe
</td>
<td>
<span style='color: green;'>pass</span>
abe
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
table.unpack does not handle nil args; fails with error
</td>
@@ -707,13 +842,16 @@
{{#invoke:Diagnostics/Luaj|table_unpack_nil}}
</td>
<td>
a,b,c,d
</td>
<td>
<span style='color: green;'>pass</span>
a,b,c,d
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
surrogate pairs not handled correctly; fails with wrong 1st char: 𢱌
</td>
@@ -721,13 +859,16 @@
{{#invoke:Diagnostics/Luaj|core_surrogate_pairs}}
</td>
<td>
𣂁 - 脁 - 晁
</td>
<td>
<span style='color: green;'>pass</span>
𣂁 - 脁 - 晁
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
zero-length regex fails
</td>
@@ -735,12 +876,15 @@
{{#invoke:Diagnostics/Luaj|lua_match|text|}}
</td>
<td>
</td>
<td>
<span style='color: green;'>pass</span>
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
utf-8 char fails
</td>
@@ -748,30 +892,27 @@
{{#invoke:Diagnostics/Luaj|var|â|}}
</td>
<td>
â
</td>
<td>
<span style='color: green;'>pass</span>
â
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
gsub fails with bracketed utf-8
<span style='color: green;'>pass</span>
</td>
<td>
{{#invoke:Diagnostics/Luaj|string_gsub_w_multibyte_pattern}}
fails if "2." is coerced to 2
</td>
<td>
a-z
{{#invoke:Diagnostics/Luaj|table_overwrite_int_with_string}}
</td>
<td>
<span style='color: red;'>fail:<br>
'a-z</span>
<pre>
<span style='color: red;'>'<br>
'a-146z
'</span>
</pre>
2.
<p>
<br>
</p>
</td>
</tr>
</table>