| 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. | 
| + | 
| +#include "base/command_line.h" | 
| +#include "base/process_util.h" | 
| +#include "base/path_service.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 { | 
| + 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"))); | 
| +  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) | 
| +#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); | 
| +} | 
|  |