99eb74885ff5bce42cadafee93274df7039dcab5
braney
  Sat Sep 26 17:34:11 2026 -0700
unit tests for four v503 tickets, refs #38391, #37262, #38120, #38107, #38125, #38154

cgiDecodeTest prints what malformed and cut-short %hh escapes decode to, and
checks that cgiDecode never reads past the length it is given.  udcDotsTest
prints the cache directory udc makes for remote URLs with "." and ".." in
them, including the ones that must abort.  pngWriteTest writes a memGfx image
as a PNG, reads it back with libpng, compares every pixel, and checks the row
filter of every row.  pgSnpManyAllelesTester builds per-allele counts from a
VCF record with 150 ALT alleles.

Each test fails with its fix backed out, except that zlib-ng was not swapped
out for #38125.  The test registry gets a row for each ticket.

diff --git src/lib/tests/expected/cgiDecodeTest src/lib/tests/expected/cgiDecodeTest
new file mode 100644
index 00000000000..9fd247252c7
--- /dev/null
+++ src/lib/tests/expected/cgiDecodeTest
@@ -0,0 +1,33 @@
+in  : plain
+out : plain
+in  : a+b+c
+out : a b c
+in  : %41%42%43
+out : ABC
+in  : %4a%4A%4b
+out : JJK
+in  : 100%25
+out : 100%
+in  : %2B+%20
+out : +  
+in  : %00after
+out : 
+in  : %zzx
+out : ?x
+in  : %4gx
+out : ?x
+in  : %g4x
+out : ?x
+in  : end%
+out : end?
+in  : end%4
+out : end?
+in  : %
+out : ?
+in  : %%41
+out : ?1
+in  : %1F%7f%FF
+out : \x1f\x7f\xff
+in  : 
+out : 
+no read-ahead: %41+%42%2b decodes to "A B+" without reading past its length