Global Metrics
path: .metrics.halstead.level
old: 0.027950310559006212
new: 0.02790697674418605
path: .metrics.halstead.length
old: 1716.0
new: 1717.0
path: .metrics.halstead.purity_ratio
old: 0.8866564592401729
new: 0.8861400606034575
path: .metrics.halstead.time
old: 26311.86289677439
new: 26368.076889574422
path: .metrics.halstead.difficulty
old: 35.77777777777778
new: 35.833333333333336
path: .metrics.halstead.N2
old: 644.0
new: 645.0
path: .metrics.halstead.effort
old: 473613.53214193904
new: 474625.3840123396
path: .metrics.halstead.volume
old: 13237.645308315066
new: 13245.359553832732
path: .metrics.halstead.bugs
old: 2.025325420378312
new: 2.028209065872185
path: .metrics.mi.mi_sei
old: -37.1784268920115
new: -37.18279742182496
path: .metrics.mi.mi_visual_studio
old: 5.754276326288608
new: 5.752504735401036
path: .metrics.mi.mi_original
old: 9.83981251795352
new: 9.836783097535772
Spaces Data
Minimal test - lines (77, 115)
path: .spaces[3].metrics.halstead.N2
old: 47.0
new: 48.0
path: .spaces[3].metrics.halstead.effort
old: 11873.386394264757
new: 12213.881286237196
path: .spaces[3].metrics.halstead.length
old: 138.0
new: 139.0
path: .spaces[3].metrics.halstead.volume
old: 757.8757272934952
new: 763.3675803898248
path: .spaces[3].metrics.halstead.purity_ratio
old: 1.4742073375679368
new: 1.4636015293839946
path: .spaces[3].metrics.halstead.bugs
old: 0.17348495299743014
new: 0.1767860022309364
path: .spaces[3].metrics.halstead.time
old: 659.6325774591531
new: 678.5489603465109
path: .spaces[3].metrics.halstead.difficulty
old: 15.666666666666666
new: 16.0
path: .spaces[3].metrics.halstead.level
old: 0.06382978723404256
new: 0.0625
path: .spaces[3].metrics.mi.mi_visual_studio
old: 44.591579139001674
new: 44.569622829374694
path: .spaces[3].metrics.mi.mi_sei
old: 55.54272525963685
new: 55.488558856721085
path: .spaces[3].metrics.mi.mi_original
old: 76.25160032769287
new: 76.21405503823073
Code
async function syncAndDownload(filters, clear = true) {
const localDB = await CRLiteFiltersClient.client.db;
if (clear) {
await localDB.clear();
}
for (let filter of filters) {
const filename = getFilenameForFilter(filter);
const file = do_get_file(`test_crlite_filters/${filename}`);
const fileBytes = readFile(file);
const record = {
details: {
name: `${filter.timestamp}-${filter.type}`,
},
attachment: {
hash: getHash(fileBytes),
size: fileBytes.length,
filename,
location: `security-state-workspace/cert-revocations/test_crlite_filters/${filename}`,
mimetype: "application/octet-stream",
},
incremental: filter.type == "diff",
effectiveTimestamp: new Date(filter.timestamp).getTime(),
parent: filter.type == "diff" ? filter.parent : undefined,
id: filter.id,
};
await localDB.create(record);
}
// This promise will wait for the end of downloading.
let promise = TestUtils.topicObserved(
"remote-security-settings:crlite-filters-downloaded"
);
// Simulate polling for changes, trigger the download of attachments.
Services.obs.notifyObservers(null, "remote-settings:changes-poll-end");
let results = await promise;
return results[1]; // topicObserved gives back a 2-array
}