From e6796ab192b8c33fd10b905195c12dc282fed3ba Mon Sep 17 00:00:00 2001 From: Santiago Gimeno Date: Sun, 25 Nov 2012 19:35:07 +0100 Subject: [PATCH] Only execute dpms test when we can - Add test-runner.js to be able to execute the dpms when these conditions are complied: 1 - DPMS extension is supported. 2 - DPMS version is 1.1. 3 - DPMS is capable. --- package.json | 2 +- test-runner.js | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++ test/dpms.js | 13 +---------- 3 files changed, 60 insertions(+), 13 deletions(-) create mode 100644 test-runner.js diff --git a/package.json b/package.json index fbf38ac..fec97b6 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "should": "*" } , "scripts": { - "test": "mocha -t 80000", + "test": "node test-runner.js", "prepublish" : "npm prune" } } diff --git a/test-runner.js b/test-runner.js new file mode 100644 index 0000000..4f6a2f4 --- /dev/null +++ b/test-runner.js @@ -0,0 +1,58 @@ +var x11 = require('./lib/x11'); +var Mocha = require('mocha'); +var fs = require('fs'); +var path = require('path'); +var util = require('util'); + +var mocha = new Mocha({ + timeout : 80000 +}); + +// To be able to perform the tests we need the server: +// 1 - to support the dpms extension. +// 2 - dpms version is 1.1. +// 3 - to be dpms capable. +var run_dpms_test = function(cb) { + var client = x11.createClient(function(dpy) { + var display = dpy; + var X = display.client; + X.require('dpms', function(ext) { + if (!util.isError(ext)) { + dpms = ext; + dpms.GetVersion(undefined, undefined, function(err, version) { + if (!err && version[0] === 1 && version[1] === 1) { + dpms.Capable(function(err, capable) { + if (!err && capable[0] == 1) cb(true); + else cb(false); + }); + } else { + cb(false); + } + }); + } else { + cb(false); + } + }); + }); + + client.on('error', function() { + cb(false); + }); +}; + +// Add all files from test root directory +fs.readdirSync('./test').forEach(function(file) { + if (file === 'dpms.js') { + run_dpms_test(function(run) { + if (run) { + mocha.addFile(path.join('./test', file)); + } + + mocha.run(function(){ + process.exit(); + }); + }); + } else { + mocha.addFile(path.join('./test', file)); + } +}); \ No newline at end of file diff --git a/test/dpms.js b/test/dpms.js index e44c4ea..46601b6 100644 --- a/test/dpms.js +++ b/test/dpms.js @@ -11,23 +11,12 @@ describe('DPMS extension', function() { var client = x11.createClient(function(dpy) { display = dpy; X = display.client; - // To be able to perform the tests we need the server: - // 1 - to support the dpms extension. - // 2 - dpms version is 1.1. - // 3 - to be dpms capable. X.require('dpms', function(ext) { if (util.isError(ext)) { done(ext); } else { dpms = ext; - dpms.GetVersion(undefined, undefined, function(err, version) { - if (err) return done(err); - version.should.eql([1, 1]); - dpms.Capable(function(err, capable) { - if (!err) capable.should.eql([1]); - done(err); - }); - }); + done(); } }); });