2016-07-05 22:45:17 +02:00
|
|
|
/*
|
|
|
|
* Copyright 2016 Jacek Caban for CodeWeavers
|
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Lesser General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
|
|
* License along with this library; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
|
|
*/
|
|
|
|
|
2016-07-19 18:42:34 +02:00
|
|
|
function guard(f) {
|
|
|
|
return function() {
|
2016-07-05 22:45:17 +02:00
|
|
|
try {
|
2016-07-19 18:42:34 +02:00
|
|
|
f();
|
2016-07-05 22:45:17 +02:00
|
|
|
}catch(e) {
|
2019-07-01 15:30:40 +02:00
|
|
|
var msg = "Got exception ";
|
|
|
|
if(e && typeof(e) == "object" && "message")
|
2020-06-04 17:29:19 +02:00
|
|
|
msg += e.message;
|
2019-07-01 15:30:40 +02:00
|
|
|
else
|
|
|
|
msg += e;
|
|
|
|
ok(false, msg);
|
2020-06-04 17:29:19 +02:00
|
|
|
if("tests" in window) next_test();
|
2016-07-05 22:45:17 +02:00
|
|
|
}
|
2016-07-19 18:42:34 +02:00
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
function next_test() {
|
|
|
|
var test = tests.shift();
|
|
|
|
window.setTimeout(guard(test), 0);
|
2016-07-05 22:45:17 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
function run_tests() {
|
|
|
|
tests.push(reportSuccess);
|
|
|
|
next_test();
|
|
|
|
}
|
|
|
|
|
|
|
|
function ok(b,m) {
|
2019-07-01 15:30:49 +02:00
|
|
|
return external.ok(b, format_message(m));
|
2016-07-05 22:45:17 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
function trace(m) {
|
2019-07-01 15:30:49 +02:00
|
|
|
external.trace(format_message(m));
|
2016-07-05 22:45:17 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
function win_skip(m) {
|
|
|
|
external.win_skip(m);
|
|
|
|
}
|
|
|
|
|
|
|
|
function reportSuccess() {
|
|
|
|
external.reportSuccess();
|
|
|
|
}
|
2017-10-12 14:27:24 +02:00
|
|
|
|
|
|
|
var todo_wine = {
|
|
|
|
ok: function(b,m) {
|
2019-07-01 15:30:49 +02:00
|
|
|
return external.todo_wine_ok(b, format_message(m));
|
2017-10-12 14:27:24 +02:00
|
|
|
}
|
|
|
|
};
|
2018-05-11 14:43:20 +02:00
|
|
|
|
|
|
|
function todo_wine_if(expr) {
|
|
|
|
return expr ? todo_wine : { ok: ok };
|
|
|
|
}
|
2019-07-01 15:30:49 +02:00
|
|
|
|
|
|
|
var file_prefix = document.location.pathname;
|
|
|
|
if(document.location.search)
|
|
|
|
file_prefix += document.location.search;
|
2020-06-03 16:04:28 +02:00
|
|
|
file_prefix += ":";
|
|
|
|
|
|
|
|
var test_name;
|
2019-07-01 15:30:49 +02:00
|
|
|
|
|
|
|
function format_message(msg) {
|
2020-06-03 16:04:28 +02:00
|
|
|
var p = file_prefix;
|
|
|
|
if(test_name) p += test_name + ":";
|
|
|
|
return p + " " + msg;
|
|
|
|
}
|
|
|
|
|
|
|
|
function sync_test(name, f)
|
|
|
|
{
|
|
|
|
tests.push(function() {
|
|
|
|
test_name = name;
|
|
|
|
f();
|
|
|
|
test_name = undefined;
|
|
|
|
next_test();
|
|
|
|
});
|
2019-07-01 15:30:49 +02:00
|
|
|
}
|
2021-01-27 19:36:21 +01:00
|
|
|
|
|
|
|
function async_test(name, f)
|
|
|
|
{
|
|
|
|
tests.push(function() {
|
|
|
|
test_name = name;
|
|
|
|
f();
|
|
|
|
});
|
|
|
|
}
|