Add a pixel test for pattern rendering.

Bug: chromium:984811
Change-Id: If04619ffe51bb65b38eee888606566bd2cb3b75c
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/61031
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
diff --git a/testing/resources/bug_1388_cmap.fragment b/testing/resources/bug_1388_cmap.fragment
new file mode 100644
index 0000000..a9a8354
--- /dev/null
+++ b/testing/resources/bug_1388_cmap.fragment
@@ -0,0 +1,8 @@
+/CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo <<
+/Registry (AAAAAB+Test) /Ordering (UCS) /Supplement 0 >> def
+/CMapName /AAAAAB+Test def
+1 begincodespacerange <20> <20> endcodespacerange
+10 beginbfrange
+<20> <20> <b0a9>
+endbfrange
+endcmap CMapName currentdict /CMap defineresource pop end end
diff --git a/testing/resources/bug_1388_truetype_font.fragment b/testing/resources/bug_1388_truetype_font.fragment
new file mode 100644
index 0000000..d9a2c75
--- /dev/null
+++ b/testing/resources/bug_1388_truetype_font.fragment
@@ -0,0 +1,37 @@
+789cdd965b6c944514c7ff33b3b76eb7edf6ba6d29edb6dddeb7dddee875717b87062f2b12a262
+036b296d13b65d29901269a2125379c0006aa289d110e465a2a56aa288517c308a023e18154511
+d4048ca212bcbc007e9ed9fda654e383bef8e06cbe6fce6fce65ce9cc9b7336000dcf4b2000303
+6b6e193977dc053863345ab0a2af7f0015c8250e137b6fbb23d0f8d2ee6d2701f608f1dae16824
+06d7cf27882fd1d333bc7dab377aeff667003ba9996f536c349affc65b9f00a29e1e3e1a998a19
+0604c55b49068ed1cd3b36cdb9079f26d14f3c3d3612d978e5b777f3c9977240cb180dd82bc414
+711fb16f2cba75da01cc139f27766d9e1c8e208869f2f7a978d1c8748c05f018e9c754be1391e8
+48ddfee3e4ef788ec6666293535b8d0da0584e65ef8b6d1989a53c7ef475c0d64cfc1e542dacc0
+ddfb7e796d7d5af057145151a8bdb271f082ea3f7bb42d4ab37f230af945351f38128dfcc4a431
+892713f6a2301e697113f11141554e6838dca8a7dc812f31948841aabd34bb839fe24f11ef49f4
+ec5b34b124879527db08549b073f3c7e7ae755b2a9578e5e6ae8a2ba9a398849eceb72e0d973a7
+95d612af57bc4fe491780acc3c8266660564e08d9bc533bcec55f1d43bedbc5e0bb36161598cc7
+d7f0e7f6d735ff2f5b57b0b3a3bdadb56559735363437da0aed65f535d5559515ee62b2d29f616
+152e2d58929f97ebc9c9cecacc4877a7a5a6b8929d490ebbcd6a119cc1bf6a754fad3f907b36fe
+f204a9f304e3a43ac50b83d5eeea5a7f48e942094d286119d296216d348fde3b5f6c457f61d15d
+048ce0260d9c60b906b1d8cca2cc6c265895c66e828da0579bd90906934c7010946a485a3c8f53
+05709a904c50aea3b9088ab52685a0476b52095a34a411b4bb4c7013b4694827e8d20132089ab4
+4fa6ca40a793a57cb4269be066ed9343102c32c143e0d73eb904ddda2c4f99959a90af347a714b
+9446430141870eb0946099864295a80e50a4d6a3cbeb55b9e900c504951a4a083a6b4c2855d1fc
+26f8d4a43a7419418d0e5dae8aa83515aaf01a2a55b4352654a92568a856596ba85185d7cbf62b
+1f0db504cd1aea16e716b8911b7d037b03b3a89b45ad845fa246a25aa24aa252a242a25ca24cc2
+27511a464918c5125e8922894289a51205124b24f225f22472253c123912d912591299121912e9
+126e893489548914099744b284532249c2216197b085610dc31286088387c11a81461c61c63cdb
+f370cdbf6cea834ee3e70c837bf8573c13a970d1bf58169cbc16397c390ff15ede8d9dbc950ff2
+15bc93b7f3001fe5ebb89d1719b3ec09760685d825927804e97c15dfcd0fe276d6c62442c88007
+337c17ff0956e3aaf13d3bcc5ee6f7b15d18e6d9fc7e16e233ac9b1fc359e305b48b0efe3c5ab9
+133b442b9f62236c867f6e4c1a0ff243c60eb1019d22c40e1a87902756634ef8443a5b2fee314e
+891eacc790e8325e15015c330e1bc7c44d6240dc8a0ba20e1fe15351202a8543b4e13b7c2d82f8
+809fc003780863c24fa7d317c24be7cefba211674486c8c265bc2356e2435cc2495182a3a20f57
+f0267e67e3f811c7d901a87342fdd8c2e92730d4d5ddd8909dc9aa86cb864b239e3cd65dc17a97
+b1240bb3db9893b3ce5cbbadabb9526455e7f39c6ee7223199b19e165eeee31df14d0804023548
+ec4728140aa8d6509f599c5e3ccf27aeefe717af5fa3f95331b7e87ce1a6cce044dec289ea4487
+290b92d799b285e49da66ca5fd3d60ca361a7f5b9d7e9624336a4256fb2f4c9993ec33654172bf
+295b48de64ca56ba1fcd9ab28dc6e754a8305d3206308e6d88a2014d68a31fc27d03e3dba20d4d
+6d6dff89c15a8c600ba6c864121374b837a08e2e0c5e528c6c991a9f9cf036d4d57bff411c2c9c
+f4c6107af177e7bcb91b746748ec8cbabdb9a92e1c898b07376dd80deb8f7fe83fa2fac577ab3f
+00dfbbf54d0a
diff --git a/testing/resources/pixel/bug_1388.in b/testing/resources/pixel/bug_1388.in
index 428a3d9..bd16578 100644
--- a/testing/resources/pixel/bug_1388.in
+++ b/testing/resources/pixel/bug_1388.in
@@ -68,14 +68,7 @@
   {{streamlen}}
 >>
 stream
