This commit is contained in:
Peter Cottle 2023-01-12 10:19:52 -07:00
parent 5c37007647
commit 3a9f1bc7da
2 changed files with 13 additions and 1 deletions

View file

@ -74,6 +74,8 @@ TreeCompare.dispatchShallow = function(levelBlob, goalTreeString, treeToCompare)
return TreeCompare.compareBranchesWithinTreesHashAgnostic(
treeToCompare, goalTreeString, ['main']
) && TreeCompare.evalAsserts(treeToCompare, levelBlob.goalAsserts);
case !!levelBlob.onlyEvaluateAsserts:
return TreeCompare.evalAsserts(treeToCompare, levelBlob.goalAsserts);
default:
return TreeCompare.compareAllBranchesWithinTreesAndHEAD(
treeToCompare, goalTreeString
@ -233,11 +235,14 @@ TreeCompare.evalAssertsOnBranch = function(tree, branchName, asserts) {
var branch = tree.branches[branchName];
var queue = [branch.target];
var data = {};
var numCommits = 0;
while (queue.length) {
var commitRef = queue.pop();
data[this.getBaseRef(commitRef)] = this.getNumHashes(commitRef);
queue = queue.concat(tree.commits[commitRef].parents);
numCommits++;
}
data['__num_commits_upstream'] = numCommits;
var result = true;
asserts.forEach(function(assert) {
@ -245,7 +250,6 @@ TreeCompare.evalAssertsOnBranch = function(tree, branchName, asserts) {
result = result && assert(data);
} catch (err) {
console.warn('error during assert', err);
console.log(err);
result = false;
}
});

View file

@ -2,6 +2,14 @@ exports.level = {
"goalTreeString": "{\"branches\":{\"main\":{\"target\":\"C2\",\"id\":\"main\",\"remoteTrackingBranchID\":null},\"side\":{\"target\":\"C4\",\"id\":\"side\",\"remoteTrackingBranchID\":null},\"bugFix\":{\"target\":\"C7\",\"id\":\"bugFix\",\"remoteTrackingBranchID\":null}},\"commits\":{\"C0\":{\"parents\":[],\"id\":\"C0\",\"rootCommit\":true},\"C1\":{\"parents\":[\"C0\"],\"id\":\"C1\"},\"C2\":{\"parents\":[\"C1\"],\"id\":\"C2\"},\"C3\":{\"parents\":[\"C1\"],\"id\":\"C3\"},\"C4\":{\"parents\":[\"C3\"],\"id\":\"C4\"},\"C5\":{\"parents\":[\"C3\"],\"id\":\"C5\"},\"C6\":{\"parents\":[\"C5\"],\"id\":\"C6\"},\"C7\":{\"parents\":[\"C6\"],\"id\":\"C7\"}},\"tags\":{\"v0\":{\"target\":\"C0\",\"id\":\"v0\",\"type\":\"tag\"},\"v1\":{\"target\":\"C3\",\"id\":\"v1\",\"type\":\"tag\"}},\"HEAD\":{\"target\":\"bugFix\",\"id\":\"HEAD\"}}",
"solutionCommand": "git commit ",
"startTree": "{\"branches\":{\"main\":{\"target\":\"C2\",\"id\":\"main\",\"remoteTrackingBranchID\":null},\"side\":{\"target\":\"C4\",\"id\":\"side\",\"remoteTrackingBranchID\":null},\"bugFix\":{\"target\":\"C6\",\"id\":\"bugFix\",\"remoteTrackingBranchID\":null}},\"commits\":{\"C0\":{\"parents\":[],\"id\":\"C0\",\"rootCommit\":true},\"C1\":{\"parents\":[\"C0\"],\"id\":\"C1\"},\"C2\":{\"parents\":[\"C1\"],\"id\":\"C2\"},\"C3\":{\"parents\":[\"C1\"],\"id\":\"C3\"},\"C4\":{\"parents\":[\"C3\"],\"id\":\"C4\"},\"C5\":{\"parents\":[\"C3\"],\"id\":\"C5\"},\"C6\":{\"parents\":[\"C5\"],\"id\":\"C6\"}},\"tags\":{\"v0\":{\"target\":\"C0\",\"id\":\"v0\",\"type\":\"tag\"},\"v1\":{\"target\":\"C3\",\"id\":\"v1\",\"type\":\"tag\"}},\"HEAD\":{\"target\":\"bugFix\",\"id\":\"HEAD\"}}",
"onlyEvaluateAsserts": true,
"goalAsserts": {
"bugfix": [
function (data) {
return data.__num_commits_upstream > 5;
},
]
},
"name": {
"en_US": "Git Describe",
"fr_FR": "Git describe",