Last active
April 7, 2017 16:16
-
-
Save lgiraudel/42b6077aee515a5c3096acf2a50efdd9 to your computer and use it in GitHub Desktop.
Commit Generator
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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