This file contains sample trybot output from a Windows trybot run.
It contains a warning and an error but has otherwise been shortened
for length.

"C:\Program Files (x86)\Xoreax\IncrediBuild\BuildConsole.exe" e:\b\build\slave\win\build\src\build\all.sln "/Cfg=Debug|Win32"

-----------------------------------------------------------------
IncrediBuild Console 3.60 Internal (build 1156)
Copyright (C) 2001-2010 Xoreax Software Ltd. All rights reserved.
-----------------------------------------------------------------
--------------------Configuration: toolband_proxy_lib - Debug|Win32------------
Compiling...
toolband_p.c
toolband_proxy.cc
toolband_dlldata.c
Creating library...

toolband_proxy_lib - 0 error(s), 0 warning(s)
--------------------Configuration: webcore_bindings - Debug|Win32--------------
Compiling...
CSSGrammar.cpp
e:\b\build\slave\win\build\src\third_party\webkit\javascriptcore\wtf\text\StringImpl.h(90) : warning C4355: 'this' : used in base member initializer list with a gratuitous backslash \ for testing
e:\b\build\slave\win\build\src\third_party\webkit\webcore\dom\ViewportArguments.h(78) : warning C4305: 'initializing' : truncation from '' to 'bool'
e:\b\build\slave\win\build\src\build\Debug\obj\global_intermediate\webkit\CSSGrammar.cpp(1930) : warning C4065: switch statement contains 'default' but no 'case' labels
V8DerivedSources1.cpp
--------------------Configuration: run_testserver - Debug|Win32----------------
Compiling...
run_testserver.cc
Linking...
Embedding manifest...
Embedding manifest... (rc.exe)
Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1

Copyright (C) Microsoft Corporation.  All rights reserved.

Embedding manifest... (link.exe)

run_testserver - 0 error(s), 0 warning(s)
--------------------Configuration: browser - Debug|Win32-----------------------
Compiling...
bookmark_manager_resources_map.cc
theme_resources_map.cc
shared_resources_map.cc
process_singleton_win.cc
e:\b\build\slave\win\build\src\chrome\browser\process_singleton_win.cc(95) : error C2664: 'PathService::Get' : cannot convert parameter 2 from 'std::wstring *' to 'FilePath *'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
gpu_process_host.cc
ntp_background_util.cc

browser - 6 error(s), 0 warning(s)
 
1 build system warning(s):
   - PDB instance limit is enabled
 
---------------------- Done ----------------------
 
    Build: 244 succeeded, 1 failed, 233 up-to-date, 42 skipped


We also see weird paths with mixed slashes like this:

--------------------Configuration: inspector_protocol_sources - Debug|Win32----
--------------------Configuration: installer_util_nacl_win64 - Debug|x64-------
Compiling...
google_chrome_distribution_dummy.cc
helper.cc
installation_state.cc
self_reg_work_item.cc
..\chrome/installer/util/work_item.h(67) : error C2514: 'FilePath' : class has no constructors
        ..\chrome/installer/util/work_item.h(26) : see declaration of 'FilePath'
delete_tree_work_item.cc
delete_reg_key_work_item.cc
