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

Unified Diff: gpu/command_buffer/tests/gl_compressed_copy_texture_CHROMIUM_unittest.cc

Issue 1472483002: Check texture ids are valid in CopyTextureCHROMIUM apis. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years 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 side-by-side diff with in-line comments
Download patch
Index: gpu/command_buffer/tests/gl_compressed_copy_texture_CHROMIUM_unittest.cc
diff --git a/gpu/command_buffer/tests/gl_compressed_copy_texture_CHROMIUM_unittest.cc b/gpu/command_buffer/tests/gl_compressed_copy_texture_CHROMIUM_unittest.cc
index d50189daff6622080cdee027f8c33f03435ad843..e692b7df8cd4229a2f573f078c675f66c34280e0 100644
--- a/gpu/command_buffer/tests/gl_compressed_copy_texture_CHROMIUM_unittest.cc
+++ b/gpu/command_buffer/tests/gl_compressed_copy_texture_CHROMIUM_unittest.cc
@@ -310,6 +310,65 @@ TEST_P(GLCompressedCopyTextureCHROMIUMTest, InternalFormatNotSupported) {
EXPECT_TRUE(GL_INVALID_OPERATION == glGetError());
}
+TEST_P(GLCompressedCopyTextureCHROMIUMTest, InvalidTextureIds) {
+ if (!GLTestHelper::HasExtension("GL_EXT_texture_compression_dxt1")) {
+ LOG(INFO)
+ << "GL_EXT_texture_compression_dxt1 not supported. Skipping test...";
+ return;
+ }
+
+ CopyType copy_type = GetParam();
+
+ glBindTexture(GL_TEXTURE_2D, textures_[0]);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glCompressedTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGB_S3TC_DXT1_EXT, 4,
+ 4, 0, sizeof(kCompressedImageDXT1),
+ kCompressedImageDXT1);
+ EXPECT_TRUE(glGetError() == GL_NO_ERROR);
+
+ glBindTexture(GL_TEXTURE_2D, textures_[1]);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ if (copy_type == TexImage) {
+ glCompressedCopyTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], 99993);
+ EXPECT_TRUE(glGetError() == GL_INVALID_VALUE);
+
+ glCompressedCopyTextureCHROMIUM(GL_TEXTURE_2D, 99994, textures_[1]);
+ EXPECT_TRUE(glGetError() == GL_INVALID_VALUE);
+
+ glCompressedCopyTextureCHROMIUM(GL_TEXTURE_2D, 99995, 99996);
+ EXPECT_TRUE(glGetError() == GL_INVALID_VALUE);
+
+ glCompressedCopyTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1]);
+ EXPECT_TRUE(glGetError() == GL_NO_ERROR);
+ } else {
+ glCompressedTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGB_S3TC_DXT1_EXT, 4,
+ 4, 0, sizeof(kInvalidCompressedImage),
+ kInvalidCompressedImage);
+
+ glCompressedCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], 99993, 0, 0,
+ 0, 0, 4, 4);
+ EXPECT_TRUE(glGetError() == GL_INVALID_VALUE);
+
+ glCompressedCopySubTextureCHROMIUM(GL_TEXTURE_2D, 99994, textures_[1], 0, 0,
+ 0, 0, 4, 4);
+ EXPECT_TRUE(glGetError() == GL_INVALID_VALUE);
+
+ glCompressedCopySubTextureCHROMIUM(GL_TEXTURE_2D, 99995, 99996, 0, 0, 0, 0,
+ 4, 4);
+ EXPECT_TRUE(glGetError() == GL_INVALID_VALUE);
+
+ glCompressedCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0],
+ textures_[1], 0, 0, 0, 0, 4, 4);
+ EXPECT_TRUE(glGetError() == GL_NO_ERROR);
+ }
+}
+
// Validate that some basic GL state is not touched upon execution of
// the extension.
TEST_P(GLCompressedCopyTextureCHROMIUMTest, BasicStatePreservation) {
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_decoder.cc ('k') | gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698