<!-- This Source Code Form is subject to the terms of the Mozilla Public
   - License, v. 2.0. If a copy of the MPL was not distributed with this file,
   - You can obtain one at http://mozilla.org/MPL/2.0/. -->

<html>
<head>
  <title>GC uBench</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

  <!-- Benchmark harness and UI -->
  <script src="harness.js"></script>
  <script src="perf.js"></script>
  <script src="sequencer.js"></script>
  <script src="ui.js"></script>

  <!-- List of garbage-creating test loads -->
  <script src="test_list.js"></script>

  <!-- Collect all test loads into a `tests` Map -->
  <script>
    var tests = new Map();
    foreach_test_file(path => import("./" + path));
  </script>

</head>

<body onload="onload()" onunload="onunload()">

<canvas id="graph" width="1080" height="400" style="padding-left:10px"></canvas>
<canvas id="memgraph" width="1080" height="400" style="padding-left:10px"></canvas>
<div id="memgraph-disabled" style="display: none"><i>No performance.mozMemory object available. If running Firefox, set dom.enable_memory_stats to True to see heap size info.</i></div>

<hr>

<div id='track-sizes-div'>
  Show heap size graph: <input id='track-sizes' type='checkbox' onclick="trackHeapSizes(this.checked)">
</div>

<div>
  Update display:
  <input type="checkbox" id="do-graph" onchange="onUpdateDisplayChanged()" checked></input>
</div>

<div>
  Run allocation load
  <input type="checkbox" id="do-load" onchange="onDoLoadChange()" checked></input>
</div>

<div>
    Allocation load:
    <select id="test-selection" required onchange="onLoadChange()"></select>
    <span id="load-running">(init)</span>
</div>

<div>
    &nbsp;&nbsp;&nbsp;&nbsp;Garbage items per frame:
    <input type="text" id="garbage-per-frame" size="5" value="8K"
           onchange="garbage_per_frame_changed()"></input>
</div>
<div>
    &nbsp;&nbsp;&nbsp;&nbsp;Garbage piles:
    <input type="text" id="garbage-piles" size="5" value="8"
           onchange="garbage_piles_changed()"></input>
</div>

<hr>

<div>
    Duration: <input type="text" id="test-duration" size="3" value="8" onchange="duration_changed()"></input>s
    <input type="button" id="test-one" value="Run Test" onclick="run_one_test()"></input>
    <input type="button" id="test-all" value="Run All Tests" onclick="run_all_tests()"></input>
</div>

<div>
    &nbsp;&nbsp;&nbsp;&nbsp;Time remaining: <span id="test-progress">(not running)</span>
</div

<div>
    &nbsp;&nbsp;&nbsp;&nbsp;60 fps: <span id="pct60">n/a</span>
    &nbsp;&nbsp;&nbsp;&nbsp;45 fps: <span id="pct45">n/a</span>
    &nbsp;&nbsp;&nbsp;&nbsp;30 fps: <span id="pct30">n/a</span>
</div

<div id="results-Area">
    Test Results:
    <div id="results-display" style="padding-left: 10px; border: 1px solid black;"></div>
</div>

</body>
</html>
