{{/* 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>