Skip to content

Commit 6bf3285

Browse files
committed
add a test for built files
1 parent a35ba7c commit 6bf3285

File tree

2 files changed

+52
-15
lines changed

2 files changed

+52
-15
lines changed

Makefile.dryice.js

+51-14
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ function ace() {
106106

107107
console.log('# ace ---------');
108108
for (var i = 0; i < 4; i++)
109-
buildAce({compress: i & 2, noconflict: i & 1});
109+
buildAce({compress: i & 2, noconflict: i & 1, check: true});
110110
}
111111

112112
function demo() {
@@ -261,11 +261,7 @@ function buildAceModuleInternal(opts, callback) {
261261
code = result.codeMin;
262262
}
263263

264-
var targetDir = BUILD_DIR + "/src";
265-
if (opts.compress)
266-
targetDir += "-min";
267-
if (opts.noconflict)
268-
targetDir += "-noconflict";
264+
var targetDir = getTargetDir(opts);
269265

270266
var to = /^([\\/]|\w:)/.test(opts.outputFile)
271267
? opts.outputFile
@@ -341,13 +337,13 @@ function buildAce(options) {
341337
var snippetFiles = jsFileList("lib/ace/snippets");
342338
var modeNames = modeList();
343339

344-
buildCore(options, {outputFile: "ace.js"}),
340+
buildCore(options, {outputFile: "ace.js"}, addCb()),
345341
// modes
346342
modeNames.forEach(function(name) {
347343
buildSubmodule(options, {
348344
projectType: "mode",
349345
require: ["ace/mode/" + name]
350-
}, "mode-" + name);
346+
}, "mode-" + name, addCb());
351347
});
352348
// snippets
353349
modeNames.forEach(function(name) {
@@ -356,28 +352,28 @@ function buildAce(options) {
356352

357353
buildSubmodule(options, {
358354
require: ["ace/snippets/" + name],
359-
}, "snippets/" + name);
355+
}, "snippets/" + name, addCb());
360356
});
361357
// themes
362358
jsFileList("lib/ace/theme").forEach(function(name) {
363359
buildSubmodule(options, {
364360
projectType: "theme",
365361
require: ["ace/theme/" + name]
366-
}, "theme-" + name);
362+
}, "theme-" + name, addCb());
367363
});
368364
// keybindings
369365
["vim", "emacs"].forEach(function(name) {
370366
buildSubmodule(options, {
371367
projectType: "keybinding",
372368
require: ["ace/keyboard/" + name ]
373-
}, "keybinding-" + name);
369+
}, "keybinding-" + name, addCb());
374370
});
375371
// extensions
376372
jsFileList("lib/ace/ext").forEach(function(name) {
377373
buildSubmodule(options, {
378374
projectType: "ext",
379375
require: ["ace/ext/" + name]
380-
}, "ext-" + name);
376+
}, "ext-" + name, addCb());
381377
});
382378
// workers
383379
workers("lib/ace/mode").forEach(function(name) {
@@ -390,8 +386,20 @@ function buildAce(options) {
390386
transforms: [],
391387
order: -1000
392388
}],
393-
}, "worker-" + name);
389+
}, "worker-" + name, addCb());
394390
});
391+
//
392+
function addCb() {
393+
addCb.count = (addCb.count || 0) + 1;
394+
return done
395+
}
396+
function done() {
397+
if (--addCb.count > 0)
398+
return;
399+
if (options.check)
400+
sanityCheck(options)
401+
console.log("Finished building " + getTargetDir(options))
402+
}
395403
}
396404

397405
function getLoadedFileList(options, callback, result) {
@@ -476,7 +484,7 @@ function namespace(ns) {
476484
.toString()
477485
.replace(/ACE_NAMESPACE\s*=\s*""/, 'ACE_NAMESPACE = "' + ns +'"')
478486
.replace(/\bdefine\(/g, function(def, index, source) {
479-
if (/(^|[;})])\s*$/.test(source.slice(0, index)))
487+
if (/(^|[;}),])\s*$/.test(source.slice(0, index)))
480488
return ns + "." + def;
481489
return def;
482490
});
@@ -571,6 +579,35 @@ function extend(base, extra) {
571579
return base;
572580
}
573581

582+
function getTargetDir(opts) {
583+
var targetDir = BUILD_DIR + "/src";
584+
if (opts.compress)
585+
targetDir += "-min";
586+
if (opts.noconflict)
587+
targetDir += "-noconflict";
588+
return targetDir;
589+
}
590+
591+
function sanityCheck(opts) {
592+
var targetDir = getTargetDir(opts);
593+
require("child_process").execFile(process.execPath, ["-e", "(" + function() {
594+
window = global;
595+
require("./ace");
596+
if (typeof ace.edit != "function")
597+
process.exit(1);
598+
require("fs").readdirSync(".").forEach(function(p) {
599+
if (!/ace\.js$/.test(p) && /\.js$/.test(p))
600+
require("./" + p);
601+
});
602+
process.exit(0);
603+
} + ")()"], {
604+
cwd: targetDir
605+
}, function(err, stdout) {
606+
if (err)
607+
throw err;
608+
});
609+
}
610+
574611
if (!module.parent)
575612
main(process.argv);
576613
else

build_support/editor.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
<script>
3333
var editor = ace.edit("editor");
3434
editor.setTheme("ace/theme/twilight");
35-
editor.getSession().setMode("ace/mode/javascript");
35+
editor.session.setMode("ace/mode/javascript");
3636
</script>
3737

3838
</body>

0 commit comments

Comments
 (0)