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

Side by Side Diff: content/renderer/render_thread_impl_discardable_memory_browsertest.cc

Issue 2552413002: Do not run discardable memory related browser test for official build. (Closed)
Patch Set: Fix a build issue Created 4 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 unified diff | Download patch
« no previous file with comments | « content/renderer/render_thread_impl_browsertest.cc ('k') | content/test/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "content/renderer/render_thread_impl.h"
6
7 #include <stddef.h>
8 #include <stdint.h>
9 #include <utility>
10
11 #include "base/bind.h"
12 #include "base/command_line.h"
13 #include "base/memory/discardable_memory.h"
14 #include "base/memory/scoped_vector.h"
15 #include "base/time/time.h"
16 #include "build/build_config.h"
17 #include "components/discardable_memory/client/client_discardable_shared_memory_ manager.h"
18 #include "components/discardable_memory/service/discardable_shared_memory_manage r.h"
19 #include "content/child/child_gpu_memory_buffer_manager.h"
20 #include "content/public/common/content_switches.h"
21 #include "content/public/test/content_browser_test.h"
22 #include "content/public/test/content_browser_test_utils.h"
23 #include "content/shell/browser/shell.h"
24 #include "gpu/ipc/client/gpu_memory_buffer_impl.h"
25 #include "ui/gfx/buffer_format_util.h"
26 #include "url/gurl.h"
27
28 namespace content {
29 namespace {
30
31 class RenderThreadImplDiscardableMemoryBrowserTest : public ContentBrowserTest {
32 public:
33 RenderThreadImplDiscardableMemoryBrowserTest()
34 : child_discardable_shared_memory_manager_(nullptr) {}
35
36 // Overridden from BrowserTestBase:
37 void SetUpCommandLine(base::CommandLine* command_line) override {
38 command_line->AppendSwitch(switches::kSingleProcess);
39 }
40
41 void SetUpOnMainThread() override {
42 NavigateToURL(shell(), GURL(url::kAboutBlankURL));
43 PostTaskToInProcessRendererAndWait(base::Bind(
44 &RenderThreadImplDiscardableMemoryBrowserTest::SetUpOnRenderThread,
45 base::Unretained(this)));
46 }
47
48 discardable_memory::ClientDiscardableSharedMemoryManager*
49 child_discardable_shared_memory_manager() {
50 return child_discardable_shared_memory_manager_;
51 }
52
53 private:
54 void SetUpOnRenderThread() {
55 child_discardable_shared_memory_manager_ =
56 RenderThreadImpl::current()->GetDiscardableSharedMemoryManagerForTest();
57 }
58
59 discardable_memory::ClientDiscardableSharedMemoryManager*
60 child_discardable_shared_memory_manager_;
61 };
62
63 IN_PROC_BROWSER_TEST_F(RenderThreadImplDiscardableMemoryBrowserTest,
reveman 2016/12/07 16:40:38 I'm not able to see what changed in this patch. Wh
Peng 2016/12/07 16:45:45 Please see the BUILD.gn. I moved those test to a n
64 LockDiscardableMemory) {
65 const size_t kSize = 1024 * 1024; // 1MiB.
66
67 std::unique_ptr<base::DiscardableMemory> memory =
68 child_discardable_shared_memory_manager()
69 ->AllocateLockedDiscardableMemory(kSize);
70
71 ASSERT_TRUE(memory);
72 void* addr = memory->data();
73 ASSERT_NE(nullptr, addr);
74
75 memory->Unlock();
76
77 // Purge all unlocked memory.
78 discardable_memory::DiscardableSharedMemoryManager::GetInstance()
79 ->SetMemoryLimit(0);
80
81 // Should fail as memory should have been purged.
82 EXPECT_FALSE(memory->Lock());
83 }
84
85 // Disable the test for the Android asan build.
86 // See http://crbug.com/667837 for detail.
87 #if !(defined(OS_ANDROID) && defined(ADDRESS_SANITIZER))
88 IN_PROC_BROWSER_TEST_F(RenderThreadImplDiscardableMemoryBrowserTest,
89 DiscardableMemoryAddressSpace) {
90 const size_t kLargeSize = 4 * 1024 * 1024; // 4MiB.
91 const size_t kNumberOfInstances = 1024 + 1; // >4GiB total.
92
93 ScopedVector<base::DiscardableMemory> instances;
94 for (size_t i = 0; i < kNumberOfInstances; ++i) {
95 std::unique_ptr<base::DiscardableMemory> memory =
96 child_discardable_shared_memory_manager()
97 ->AllocateLockedDiscardableMemory(kLargeSize);
98 ASSERT_TRUE(memory);
99 void* addr = memory->data();
100 ASSERT_NE(nullptr, addr);
101 memory->Unlock();
102 instances.push_back(std::move(memory));
103 }
104 }
105 #endif
106
107 IN_PROC_BROWSER_TEST_F(RenderThreadImplDiscardableMemoryBrowserTest,
108 ReleaseFreeDiscardableMemory) {
109 const size_t kSize = 1024 * 1024; // 1MiB.
110
111 std::unique_ptr<base::DiscardableMemory> memory =
112 child_discardable_shared_memory_manager()
113 ->AllocateLockedDiscardableMemory(kSize);
114
115 EXPECT_TRUE(memory);
116 memory.reset();
117
118 EXPECT_GE(discardable_memory::DiscardableSharedMemoryManager::GetInstance()
119 ->GetBytesAllocated(),
120 kSize);
121
122 child_discardable_shared_memory_manager()->ReleaseFreeMemory();
123
124 // Busy wait for host memory usage to be reduced.
125 base::TimeTicks end =
126 base::TimeTicks::Now() + base::TimeDelta::FromSeconds(5);
127 while (base::TimeTicks::Now() < end) {
128 if (!discardable_memory::DiscardableSharedMemoryManager::GetInstance()
129 ->GetBytesAllocated())
130 break;
131 }
132
133 EXPECT_LT(base::TimeTicks::Now(), end);
134 }
135
136 } // namespace
137 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_thread_impl_browsertest.cc ('k') | content/test/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698