diff options
author | Wendall Cada <wendallc@apache.org> | 2013-04-05 11:43:46 -0700 |
---|---|---|
committer | Wendall Cada <wendallc@apache.org> | 2013-04-05 11:43:46 -0700 |
commit | 0ada3431ac286298c06f103f5eebc978b7173a2b (patch) | |
tree | 378b75a07c21702bdb359f819e73a06d18921e42 | |
parent | df011f70d4981dc3272e3547b18b7e239525cef7 (diff) | |
download | couchdb-0ada3431ac286298c06f103f5eebc978b7173a2b.tar.gz |
Remove setup functions from test runner, only allow a single test to be run at a time.
-rw-r--r-- | test/javascript/cli_runner.js | 84 |
1 files changed, 23 insertions, 61 deletions
diff --git a/test/javascript/cli_runner.js b/test/javascript/cli_runner.js index fcb4633b1..e8ebd2e92 100644 --- a/test/javascript/cli_runner.js +++ b/test/javascript/cli_runner.js @@ -9,77 +9,39 @@ // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the // License for the specific language governing permissions and limitations under // the License. +// -var console = { - log: function(arg) { - var msg = (arg.toString()).replace(/\n/g, "\n "); - print(msg, true); - } -}; +/* + * Futon test suite was designed to be able to run all tests populated into + * couchTests. Here we should only be loading one test, so we'll pop the first + * test off the list and run the test. If more than one item is loaded in the + * test object, return an error. + */ +function runTest() { + var count = 0; + var start = new Date().getTime(); -var fmtStack = function(stack) { - if(!stack) { - console.log("No stack information"); - return; - } - console.log("Trace back (most recent call first):\n"); - var re = new RegExp("(.*?)@([^:]*):(.*)$"); - var lines = stack.split("\n"); - for(var i = 0; i < lines.length; i++) { - var line = lines[i]; - if(!line.length) continue; - var match = re.exec(line); - if(!match) continue - var source = match[1].substr(0, 70); - var file = match[2]; - var lnum = match[3]; - while(lnum.length < 3) lnum = " " + lnum; - console.log(" " + lnum + ": " + file); - console.log(" " + source); + for(var name in couchTests) { + count++; } -} - -function T(arg1, arg2) { - if(!arg1) { - var result = (arg2 ? arg2 : arg1); - throw((result instanceof Error ? result : Error(result))); + if (count !== 1) { + console.log('Only one test per file is allowed.'); + quit(1); } -} -function runTestConsole(num, name, func) { - var passed = false; try { - func(); - passed = true; - print("ok " + num + " " + name); + // Add artificial wait for each test of 1 sec + while (new Date().getTime() < start + 1200); + couchTests[name](); + print('OK'); } catch(e) { - print("not ok " + num + " " + name); - console.log("Reason: " + e.message); + console.log("FAIL\nReason: " + e.message); fmtStack(e.stack); + quit(1); } - return passed; } -function runAllTestsConsole() { - var numTests = 0; - var numPassed = 0; - for(var t in couchTests) { numTests += 1; } - print("1.." + numTests); - var testId = 0; - for(var t in couchTests) { - testId += 1; - if(runTestConsole(testId, t, couchTests[t])) { - numPassed++; - } - } - if(numPassed != numTests) { - console.log("Test failures: " + (numTests - numPassed)); - quit(1); - } else { - console.log("All tests passed"); - } -}; +waitForSuccess(CouchDB.isRunning, 'isRunning'); -waitForSuccess(CouchDB.getVersion); -runAllTestsConsole(); +runTest(); |