blob: 5007ec5338436c864622192d37e0cb99cf91b5d9 [file] [log] [blame]
{{/*
Copyright 2017 syzkaller project authors. All rights reserved.
Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
Main page.
*/}}
<!doctype html>
<html>
<head>
<title>Syzkaller Dashboard</title>
<link rel="stylesheet" href="/static/style.css"/>
</head>
<body>
{{template "header" .Header}}
<b>Error log:</b><br>
<textarea id="log_textarea" readonly rows="20" wrap=off>{{printf "%s" .Log}}</textarea>
<script>
var textarea = document.getElementById("log_textarea");
textarea.scrollTop = textarea.scrollHeight;
</script>
<br><br>
<table class="list_table" id="managers">
<caption>Managers:</caption>
<tr>
<th>Name</th>
<th>Last Active</th>
<th>Current Build</th>
<th>Current Uptime</th>
<th>Today: Fuzzing Time</th>
<th>Corpus</th>
<th>Coverage</th>
<th>Crashes</th>
<th>Execs</th>
<th>Failed Build</th>
</tr>
{{range $mgr := $.Managers}}
<tr>
<td><a href="{{$mgr.Link}}">{{$mgr.Namespace}}/{{$mgr.Name}}</a></td>
<td class="stat {{if $mgr.LastActiveBad}}bad{{end}}">{{formatLateness $.Now $mgr.LastActive}}</td>
{{if $mgr.CurrentBuild}}
<td class="stat" title="{{$mgr.CurrentBuild.KernelRepo}}/{{$mgr.CurrentBuild.KernelBranch}}/{{$mgr.CurrentBuild.KernelCommit}} (syzkaller {{$mgr.CurrentBuild.SyzkallerCommit}})">{{formatLateness $.Now $mgr.CurrentBuild.Time}}</td>
{{else}}
<td></td>
{{end}}
<td class="stat">{{formatDuration $mgr.CurrentUpTime}}</td>
<td class="stat">{{formatDuration $mgr.TotalFuzzingTime}}</td>
<td class="stat">{{formatStat $mgr.MaxCorpus}}</td>
<td class="stat">{{formatStat $mgr.MaxCover}}</td>
<td class="stat">{{formatStat $mgr.TotalCrashes}}</td>
<td class="stat">{{formatStat $mgr.TotalExecs}}</td>
<td class="stat">{{if $mgr.FailedBuildBugLink}}<a href="{{$mgr.FailedBuildBugLink}}" class="bad">bug</a>{{end}}</td>
</tr>
{{end}}
</table>
<br><br>
<table class="list_table" id="jobs">
<caption>Recent jobs:</caption>
<tr>
<th>Created</th>
<th>Started</th>
<th>Finished</th>
<th>User</th>
<th>Bug</th>
<th>Patch</th>
<th>Reporting</th>
<th>Manager</th>
<th>Repo</th>
<th>Result</th>
</tr>
{{range $job := $.Jobs}}
<tr>
<td class="time">{{if $job.ExternalLink}}<a href="{{$job.ExternalLink}}">{{formatTime $job.Created}}</a>{{else}}{{formatTime $job.Created}}{{end}}</td>
<td class="time">{{formatTime $job.Started}}{{if gt $job.Attempts 1}} ({{$job.Attempts}}){{end}}</td>
<td class="time">{{formatTime $job.Finished}}</td>
<td>{{$job.User}}</td>
<td class="title"><a href="{{$job.BugLink}}">{{$job.BugTitle}}</a></td>
<td><a href="{{$job.PatchLink}}">patch</a></td>
<td>{{$job.Namespace}}/{{$job.Reporting}}</td>
<td>{{$job.Manager}}</td>
<td>{{$job.KernelRepo}}/{{$job.KernelBranch}}</td>
<td>
{{if $job.ErrorLink}}
<a href="{{$job.ErrorLink}}">error</a>
{{else if $job.CrashTitle}}
{{if $job.CrashReportLink}}
<a href="{{$job.CrashReportLink}}">{{$job.CrashTitle}}</a>
{{else}}
{{$job.CrashTitle}}
{{end}}
{{if $job.CrashLogLink}}
(<a href="{{$job.CrashLogLink}}">log</a>)
{{end}}
{{else if formatTime $job.Finished}}
OK
{{else if formatTime $job.Started}}
running
{{else}}
pending
{{end}}
</td>
</tr>
{{end}}
</table>
<br><br>
{{range $group := $.BugGroups}}
{{template "bug_list" $group}}
{{end}}
</body>
</html>