Chromium Code Reviews| Index: chrome/browser/nacl_host/test/nacl_gdb_browsertest.cc |
| =================================================================== |
| --- chrome/browser/nacl_host/test/nacl_gdb_browsertest.cc (revision 0) |
| +++ chrome/browser/nacl_host/test/nacl_gdb_browsertest.cc (working copy) |
| @@ -0,0 +1,53 @@ |
| +// 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/environment.h" |
| +#include "base/file_util.h" |
| +#include "base/path_service.h" |
| +#include "base/win/windows_version.h" |
| +#include "chrome/common/chrome_switches.h" |
| +#include "chrome/test/ui/ppapi_uitest.h" |
| + |
| +static const FilePath::CharType kMockNaClGdb[] = |
| +#if defined(OS_WIN) |
| + FILE_PATH_LITERAL("mock_nacl_gdb.exe"); |
| +#else |
| + FILE_PATH_LITERAL("mock_nacl_gdb"); |
| +#endif |
| + |
| +class NaClGdbTest : public PPAPINaClTest { |
| + public: |
| + NaClGdbTest() { |
| + } |
| + |
| + void SetUpCommandLine(CommandLine* command_line) OVERRIDE { |
| + PPAPINaClTest::SetUpCommandLine(command_line); |
| + |
| + FilePath mock_nacl_gdb; |
| + EXPECT_TRUE(PathService::Get(base::DIR_EXE, &mock_nacl_gdb)); |
| + mock_nacl_gdb = mock_nacl_gdb.Append(kMockNaClGdb); |
| + command_line->AppendSwitchPath(switches::kNaClGdb, mock_nacl_gdb); |
| + } |
| +}; |
| + |
| +IN_PROC_BROWSER_TEST_F(NaClGdbTest, Empty) { |
| + FilePath mock_nacl_gdb_file; |
| + scoped_ptr<base::Environment> env(base::Environment::Create()); |
| + // TODO(halyavin): Make this test to work on Windows 32-bit. Currently this |
| + // is not possible because NaCl doesn't work without sandbox since 1Gb of |
| + // space is not reserved. We can't reserve 1Gb of space because |
| + // base::LaunchProcess doesn't support creating suspended processes. We need |
| + // to either add suspended process support to base::LaunchProcess or use |
| + // Win API. |
| + if (base::win::OSInfo::GetInstance()->wow64_status() == |
| + base::win::OSInfo::WOW64_DISABLED) { |
| + return; |
| + } |
| + EXPECT_TRUE(file_util::CreateTemporaryFile(&mock_nacl_gdb_file)); |
| + env->SetVar("MOCK_NACL_GDB", mock_nacl_gdb_file.AsUTF8Unsafe()); |
|
Mark Seaborn
2012/03/16 17:28:59
Can you unset the env var afterwards so that it do
halyavin
2012/03/16 17:57:42
Done.
|
| + RunTestViaHTTP("Empty"); |
| + EXPECT_TRUE(file_util::PathExists(mock_nacl_gdb_file)); |
|
Mark Seaborn
2012/03/16 17:28:59
Surely the file will exist regardless of whether t
halyavin
2012/03/16 17:57:42
Done.
|
| + EXPECT_TRUE(file_util::Delete(mock_nacl_gdb_file, false)); |
| +} |