-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtestManager.js
140 lines (123 loc) · 3.18 KB
/
testManager.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
// Test Manager
//
// This beast knows how to manipulate the tests in both
// The ODFToolkit and the ODFE Explorer
//
// Tell it where the ODFToolKit is and where the ODFE is
// and it will orchestrate the tests
//
var fs = require('fs-extra');
var async = require('async');
var shelljs = require('shelljs');
var testsToMove = [];
var testsDir = "";
var storeDir = "";
var srcDir = "";
var trgDir = "";
function setStoreDir(dir) {
storeDir = dir;
}
function setTestsDir(dir) {
testsDir = dir;
}
function getStoreDir() {
return storeDir;
}
function getTestsDir() {
return testsDir;
}
// Get the list of original tests
function origTests(callback) {
srcDir = testsDir;
console.log("org from " + srcDir);
testsToMove = shelljs.ls('-R', srcDir).filter(function (file) {
return file.match(/\Test.java$/);
});
var onumTests = testsToMove.length;
console.log("Original number of tests: " + onumTests);
callback(null);
}
// Get the list of stored tests
function storedTests(callback) {
srcDir = storeDir;
console.log("stored in " + srcDir);
testsToMove = shelljs.ls('-R', srcDir).filter(function (file) {
return file.match(/\Test.java$/);
});
var numStoredTests = testsToMove.length;
console.log("Number of stored tests: " + numStoredTests);
callback(null);
}
function areTestsToMove() {
// console.log("testsToMove.length " + testsToMove.length);
return testsToMove.length > 0;
}
function moveOrigTests(callback) {
trgDir = storeDir;
console.log("Move tests from " + srcDir + " to " + trgDir);
async.whilst(areTestsToMove, moveTest, function (err) {
if (err) {
callback(err);
} else {
allMoved(err);
callback(null);
}
});
}
function restoreTests(rcallback) {
trgDir = testsDir;
srcDir = storeDir;
console.log("Restore tests from " + srcDir + " to " + trgDir);
async.whilst(areTestsToMove, moveTest, function (err) {
if (err) {
rcallback(err);
} else {
allRestored(err);
rcallback(null);
}
});
}
function allRestored(err) {
if (err) {
console.log("Restore Move :" + err);
} else {
console.log("All original tests restored");
var tests = shelljs.ls('-R', trgDir).filter(function (file) {
return file.match(/\Test.java$/);
});
var numTests = tests.length;
console.log("Num Tests: " + tests.length);
}
}
function moveTest(callback) {
var test = testsToMove[0];
fs.move(srcDir + test, trgDir + test, function (err) {
if (err) {
callback(err);
} else {
// console.log("Moved " + srcDir + test + " to " + trgDir + test);
testsToMove.shift();
callback();
}
});
}
function allMoved(err) {
if (err) {
console.log("Orig Move :" + err);
} else {
console.log("All original tests moved");
var tests = shelljs.ls('-R', trgDir).filter(function (file) {
return file.match(/\Test.java$/);
});
var numTests = tests.length;
console.log("Test Store Num Tests: " + tests.length + "\n\n");
}
}
module.exports.restoreTests = restoreTests;
module.exports.moveOrigTests = moveOrigTests;
module.exports.origTests = origTests;
module.exports.storedTests = storedTests;
module.exports.setTestsDir = setTestsDir;
module.exports.setStoreDir = setStoreDir;
module.exports.getTestsDir = getTestsDir;
module.exports.getStoreDir = getStoreDir;