Chromium Code Reviews| Index: chrome/browser/nacl_host/test/nacl_enable_debug_stub_browsertest.cc |
| =================================================================== |
| --- chrome/browser/nacl_host/test/nacl_enable_debug_stub_browsertest.cc (revision 0) |
| +++ chrome/browser/nacl_host/test/nacl_enable_debug_stub_browsertest.cc (revision 0) |
| @@ -0,0 +1,63 @@ |
| +// 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. |
| + |
|
Mark Seaborn
2012/12/04 21:46:42
Maybe change the filename to "gdb_debug_stub_brows
halyavin
2012/12/05 10:05:57
Done.
|
| +#include "base/command_line.h" |
| +#include "base/path_service.h" |
| +#include "base/process_util.h" |
| +#include "base/string_number_conversions.h" |
| +#include "chrome/browser/nacl_host/nacl_browser.h" |
| +#include "chrome/common/chrome_switches.h" |
| +#include "chrome/test/ppapi/ppapi_test.h" |
| +#include "content/public/test/test_browser_thread.h" |
| +#include "content/public/test/test_utils.h" |
| + |
| +class NaClDebugStubRspTest : public PPAPINaClNewlibTest { |
|
Mark Seaborn
2012/12/04 21:46:42
Maybe "NaClGdbDebugStubTest" (along the lines of o
halyavin
2012/12/05 10:05:57
Done.
|
| + public: |
| + NaClDebugStubRspTest() { |
| + } |
| + |
| + void SetUpCommandLine(CommandLine* command_line) OVERRIDE; |
| + |
| + void StartTestScript(base::ProcessHandle* test_process, |
| + std::string test_name, int debug_stub_port); |
| + |
| +}; |
| + |
| +void NaClDebugStubRspTest::SetUpCommandLine(CommandLine* command_line) { |
| + PPAPINaClNewlibTest::SetUpCommandLine(command_line); |
| + command_line->AppendSwitch(switches::kEnableNaClDebug); |
| +} |
| + |
| +void NaClDebugStubRspTest::StartTestScript(base::ProcessHandle* test_process, |
| + std::string test_name, |
| + int debug_stub_port) { |
| + CommandLine cmd(FilePath(FILE_PATH_LITERAL("python"))); |
|
Mark Seaborn
2012/12/04 21:46:42
Maybe comment: We launch a Python script in order
halyavin
2012/12/05 10:05:57
Done.
|
| + FilePath script; |
| + PathService::Get(base::DIR_SOURCE_ROOT, &script); |
| + script = script.AppendASCII( |
| + "chrome/browser/nacl_host/test/debug_stub_browser_tests.py"); |
| + cmd.AppendArgPath(script); |
| + cmd.AppendArg(base::IntToString(debug_stub_port)); |
| + cmd.AppendArg(test_name); |
| + LOG(INFO) << cmd.GetCommandLineString(); |
| + base::LaunchProcess(cmd, base::LaunchOptions(), test_process); |
| +} |
| + |
| +#if defined(ADDRESS_SANITIZER) |
|
Mark Seaborn
2012/12/04 21:46:42
Please comment this, if only to say that this is b
halyavin
2012/12/05 10:05:57
Done.
|
| +#define MAYBE_Empty DISABLED_Empty |
| +#else |
| +#define MAYBE_Empty Empty |
| +#endif |
| + |
| +IN_PROC_BROWSER_TEST_F(NaClDebugStubRspTest, MAYBE_Empty) { |
| + base::ProcessHandle test_script; |
| + NaClBrowser::GetInstance()->SetDebugStubPortListener( |
| + base::Bind(&NaClDebugStubRspTest::StartTestScript, |
| + base::Unretained(this), &test_script, "continue")); |
| + RunTestViaHTTP("Empty"); |
| + NaClBrowser::GetInstance()->ClearDebugStubPortListener(); |
| + int exit_code; |
| + base::WaitForExitCode(test_script, &exit_code); |
| + EXPECT_EQ(0, exit_code); |
| +} |