xref: /freebsd/sys/contrib/libsodium/test/default/index.html.tpl (revision 3611ec604864a7d4dcc9a3ea898c80eb35eef8a0)
1*0ac341f1SConrad Meyer<!doctype html>
2*0ac341f1SConrad Meyer<html>
3*0ac341f1SConrad Meyer<head>
4*0ac341f1SConrad Meyer<style>
5*0ac341f1SConrad Meyer<meta name="google" content="notranslate" />
6*0ac341f1SConrad Meyerbody {
7*0ac341f1SConrad Meyer  background: white;
8*0ac341f1SConrad Meyer  color: black;
9*0ac341f1SConrad Meyer}
10*0ac341f1SConrad Meyer.test p {
11*0ac341f1SConrad Meyer  margin: 1px;
12*0ac341f1SConrad Meyer}
13*0ac341f1SConrad Meyer.test {
14*0ac341f1SConrad Meyer  font-family: monospace;
15*0ac341f1SConrad Meyer  white-space: pre;
16*0ac341f1SConrad Meyer}
17*0ac341f1SConrad Meyer.err {
18*0ac341f1SConrad Meyer  background: red;
19*0ac341f1SConrad Meyer  color: white;
20*0ac341f1SConrad Meyer}
21*0ac341f1SConrad Meyer.passed {
22*0ac341f1SConrad Meyer  background: green;
23*0ac341f1SConrad Meyer  color: white;
24*0ac341f1SConrad Meyer}
25*0ac341f1SConrad Meyer</style>
26*0ac341f1SConrad Meyer</head>
27*0ac341f1SConrad Meyer<body>
28*0ac341f1SConrad Meyer<h1></h1>
29*0ac341f1SConrad Meyer<section class="test" id="test-res"></section>
30*0ac341f1SConrad Meyer<script>
31*0ac341f1SConrad Meyervar performance;
32*0ac341f1SConrad Meyerif (typeof performance !== 'object') {
33*0ac341f1SConrad Meyer  performance = {
34*0ac341f1SConrad Meyer    mark: function(s) { this[s] = new Date() },
35*0ac341f1SConrad Meyer    measure: function(_t, s1, s2) { this.t = this[s2] - this[s1] },
36*0ac341f1SConrad Meyer    getEntriesByName: function() { return [ { duration: this.t } ] }
37*0ac341f1SConrad Meyer  };
38*0ac341f1SConrad Meyer}
39*0ac341f1SConrad Meyer
40*0ac341f1SConrad Meyervar Module = { preRun: function() { performance.mark('bench_start') } };
41*0ac341f1SConrad Meyer
42*0ac341f1SConrad Meyerfunction runTest(tname) {
43*0ac341f1SConrad Meyer    var xhr, expected, hn, idx = 0, passed = true;
44*0ac341f1SConrad Meyer
45*0ac341f1SConrad Meyer    function outputReceived(e) {
46*0ac341f1SConrad Meyer        var found = e.data;
47*0ac341f1SConrad Meyer        var p = document.createElement('p');
48*0ac341f1SConrad Meyer        if (found !== expected[idx++]) {
49*0ac341f1SConrad Meyer            p.className = 'err';
50*0ac341f1SConrad Meyer            passed = false;
51*0ac341f1SConrad Meyer        }
52*0ac341f1SConrad Meyer        p.appendChild(document.createTextNode(found));
53*0ac341f1SConrad Meyer        document.getElementById('test-res').appendChild(p);
54*0ac341f1SConrad Meyer        if (idx >= expected.length) {
55*0ac341f1SConrad Meyer            if (passed) {
56*0ac341f1SConrad Meyer                performance.mark('bench_end')
57*0ac341f1SConrad Meyer                performance.measure('bench', 'bench_start', 'bench_end');
58*0ac341f1SConrad Meyer                var duration = Math.round(performance.getEntriesByName('bench')[0].duration);
59*0ac341f1SConrad Meyer                hn.appendChild(document.createTextNode(' - PASSED (time: ' + duration + ' ms)'));
60*0ac341f1SConrad Meyer                hn.className = 'passed';
61*0ac341f1SConrad Meyer            } else {
62*0ac341f1SConrad Meyer                hn.appendChild(document.createTextNode(' - FAILED'));
63*0ac341f1SConrad Meyer                hn.className = 'err';
64*0ac341f1SConrad Meyer            }
65*0ac341f1SConrad Meyer        }
66*0ac341f1SConrad Meyer    }
67*0ac341f1SConrad Meyer
68*0ac341f1SConrad Meyer    hn = document.getElementsByTagName('h1')[0];
69*0ac341f1SConrad Meyer    hn.appendChild(document.createTextNode('Test: ' + tname));
70*0ac341f1SConrad Meyer
71*0ac341f1SConrad Meyer    try {
72*0ac341f1SConrad Meyer        xhr = new ActiveXObject('Microsoft.XMLHTTP');
73*0ac341f1SConrad Meyer    } catch (e) {
74*0ac341f1SConrad Meyer        xhr = new XMLHttpRequest();
75*0ac341f1SConrad Meyer    }
76*0ac341f1SConrad Meyer    xhr.open('GET', tname + '.exp');
77*0ac341f1SConrad Meyer    xhr.onreadystatechange = function() {
78*0ac341f1SConrad Meyer        if (xhr.readyState != 4 ||
79*0ac341f1SConrad Meyer            (xhr.status != 200 && xhr.status != 302 && xhr.status != 0)) {
80*0ac341f1SConrad Meyer            return;
81*0ac341f1SConrad Meyer        }
82*0ac341f1SConrad Meyer        expected = xhr.responseText.split('\n');
83*0ac341f1SConrad Meyer        if (expected.length > 0 && expected[expected.length - 1] === '') {
84*0ac341f1SConrad Meyer            expected.pop();
85*0ac341f1SConrad Meyer        }
86*0ac341f1SConrad Meyer        expected.push('--- SUCCESS ---');
87*0ac341f1SConrad Meyer        window.addEventListener('test-output', outputReceived, false);
88*0ac341f1SConrad Meyer        var s = document.getElementsByTagName('script')[0];
89*0ac341f1SConrad Meyer        var st = document.createElement('script');
90*0ac341f1SConrad Meyer        st.src = tname + '.js';
91*0ac341f1SConrad Meyer        s.parentNode.insertBefore(st, s);
92*0ac341f1SConrad Meyer    }
93*0ac341f1SConrad Meyer    xhr.send(null);
94*0ac341f1SConrad Meyer}
95*0ac341f1SConrad MeyerrunTest('{{tname}}');
96*0ac341f1SConrad Meyer</script>
97*0ac341f1SConrad Meyer</body>
98*0ac341f1SConrad Meyer</html>
99