 Chromium Code Reviews
 Chromium Code Reviews Issue 11236025:
  Test that debug stub works with browser.  (Closed) 
  Base URL: svn://svn.chromium.org/chrome/trunk/src/
    
  
    Issue 11236025:
  Test that debug stub works with browser.  (Closed) 
  Base URL: svn://svn.chromium.org/chrome/trunk/src/| 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); | 
| +} |