aboutsummaryrefslogtreecommitdiffstats
path: root/vnfmarket/src/main/webapp/vnfmarket/node_modules/http-proxy/test/core/run
diff options
context:
space:
mode:
Diffstat (limited to 'vnfmarket/src/main/webapp/vnfmarket/node_modules/http-proxy/test/core/run')
-rw-r--r--vnfmarket/src/main/webapp/vnfmarket/node_modules/http-proxy/test/core/run90
1 files changed, 90 insertions, 0 deletions
diff --git a/vnfmarket/src/main/webapp/vnfmarket/node_modules/http-proxy/test/core/run b/vnfmarket/src/main/webapp/vnfmarket/node_modules/http-proxy/test/core/run
new file mode 100644
index 00000000..adec53ba
--- /dev/null
+++ b/vnfmarket/src/main/webapp/vnfmarket/node_modules/http-proxy/test/core/run
@@ -0,0 +1,90 @@
+#!/usr/bin/env node
+/*
+ run.js: test runner for core tests
+
+ Copyright (c) 2011 Nodejitsu
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+*/
+
+var fs = require('fs'),
+ path = require('path'),
+ spawn = require('child_process').spawn,
+ async = require('async'),
+ colors = require('colors'),
+ optimist = require('optimist');
+
+optimist.argv.color && (colors.mode = optimist.argv.color);
+
+var testTimeout = 15000;
+var results = {};
+
+function runTest(test, callback) {
+ var child = spawn(path.join(__dirname, 'run-single'), [ test ]);
+
+ var killTimeout = setTimeout(function () {
+ child.kill();
+ console.log(' ' + path.basename(test).yellow + ' timed out'.red);
+ }, testTimeout);
+
+ child.on('exit', function (exitCode) {
+ clearTimeout(killTimeout);
+
+ console.log(' ' + ((exitCode) ? '✘'.red : '✔'.green) + ' ' +
+ path.basename(test) +
+ (exitCode ? (' (exit code: ' + exitCode + ')') : ''));
+ results[test] = { exitCode: exitCode };
+ callback();
+ //
+ // We don't want tests to be stopped after first failure, and that's what
+ // async does when it receives truthy value in callback.
+ //
+ });
+};
+
+var tests = process.argv.slice(2).filter(function (test) {
+ return test.substr(0, 2) != '--';
+});
+
+if (!tests.length) {
+ var pathPrefix = path.join(__dirname, 'simple');
+ tests = fs.readdirSync(pathPrefix).map(function (test) {
+ return path.join(pathPrefix, test);
+ });
+ //
+ // We only run simple tests by default.
+ //
+}
+
+console.log('Running tests:'.bold);
+async.forEachSeries(tests, runTest, function () {
+ var failed = [], ok = [];
+ for (var test in results) {
+ (results[test].exitCode != 0 ? failed : ok).push(test);
+ }
+
+ console.log('\nSummary:'.bold);
+ console.log((' ' + ok.length + '\tpassed tests').green);
+ console.log((' ' + failed.length + '\tfailed tests').red);
+});
+
+// vim:filetype=javascript
+