Skip to content

Commit

Permalink
Just import main.js once
Browse files Browse the repository at this point in the history
  • Loading branch information
chinhodado committed Apr 3, 2016
1 parent 31e5d5f commit 14e23d9
Show file tree
Hide file tree
Showing 6 changed files with 204 additions and 214 deletions.
112 changes: 53 additions & 59 deletions common.js
Original file line number Diff line number Diff line change
@@ -1,78 +1,72 @@
function addTests() {
importScript(['modevlib/main.js'], function(){
var buildRevision = $("#selectBuildRevision").val();
Thread.run(function*(){
var tests = yield (search({
"limit": 10000,
"groupby": ["test.url"],
"where" : {
"eq":{
"build.revision": buildRevision
}
},
"from": "coverage"
}));
var buildRevision = $("#selectBuildRevision").val();
Thread.run(function*(){
var tests = yield (search({
"limit": 10000,
"groupby": ["test.url"],
"where" : {
"eq":{
"build.revision": buildRevision
}
},
"from": "coverage"
}));

$("#selectLabel2").text("Select a test:");
$("#resultDesc").text("");
$("#select2").empty();
$("#select2").append("<option value=''></option>");
$("#selectLabel2").text("Select a test:");
$("#resultDesc").text("");
$("#select2").empty();
$("#select2").append("<option value=''></option>");

tests.data.sort(function(a, b) {
return a[0].localeCompare(b[0]);
});
tests.data.forEach(function(element, index, array) {
$("#select2").append("<option value='" + element[0] + "'>" + element[0] + "</option>")
});
tests.data.sort(function(a, b) {
return a[0].localeCompare(b[0]);
});
tests.data.forEach(function(element, index, array) {
$("#select2").append("<option value='" + element[0] + "'>" + element[0] + "</option>")
});
});
}

function addSources() {
importScript(['modevlib/main.js'], function(){
var buildRevision = $("#selectBuildRevision").val();
Thread.run(function*(){
var sources = yield (search({
"limit": 10000,
"groupby": ["source.file"],
"where" : {
"eq":{
"build.revision": buildRevision
}
},
"from": "coverage"
}));
var buildRevision = $("#selectBuildRevision").val();
Thread.run(function*(){
var sources = yield (search({
"limit": 10000,
"groupby": ["source.file"],
"where" : {
"eq":{
"build.revision": buildRevision
}
},
"from": "coverage"
}));

$("#selectLabel2").text("Select a source file:");
$("#resultDesc").text("");
$("#select2").empty();
$("#select2").append("<option value=''></option>");
$("#selectLabel2").text("Select a source file:");
$("#resultDesc").text("");
$("#select2").empty();
$("#select2").append("<option value=''></option>");

sources.data.sort(function(a, b) {
return a[0].localeCompare(b[0]);
});
sources.data.forEach(function(element, index, array) {
$("#select2").append("<option value='" + element[0] + "'>" + element[0] + "</option>");
});
sources.data.sort(function(a, b) {
return a[0].localeCompare(b[0]);
});
sources.data.forEach(function(element, index, array) {
$("#select2").append("<option value='" + element[0] + "'>" + element[0] + "</option>");
});
});
}

function addBuild() {
importScript(['modevlib/main.js'], function(){
Thread.run(function*(){
var sources = yield (search({
"limit": 10000,
"groupby": ["build.revision"],
"from": "coverage"
}));
Thread.run(function*(){
var sources = yield (search({
"limit": 10000,
"groupby": ["build.revision"],
"from": "coverage"
}));

sources.data.sort(function(a, b) {
return a[0].localeCompare(b[0]);
});
sources.data.forEach(function(element, index, array) {
$("#selectBuildRevision").append("<option value='" + element[0] + "'>" + element[0] + "</option>");
});
sources.data.sort(function(a, b) {
return a[0].localeCompare(b[0]);
});
sources.data.forEach(function(element, index, array) {
$("#selectBuildRevision").append("<option value='" + element[0] + "'>" + element[0] + "</option>");
});
});
}
Expand Down
66 changes: 3 additions & 63 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
<script src="query1.js"></script>
<script src="query2.js"></script>
<script src="query3.js"></script>
<script src="setupPage.js"></script>
<link type="text/css" rel="stylesheet" href="css/menu.css"/>
</head>
<body>
Expand Down Expand Up @@ -40,68 +41,7 @@ <h2>ActiveData Code Coverage Query Tool</h2>
</div>

<script type="application/javascript">

var search = function*(query){
var output = yield (Rest.post({
url: "https://activedata.allizom.org/query",
json: query
}));
yield (output);
};

// add the list of builds
addBuild();

// populate the query select
var queryList = {
0: "",
1: "Given a test, which files does it touch?",
2: "Given a test, which unique files does it touch?",
3: "Given a source file, which tests touch it?",
4: "Given a patch (list of source files and methods adjusted) recommend which tests I should run."
};

for (var key in queryList) {
if (!queryList.hasOwnProperty(key)) continue;
$("#querySelect").append("<option value='" + key + "'>" + queryList[key] + "</option>");
}

$("#querySelect").on('change', function (e) {
if (this.value == "0") {
$("#step2").hide();
}
else {
$("#step2").show();
processQuery(this.value);
}
});

// use the query parameters if needed
var buildRevision = getParameterByName("buildRevision");
var query = getParameterByName("query");
var select2 = getParameterByName("select2");

if (buildRevision) {
$("#selectBuildRevision").val(buildRevision);
}

if (query) {
$("#querySelect").val(query);
}

if (select2) {
$("#select2").val(select2);
}

if (query && select2) {
var param = {
"buildRevision": buildRevision,
"select2": select2
};
$("#step2").show();
processQuery(query, param, true);
}

</script>
importScript(['modevlib/main.js'], setupPage);
</script>
</body>
</html>
30 changes: 14 additions & 16 deletions query1.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,25 +33,23 @@ function executeQuery1(param) {
"from": "coverage"
};

importScript(['modevlib/main.js'], function(){
Thread.run(function*(){
// disable inputs while query is running
disableAll(true);
Thread.run(function*(){
// disable inputs while query is running
disableAll(true);

var sourceFiles = yield (search(query));
var sourceFiles = yield (search(query));

sourceFiles.data.sort(function(a, b) {
return a[0].localeCompare(b[0]);
});
sourceFiles.data.forEach(function(element, index, array) {
$("#resultTableBody").append("<tr><td>" + element[0] + "</td></tr>")
});
sourceFiles.data.sort(function(a, b) {
return a[0].localeCompare(b[0]);
});
sourceFiles.data.forEach(function(element, index, array) {
$("#resultTableBody").append("<tr><td>" + element[0] + "</td></tr>")
});

showPermalink();
$("#resultDesc").text("Source files touched by selected test:");
showPermalink();
$("#resultDesc").text("Source files touched by selected test:");

// re-enable the inputs
disableAll(false);
});
// re-enable the inputs
disableAll(false);
});
}
98 changes: 48 additions & 50 deletions query2.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,61 +21,59 @@ function query2() {
function executeQuery2(param) {
var test = param.test;
var buildRevision = param.buildRevision;
importScript(['modevlib/main.js'], function(){
Thread.run(function*(){
// disable inputs while query is running
disableAll(true);
Thread.run(function*(){
// disable inputs while query is running
disableAll(true);

// get source files covered by test
var sources = yield (search({
"from": "coverage",
"where": {
"eq": {
"test.url": test,
"build.revision": buildRevision
}
},
"groupby": [
{"name": "source", "value": "source.file"}
],
"limit": 100000,
"format": "list"
}));
// get source files covered by test
var sources = yield (search({
"from": "coverage",
"where": {
"eq": {
"test.url": test,
"build.revision": buildRevision
}
},
"groupby": [
{"name": "source", "value": "source.file"}
],
"limit": 100000,
"format": "list"
}));

// for each file, find number of other tests
var siblings = yield (search({
// find test that cover the same
"from": "coverage",
"select": {"name": "tests", "value": "test.url", "aggregate": "union"},
"where": {
"in": {
"source.file": sources.data.select("source")
}
// TODO: do we need to specify build revision here?
},
"groupby": [
{"name": "source", "value": "source.file"}
],
"limit": 100000,
"format": "list"
}));
siblings.data = qb.sort(siblings.data, "tests.length");
// for each file, find number of other tests
var siblings = yield (search({
// find test that cover the same
"from": "coverage",
"select": {"name": "tests", "value": "test.url", "aggregate": "union"},
"where": {
"in": {
"source.file": sources.data.select("source")
}
// TODO: do we need to specify build revision here?
},
"groupby": [
{"name": "source", "value": "source.file"}
],
"limit": 100000,
"format": "list"
}));
siblings.data = qb.sort(siblings.data, "tests.length");

// remove self
siblings.data.forall(function(v){
v.tests.remove(test);
});

showPermalink();
$("#resultDesc").text("Unique source files touched by selected test:");
// remove self
siblings.data.forall(function(v){
v.tests.remove(test);
});

siblings.data.forEach(function(element, index, array) {
if (element.tests.length > 0) return;
$("#resultTableBody").append("<tr><td>" + element.source + "</td></tr>")
});
showPermalink();
$("#resultDesc").text("Unique source files touched by selected test:");

// re-enable the inputs
disableAll(false);
siblings.data.forEach(function(element, index, array) {
if (element.tests.length > 0) return;
$("#resultTableBody").append("<tr><td>" + element.source + "</td></tr>")
});

// re-enable the inputs
disableAll(false);
});
}
Loading

0 comments on commit 14e23d9

Please sign in to comment.