github.com/google/syzkaller@v0.0.0-20251211124644-a066d2bc4b02/pkg/manager/html/main.html (about) 1 {{/* 2 Copyright 2024 syzkaller project authors. All rights reserved. 3 Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. 4 */}} 5 6 <table class="list_table"> 7 <tbody> 8 {{range $s := $.Stats}} 9 <tr> 10 <td class="stat_name" title="{{$s.Hint}}">{{$s.Name}}</td> 11 <td class="stat_value"> 12 {{if $s.Link}} 13 <a href="{{$s.Link}}">{{$s.Value}}</a> 14 {{else}} 15 {{$s.Value}} 16 {{end}} 17 </td> 18 </tr> 19 {{end}} 20 </tbody> 21 </table> 22 23 {{if .Crashes}} 24 <table class="list_table"> 25 <caption>Crashes:</caption> 26 <thead> 27 <tr> 28 <th><a onclick="return sortTable(this, 'Description', textSort)" href="#">Description</a></th> 29 <th><a onclick="return sortTable(this, 'Rank', numSort)" href="#">Rank</a></th> 30 <th><a onclick="return sortTable(this, 'Count', numSort)" href="#">Count</a></th> 31 <th><a onclick="return sortTable(this, 'First Time', textSort, true)" href="#">First Time</a></th> 32 <th><a onclick="return sortTable(this, 'Last Time', textSort, true)" href="#">Last Time</a></th> 33 <th><a onclick="return sortTable(this, 'Report', textSort)" href="#">Report</a></th> 34 <th><a onclick="return sortTable(this, 'Repro Attempt Count', numSort)" href="#">Repro Attempt Count</a></th> 35 </tr> 36 </thead> 37 <tbody> 38 {{range $c := $.Crashes}} 39 <tr> 40 <td class="title"><a href="/crash?id={{$c.ID}}">{{$c.Title}}</a></td> 41 <td class="rank {{if not $c.Active}}inactive{{end}}"> 42 {{if $c.RankTooltip}} 43 <b>{{$c.Rank}}</b> 44 <pre class="tooltiptext">{{$c.RankTooltip}}</pre> 45 {{else}} 46 {{$c.Rank}} 47 {{end}} 48 </td> 49 <td class="stat {{if not $c.Active}}inactive{{end}}">{{len $c.Crashes}}</td> 50 <td class="time {{if not $c.New}}inactive{{end}}">{{formatTime $c.FirstTime}}</td> 51 <td class="time {{if not $c.Active}}inactive{{end}}">{{formatTime $c.LastTime}}</td> 52 <td> 53 {{if $c.Triaged}} 54 <a href="/report?id={{$c.ID}}">{{$c.Triaged}}</a> 55 {{end}} 56 {{if $c.StraceFile}} 57 <a href="/file?name={{$c.StraceFile}}">Strace</a> 58 {{end}} 59 </td> 60 <td class="stat">{{if $c.ReproAttempts}}{{$c.ReproAttempts}}{{end}}</td> 61 </tr> 62 {{end}} 63 </tbody> 64 </table> 65 {{end}} 66 67 {{define "diff_crashes"}} 68 <table class="list_table"> 69 <caption>{{.Title}}:</caption> 70 <thead> 71 <tr> 72 <th>Description</th> 73 <th>Base</th> 74 <th>Patched</th> 75 </tr> 76 </thead> 77 <tbody> 78 {{range $bug := .List}} 79 <tr> 80 <td class="title">{{$bug.Title}}</td> 81 <td class="title"> 82 {{if gt $bug.Base.Crashes 0}} 83 {{$bug.Base.Crashes}} crashes 84 {{else if $bug.Base.NotCrashed}} 85 Not affected 86 {{else}} ? {{end}} 87 {{if $bug.Base.Report}} 88 <a href="/file?name={{$bug.Base.Report}}">[report]</a> 89 {{end}} 90 </td> 91 <td class="title"> 92 {{if gt $bug.Patched.Crashes 0}} 93 {{$bug.Patched.Crashes}} crashes 94 {{else}} ? {{end}} 95 {{if $bug.Patched.Report}} 96 <a href="/file?name={{$bug.Patched.Report}}">[report]</a> 97 {{end}} 98 {{if $bug.Patched.CrashLog}} 99 <a href="/file?name={{$bug.Patched.CrashLog}}">[crash log]</a> 100 {{end}} 101 {{if $bug.Patched.Repro}} 102 <a href="/file?name={{$bug.Patched.Repro}}">[syz repro]</a> 103 {{end}} 104 {{if $bug.Patched.ReproLog}} 105 <a href="/file?name={{$bug.Patched.ReproLog}}">[repro log]</a> 106 {{end}} 107 {{if $bug.Reproducing}}[reproducing]{{end}} 108 </td> 109 </tr> 110 {{end}} 111 </tbody> 112 </table> 113 {{end}} 114 115 {{if .PatchedOnly}} 116 {{template "diff_crashes" .PatchedOnly}} 117 {{end}} 118 119 {{if .AffectsBoth}} 120 {{template "diff_crashes" .AffectsBoth}} 121 {{end}} 122 123 {{if .InProgress}} 124 {{template "diff_crashes" .InProgress}} 125 {{end}} 126 127 <b>Log:</b> 128 <br> 129 <textarea id="log_textarea" readonly rows="20" wrap=off> 130 {{.Log}} 131 </textarea> 132 <script> 133 var textarea = document.getElementById("log_textarea"); 134 textarea.scrollTop = textarea.scrollHeight; 135 </script>