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

Side by Side Diff: sandbox/src/job_unittest.cc

Issue 10493002: Revert 130716 - Use ScopedProcessInformation and other RAII types in sandbox. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « sandbox/src/interception_unittest.cc ('k') | sandbox/src/policy_target_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This file contains unit tests for the job object. 5 // This file contains unit tests for the job object.
6 6
7 #include "base/win/scoped_process_information.h"
8 #include "sandbox/src/job.h" 7 #include "sandbox/src/job.h"
9 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
10 9
11 namespace sandbox { 10 namespace sandbox {
12 11
13 // Tests the creation and destruction of the job. 12 // Tests the creation and destruction of the job.
14 TEST(JobTest, TestCreation) { 13 TEST(JobTest, TestCreation) {
15 // Scope the creation of Job. 14 // Scope the creation of Job.
16 { 15 {
17 // Create the job. 16 // Create the job.
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 // Tests the method "AssignProcessToJob". 152 // Tests the method "AssignProcessToJob".
154 TEST(JobTest, ProcessInJob) { 153 TEST(JobTest, ProcessInJob) {
155 // Create the job. 154 // Create the job.
156 Job job; 155 Job job;
157 ASSERT_EQ(ERROR_SUCCESS, job.Init(JOB_UNPROTECTED, L"job_test_process", 0)); 156 ASSERT_EQ(ERROR_SUCCESS, job.Init(JOB_UNPROTECTED, L"job_test_process", 0));
158 157
159 BOOL result = FALSE; 158 BOOL result = FALSE;
160 159
161 wchar_t notepad[] = L"notepad"; 160 wchar_t notepad[] = L"notepad";
162 STARTUPINFO si = { sizeof(si) }; 161 STARTUPINFO si = { sizeof(si) };
163 base::win::ScopedProcessInformation pi; 162 PROCESS_INFORMATION pi = {0};
164 result = ::CreateProcess(NULL, notepad, NULL, NULL, FALSE, 0, NULL, NULL, &si, 163 result = ::CreateProcess(NULL, notepad, NULL, NULL, FALSE, 0, NULL, NULL, &si,
165 pi.Receive()); 164 &pi);
166 ASSERT_TRUE(result); 165 ASSERT_TRUE(result);
167 ASSERT_EQ(ERROR_SUCCESS, job.AssignProcessToJob(pi.process_handle())); 166 ASSERT_EQ(ERROR_SUCCESS, job.AssignProcessToJob(pi.hProcess));
168 167
169 // Get the job handle. 168 // Get the job handle.
170 HANDLE job_handle = job.Detach(); 169 HANDLE job_handle = job.Detach();
171 170
172 // Check if the process is in the job. 171 // Check if the process is in the job.
173 JOBOBJECT_BASIC_PROCESS_ID_LIST jbpidl = {0}; 172 JOBOBJECT_BASIC_PROCESS_ID_LIST jbpidl = {0};
174 DWORD size = sizeof(jbpidl); 173 DWORD size = sizeof(jbpidl);
175 result = ::QueryInformationJobObject(job_handle, 174 result = ::QueryInformationJobObject(job_handle,
176 JobObjectBasicProcessIdList, 175 JobObjectBasicProcessIdList,
177 &jbpidl, size, &size); 176 &jbpidl, size, &size);
178 EXPECT_TRUE(result); 177 EXPECT_TRUE(result);
179 178
180 EXPECT_EQ(1, jbpidl.NumberOfAssignedProcesses); 179 EXPECT_EQ(1, jbpidl.NumberOfAssignedProcesses);
181 EXPECT_EQ(1, jbpidl.NumberOfProcessIdsInList); 180 EXPECT_EQ(1, jbpidl.NumberOfProcessIdsInList);
182 EXPECT_EQ(pi.process_id(), jbpidl.ProcessIdList[0]); 181 EXPECT_EQ(pi.dwProcessId, jbpidl.ProcessIdList[0]);
183 182
184 EXPECT_TRUE(::TerminateProcess(pi.process_handle(), 0)); 183 EXPECT_TRUE(::TerminateProcess(pi.hProcess, 0));
185 184
186 EXPECT_TRUE(::CloseHandle(job_handle)); 185 EXPECT_TRUE(::CloseHandle(job_handle));
187 } 186 }
188 187
189 } // namespace sandbox 188 } // namespace sandbox
OLDNEW
« no previous file with comments | « sandbox/src/interception_unittest.cc ('k') | sandbox/src/policy_target_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698