Commit 91d175452d851776c98ca1ac46fec423a6926389
1 parent
db7474e0
Add testing for new array mutators
Showing
4 changed files
with
59 additions
and
36 deletions
qpdf/qtest/qpdf/test4-1.qdf
| ... | ... | @@ -14,9 +14,12 @@ endobj |
| 14 | 14 | 2 0 obj |
| 15 | 15 | << |
| 16 | 16 | /A [ |
| 17 | + 9 | |
| 17 | 18 | 1 |
| 18 | 19 | 5 |
| 19 | - 3 | |
| 20 | + 10 | |
| 21 | + 12 | |
| 22 | + 6 | |
| 20 | 23 | ] |
| 21 | 24 | /Author (Mr. Potato Head) |
| 22 | 25 | /B << |
| ... | ... | @@ -134,15 +137,15 @@ xref |
| 134 | 137 | 0000000000 65535 f |
| 135 | 138 | 0000000052 00000 n |
| 136 | 139 | 0000000134 00000 n |
| 137 | -0000000333 00000 n | |
| 138 | -0000000455 00000 n | |
| 139 | -0000000555 00000 n | |
| 140 | -0000000615 00000 n | |
| 141 | -0000000694 00000 n | |
| 142 | -0000000938 00000 n | |
| 143 | -0000001037 00000 n | |
| 144 | -0000001083 00000 n | |
| 145 | -0000001229 00000 n | |
| 140 | +0000000353 00000 n | |
| 141 | +0000000475 00000 n | |
| 142 | +0000000575 00000 n | |
| 143 | +0000000635 00000 n | |
| 144 | +0000000714 00000 n | |
| 145 | +0000000958 00000 n | |
| 146 | +0000001057 00000 n | |
| 147 | +0000001103 00000 n | |
| 148 | +0000001249 00000 n | |
| 146 | 149 | trailer << |
| 147 | 150 | /Info 2 0 R |
| 148 | 151 | /QTest 3 0 R |
| ... | ... | @@ -151,5 +154,5 @@ trailer << |
| 151 | 154 | /ID [<c61bd35bada064f61e0a56aa9588064e><31415926535897932384626433832795>] |
| 152 | 155 | >> |
| 153 | 156 | startxref |
| 154 | -1265 | |
| 157 | +1285 | |
| 155 | 158 | %%EOF | ... | ... |
qpdf/qtest/qpdf/test4-4.pdf
| ... | ... | @@ -30,7 +30,7 @@ endobj |
| 30 | 30 | |
| 31 | 31 | 4 0 obj |
| 32 | 32 | [ |
| 33 | - 1 | |
| 33 | + 100 | |
| 34 | 34 | 2 |
| 35 | 35 | 3 |
| 36 | 36 | ] |
| ... | ... | @@ -106,12 +106,12 @@ xref |
| 106 | 106 | 0000000079 00000 n |
| 107 | 107 | 0000000174 00000 n |
| 108 | 108 | 0000000246 00000 n |
| 109 | -0000000278 00000 n | |
| 110 | -0000000330 00000 n | |
| 111 | -0000000546 00000 n | |
| 112 | -0000000645 00000 n | |
| 113 | -0000000664 00000 n | |
| 114 | -0000000782 00000 n | |
| 109 | +0000000280 00000 n | |
| 110 | +0000000332 00000 n | |
| 111 | +0000000548 00000 n | |
| 112 | +0000000647 00000 n | |
| 113 | +0000000666 00000 n | |
| 114 | +0000000784 00000 n | |
| 115 | 115 | trailer << |
| 116 | 116 | /QTest 2 0 R |
| 117 | 117 | /Root 1 0 R |
| ... | ... | @@ -119,5 +119,5 @@ trailer << |
| 119 | 119 | /ID [<c61bd35bada064f61e0a56aa9588064e><c893e7330be149468080ad6518819868>] |
| 120 | 120 | >> |
| 121 | 121 | startxref |
| 122 | -818 | |
| 122 | +820 | |
| 123 | 123 | %%EOF | ... | ... |
qpdf/qtest/qpdf/test4-4.qdf
| ... | ... | @@ -14,14 +14,14 @@ endobj |
| 14 | 14 | 2 0 obj |
| 15 | 15 | << |
| 16 | 16 | /A [ |
| 17 | - 1 | |
| 18 | - 5 | |
| 19 | - 3 | |
| 17 | + 14 | |
| 18 | + 15 | |
| 19 | + 9 | |
| 20 | 20 | ] |
| 21 | 21 | /Author (Mr. Potato Head) |
| 22 | 22 | /B << |
| 23 | 23 | /A [ |
| 24 | - 1 | |
| 24 | + 100 | |
| 25 | 25 | 2 |
| 26 | 26 | 3 |
| 27 | 27 | ] |
| ... | ... | @@ -55,7 +55,7 @@ endobj |
| 55 | 55 | %% Original object ID: 4 0 |
| 56 | 56 | 5 0 obj |
| 57 | 57 | [ |
| 58 | - 1 | |
| 58 | + 100 | |
| 59 | 59 | 2 |
| 60 | 60 | 3 |
| 61 | 61 | ] |
| ... | ... | @@ -134,15 +134,15 @@ xref |
| 134 | 134 | 0000000000 65535 f |
| 135 | 135 | 0000000052 00000 n |
| 136 | 136 | 0000000134 00000 n |
| 137 | -0000000333 00000 n | |
| 138 | -0000000455 00000 n | |
| 139 | -0000000554 00000 n | |
| 140 | -0000000613 00000 n | |
| 141 | -0000000692 00000 n | |
| 142 | -0000000936 00000 n | |
| 143 | -0000001035 00000 n | |
| 144 | -0000001081 00000 n | |
| 145 | -0000001228 00000 n | |
| 137 | +0000000337 00000 n | |
| 138 | +0000000459 00000 n | |
| 139 | +0000000558 00000 n | |
| 140 | +0000000619 00000 n | |
| 141 | +0000000698 00000 n | |
| 142 | +0000000942 00000 n | |
| 143 | +0000001041 00000 n | |
| 144 | +0000001087 00000 n | |
| 145 | +0000001234 00000 n | |
| 146 | 146 | trailer << |
| 147 | 147 | /Info 2 0 R |
| 148 | 148 | /QTest 3 0 R |
| ... | ... | @@ -151,5 +151,5 @@ trailer << |
| 151 | 151 | /ID [<c61bd35bada064f61e0a56aa9588064e><31415926535897932384626433832795>] |
| 152 | 152 | >> |
| 153 | 153 | startxref |
| 154 | -1264 | |
| 154 | +1270 | |
| 155 | 155 | %%EOF | ... | ... |
qpdf/test_driver.cc
| ... | ... | @@ -284,8 +284,28 @@ void runtest(int n, char const* filename) |
| 284 | 284 | QPDFObjectHandle::newString("Mr. Potato Head")); |
| 285 | 285 | // qtest.A and qtest.B.A were originally the same object. |
| 286 | 286 | // They no longer are after makeDirect(). Mutate one of them |
| 287 | - // and ensure the other is not changed. | |
| 288 | - qtest.getKey("/A").setArrayItem(1, QPDFObjectHandle::newInteger(5)); | |
| 287 | + // and ensure the other is not changed. These test cases are | |
| 288 | + // crafted around a specific set of input files. | |
| 289 | + QPDFObjectHandle A = qtest.getKey("/A"); | |
| 290 | + if (A.getArrayItem(0).getIntValue() == 1) | |
| 291 | + { | |
| 292 | + // Test mutators | |
| 293 | + A.setArrayItem(1, QPDFObjectHandle::newInteger(5)); // 1 5 3 | |
| 294 | + A.insertItem(2, QPDFObjectHandle::newInteger(10)); // 1 5 10 3 | |
| 295 | + A.appendItem(QPDFObjectHandle::newInteger(12)); // 1 5 10 3 12 | |
| 296 | + A.eraseItem(3); // 1 5 10 12 | |
| 297 | + A.insertItem(4, QPDFObjectHandle::newInteger(6)); // 1 5 10 12 6 | |
| 298 | + A.insertItem(0, QPDFObjectHandle::newInteger(9)); // 9 1 5 10 12 6 | |
| 299 | + } | |
| 300 | + else | |
| 301 | + { | |
| 302 | + std::vector<QPDFObjectHandle> items; | |
| 303 | + items.push_back(QPDFObjectHandle::newInteger(14)); | |
| 304 | + items.push_back(QPDFObjectHandle::newInteger(15)); | |
| 305 | + items.push_back(QPDFObjectHandle::newInteger(9)); | |
| 306 | + A.setArrayFromVector(items); | |
| 307 | + } | |
| 308 | + | |
| 289 | 309 | trailer.replaceKey("/Info", pdf.makeIndirectObject(qtest)); |
| 290 | 310 | QPDFWriter w(pdf, 0); |
| 291 | 311 | w.setQDFMode(true); | ... | ... |