Chromium Code Reviews| Index: test/cctest/test-api.cc |
| =================================================================== |
| --- test/cctest/test-api.cc (revision 3300) |
| +++ test/cctest/test-api.cc (working copy) |
| @@ -7590,18 +7590,18 @@ |
| THREADED_TEST(PixelArray) { |
| v8::HandleScope scope; |
| LocalContext context; |
| - const int kElementCount = 40; |
| + const int kElementCount = 260; |
| uint8_t* pixel_data = reinterpret_cast<uint8_t*>(malloc(kElementCount)); |
| i::Handle<i::PixelArray> pixels = i::Factory::NewPixelArray(kElementCount, |
| pixel_data); |
| i::Heap::CollectAllGarbage(false); // Force GC to trigger verification. |
| for (int i = 0; i < kElementCount; i++) { |
| - pixels->set(i, i); |
| + pixels->set(i, i % 256); |
| } |
| i::Heap::CollectAllGarbage(false); // Force GC to trigger verification. |
| for (int i = 0; i < kElementCount; i++) { |
| - CHECK_EQ(i, pixels->get(i)); |
| - CHECK_EQ(i, pixel_data[i]); |
| + CHECK_EQ(i % 256, pixels->get(i)); |
| + CHECK_EQ(i % 256, pixel_data[i]); |
| } |
| v8::Handle<v8::Object> obj = v8::Object::New(); |
| @@ -7765,6 +7765,15 @@ |
| result = CompileRun("pixels[1] = 23;"); |
| CHECK_EQ(23, result->Int32Value()); |
| + // Test for index greater than 255. Regression test for: |
| + // http://code.google.com/p/chromium/issues/detail?id=26337. |
| + result = CompileRun("pixels[256] = 255;"); |
| + CHECK_EQ(255, result->Int32Value()); |
| + result = CompileRun("var i = 0;" |
| + "for (var j = 0; j < 8; j++) { i = pixels[256]; }" |
|
Søren Thygesen Gjesse
2009/11/18 11:30:16
How about using i+= pixels[256] and checking for i
Mads Ager (chromium)
2009/11/18 11:35:56
The 8 is only there to make sure that we hit the I
|
| + "i"); |
| + CHECK_EQ(255, result->Int32Value()); |
| + |
| free(pixel_data); |
| } |