# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

local_dash is intended to make debugging failed tests from local test runs easy.

SUMMARY:

In ChromeOS the run_remote_tests.sh script is used to execute individual tests
and lengthy suites of tests on a local device.  The run_remote_tests.sh script
is run within the chroot environment and places test output files under the
/tmp directory in the chroot.  local_dash examines the test output folders
under /tmp in the chroot and produces a graphical display with clickable links
to easily identify and debug test failures.

USAGE:

-enter chroot:
$ cros_sdk

-goto local dash dir:
(cr) $ pushd ~/trunk/src/platform/crostestutils/utils_py/local_dash/

-extract json data from /tmp/:
(cr) $ ./local_dash

-serve the results:
(cr) $ ./dash_template/result_viewer

-view the results (from browser):
http://hostname:8080/

-[optional dns workaround if unable to resolve hostname]
(cr) $ ./dash-template/result_viewer --run-host=0.0.0.0
 [then view from http://w.x.y.z:8080/
  where w.x.y.z is the ip of the host system]

-[optionally iterate]
 (cr) $ ./local_dash
 [result_viewer, already running, auto-refreshes]

ADVANCED:

Less commonly, local_dash may also be used to aggregate and summarize test
results from multiple chroot environments.  To do this:

-create a folder on a system: e.g. ~/cros/test_results
-copy the /tmp/run_remote_tests.XXX folders from within all of your chroot
 environments under the master test_results folder.
-create a config_dash.json file in the local_dash directory with this format:
      {'result_folder': '/home/username/cros/test_results'}
-analyze the results: $ local_dash
-serve the results:
$ ./dash_template/result_viewer --run-host=$(hostname) ~/cros/test_results
