C'est un peu vieux maintenant, mais à la Google Test Automation Conference en octobre dernier (2010) en Inde, j'ai fait une presentation sur Git Bisect. En plus de la vidéo, il y a des slides.
J'avais fait presque la même présentation au Linux Kongress 2009 à Dresde.
# ktest
Posté par patrick_g (site web personnel) . Évalué à 7.
A ce sujet j'ai vu qu'il allait y avoir un nouvel outil intégré dans le répertoire /tool du noyau 2.6.38.
C'est un script perl (ktest.pl) écrit par Steven Rostedt qui permet d'automatiser les tests d'une nouvelle version du noyau et qui fait la bisection automatique en cas de bug. Cela semble très sympathique.
Voir la présentation ici : https://lkml.org/lkml/2010/10/28/295
Le script lui-même se trouve là.
[^] # Re: ktest
Posté par Nicolas Boulay (site web personnel) . Évalué à 2.
Comment marche le truc ? J'imagine bien la génération de plein d'arbre de code source à compiler. Mais comment faire pour "lancer" le noyau pour ensuite faire le teste ? Il faut tout faire à la main ?
"La première sécurité est la liberté"
[^] # Re: ktest
Posté par Larry Cow . Évalué à 6.
Sinon, tu peux aussi lire les liens.
[^] # Re: ktest
Posté par zebra3 . Évalué à 6.
Fais ce qu'il dit, sinon il va envoyer un tweet à Linus Torvalds et quelqu'un sera viré du développement du noyau !
Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur
# Un petit contenu accessible aux neu-neux ?
Posté par xavier dumont . Évalué à 4.
L'agrément de linuxfr c'est aussi parfois d'avoir des lumières sur des sujets dont on ne soupçonnait même pas l'existence. Comme GTAC ou GitBisex...
Dis Christianou, tu peux pas nous expliquer en trois lignes qu'est-ce que c'est cette bouteille de lait ? Hein qu'est-ce-que c'est cette bouteille de laiiiit ?
[^] # Re: Un petit contenu accessible aux neu-neux ?
Posté par Christian Couder (site web personnel) . Évalué à 3.
Comme indiqué dans la documentation, git bisect sert à trouver le commit à l'origine d'un bug par une sorte de dichotomie dans le graphe des commits.
[^] # Re: Un petit contenu accessible aux neu-neux ?
Posté par cosmocat . Évalué à 9.
Pour compléter un petit peu car lire la doc quand on connait pas Git, ça peut être lourd...
Donc bisect te permet en connaissant un commit qui marche (borne min) et un commit qui plante (borne sup), d'extraire (facilement) par dichotomie des versions intermédiaires de ton programme de ton dépot git (controleur de code source) et de tester ces versions, soit automatiquement par un script soit manuellement et de lui indiquer le résultat du test. Il extrait alors une autre version en conséquence (en amont ou en aval).
Par exemple, si tu as ton erreur apparue (tu en est sûr) dans les 100 derniers commits, tu as statistiquement 7 versions max à tester (ln(100)/ln(2)). Si tu peux produire un script de test, t'as juste à aller boire un café...
[^] # Re: Un petit contenu accessible aux neu-neux ?
Posté par Nicolas Boulay (site web personnel) . Évalué à 3.
J'ai du mal à imaginer un test lancé par un script qui démarre un kernel. Il le tourne dans une VM ?
"La première sécurité est la liberté"
[^] # Re: Un petit contenu accessible aux neu-neux ?
Posté par Christian Couder (site web personnel) . Évalué à 3.
C'est possible de démarrer un noyau dans une VM ou sur une autre machine, oui.
Par exemple dans cet email, Ingo Molnar décrit brièvement son environnement de test:
http://article.gmane.org/gmane.linux.scsi/36652/
[^] # Re: Un petit contenu accessible aux neu-neux ?
Posté par windu.2b . Évalué à 2.
Ce mail est d'ailleurs cité dans le slide n°37 (cf. le lien dans le journal).
PS : quand on répond à un commentaire, on ne voit plus le corps du journal, ce qui est fort dommage...
[^] # Re: Un petit contenu accessible aux neu-neux ?
Posté par Nicolas Boulay (site web personnel) . Évalué à 2.
Le mail en question ne dit pas comment il boot une autre machine avec un nouveau kernel.
"La première sécurité est la liberté"
[^] # Re: Un petit contenu accessible aux neu-neux ?
Posté par 2PetitsVerres . Évalué à 2.
J'ai survolé le lien de la présentation donnée plus haut, le type fait ce genre de test. Il a deux machines, une de build/contrôle, une de test, un appareil permettant de forcer le reboot de la machine de test depuis celle de build. Sur la machine de test, il a un noyau "ok" et un de test, et la machine de build change le noyau de test de l'autre machine en bootant sur le noyau ok, avec un accès en ssh par clé (donc pas de mot de passe)
Tous les nombres premiers sont impairs, sauf un. Tous les nombres premiers sont impairs, sauf deux.
[^] # Re: Un petit contenu accessible aux neu-neux ?
Posté par zebra3 . Évalué à -1.
Alors tu vois, ça c'est ta mère, ça c'est ma bite. Et protch !
Voilà, c'est comme ça qu'on fait les bébés !
Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur
[^] # Re: Un petit contenu accessible aux neu-neux ?
Posté par Michaël Malter (site web personnel) . Évalué à 3.
Imagine que tu as deux commits X et Y. Dans Y tu as une fonction qui se plante lamentablement, n'apporte pas le résultat attendu. Grâce à bissect, tu va pouvoir tester une à une les modifications d'un fichier entre les deux commits et trouver à quel endroit tu as introduit une erreur.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.