Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(653)

Side by Side Diff: third_party/WebKit/LayoutTests/fast/canvas/webgl/webgl-array-invalid-ranges.html

Issue 2447493002: Removed some duplicate layout tests under fast/canvas/webgl (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 <html>
2 <head>
3 <script src="../../../resources/js-test.js"></script>
4 <script src="resources/webgl-test.js"></script>
5 </head>
6 <body>
7 <div id="description"></div>
8 <div id="console"></div>
9
10 <script>
11
12 description("Verifies that out-of-range parameters for creation, slicing and set ting of WebGL arrays are caught");
13
14 function testConstructionWithNullBuffer(type, name) {
15 var array;
16 try {
17 array = new type(null, 0, 0);
18 testPassed("Construction of " + name + " with null buffer should not thr ow exception");
19 } catch (e) {
20 testFailed("Construction of " + name + " with null buffer threw exceptio n");
21 }
22 }
23
24
25 function testConstructionWithOutOfRangeValues(type, name) {
26 var buffer = new ArrayBuffer(4);
27 var array;
28 try {
29 array = new type(buffer, 4, 0x3FFFFFFF);
30 testFailed("Construction of " + name + " with out-of-range values should throw exception");
31 } catch (e) {
32 testPassed("Construction of " + name + " with out-of-range values threw exception");
33 }
34 }
35
36 function testConstructionWithNegativeOutOfRangeValues(type, name) {
37 var buffer = new ArrayBuffer(4);
38 var array;
39 try {
40 array = new type(buffer, 4, -2147483648);
41 testFailed("Construction of " + name + " with negative out-of-range valu es should throw exception");
42 } catch (e) {
43 testPassed("Construction of " + name + " with negative out-of-range valu es threw exception");
44 }
45 }
46
47 // These need to be global for shouldBe to see them
48 var array;
49 var typeSize;
50
51 function testSubarrayWithOutOfRangeValues(type, name, sz) {
52 debug("Testing subarray of " + name);
53 try {
54 var buffer = new ArrayBuffer(32);
55 array = new type(buffer);
56 typeSize = sz;
57 shouldBe("array.length", "32 / typeSize");
58 try {
59 shouldBe("array.subarray(4, 0x3FFFFFFF).length", "(32 / typeSize) - 4");
60 shouldBe("array.subarray(4, -2147483648).length", "0");
61 } catch (e) {
62 testFailed("Subarray of " + name + " threw exception");
63 }
64 } catch (e) {
65 testFailed("Exception: " + e);
66 }
67 }
68
69 function testSettingFromArrayWithOutOfRangeOffset(type, name) {
70 var webglArray = new type(32);
71 var array = [];
72 for (var i = 0; i < 16; i++) {
73 array.push(i);
74 }
75 try {
76 webglArray.set(array, 0x7FFFFFF8);
77 testFailed("Setting " + name + " from array with out-of-range offset was not caught");
78 } catch (e) {
79 testPassed("Setting " + name + " from array with out-of-range offset was caught");
80 }
81 }
82
83 function testSettingFromFakeArrayWithOutOfRangeLength(type, name) {
84 var webglArray = new type(32);
85 var array = {};
86 array.length = 0x80000000;
87 try {
88 webglArray.set(array, 8);
89 testFailed("Setting " + name + " from fake array with invalid length was not caught");
90 } catch (e) {
91 testPassed("Setting " + name + " from fake array with invalid length was caught");
92 }
93 }
94
95 function testSettingFromWebGLArrayWithOutOfRangeOffset(type, name) {
96 var webglArray = new type(32);
97 var srcArray = new type(16);
98 for (var i = 0; i < 16; i++) {
99 srcArray[i] = i;
100 }
101 try {
102 webglArray.set(srcArray, 0x7FFFFFF8);
103 testFailed("Setting " + name + " from " + name + " with out-of-range off set was not caught");
104 } catch (e) {
105 testPassed("Setting " + name + " from " + name + " with out-of-range off set was caught");
106 }
107 }
108
109 var typeNames = [ "Int8Array",
110 "Uint8Array",
111 "Int16Array",
112 "Uint16Array",
113 "Int32Array",
114 "Uint32Array",
115 "Float32Array" ];
116
117 var typeSizes = [ 1, 1, 2, 2, 4, 4, 4 ];
118
119 for (var i = 0; i < typeNames.length; i++) {
120 var name = typeNames[i];
121 var type = window[name];
122 if (!type) {
123 testFailed("Could not find array type " + name);
124 } else {
125 testConstructionWithNullBuffer(type, name);
126 testConstructionWithOutOfRangeValues(type, name);
127 testConstructionWithNegativeOutOfRangeValues(type, name);
128 testSubarrayWithOutOfRangeValues(type, name, typeSizes[i]);
129 testSettingFromArrayWithOutOfRangeOffset(type, name);
130 testSettingFromFakeArrayWithOutOfRangeLength(type, name);
131 testSettingFromWebGLArrayWithOutOfRangeOffset(type, name);
132 }
133 }
134
135 buffer = new ArrayBuffer(40);
136 ints = new Int32Array(buffer, 0, 10);
137 floats = new Float32Array(buffer, 0, 10);
138 // Plant a NaN into the buffer
139 ints[0]=-0x7ffff;
140 // Read the NaN out as a float
141 shouldBeTrue("isNaN(floats[0])");
142
143 </script>
144
145 </body>
146 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698