Skip to content

Instantly share code, notes, and snippets.

@lgiraudel
Last active April 7, 2017 16:16
Show Gist options
  • Save lgiraudel/42b6077aee515a5c3096acf2a50efdd9 to your computer and use it in GitHub Desktop.
Save lgiraudel/42b6077aee515a5c3096acf2a50efdd9 to your computer and use it in GitHub Desktop.
Commit Generator
#!/usr/bin/env node
const fs = require('fs');
const child_process = require('child_process');
// Fonction pour créer un commit sans fichier modifié
const createCommit = (msg) => {
child_process.execSync(`git commit -am "${msg}" --allow-empty`);
}
let bugProbability = 1; // Pourcentage de chance de générer un commit qui bug, initialement à 1
let noBugYet = true; // Flag pour signaler qu'on n'a pas encore généré le commit qui introduit le bug
// On fait une boucle pour générer 100 commits
for (let i = 0; i < 100; i++) {
// Si on n'a pas déjà généré le commit qui bug, on a X chances sur 100 de le faire
if (noBugYet && Math.random() * 100 < bugProbability) {
// On génère le commit qui introduit le bug
fs.writeFileSync('true-generator.js', `module.exports = false;`);
createCommit('Commit introducing the bug');
// On bascule le booléen signalant que le commit qui bug a déjà été généré
noBugYet = false;
} else {
// Sinon on crée un commit qui n'introduit pas le bug
createCommit('Just a random commit');
}
// On augmente le pourcentage de chances de générer le commit qui bug au prochain tour de boucle
bugProbability++;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment