summaryrefslogtreecommitdiff
path: root/testing/resources/javascript/array_buffer.in
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2017-03-15 15:24:57 -0700
committerChromium commit bot <commit-bot@chromium.org>2017-03-15 22:50:56 +0000
commit972eb5c6843b235e5414c86c41e962151a94870c (patch)
treeab0678b757c6da4b7d11219192eae50999f65ee9 /testing/resources/javascript/array_buffer.in
parentc467d4619ebe0bae9a87b667ca9a06f576138f68 (diff)
downloadpdfium-972eb5c6843b235e5414c86c41e962151a94870c.tar.xz
Add array_buffer JS test.
JS Array Buffers are the first candidate to be allocated from PartitionAlloc when it becomes available, so add test first. Presently, we will return as large an array buffer as the system can handle; this is generally a bad idea so limit them to 256MB and test that we handle failure. Change-Id: I205745a7938d69eb32ac883b90824f2f9e584ec7 Reviewed-on: https://pdfium-review.googlesource.com/3065 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'testing/resources/javascript/array_buffer.in')
-rw-r--r--testing/resources/javascript/array_buffer.in68
1 files changed, 68 insertions, 0 deletions
diff --git a/testing/resources/javascript/array_buffer.in b/testing/resources/javascript/array_buffer.in
new file mode 100644
index 0000000000..1f3e32d60d
--- /dev/null
+++ b/testing/resources/javascript/array_buffer.in
@@ -0,0 +1,68 @@
+{{header}}
+{{object 1 0}} <<
+ /Type /Catalog
+ /Pages 2 0 R
+ /OpenAction 10 0 R
+>>
+endobj
+{{object 2 0}} <<
+ /Type /Pages
+ /Count 1
+ /Kids [
+ 3 0 R
+ ]
+>>
+endobj
+% Page number 0.
+{{object 3 0}} <<
+ /Type /Page
+ /Parent 2 0 R
+ /Resources <<
+ /Font <</F1 15 0 R>>
+ >>
+ /Contents [21 0 R]
+ /MediaBox [0 0 612 792]
+>>
+% OpenAction action
+{{object 10 0}} <<
+ /Type /Action
+ /S /JavaScript
+ /JS 11 0 R
+>>
+endobj
+% JS program to exexute
+{{object 11 0}} <<
+>>
+stream
+app.alert("This test attempts to make array buffers until exhausted");
+
+function test(size) {
+ var i, ab, ia;
+ app.alert("Trying size " + size);
+ ab = new ArrayBuffer(size);
+ ia = new Int32Array(ab);
+ for (i = 0; i < size / 4; ++i) {
+ ia[i] = i;
+ }
+ for (i = 0; i < size / 4; ++i) {
+ if (ia[i] != i) {
+ throw('aaaaaaah');
+ }
+ }
+}
+
+try {
+ test(1000);
+ test(2000000);
+ test(4000000000);
+} catch (e) {
+ app.alert("Caught error " + e);
+}
+endstream
+endobj
+{{xref}}
+trailer <<
+ /Root 1 0 R
+>>
+{{startxref}}
+%%EOF