Exécuter la suite de tests MySQL
<<<
Améliorer la suite de tests MySQL Rapporter des bugs dans la suite de tests MySQL
>>>

23.1.2 Suite de test de MySQL
23.1 Rouages de MySQL
23 Etendre MySQL
 Manuel de Référence MySQL 4.1 : Version Française

Exécuter la suite de tests MySQL
->Améliorer la suite de tests MySQL
Rapporter des bugs dans la suite de tests MySQL

23.1.2.2 Améliorer la suite de tests MySQL

Vous pouvez utiliser le langage de mysqltest pour écrire vos propres cas de tests. Malheureusement, nous n'avons pas encore écrit une documentation complète pour ce logiciel, et nous prévoyons de le faire rapidement. Vous pouvez, toutefois, utiliser les cas de tests actuels comme exemples. Les points suivants devraient vous mettre le pied à l'étrier.

  • Les tests sont situé dans mysql-test/t/*.test
  • Un cas de tests est constitué de commandes terminées par un ; , et est similaire aux données d'entrées du client mysql . Une commande est par défaut une commande envoyée au serveur MySQL, à moins qu'il ne soit reconnu comme une commande interne (par exemple, sleep ).
  • Toutes les requêtes qui produisent des résultats, comme SELECT , SHOW , EXPLAIN , etc., doivent être précédées par @/path/to/result/file . Le fichier contient alors les résultats attendus. Un moyen simple pour générer le résultat du fichier est d'exécuter mysqltest -r < t/test-case-name.test depuis le dossier de tests mysql-test , puis d'éditer le fichier résultant, si nécessaire, pour ajuster le contenu. Dans ce cas, soyez très prudent lors de l'ajout ou la suppression de caractères invisibles : assurez vous de ne changer que du texte, ou d'effacer des lignes. Vous pouvez utiliser od -c pour vous assurer que votre éditeur n'a pas perturbé le fichier durant l'édition. Bien sur, nous espérons que vous n'aurez jamais a éditer le résultat du fichier mysqltest -r ca vous n'avez à faire cela que lorsque vous découvrez un bug.
  • Pour être cohérent avec votre configuration, vous devriez placer les fichiers de résultats dans le dossier mysql-test/r et les nommer test_name.result . Si le test produit plus qu'un résultat, vous devez utiliser test_name.a.result , test_name.b.result , etc.
  • Si une commande retourne une erreur, vous devez, sur la ligne de la commande, le spécifier avec --error error-number . Le numéro d'erreur peut être une liste d'erreurs possibles, séparées par des virgules ',' .
  • Si vous écrivez un test de réplication, vous devez, sur la première ligne du fichier de test, ajouter le code source include/master-slave.inc; . Pour passer entre le maître et l'esclave, utilisez connection master; et connection slave; . Si vous avez besoin d'utiliser une connexion alternative, vous pouvez utiliser connection master1; pour le maître, et connection slave1; pour l'esclave.
  • Si vous avez besoin d'une boucle, vous pouvez utiliser ceci :
    
    let $1=1000;
    while ($1)
    {
    # votre requête ici
    dec $1;
    }
  • Pour faire une pause entre les requêtes, utilisez la commande sleep . Elle supporte les fraction de secondes, ce qui vous permet d'utiliser sleep 1.3; , pour attendre 1,3 secondes.
  • Pour exécuter l'esclave avec des options additionnelles pour votre cas de tests, ajoutez les au format ligne de commande dans mysql-test/t/test_name-slave.opt . Pour le maître, ajoutez les dans mysql-test/t/test_name-master.opt .
  • Si vous avez une question sur la suite de tests, ou que vous avez un test à proposer, envoyez le par email à sur la liste interne. Les listes de diffusion MySQL . Comme la liste n'accepte pas les attachements, vous devriez les placer sur le serveur FTP : ftp://support.mysql.com/pub/mysql/Incoming/

<< Améliorer la suite de tests MySQL >>
Exécuter la suite de tests MySQL Suite de test de MySQL Rapporter des bugs dans la suite de tests MySQL