зеркало из https://github.com/mozilla/gecko-dev.git
54 строки
1.8 KiB
JavaScript
54 строки
1.8 KiB
JavaScript
// Only test a subset of tests with, e.g., ?1-10 in the URL.
|
|
// Can be used together with <meta name="variant" content="...">
|
|
// Sample usage:
|
|
// for (const test of tests) {
|
|
// subsetTest(async_test, test.fn, test.name);
|
|
// }
|
|
(function() {
|
|
var subTestStart = 0;
|
|
var subTestEnd = Infinity;
|
|
var match;
|
|
if (location.search) {
|
|
match = /(?:^\?|&)(\d+)-(\d+|last)(?:&|$)/.exec(location.search);
|
|
if (match) {
|
|
subTestStart = parseInt(match[1], 10);
|
|
if (match[2] !== "last") {
|
|
subTestEnd = parseInt(match[2], 10);
|
|
}
|
|
}
|
|
// Below is utility code to generate <meta> for copy/paste into tests.
|
|
// Sample usage:
|
|
// test.html?split=1000
|
|
match = /(?:^\?|&)split=(\d+)(?:&|$)/.exec(location.search);
|
|
if (match) {
|
|
var testsPerVariant = parseInt(match[1], 10);
|
|
add_completion_callback(tests => {
|
|
var total = tests.length;
|
|
var template = '<meta name="variant" content="?%s-%s">';
|
|
var metas = [];
|
|
for (var i = 1; i < total - testsPerVariant; i = i + testsPerVariant) {
|
|
metas.push(template.replace("%s", i).replace("%s", i + testsPerVariant - 1));
|
|
}
|
|
metas.push(template.replace("%s", i).replace("%s", "last"));
|
|
var pre = document.createElement('pre');
|
|
pre.textContent = metas.join('\n');
|
|
document.body.insertBefore(pre, document.body.firstChild);
|
|
document.getSelection().selectAllChildren(pre);
|
|
});
|
|
}
|
|
}
|
|
function shouldRunSubTest(currentSubTest) {
|
|
return currentSubTest >= subTestStart && currentSubTest <= subTestEnd;
|
|
}
|
|
var currentSubTest = 0;
|
|
function subsetTest(testFunc, ...args) {
|
|
currentSubTest++;
|
|
if (shouldRunSubTest(currentSubTest)) {
|
|
return testFunc(...args);
|
|
}
|
|
return null;
|
|
}
|
|
self.shouldRunSubTest = shouldRunSubTest;
|
|
self.subsetTest = subsetTest;
|
|
})();
|