| Index: sandbox/win/tests/common/controller.h
|
| diff --git a/sandbox/win/tests/common/controller.h b/sandbox/win/tests/common/controller.h
|
| deleted file mode 100644
|
| index 7c1c78f66d110842860b50e5d02f50dfec86dca3..0000000000000000000000000000000000000000
|
| --- a/sandbox/win/tests/common/controller.h
|
| +++ /dev/null
|
| @@ -1,172 +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.
|
| -
|
| -#ifndef SANDBOX_WIN_TESTS_COMMON_CONTROLLER_H_
|
| -#define SANDBOX_WIN_TESTS_COMMON_CONTROLLER_H_
|
| -
|
| -#include <windows.h>
|
| -#include <string>
|
| -
|
| -#include "base/strings/string16.h"
|
| -#include "base/win/scoped_handle.h"
|
| -#include "sandbox/win/src/sandbox.h"
|
| -
|
| -namespace sandbox {
|
| -
|
| -// See winerror.h for details.
|
| -#define SEVERITY_INFO_FLAGS 0x40000000
|
| -#define SEVERITY_ERROR_FLAGS 0xC0000000
|
| -#define CUSTOMER_CODE 0x20000000
|
| -#define SBOX_TESTS_FACILITY 0x05B10000
|
| -
|
| -// All the possible error codes returned by the child process in
|
| -// the sandbox.
|
| -enum SboxTestResult {
|
| - SBOX_TEST_FIRST_RESULT = CUSTOMER_CODE | SBOX_TESTS_FACILITY,
|
| - SBOX_TEST_SUCCEEDED,
|
| - SBOX_TEST_PING_OK,
|
| - SBOX_TEST_FIRST_INFO = SBOX_TEST_FIRST_RESULT | SEVERITY_INFO_FLAGS,
|
| - SBOX_TEST_DENIED, // Access was denied.
|
| - SBOX_TEST_NOT_FOUND, // The resource was not found.
|
| - SBOX_TEST_FIRST_ERROR = SBOX_TEST_FIRST_RESULT | SEVERITY_ERROR_FLAGS,
|
| - SBOX_TEST_SECOND_ERROR,
|
| - SBOX_TEST_THIRD_ERROR,
|
| - SBOX_TEST_FOURTH_ERROR,
|
| - SBOX_TEST_FIFTH_ERROR,
|
| - SBOX_TEST_SIXTH_ERROR,
|
| - SBOX_TEST_SEVENTH_ERROR,
|
| - SBOX_TEST_INVALID_PARAMETER,
|
| - SBOX_TEST_FAILED_TO_RUN_TEST,
|
| - SBOX_TEST_FAILED_TO_EXECUTE_COMMAND,
|
| - SBOX_TEST_TIMED_OUT,
|
| - SBOX_TEST_FAILED,
|
| - SBOX_TEST_LAST_RESULT
|
| -};
|
| -
|
| -inline bool IsSboxTestsResult(SboxTestResult result) {
|
| - unsigned int code = static_cast<unsigned int>(result);
|
| - unsigned int first = static_cast<unsigned int>(SBOX_TEST_FIRST_RESULT);
|
| - unsigned int last = static_cast<unsigned int>(SBOX_TEST_LAST_RESULT);
|
| - return (code > first) && (code < last);
|
| -}
|
| -
|
| -enum SboxTestsState {
|
| - MIN_STATE = 1,
|
| - BEFORE_INIT,
|
| - BEFORE_REVERT,
|
| - AFTER_REVERT,
|
| - EVERY_STATE,
|
| - MAX_STATE
|
| -};
|
| -
|
| -#define SBOX_TESTS_API __declspec(dllexport)
|
| -#define SBOX_TESTS_COMMAND extern "C" SBOX_TESTS_API
|
| -
|
| -extern "C" {
|
| -typedef int (*CommandFunction)(int argc, wchar_t **argv);
|
| -}
|
| -
|
| -// Class to facilitate the launch of a test inside the sandbox.
|
| -class TestRunner {
|
| - public:
|
| - TestRunner(JobLevel job_level, TokenLevel startup_token,
|
| - TokenLevel main_token);
|
| -
|
| - TestRunner();
|
| -
|
| - ~TestRunner();
|
| -
|
| - // Adds a rule to the policy. The parameters are the same as the AddRule
|
| - // function in the sandbox.
|
| - bool AddRule(TargetPolicy::SubSystem subsystem,
|
| - TargetPolicy::Semantics semantics,
|
| - const wchar_t* pattern);
|
| -
|
| - // Adds a filesystem rules with the path of a file in system32. The function
|
| - // appends "pattern" to "system32" and then call AddRule. Return true if the
|
| - // function succeeds.
|
| - bool AddRuleSys32(TargetPolicy::Semantics semantics, const wchar_t* pattern);
|
| -
|
| - // Adds a filesystem rules to the policy. Returns true if the functions
|
| - // succeeds.
|
| - bool AddFsRule(TargetPolicy::Semantics semantics, const wchar_t* pattern);
|
| -
|
| - // Starts a child process in the sandbox and ask it to run |command|. Returns
|
| - // a SboxTestResult. By default, the test runs AFTER_REVERT.
|
| - int RunTest(const wchar_t* command);
|
| -
|
| - // Sets the timeout value for the child to run the command and return.
|
| - void SetTimeout(DWORD timeout_ms);
|
| -
|
| - // Sets TestRunner to return without waiting for the process to exit.
|
| - void SetAsynchronous(bool is_async) { is_async_ = is_async; }
|
| -
|
| - // Sets TestRunner to return without waiting for the process to exit.
|
| - void SetUnsandboxed(bool is_no_sandbox) { no_sandbox_ = is_no_sandbox; }
|
| -
|
| - // Sets whether TestRunner should disable CSRSS or not (default true).
|
| - // Any test that needs to spawn a child process needs to set this to false.
|
| - void SetDisableCsrss(bool disable_csrss) { disable_csrss_ = disable_csrss; }
|
| -
|
| - // Sets the desired state for the test to run.
|
| - void SetTestState(SboxTestsState desired_state);
|
| -
|
| - // Sets a flag whether the process should be killed when the TestRunner is
|
| - // destroyed.
|
| - void SetKillOnDestruction(bool value) { kill_on_destruction_ = value; }
|
| -
|
| - // Returns the pointers to the policy object. It can be used to modify
|
| - // the policy manually.
|
| - TargetPolicy* GetPolicy();
|
| -
|
| - BrokerServices* broker() { return broker_; }
|
| -
|
| - // Returns the process handle for an asynchronous test.
|
| - HANDLE process() { return target_process_.Get(); }
|
| -
|
| - // Returns the process ID for an asynchronous test.
|
| - DWORD process_id() { return target_process_id_; }
|
| -
|
| - private:
|
| - // Initializes the data in the object. Sets is_init_ to tree if the
|
| - // function succeeds. This is meant to be called from the constructor.
|
| - void Init(JobLevel job_level,
|
| - TokenLevel startup_token,
|
| - TokenLevel main_token);
|
| -
|
| - // The actual runner.
|
| - int InternalRunTest(const wchar_t* command);
|
| -
|
| - BrokerServices* broker_;
|
| - TargetPolicy* policy_;
|
| - DWORD timeout_;
|
| - SboxTestsState state_;
|
| - bool is_init_;
|
| - bool is_async_;
|
| - bool no_sandbox_;
|
| - bool disable_csrss_;
|
| - bool kill_on_destruction_;
|
| - base::win::ScopedHandle target_process_;
|
| - DWORD target_process_id_;
|
| -};
|
| -
|
| -// Returns the broker services.
|
| -BrokerServices* GetBroker();
|
| -
|
| -// Constructs a full path to a file inside the system32 folder.
|
| -base::string16 MakePathToSys32(const wchar_t* name, bool is_obj_man_path);
|
| -
|
| -// Constructs a full path to a file inside the syswow64 folder.
|
| -base::string16 MakePathToSysWow64(const wchar_t* name, bool is_obj_man_path);
|
| -
|
| -// Constructs a full path to a file inside the system32 (or syswow64) folder
|
| -// depending on whether process is running in wow64 or not.
|
| -base::string16 MakePathToSys(const wchar_t* name, bool is_obj_man_path);
|
| -
|
| -// Runs the given test on the target process.
|
| -int DispatchCall(int argc, wchar_t **argv);
|
| -
|
| -} // namespace sandbox
|
| -
|
| -#endif // SANDBOX_WIN_TESTS_COMMON_CONTROLLER_H_
|
|
|