<!DOCTYPE html>
<html>
<!--
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.
-->
<head>
<title>All Tracing Tests</title>
<script>
tests = [
'unittest_test.html',
'overlay_test.html',
'timeline_async_slice_group_test.html',
'timeline_find_control_test.html',
'timeline_slice_group_test.html',
'timeline_stream_importer_test.html',
'timeline_thread_test.html',
'timeline_process_test.html',
'timeline_category_filter_dialog_test.html',
'timeline_counter_test.html',
'timeline_cpu_test.html',
'timeline_filter_test.html',
'timeline_model_test.html',
'linux_perf_importer_test.html',
'linux_perf_android_parser_test.html',
'linux_perf_bus_parser_test.html',
'linux_perf_clock_parser_test.html',
'linux_perf_cpufreq_parser_test.html',
'linux_perf_drm_parser_test.html',
'linux_perf_exynos_parser_test.html',
'linux_perf_gesture_parser_test.html',
'linux_perf_i915_parser_test.html',
'linux_perf_mali_parser_test.html',
'linux_perf_power_parser_test.html',
'linux_perf_sched_parser_test.html',
'linux_perf_workqueue_parser_test.html',
'trace_event_importer_test.html',
'profiling_view_test.html',
'timeline_selection_test.html',
'timeline_test.html',
'timeline_view_test.html',
'timeline_viewport_test.html',
'timeline_analysis_test.html',
'ui_test.html',
'settings_test.html',
'tracks/timeline_async_slice_group_track_test.html',
'tracks/timeline_cpu_track_test.html',
'tracks/timeline_counter_track_test.html',
'tracks/timeline_slice_group_track_test.html',
'tracks/timeline_slice_track_test.html',
'tracks/timeline_thread_track_test.html',
'tracks/timeline_viewport_track_test.html',
];
</script>
<style>
h1 {
font-family: sans-serif;
font-size: 18pt;
}
</style>
<script src="base.js"></script>
<script>
base.require('unittest');
</script>
</head>
<body>
<h1>Trace-Viewer Tests</h3>
<div class="unittest">Interactive tests: <a href="interactive_tests.html" class="unittest-error-link">Run manually</a></div>
<br>
<script>
function runTest(runner, testCaseEl, test) {
testCaseEl.status = 'RUNNING'
var iframe = document.createElement('iframe');
iframe.src = test;
iframe.style.position = 'fixed';
iframe.style.visibility = 'hidden';
document.body.appendChild(iframe);
iframe.contentWindow.addEventListener('error', function(msg, url, lineNumber) {
if (iframe.contentWindow.G_testRunner)
return false;
if (iframe.contentWindow.errorsCaughtByTestHarness)
return false;
iframe.contentWindow.errorsCaughtByTestHarness = [
{msg: msg, url: url, lineNumber: lineNumber}];
return false;
});
function checkForDone() {
if (!iframe.contentWindow) {
setTimeout(checkForDone, 100);
return;
}
if (iframe.contentWindow.errorsCaughtByTestHarness &&
iframe.contentWindow.errorsCaughtByTestHarness.length) {
testCaseEl.status = 'FAILED'
return;
}
if (!iframe.contentWindow.G_testRunner) {
setTimeout(checkForDone, 100);
return;
}
var runner = iframe.contentWindow.G_testRunner;
if (!runner.done) {
setTimeout(checkForDone, 100);
return;
}
var stats = runner.computeResultStats();
if (stats.numTestsRun && !stats.numTestsWithErrors)
testCaseEl.status = 'PASSED'
else
testCaseEl.status = 'FAILED'
}
setTimeout(checkForDone, 0);
}
function run() {
var resultsEl = document.createElement('div');
resultsEl.className = 'unittest';
document.body.appendChild(resultsEl);
var numPassed = 0;
var numFailures = 0;
var runner = {
addFailedTest: function() {
numFailures++;
},
addPassedTest: function() {
numPassed++;
}
};
function begin() {
for (var i = 0; i < tests.length; i++) {
(function() {
var testCaseEl = unittest.createTestCaseDiv_(tests[i], tests[i], true);
resultsEl.appendChild(testCaseEl);
runTest(runner, testCaseEl, tests[i]);
})();
}
}
begin();
}
document.addEventListener('DOMContentLoaded', run);
</script>
</body>
</html>