blob: d522444eb80cafcce2cb766ae1a190721601e025 [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>
{{template "head" .Header}}
<title>syzbot</title>
</head>
<body>
{{template "header" .Header}}
{{if .Log}}
<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>
{{end}}
{{if $.Managers}}
<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.KernelAlias}}/{{$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>
{{end}}
{{if $.Jobs}}
<table class="list_table" id="jobs">
<caption>Recent jobs:</caption>
<tr>
<th>Bug</th>
<th>Created</th>
<th>Started</th>
<th>Finished</th>
<th>User</th>
<th>Patch</th>
<th>Repo</th>
<th>Manager</th>
<th>Result</th>
</tr>
{{range $job := $.Jobs}}
<tr>
<td class="title"><a href="{{$job.BugLink}}">{{$job.BugTitle}}</a></td>
<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><a href="{{$job.PatchLink}}">patch</a></td>
<td class="kernel" title="{{$job.KernelAlias}}">{{$job.KernelAlias}}</td>
<td title="{{$job.Namespace}}/{{$job.Reporting}}">{{$job.Manager}}</td>
{{if $job.ErrorLink}}
<td class="result"><a href="{{$job.ErrorLink}}">error</a></td>
{{else if $job.CrashTitle}}
<td class="result" title="{{$job.CrashTitle}}">
{{if $job.CrashReportLink}}
<a href="{{$job.CrashReportLink}}">report</a>
{{end}}
{{if $job.CrashLogLink}}
<a href="{{$job.CrashLogLink}}">log</a>
{{end}}
</td>
{{else if formatTime $job.Finished}}
<td class="result">OK</td>
{{else if formatTime $job.Started}}
<td class="result">running</td>
{{else}}
<td class="result">pending</td>
{{end}}
</tr>
{{end}}
</table>
<br><br>
{{end}}
{{range $ns := $.BugNamespaces}}
<br>
<h2 id="{{$ns.Name}}">{{$ns.Caption}}</h2>
{{if $ns.FixedLink}}
{{if $ns.CoverLink}}
<a href="{{$ns.CoverLink}}" target="_blank">source coverage</a> |
{{end}}
<a href="{{$ns.FixedLink}}">fixed bugs ({{$ns.FixedCount}})</a>
{{end}}
{{range $group := $ns.Groups}}
{{template "bug_list" $group}}
{{end}}
<br>
{{end}}
</body>
</html>