diff options
author | gman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-27 23:06:19 +0000 |
---|---|---|
committer | gman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-27 23:06:19 +0000 |
commit | 06b73aa26473f9ec6bec009d11329a10cad27350 (patch) | |
tree | 953a5ab22e1fd30e918a47a0eebd72860c0bad69 /gpu/command_buffer/client/client_test_helper.h | |
parent | d052176a98e0f9803b276dc43daa08b3fd310055 (diff) | |
download | chromium_src-06b73aa26473f9ec6bec009d11329a10cad27350.zip chromium_src-06b73aa26473f9ec6bec009d11329a10cad27350.tar.gz chromium_src-06b73aa26473f9ec6bec009d11329a10cad27350.tar.bz2 |
Revert "Revert 119430 - Make transferbuffer increase in size dynamically"
This reverts commit 2f38c45427c68fe731c1f5c05256b6c141a6a590.
BUG=101431
TEST=
TBR=apatrick@chromium.org
Review URL: http://codereview.chromium.org/9121057
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119509 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu/command_buffer/client/client_test_helper.h')
-rw-r--r-- | gpu/command_buffer/client/client_test_helper.h | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/gpu/command_buffer/client/client_test_helper.h b/gpu/command_buffer/client/client_test_helper.h new file mode 100644 index 0000000..1b32c24 --- /dev/null +++ b/gpu/command_buffer/client/client_test_helper.h @@ -0,0 +1,76 @@ +// 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. + +// Helper classes for implementing gpu client side unit tests. + +#ifndef GPU_COMMAND_BUFFER_CLIENT_CLIENT_TEST_HELPER_H_ +#define GPU_COMMAND_BUFFER_CLIENT_CLIENT_TEST_HELPER_H_ + +#include "gpu/command_buffer/common/cmd_buffer_common.h" +#include "gpu/command_buffer/common/command_buffer.h" +#include "gpu/command_buffer/common/compiler_specific.h" +#include "gpu/command_buffer/common/scoped_ptr.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace gpu { + +class CommandBufferHelper; + +class MockCommandBufferBase : public CommandBuffer { + public: + static const int32 kTransferBufferBaseId = 0x123; + static const int32 kMaxTransferBuffers = 6; + + MockCommandBufferBase() { } + virtual ~MockCommandBufferBase(); + + virtual bool Initialize() OVERRIDE; + virtual State GetState() OVERRIDE; + virtual State GetLastState() OVERRIDE; + virtual void Flush(int32 put_offset) OVERRIDE; + virtual State FlushSync(int32 put_offset, int32 last_known_get) OVERRIDE; + virtual void SetGetBuffer(int transfer_buffer_id) OVERRIDE; + virtual void SetGetOffset(int32 get_offset) OVERRIDE; + virtual int32 CreateTransferBuffer(size_t size, int32 id_request) OVERRIDE; + virtual Buffer GetTransferBuffer(int32 id) OVERRIDE; + virtual int32 RegisterTransferBuffer(base::SharedMemory* shared_memory, + size_t size, + int32 id_request) OVERRIDE; + virtual void SetToken(int32 token) OVERRIDE; + virtual void SetParseError(error::Error error) OVERRIDE; + virtual void SetContextLostReason(error::ContextLostReason reason) OVERRIDE; + + // Get's the Id of the next transfer buffer that will be returned + // by CreateTransferBuffer. This is useful for testing expected ids. + int32 GetNextFreeTransferBufferId(); + + void DestroyTransferBufferHelper(int32 id); + + virtual void OnFlush() = 0; + + private: + scoped_array<int8> transfer_buffers_[kMaxTransferBuffers]; + Buffer transfer_buffer_buffers_[kMaxTransferBuffers]; + CommandBufferEntry* ring_buffer_; + Buffer ring_buffer_buffer_; + State state_; +}; + +class MockClientCommandBuffer : public MockCommandBufferBase { + public: + MockClientCommandBuffer(); + virtual ~MockClientCommandBuffer(); + + // This is so we can use all the gmock functions when Flush is called. + MOCK_METHOD0(OnFlush, void()); + MOCK_METHOD1(DestroyTransferBuffer, void(int32 id)); + + void DelegateToFake(); +}; + +} // namespace gpu + +#endif // GPU_COMMAND_BUFFER_CLIENT_CLIENT_TEST_HELPER_H_ + |