Testing
Note:
Cette section s'applique pour myslqnd_ms 1.1.0 ou supérieure, et non pour la série 1.0.
La suite de test PECL/mysqlnd_ms se trouve dans le dossier tests/ des sources de la distribution. La suite de test consiste en des tests standards phpt, qui sont décrits sur le site d'assurance qualité de PHP.
Avant d'effectuer ces tests, éditez le fichier tests/config.inc pour configurer les serveurs MySQL à utiliser lors des tests. Vous devez avoir au moins un serveur MySQL en fonctionnement pour les réaliser. Cependant, le fait de définit deux serveurs MySQL distincts est bien meilleur. Si vous en configurez deux, les tests peuvent en utiliser un comme maître logique et l'autre, comme esclave logique. Ces deux serveurs ne doivent pas faire obligatoirement partis d'un cluster de réplication MySQL. Les tests sont écrits de telle façon qu'ils peuvent être exécutés avec succès sans avoir à configurer un cluster de réplication MySQL. Si deux serveurs sont configurés, ils doivent autoriser l'identification à une base de données test en utilisant le même nom utilisateur et mot de passe sur les deux serveurs.
Voici la configuration habituellement utilisée :
putenv("MYSQL_TEST_HOST=localhost"); putenv("MYSQL_TEST_PORT=3306"); putenv("MYSQL_TEST_USER=root"); putenv("MYSQL_TEST_PASSWD="); putenv("MYSQL_TEST_DB=test"); putenv("MYSQL_TEST_ENGINE=MyISAM"); putenv("MYSQL_TEST_SOCKET="); putenv("MYSQL_TEST_SKIP_CONNECT_FAILURE=1"); putenv("MYSQL_TEST_CONNECT_FLAGS=0"); putenv("MYSQL_TEST_EXPERIMENTAL=0"); /* émulation d'un cluster de réplication */ putenv("MYSQL_TEST_EMULATED_MASTER_HOST=". getenv("MYSQL_TEST_HOST")); putenv("MYSQL_TEST_EMULATED_SLAVE_HOST=". getenv("MYSQL_TEST_HOST")); /* cluster de réplication réel */ putenv("MYSQL_TEST_MASTER_HOST=". getenv("MYSQL_TEST_EMULATED_MASTER_HOST")); putenv("MYSQL_TEST_SLAVE_HOST=". getenv("MYSQL_TEST_EMULATED_SLAVE_HOST"));
MYSQL_TEST_HOST, MYSQL_TEST_PORT et MYSQL_TEST_SOCKET définissent le nom de l'hôte, le port TCP/IP et le socket du domaine Unix pour le serveur de base de données par défaut. MYSQL_TEST_USER et MYSQL_TEST_PASSWD contiennent le nom de l'utilisateur et le mot de passe nécessaires pour la connexion à la base de données/schéma configurée avec MYSQL_TEST_DB. Si vous utilisez 2 serveurs distincts, un serveur maître logique et un serveur esclave logique, ils doivent avoir le même nom d'utilisateur de base de données de configuré pour donner accès à la base de données test.
Quelques tests requièrent la disponibilité de 2 serveurs MySQL distincts. Ces tests seront ignorés si un seul serveur est configuré. Pour configurer un serveur esclave logique s'exécutant sur un hôte différent et/ou écoutant sur un port/socket différent, définissez MYSQL_TEST_SLAVE_HOST. L'utilisation de la syntaxe host, host:port ou host:/path/to/socket pour MYSQL_TEST_SLAVE_HOST permet de définir un hôte, un port et un hôte, et un socket différent pour le serveur esclave logique. La même syntaxe peut être utilisée pour définir MYSQL_TEST_MASTER_HOST.
putenv("MYSQL_TEST_SLAVE_HOST=192.168.78.136:3307")); putenv("MYSQL_TEST_MASTER_HOST=myserver_hostname:/path/to/socket"));