Add the new test suite.

This test suite has been in use for a long time now, in place of the obsolete and unmanageable testparser.py and testfuncs.py. It verifies the complete optimizer output to stdout and stderr, to ensure that the output matches the expectations.

See unit_tests/README.txt for more info.
This commit is contained in:
Sei Lisa
2019-01-04 20:26:26 +01:00
parent 7fbde0269c
commit 1867dc78e7
547 changed files with 11680 additions and 0 deletions

View File

@@ -0,0 +1,82 @@
[ llUnescapeURL("%")
, llUnescapeURL("%%")
, llUnescapeURL("%4%252Fabc")
, llEscapeURL(llUnescapeURL("%%4%252Fabc"))
, llStringToBase64(llUnescapeURL("%%4%252Fabc"))
, llEscapeURL(llUnescapeURL("%.44%25%%2Fa←c"))
, llEscapeURL(llUnescapeURL("%.44%25%%2Fa←c%"))
, llEscapeURL(llUnescapeURL("%.44%25%%2Fa←c%2"))
, llEscapeURL(llUnescapeURL("%.44%25%%2Fa←c%%"))
, llEscapeURL(llUnescapeURL("%.44%25%%2Fa←c%%2"))
, llEscapeURL(llUnescapeURL("%.44%25%%2Fa←c%%%2346"))
, llEscapeURL(llUnescapeURL("%4.%25"))
// Test UTF-8 validity
, llEscapeURL(llUnescapeURL("%C3%81%80%E3%81%C3%80ABC%D3"))
, llEscapeURL(llUnescapeURL("%C3%81%80%E3%81%C3%80ABC%00%D3"))
, llEscapeURL(llUnescapeURL("%E0%80%80%80%80%80%80%E3%81%C3%80ABC%00%D3"))
// test UTF-8 valid ranges
// thorough control codes
, llEscapeURL(llUnescapeURL("%01%02%03%04%05%06%07%08%09%0A%0B%0C%0D%0E%0F"))
, llEscapeURL(llUnescapeURL("%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F"))
// DEL
, llEscapeURL(llUnescapeURL("%7Fx"))
// invalid ranges
, llEscapeURL(llUnescapeURL("%80%80x"))
, llEscapeURL(llUnescapeURL("%BF%BFx"))
// aliased
, llEscapeURL(llUnescapeURL("%C0%80x"))
, llEscapeURL(llUnescapeURL("%C1%BFx"))
// valid range
, llEscapeURL(llUnescapeURL("%C2%80x"))
, llEscapeURL(llUnescapeURL("%DF%BFx"))
// aliased
, llEscapeURL(llUnescapeURL("%E0%80%80x"))
, llEscapeURL(llUnescapeURL("%E0%9F%BFx"))
// valid range
, llEscapeURL(llUnescapeURL("%E0%A0%80x"))
, llEscapeURL(llUnescapeURL("%ED%9F%BFx"))
// invalid (UTF-16 high surrogates)
, llEscapeURL(llUnescapeURL("%ED%A0%80x"))
, llEscapeURL(llUnescapeURL("%ED%AF%BFx"))
// invalid (UTF-16 low surrogates)
, llEscapeURL(llUnescapeURL("%ED%B0%80x"))
, llEscapeURL(llUnescapeURL("%ED%BF%BFx"))
// valid range
, llEscapeURL(llUnescapeURL("%EE%80%80x"))
, llEscapeURL(llUnescapeURL("%EF%BF%BFx"))
// aliased
, llEscapeURL(llUnescapeURL("%F0%80%80%80x"))
, llEscapeURL(llUnescapeURL("%F0%8F%BF%BFx"))
// valid range
, llEscapeURL(llUnescapeURL("%F0%90%80%80x"))
, llEscapeURL(llUnescapeURL("%F4%8F%BF%BFx"))
// codepoints > U+10FFFF (all invalid)
, llEscapeURL(llUnescapeURL("%F4%90%80%80x"))
, llEscapeURL(llUnescapeURL("%F7%BF%BF%BFx"))
, llEscapeURL(llUnescapeURL("%F8%80%80%80%80x"))
, llEscapeURL(llUnescapeURL("%F8%87%BF%BF%BFx"))
, llEscapeURL(llUnescapeURL("%F8%88%80%80%80x"))
, llEscapeURL(llUnescapeURL("%FB%BF%BF%BF%BFx"))
, llEscapeURL(llUnescapeURL("%FC%80%80%80%80%80x"))
, llEscapeURL(llUnescapeURL("%FC%83%BF%BF%BF%BFx"))
, llEscapeURL(llUnescapeURL("%FC%84%80%80%80%80x"))
, llEscapeURL(llUnescapeURL("%FD%BF%BF%BF%BF%BFx"))
// FE and FF are used for the UTF-16 and UTF-32 BOM
, llEscapeURL(llUnescapeURL("%FE%B0%80%80%80%80%80%80x"))
, llEscapeURL(llUnescapeURL("%FF%BF%BF%BF%BF%BF%BF%BFx"))
// short or invalid sequences
, llEscapeURL(llUnescapeURL("%80"))
, llEscapeURL(llUnescapeURL("%BF"))
, llEscapeURL(llUnescapeURL("%C2"))
, llEscapeURL(llUnescapeURL("%E1"))
, llEscapeURL(llUnescapeURL("%E1%80"))
, llEscapeURL(llUnescapeURL("%F1"))
, llEscapeURL(llUnescapeURL("%F1%80"))
, llEscapeURL(llUnescapeURL("%F1%80%80"))
// Test that U+FFFD is preserved even with invalid characters
, llEscapeURL(llUnescapeURL("%EF%BF%BD%90"))
]