1
0
Fork 0

- Use a predefined array to differenciate between informational & payload members of the testresults structure.

- Only report failure if we occur extraordinary server vanishes.
This commit is contained in:
Willi Goesgens 2015-01-14 17:19:02 +01:00
parent 1fca272389
commit c641b2214b
2 changed files with 23 additions and 9 deletions

View File

@ -98,6 +98,7 @@ var Planner = require("org/arangodb/cluster").Planner;
var Kickstarter = require("org/arangodb/cluster").Kickstarter; var Kickstarter = require("org/arangodb/cluster").Kickstarter;
var endpointToURL = require("org/arangodb/cluster/planner").endpointToURL; var endpointToURL = require("org/arangodb/cluster/planner").endpointToURL;
var serverCrashed = false;
var optionsDefaults = { "cluster": false, var optionsDefaults = { "cluster": false,
"valgrind": false, "valgrind": false,
@ -394,6 +395,9 @@ function checkInstanceAlive(instanceInfo, options) {
copy("bin/arangod", storeArangodPath); copy("bin/arangod", storeArangodPath);
} }
} }
if (!ret) {
serverCrashed = true;
}
return ret; return ret;
} }
var ClusterFit = true; var ClusterFit = true;
@ -419,7 +423,13 @@ function checkInstanceAlive(instanceInfo, options) {
} }
} }
} }
return ClusterFit && instanceInfo.kickstarter.isHealthy(); if (ClusterFit && instanceInfo.kickstarter.isHealthy()) {
return true;
}
else {
serverCrashed = true;
return false;
}
} }
function shutdownInstance (instanceInfo, options) { function shutdownInstance (instanceInfo, options) {
@ -1485,7 +1495,7 @@ testFuncs.authentication_parameters = function (options) {
return results; return results;
}; };
var internalMembers = ["code", "error", "status", "duration", "failed", "total"]; var internalMembers = ["code", "error", "status", "duration", "failed", "total", "crashed", "all_ok", "ok"];
function unitTestPrettyPrintResults(r) { function unitTestPrettyPrintResults(r) {
var testrun; var testrun;
@ -1498,13 +1508,13 @@ function unitTestPrettyPrintResults(r) {
try { try {
for (testrun in r) { for (testrun in r) {
if (r.hasOwnProperty(testrun) && (testrun !== 'all_ok')) { if (r.hasOwnProperty(testrun) && (internalMembers.indexOf(testrun) === -1)) {
var isSuccess = true; var isSuccess = true;
var oneOutput = ""; var oneOutput = "";
oneOutput = "Testrun: " + testrun + "\n"; oneOutput = "Testrun: " + testrun + "\n";
for (test in r[testrun]) { for (test in r[testrun]) {
if (r[testrun].hasOwnProperty(test) && (test !== 'ok')) { if (r[testrun].hasOwnProperty(test) && (internalMembers.indexOf(test) === -1)) {
if (r[testrun][test].status) { if (r[testrun][test].status) {
oneOutput += " [Success] " + test + "\n"; oneOutput += " [Success] " + test + "\n";
} }
@ -1599,6 +1609,7 @@ function UnitTest (which, options) {
results.all_ok = allok; results.all_ok = allok;
} }
results.all_ok = allok; results.all_ok = allok;
results.crashed = serverCrashed;
if (allok) { if (allok) {
cleanupDBDirectories(options); cleanupDBDirectories(options);
} }
@ -1634,6 +1645,7 @@ function UnitTest (which, options) {
} }
r.ok = ok; r.ok = ok;
results.all_ok = ok; results.all_ok = ok;
results.crashed = serverCrashed;
if (allok) { if (allok) {
cleanupDBDirectories(options); cleanupDBDirectories(options);
@ -1652,6 +1664,7 @@ function UnitTest (which, options) {
} }
} }
exports.internalMembers = internalMembers;
exports.testFuncs = testFuncs; exports.testFuncs = testFuncs;
exports.UnitTest = UnitTest; exports.UnitTest = UnitTest;
exports.unitTestPrettyPrintResults = unitTestPrettyPrintResults; exports.unitTestPrettyPrintResults = unitTestPrettyPrintResults;

View File

@ -1,7 +1,9 @@
/*jshint unused: false */ /*jshint unused: false */
/*global require, start_pretty_print */ /*global require, start_pretty_print */
var internalMembers = ["code", "error", "status", "duration", "failed", "total", "message"]; var UnitTest = require("org/arangodb/testing");
var internalMembers = UnitTest.internalMembers;
var fs = require("fs"); var fs = require("fs");
var print = require("internal").print; var print = require("internal").print;
@ -46,10 +48,10 @@ function resultsToXml(results, baseName) {
} }
for (var testrun in results) { for (var testrun in results) {
if ((testrun !== "all_ok") && (results.hasOwnProperty(testrun))) { if ((internalMembers.indexOf(testrun) === -1) && (results.hasOwnProperty(testrun))) {
for (var test in results[testrun]) { for (var test in results[testrun]) {
if ((test !== "ok") && if ((internalMembers.indexOf(test) === -1) &&
results[testrun].hasOwnProperty(test) && results[testrun].hasOwnProperty(test) &&
!results[testrun][test].hasOwnProperty('skipped')) { !results[testrun][test].hasOwnProperty('skipped')) {
@ -127,7 +129,6 @@ function main (argv) {
} }
} }
options.jsonReply = true; options.jsonReply = true;
var UnitTest = require("org/arangodb/testing");
start_pretty_print(); start_pretty_print();
try { try {
@ -139,7 +140,7 @@ function main (argv) {
print(JSON.stringify(r)); print(JSON.stringify(r));
} }
fs.write("UNITTEST_RESULT.json",JSON.stringify(r)); fs.write("UNITTEST_RESULT.json",JSON.stringify(r));
fs.write("UNITTEST_RESULT_SUMMARY.txt",JSON.stringify(r.all_ok)); fs.write("UNITTEST_RESULT_SUMMARY.txt",JSON.stringify(!r.crashed));
try { try {
resultsToXml(r, "UNITTEST_RESULT_"); resultsToXml(r, "UNITTEST_RESULT_");
} }