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

Unified Diff: gpu/command_buffer/service/program_cache_unittest.cc

Issue 10795037: Revert 147328 - Current status of patch: (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 5 months 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/service/program_cache_unittest.cc
===================================================================
--- gpu/command_buffer/service/program_cache_unittest.cc (revision 147496)
+++ gpu/command_buffer/service/program_cache_unittest.cc (working copy)
@@ -1,249 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "gpu/command_buffer/service/program_cache.h"
-
-#include "base/memory/scoped_ptr.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace gpu {
-namespace gles2 {
-
-class NoBackendProgramCache : public ProgramCache {
- public:
- virtual ProgramLoadResult LoadLinkedProgram(
- GLuint /* program */,
- ShaderManager::ShaderInfo* /* shader_a */,
- ShaderManager::ShaderInfo* /* shader_b */,
- const LocationMap* /* bind_attrib_location_map */) const OVERRIDE {
- return PROGRAM_LOAD_SUCCESS;
- }
- virtual void SaveLinkedProgram(
- GLuint /* program */,
- const ShaderManager::ShaderInfo* /* shader_a */,
- const ShaderManager::ShaderInfo* /* shader_b */,
- const LocationMap* /* bind_attrib_location_map */) OVERRIDE { }
-
- virtual void ClearBackend() OVERRIDE {}
-
- void SaySuccessfullyCached(const std::string& shader1,
- const std::string& shader2,
- std::map<std::string, GLint>* attrib_map) {
- char a_sha[kHashLength];
- char b_sha[kHashLength];
- ComputeShaderHash(shader1, a_sha);
- ComputeShaderHash(shader2, b_sha);
-
- char sha[kHashLength];
- ComputeProgramHash(a_sha,
- b_sha,
- attrib_map,
- sha);
- const std::string shaString(sha, kHashLength);
-
- LinkedProgramCacheSuccess(shaString,
- std::string(a_sha, kHashLength),
- std::string(b_sha, kHashLength));
- }
-
- void ComputeShaderHash(const std::string& shader,
- char* result) const {
- ProgramCache::ComputeShaderHash(shader, result);
- }
-
- void ComputeProgramHash(const char* hashed_shader_0,
- const char* hashed_shader_1,
- const LocationMap* bind_attrib_location_map,
- char* result) const {
- ProgramCache::ComputeProgramHash(hashed_shader_0,
- hashed_shader_1,
- bind_attrib_location_map,
- result);
- }
-
- void Evict(const std::string& program_hash,
- const std::string& shader_0_hash,
- const std::string& shader_1_hash) {
- ProgramCache::Evict(program_hash, shader_0_hash, shader_1_hash);
- }
-};
-
-class ProgramCacheTest : public testing::Test {
- public:
- ProgramCacheTest() :
- cache_(new NoBackendProgramCache()) { }
-
- protected:
- scoped_ptr<NoBackendProgramCache> cache_;
-};
-
-TEST_F(ProgramCacheTest, CompilationStatusSave) {
- const std::string shader1 = "abcd1234";
- {
- std::string shader = shader1;
- EXPECT_EQ(ProgramCache::COMPILATION_UNKNOWN,
- cache_->GetShaderCompilationStatus(shader));
- cache_->ShaderCompilationSucceeded(shader);
- shader.clear();
- }
- // make sure it was copied
- EXPECT_EQ(ProgramCache::COMPILATION_SUCCEEDED,
- cache_->GetShaderCompilationStatus(shader1));
-}
-
-TEST_F(ProgramCacheTest, CompilationUnknownOnSourceChange) {
- std::string shader1 = "abcd1234";
- cache_->ShaderCompilationSucceeded(shader1);
-
- shader1 = "different!";
- EXPECT_EQ(ProgramCache::COMPILATION_UNKNOWN,
- cache_->GetShaderCompilationStatus(shader1));
-}
-
-TEST_F(ProgramCacheTest, LinkStatusSave) {
- const std::string shader1 = "abcd1234";
- const std::string shader2 = "abcda sda b1~#4 bbbbb1234";
- {
- std::string shader_a = shader1;
- std::string shader_b = shader2;
- EXPECT_EQ(ProgramCache::LINK_UNKNOWN,
- cache_->GetLinkedProgramStatus(shader_a, shader_b, NULL));
- cache_->SaySuccessfullyCached(shader_a, shader_b, NULL);
-
- shader_a.clear();
- shader_b.clear();
- }
- // make sure it was copied
- EXPECT_EQ(ProgramCache::LINK_SUCCEEDED,
- cache_->GetLinkedProgramStatus(shader1, shader2, NULL));
-}
-
-TEST_F(ProgramCacheTest, LinkUnknownOnFragmentSourceChange) {
- const std::string shader1 = "abcd1234";
- std::string shader2 = "abcda sda b1~#4 bbbbb1234";
- cache_->SaySuccessfullyCached(shader1, shader2, NULL);
-
- shader2 = "different!";
- EXPECT_EQ(ProgramCache::LINK_UNKNOWN,
- cache_->GetLinkedProgramStatus(shader1, shader2, NULL));
-}
-
-TEST_F(ProgramCacheTest, LinkUnknownOnVertexSourceChange) {
- std::string shader1 = "abcd1234";
- const std::string shader2 = "abcda sda b1~#4 bbbbb1234";
- cache_->SaySuccessfullyCached(shader1, shader2, NULL);
-
- shader1 = "different!";
- EXPECT_EQ(ProgramCache::LINK_UNKNOWN,
- cache_->GetLinkedProgramStatus(shader1, shader2, NULL));
-}
-
-TEST_F(ProgramCacheTest, StatusEviction) {
- const std::string shader1 = "abcd1234";
- const std::string shader2 = "abcda sda b1~#4 bbbbb1234";
- cache_->ShaderCompilationSucceeded(shader1);
- cache_->ShaderCompilationSucceeded(shader2);
- cache_->SaySuccessfullyCached(shader1, shader2, NULL);
- char a_sha[ProgramCache::kHashLength];
- char b_sha[ProgramCache::kHashLength];
- cache_->ComputeShaderHash(shader1, a_sha);
- cache_->ComputeShaderHash(shader2, b_sha);
-
- char sha[ProgramCache::kHashLength];
- cache_->ComputeProgramHash(a_sha,
- b_sha,
- NULL,
- sha);
- cache_->Evict(std::string(sha, ProgramCache::kHashLength),
- std::string(a_sha, ProgramCache::kHashLength),
- std::string(b_sha, ProgramCache::kHashLength));
- EXPECT_EQ(ProgramCache::COMPILATION_UNKNOWN,
- cache_->GetShaderCompilationStatus(shader1));
- EXPECT_EQ(ProgramCache::COMPILATION_UNKNOWN,
- cache_->GetShaderCompilationStatus(shader2));
- EXPECT_EQ(ProgramCache::LINK_UNKNOWN,
- cache_->GetLinkedProgramStatus(shader1, shader2, NULL));
-}
-
-TEST_F(ProgramCacheTest, EvictionWithReusedShader) {
- const std::string shader1 = "abcd1234";
- const std::string shader2 = "abcda sda b1~#4 bbbbb1234";
- const std::string shader3 = "asbjbbjj239a";
- cache_->ShaderCompilationSucceeded(shader1);
- cache_->ShaderCompilationSucceeded(shader2);
- cache_->SaySuccessfullyCached(shader1, shader2, NULL);
- cache_->ShaderCompilationSucceeded(shader1);
- cache_->ShaderCompilationSucceeded(shader3);
- cache_->SaySuccessfullyCached(shader1, shader3, NULL);
-
- char a_sha[ProgramCache::kHashLength];
- char b_sha[ProgramCache::kHashLength];
- char c_sha[ProgramCache::kHashLength];
- cache_->ComputeShaderHash(shader1, a_sha);
- cache_->ComputeShaderHash(shader2, b_sha);
- cache_->ComputeShaderHash(shader3, c_sha);
-
- char sha[ProgramCache::kHashLength];
- cache_->ComputeProgramHash(a_sha,
- b_sha,
- NULL,
- sha);
- cache_->Evict(std::string(sha, ProgramCache::kHashLength),
- std::string(a_sha, ProgramCache::kHashLength),
- std::string(b_sha, ProgramCache::kHashLength));
- EXPECT_EQ(ProgramCache::COMPILATION_SUCCEEDED,
- cache_->GetShaderCompilationStatus(shader1));
- EXPECT_EQ(ProgramCache::COMPILATION_UNKNOWN,
- cache_->GetShaderCompilationStatus(shader2));
- EXPECT_EQ(ProgramCache::COMPILATION_SUCCEEDED,
- cache_->GetShaderCompilationStatus(shader3));
- EXPECT_EQ(ProgramCache::LINK_UNKNOWN,
- cache_->GetLinkedProgramStatus(shader1, shader2, NULL));
- EXPECT_EQ(ProgramCache::LINK_SUCCEEDED,
- cache_->GetLinkedProgramStatus(shader1, shader3, NULL));
-
-
- cache_->ComputeProgramHash(a_sha,
- c_sha,
- NULL,
- sha);
- cache_->Evict(std::string(sha, ProgramCache::kHashLength),
- std::string(a_sha, ProgramCache::kHashLength),
- std::string(c_sha, ProgramCache::kHashLength));
- EXPECT_EQ(ProgramCache::COMPILATION_UNKNOWN,
- cache_->GetShaderCompilationStatus(shader1));
- EXPECT_EQ(ProgramCache::COMPILATION_UNKNOWN,
- cache_->GetShaderCompilationStatus(shader2));
- EXPECT_EQ(ProgramCache::COMPILATION_UNKNOWN,
- cache_->GetShaderCompilationStatus(shader3));
- EXPECT_EQ(ProgramCache::LINK_UNKNOWN,
- cache_->GetLinkedProgramStatus(shader1, shader2, NULL));
- EXPECT_EQ(ProgramCache::LINK_UNKNOWN,
- cache_->GetLinkedProgramStatus(shader1, shader3, NULL));
-}
-
-TEST_F(ProgramCacheTest, StatusClear) {
- const std::string shader1 = "abcd1234";
- const std::string shader2 = "abcda sda b1~#4 bbbbb1234";
- const std::string shader3 = "asbjbbjj239a";
- cache_->ShaderCompilationSucceeded(shader1);
- cache_->ShaderCompilationSucceeded(shader2);
- cache_->SaySuccessfullyCached(shader1, shader2, NULL);
- cache_->ShaderCompilationSucceeded(shader3);
- cache_->SaySuccessfullyCached(shader1, shader3, NULL);
- cache_->Clear();
- EXPECT_EQ(ProgramCache::COMPILATION_UNKNOWN,
- cache_->GetShaderCompilationStatus(shader1));
- EXPECT_EQ(ProgramCache::COMPILATION_UNKNOWN,
- cache_->GetShaderCompilationStatus(shader2));
- EXPECT_EQ(ProgramCache::COMPILATION_UNKNOWN,
- cache_->GetShaderCompilationStatus(shader3));
- EXPECT_EQ(ProgramCache::LINK_UNKNOWN,
- cache_->GetLinkedProgramStatus(shader1, shader2, NULL));
- EXPECT_EQ(ProgramCache::LINK_UNKNOWN,
- cache_->GetLinkedProgramStatus(shader1, shader3, NULL));
-}
-
-} // namespace gles2
-} // namespace gpu
« no previous file with comments | « gpu/command_buffer/service/program_cache_lru_helper_unittest.cc ('k') | gpu/command_buffer/service/program_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698