fix running mode tests from different directory

This commit is contained in:
nightwing 2012-09-04 20:35:21 +04:00
commit 25eeca0a75

View file

@ -4,11 +4,13 @@ if (!fs.existsSync)
require("amd-loader");
var cwd = __dirname + "/";
function generateTestData() {
var root = Array(5).join("../") + "/demo/kitchen-sink/docs";
var docs = fs.readdirSync(root);
var specialDocs = fs.readdirSync(".");
var modes = fs.readdirSync("../").filter(function(x){
var docs = fs.readdirSync(cwd + root);
var specialDocs = fs.readdirSync(cwd);
var modes = fs.readdirSync(cwd + "../").filter(function(x){
return /^\w+_highlight_rules.js$/.test(x);
}).map(function(x) {
return x.replace(/_highlight_rules.js$/, "");
@ -17,7 +19,7 @@ function generateTestData() {
console.log("Docs:", docs.join());
console.log("Modes:", modes);
docs.forEach(function(docName){
docs.forEach(function(docName) {
var p = docName.toLowerCase().split(".");
var modeName;
if (modes.indexOf(p[0]) != -1)
@ -32,7 +34,7 @@ function generateTestData() {
filePath = root + "/" + docName;
}
var text = fs.readFileSync(filePath, "utf8");
var text = fs.readFileSync(cwd + filePath, "utf8");
var Mode = require("../" + modeName).Mode;
var tokenizer = new Mode().getTokenizer();
@ -48,22 +50,22 @@ function generateTestData() {
};
});
fs.writeFileSync("tokens_" + modeName + ".json", JSON.stringify(data, null, 1), "utf8");
fs.writeFileSync(cwd + "tokens_" + modeName + ".json", JSON.stringify(data, null, 1), "utf8");
});
}
function test(startAt) {
var docs = fs.readdirSync(".").filter(function(x){
var docs = fs.readdirSync(cwd).filter(function(x) {
return /^tokens_\w+.json$/.test(x);
});
if (startAt && startAt > 1)
docs = docs.slice(startAt - 1);
docs.forEach(function(x, i){
docs.forEach(function(x, i) {
var modeName = x.match(/tokens_(.*).json/)[1];
console.log(padNumber(i+1, 3) + ") testing: \u001b[33m" + modeName + "\u001b[0m");
var text = fs.readFileSync("./" + x, "utf8");
var text = fs.readFileSync(cwd + x, "utf8");
var data = JSON.parse(text);
var Mode = require("../" + modeName).Mode;
var tokenizer = new Mode().getTokenizer();