-/CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo <<
-/Registry (AAAAAB+Test) /Ordering (UCS) /Supplement 0 >> def
-/CMapName /AAAAAB+Test def
-1 begincodespacerange <20> <20> endcodespacerange
-10 beginbfrange
-<20> <20> <b0a9>
-endbfrange
-endcmap CMapName currentdict /CMap defineresource pop end end
+{{include ../bug_1388_cmap.fragment}}
 endstream
 endobj
 {{object 8 0}} <<
@@ -83,43 +76,7 @@
   {{streamlen}}
 >>
 stream
-789cdd965b6c944514c7ff33b3b76eb7edf6ba6d29edb6dddeb7dddee875717b87062f2b12a262
-036b296d13b65d29901269a2125379c0006aa289d110e465a2a56aa288517c308a023e18154511
-d4048ca212bcbc007e9ed9fda654e383bef8e06cbe6fce6fce65ce9cc9b7336000dcf4b2000303
-6b6e193977dc053863345ab0a2af7f0015c8250e137b6fbb23d0f8d2ee6d2701f608f1dae16824
-06d7cf27882fd1d333bc7dab377aeff667003ba9996f536c349affc65b9f00a29e1e3e1a998a19
-0604c55b49068ed1cd3b36cdb9079f26d14f3c3d3612d978e5b777f3c9977240cb180dd82bc414
-711fb16f2cba75da01cc139f27766d9e1c8e208869f2f7a978d1c8748c05f018e9c754be1391e8
-48ddfee3e4ef788ec6666293535b8d0da0584e65ef8b6d1989a53c7ef475c0d64cfc1e542dacc0
-ddfb7e796d7d5af057145151a8bdb271f082ea3f7bb42d4ab37f230af945351f38128dfcc4a431
-892713f6a2301e697113f11141554e6838dca8a7dc812f31948841aabd34bb839fe24f11ef49f4
-ec5b34b124879527db08549b073f3c7e7ae755b2a9578e5e6ae8a2ba9a398849eceb72e0d973a7
-95d612af57bc4fe491780acc3c8266660564e08d9bc533bcec55f1d43bedbc5e0bb36161598cc7
-d7f0e7f6d735ff2f5b57b0b3a3bdadb56559735363437da0aed65f535d5559515ee62b2d29f616
-152e2d58929f97ebc9c9cecacc4877a7a5a6b8929d490ebbcd6a119cc1bf6a754fad3f907b36fe
-f204a9f304e3a43ac50b83d5eeea5a7f48e942094d286119d296216d348fde3b5f6c457f61d15d
-048ce0260d9c60b906b1d8cca2cc6c265895c66e828da0579bd90906934c7010946a485a3c8f53
-05709a904c50aea3b9088ab52685a0476b52095a34a411b4bb4c7013b4694827e8d20132089ab4
-4fa6ca40a793a57cb4269be066ed9343102c32c143e0d73eb904ddda2c4f99959a90af347a714b
-9446430141870eb0946099864295a80e50a4d6a3cbeb55b9e900c504951a4a083a6b4c2855d1fc
-26f8d4a43a7419418d0e5dae8aa83515aaf01a2a55b4352654a92568a856596ba85185d7cbf62b
-1f0db504cd1aea16e716b8911b7d037b03b3a89b45ad845fa246a25aa24aa252a242a25ca24cc2
-27511a464918c5125e8922894289a51205124b24f225f22472253c123912d912591299121912e9
-126e893489548914099744b284532249c2216197b085610dc31286088387c11a81461c61c63cdb
-f370cdbf6cea834ee3e70c837bf8573c13a970d1bf58169cbc16397c390ff15ede8d9dbc950ff2
-15bc93b7f3001fe5ebb89d1719b3ec09760685d825927804e97c15dfcd0fe276d6c62442c88007
-337c17ff0956e3aaf13d3bcc5ee6f7b15d18e6d9fc7e16e233ac9b1fc359e305b48b0efe3c5ab9
-133b442b9f62236c867f6e4c1a0ff243c60eb1019d22c40e1a87902756634ef8443a5b2fee314e
-891eacc790e8325e15015c330e1bc7c44d6240dc8a0ba20e1fe15351202a8543b4e13b7c2d82f8
-809fc003780863c24fa7d317c24be7cefba211674486c8c265bc2356e2435cc2495182a3a20f57
-f0267e67e3f811c7d901a87342fdd8c2e92730d4d5ddd8909dc9aa86cb864b239e3cd65dc17a97
-b1240bb3db9893b3ce5cbbadabb9526455e7f39c6ee7223199b19e165eeee31df14d0804023548
-ec4728140aa8d6509f599c5e3ccf27aeefe717af5fa3f95331b7e87ce1a6cce044dec289ea4487
-290b92d799b285e49da66ca5fd3d60ca361a7f5b9d7e9624336a4256fb2f4c9993ec33654172bf
-295b48de64ca56ba1fcd9ab28dc6e754a8305d3206308e6d88a2014d68a31fc27d03e3dba20d4d
-6d6dff89c15a8c600ba6c864121374b837a08e2e0c5e528c6c991a9f9cf036d4d57bff411c2c9c
-f4c6107af177e7bcb91b746748ec8cbabdb9a92e1c898b07376dd80deb8f7fe83fa2fac577ab3f
-00dfbbf54d0a
+{{include ../bug_1388_truetype_font.fragment}}
 endstream
 endobj
 {{xref}}
