blob: 93474556fc7c9d3bcfb3a8f7281983c69e7aed52 [file] [log] [blame]
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
// use this file except in compliance with the License. You may obtain a copy of
// the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations under
// the License.
/*
* Add global couchTests object required for existing tests.
*/
var couchTests = {};
var console = {
log: function(arg) {
var msg = (arg.toString()).replace(/\n/g, "\n ");
print(msg, true);
}
};
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 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);
}
}
function T(arg1, arg2) {
if(!arg1) {
var result = (arg2 ? arg2 : arg1);
throw((result instanceof Error ? result : Error(result)));
}
}
function waitForSuccess(fun, tag) {
var start = new Date().getTime();
var complete = false;
while (!complete) {
var now = new Date().getTime();
if (now > start + 5000) {
complete = true;
print('FAIL');
print(tag);
quit(1);
}
try {
while (new Date().getTime() < now + 500);
complete = fun();
} catch (e) {}
}
}
function restartServer() {
print('restart');
var start = new Date().getTime();
while (new Date().getTime() < start + 1000);
waitForSuccess(CouchDB.isRunning, 'restart');
}
/*
* If last_req is an object, we got something back. This might be an error, but
* CouchDB is up and running!
*/
CouchDB.isRunning = function() {
CouchDB.last_req = CouchDB.request("GET", "/");
return typeof CouchDB.last_req == 'object';
};