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>