diff --git a/testing/resources/pixel/bug_984811.in b/testing/resources/pixel/bug_984811.in
new file mode 100644
index 0000000..b0c0539
--- /dev/null
+++ b/testing/resources/pixel/bug_984811.in
@@ -0,0 +1,137 @@
+{{header}}
+{{object 1 0}} <<
+  /Type /Catalog
+  /Pages 2 0 R
+>>
+endobj
+{{object 2 0}} <<
+  /Type /Pages
+  /Count 1
+  /Kids [3 0 R]
+>>
+endobj
+{{object 3 0}} <<
+  /Type /Page
+  /Parent 2 0 R
+  /Contents 4 0 R
+  /MediaBox [0 0 612 792]
+  /Resources <<
+    /XObject <<
+      /X1 5 0 R
+    >>
+  >>
+>>
+endobj
+{{object 4 0}} <<
+  {{streamlen}}
+>>
+stream
+q
+/X1 Do
+Q
+endstream
+endobj
+{{object 5 0}} <<
+  /Type /XObject
+  /Subtype /Form
+  /BBox [0 0 612 792]
+  /Resources <<
+    /Pattern <<
+      /P1 6 0 R
+    >>
+  >>
+  {{streamlen}}
+>>
+stream
+q
+/Pattern cs
+/P1 scn
+0 0 612 792 re f
+Q
+endstream
+endobj
+{{object 6 0}} <<
+  /Type /Pattern
+  /PatternType 1
+  /TilingType 1
+  /PaintType 1
+  /BBox [0 0 600 900]
+  /XStep 2876
+  /YStep 2876
+  /Resources <<
+    /XObject <<
+      /X2 7 0 R
+    >>
+  >>
+  {{streamlen}}
+>>
+stream
+/X2 Do
+endstream
+endobj
+{{object 7 0}} <<
+  /Type /XObject
+  /Subtype /Form
+  /BBox [0 0 600 900]
+  /Resources <<
+    /Font <<
+      /F1 8 0 R
+    >>
+  >>
+  {{streamlen}}
+>>
+stream
+q
+0 0 0 rg
+BT
+100 200 Td
+/F1 16 Tf
+(   ) Tj
+ET
+Q
+endstream
+endobj
+{{object 8 0}} <<
+  /Type /Font
+  /Subtype /TrueType
+  /FirstChar 32
+  /BaseFont /AAAAAD+Test
+  /FontDescriptor 9 0 R
+  /ToUnicode 10 0 R
+  /LastChar 32
+  /Widths [1055]
+>>
+endobj
+{{object 9 0}} <<
+  /Type /FontDescriptor
+  /Descent -68
+  /MissingWidth 1000
+  /CapHeight 1149
+  /StemV 0
+  /FontFile2 11 0 R
+  /Flags 4
+  /FontBBox [0 -215 1000 932]
+  /FontName /AAAAAD+Test
+  /ItalicAngle 0
+  /Ascent 933
+>>
+endobj
+{{object 10 0}} <<
+  {{streamlen}}
+>>
+stream
+{{include ../bug_1388_cmap.fragment}}
+endstream
+endobj
+{{object 11 0}} <<
+  /Filter [/ASCIIHexDecode /FlateDecode]
+  {{streamlen}}
+>>
+stream
+{{include ../bug_1388_truetype_font.fragment}}
+endstream
+endobj
+{{xref}}
+{{trailer}}
+{{startxref}}
+%%EOF
diff --git a/testing/resources/pixel/bug_984811_expected.pdf.0.png b/testing/resources/pixel/bug_984811_expected.pdf.0.png
new file mode 100644
index 0000000..3dd1900
--- /dev/null
+++ b/testing/resources/pixel/bug_984811_expected.pdf.0.png
Binary files differ
diff --git a/testing/resources/pixel/bug_984811_expected_mac.pdf.0.png b/testing/resources/pixel/bug_984811_expected_mac.pdf.0.png
new file mode 100644
index 0000000..e1ae9f2
--- /dev/null
+++ b/testing/resources/pixel/bug_984811_expected_mac.pdf.0.png
Binary files differ