blob: 5c32c609c842f6e6ae30754d25173ec3b1d5a502 [file] [log] [blame]
// Copyright (c) 2011 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 "base/bind.h"
#include "base/test/launcher/unit_test_launcher.h"
#include "base/test/test_suite.h"
#include "base/test/test_timeouts.h"
#include "sandbox/win/tests/common/controller.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace sandbox {
// Common function used for timeout with Win APIs like ::WaitForSingleObject().
DWORD SboxTestEventTimeout() {
if (::IsDebuggerPresent())
return INFINITE;
return static_cast<DWORD>(
(TestTimeouts::action_timeout()).InMillisecondsRoundedUp());
}
}
int wmain(int argc, wchar_t **argv) {
if (argc >= 2) {
if (0 == _wcsicmp(argv[1], L"-child") ||
0 == _wcsicmp(argv[1], L"-child-no-sandbox"))
// This instance is a child, not the test.
return sandbox::DispatchCall(argc, argv);
}
base::TestSuite test_suite(argc, argv);
return base::LaunchUnitTests(
argc,
argv,
false,
base::Bind(&base::TestSuite::Run, base::Unretained(&test_suite)));
}