GoGPT Best VPN GoSearch

Icône de favori OnWorks

poe-gen-testsp – En ligne dans le Cloud

Exécutez poe-gen-testsp dans le fournisseur d'hébergement gratuit OnWorks sur Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

Il s'agit de la commande poe-gen-testsp qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos nombreux postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

PROGRAMME:

Nom


poe-gen-tests - générer des tests POE standard pour les modules tiers

SYNOPSIS


poe-gen-tests --dirbase t/loops \
--boucle Glib \
--boucle Kqueue \
--loop Event::Lib \
--loop POE::XS::Loop::Poll

DESCRIPTION


Ce programme et les modules POE::Test::Loop::* qui l'accompagnent constituent les tests de POE pour
Sous-classes POE::Loop. Ces tests sont conçus pour s'exécuter de manière identique, quelle que soit la
Boucle d'événements actuelle. POE les utilise pour tester les boucles d'événements qu'il regroupe :

POE::Loop::Gtk
POE::Loop::IO_Poll (--loop IO::Poll)
POE::Loop::Tk
POE::Loop::Événement
POE::Loop::Select

Les développeurs d'autres modules POE::Loop sont encouragés à utiliser ce package pour générer plus de 420
des tests complets pour leur propre travail.

UTILISATION


poe-gen-tests crée des fichiers de test pour une ou plusieurs boucles d'événements sous le répertoire
spécifié dans --dirbase. Par exemple,

poe-gen-tests --dirbase t/loops --loop Sélectionner

génère les fichiers de test suivants :

t/loops/select/all_errors.t
t/loops/select/comp_tcp.t
t/loops/select/comp_tcp_concurrent.t
t/loops/select/connect_errors.t
t/loops/select/k_alarms.t
t/loops/select/k_aliases.t
t/loops/select/k_detach.t
t/loops/select/k_selects.t
t/loops/select/k_sig_child.t
t/loops/select/k_signals.t
t/loops/select/k_signals_rerun.t
t/loops/select/sbk_signal_init.t
t/loops/select/ses_nfa.t
t/loops/select/ses_session.t
t/loops/select/wheel_accept.t
t/loops/select/wheel_curses.t
t/loops/select/wheel_readline.t
t/loops/select/wheel_readwrite.t
t/loops/select/wheel_run.t
t/loops/select/wheel_sf_ipv6.t
t/loops/select/wheel_sf_tcp.t
t/loops/select/wheel_sf_udp.t
t/loops/select/wheel_sf_unix.t
t/loops/select/wheel_tail.t

Le paramètre --loop est soit un nom de classe POE::Loop::... soit la classe de boucle d'événement qui
complétera le nom du package POE::Loop::...

poe-gen-tests --dirbase t/loops --loop Event::Lib
poe-gen-tests --dirbase t/loops --loop POE::Loop::Event_Lib

poe-gen-tests recherche une section « =for poe_tests » ou « =begin poe_tests » dans le
Classe POE::Loop en cours de test. Si elle est définie, cette section doit inclure une seule fonction.
skip_tests(), qui détermine si un test donné doit être ignoré.

Veuillez consulter perlpod pour la syntaxe de « =for » et « =begin ». Voir également PODDITIES pour les informations importantes.
différences entre le support POD de POE::Test::Loop et la norme.

skip_tests() est appelé avec un paramètre, le nom de base du test sur le point d'être exécuté.
Il renvoie false si le test doit être exécuté, ou un message qui sera affiché à l'utilisateur
expliquant pourquoi le test sera ignoré. Ce message est transmis directement à Test::More.
plan() avec « skip_all ». La logique est essentiellement :

si (mon $pourquoi = skip_tests("k_signals_rerun")) {
plan skip_all => $pourquoi;
}

skip_tests() devrait charger tous les modules requis par la boucle d'événements. Voir la plupart des exemples.
ci-dessous.

Exemple poe_tests Directives
POE::Loop::Event vérifie si le module Event existe et peut être chargé, puis si
des tests spécifiques peuvent être exécutés sous des systèmes d'exploitation spécifiques.

=pour poe_tests
sous-tests de saut {
renvoie "Les tests d'événements nécessitent le module Event" si (
faire { eval "utiliser l'événement"; $@ }
);
mon $test_name = shift;
si ($test_name eq "k_signals_rerun" et $^O eq "MSWin32") {
renvoie "Ce test fait planter Perl lorsqu'il est exécuté avec Tk sur $^O" ;
}
si ($test_name eq "wheel_readline" et $^O eq "darwin") {
renvoie « L'événement saute deux de ses propres tests pour la même raison » ;
}
}

POE::Loop::Gtk vérifie si DISPLAY est défini, ce qui implique que X est en cours d'exécution. Il vérifie ensuite
vérifie si Gtk est disponible, chargeable et initialisable en toute sécurité avant d'ignorer
tests spécifiques.

=pour poe_tests
sous-tests de saut {
mon $test_name = shift;
renvoie "Gtk a besoin d'un DISPLAY (installez-en un aujourd'hui, d'accord ?)" à moins que (
défini $ENV{DISPLAY} et longueur $ENV{DISPLAY}
);
renvoie "Les tests Gtk nécessitent le module Gtk" si do { eval "use Gtk"; $@ };
renvoie « L'initialisation Gtk a échoué. DISPLAY est-il valide ? » sauf si défini Gtk->init_check ;
si ($test_name eq "z_rt39872_sigchld_stop") {
renvoie "Gdk plante" ;
}
retour;
}

POE::Loop::IO_Poll vérifie la compatibilité du système avant de vérifier que IO::Poll est
disponible et chargeable.

=pour poe_tests
sous-tests de saut {
renvoie "IO::Poll n'est pas 100% compatible avec $^O" si $^O eq "MSWin32" ;
renvoie "Les tests IO::Poll nécessitent le module IO::Poll" si (
faire { eval "utiliser IO::Poll"; $@ }
);
}

POE::Loop::Select n'a aucune exigence spécifique.

=pour poe_tests
sous skip_tests { retour }

POE::Loop::Tk nécessite un affichage X (sauf sous Windows). Tk n'est pas sûr pour fourchette(), alors saute
Tests nécessitant un fork. Enfin, vérifiez si le module Tk est disponible.
chargeable et exécutable.

=pour poe_tests
sous-tests de saut {
renvoie "Tk a besoin d'un DISPLAY (installez-en un aujourd'hui, d'accord ?)" à moins que (
(défini $ENV{DISPLAY} et longueur $ENV{DISPLAY}) ou $^O eq "MSWin32"
);
mon $test_name = shift;
si ($test_name eq "k_signals_rerun" et $^O eq "MSWin32") {
renvoie "Ce test fait planter Perl lorsqu'il est exécuté avec Tk sur $^O" ;
}
renvoie "Les tests Tk nécessitent le module Tk" si do { eval "use Tk"; $@ };
mon $m = eval { Tk::MainWindow->new() };
si ($@) {
mon $pourquoi = $@;
$pourquoi =~ s/ à .*//;
retourner "Tk n'a pas pu être initialisé : $pourquoi";
}
retour;
}

INSTALLER SCÉNARIO INTÉGRATION


Les tests POE::Loop ont débuté dans le cadre de la distribution POE. Toutes les recommandations
et les exemples qui suivent sont écrits et testés avec ExtUtils::MakeMaker car c'est
Ce que POE utilise. Veuillez adapter ces recettes à vos goûts et préférences.

appel le Le test Gratuit
Les tests doivent être générés avant que l'utilisateur ou le shell CPAN n'exécute « make test ». Un système bien rangé
une façon de procéder pourrait être de créer une nouvelle cible Makefile et de l'inclure comme dépendance
Pour « make test », POE adopte une approche plus simple : il appelle le script depuis son fichier Makefile.PL :

système(
$^X, "poe-gen-tests", "--dirbase", "t/30_loops",
"--loop", "Événement", "--loop", "Gtk", "--loop", "IO::Poll",
"--loop", "Sélectionner", "--loop", "Tk",
) et meurs $!;

L'approche précédente génère des tests au moment de l'installation, il n'est donc pas nécessaire de les inclure
les fichiers générés dans le MANIFEST. Les répertoires de test doivent également être exclus du
MANIFEST. poe-gen-tests créera les chemins nécessaires.

Il est également possible de générer les tests avant « make dist ». La distribution
MANIFEST doit inclure les fichiers générés dans ce cas.

La plupart des gens n’auront pas besoin d’ajouter les tests générés à leurs référentiels.

Fonctionnement le Tests


Par défaut, ExtUtils::MakeMaker génère des Makefiles qui exécutent uniquement les tests correspondant à t/*.t.
Les auteurs sont toutefois autorisés à spécifier d'autres emplacements de test. Ajoutez le paramètre suivant :
à WriteMakefile() afin que les tests générés ci-dessus soient exécutés :

tests => {
TESTS => "t/*.tt/30_loops/*/*.t",
}

DES CONDUITS UP


Les Makefiles ne nettoient pas les fichiers absents du MANIFEST. Cela inclut
Les tests sont générés à l'installation. Si cela vous gêne, vous devrez ajouter des directives à
inclure les tests générés dans les cibles « clean » et « distclean ».

nettoyer => {
FICHIERS => "t/30_loops/*/* t/30_loops/*",
}

Ceci suppose que le répertoire « t/30_loops » ne contient que des tests générés. Il est recommandé
que les tests générés et codés manuellement ne coexistent pas dans le même répertoire.

Il semble être une bonne idée de supprimer les répertoires et fichiers les plus profonds avant leurs parents.

Saut Réseau Tests


Certains tests générés nécessitent la présence et l'accessibilité d'un réseau. Ces tests seront
ignoré sauf si le fichier « run_network_tests » est présent dans le répertoire de distribution principal.
Vous pouvez inclure ce fichier dans l'archive tar de votre distribution, mais il est préférable de le créer à
Le temps d'installation est limité après avoir demandé à l'utilisateur. Voici comment POE procède. Naturellement, vous êtes libre de le faire.
d'une autre manière.

# Basculer vers le comportement par défaut si STDIN n'est pas un tty.

sauf si (-t STDIN) {
avertir(
"\n",
"=============================================\n\n",
"STDIN n'est pas un terminal. En supposant que --default.\n\n",
"=============================================\n\n",
);
pousser @ARGV, "--default";
}

# Rappeler à l'utilisateur qu'il peut utiliser --default.

sauf si (grep /^--default$/, @ARGV) {
avertir(
"\n",
"================================================\n\n",
"Les invites peuvent être ignorées avec l'indicateur --default.\n\n",
"================================================\n\n",
);
}

# Devrions-nous exécuter les tests réseau ?

mon $prompt = (
"Certains tests POE nécessitent un réseau fonctionnel.\n" .
"Vous pouvez ignorer ces tests si vous le souhaitez.\n\n" .
« Voulez-vous ignorer les tests réseau ? »
);

mon $ret = "n";
si (grep /^--default$/, @ARGV) {
imprimer $prompt, " [$ret] $ret\n\n";
}
else {
$ret = prompt($prompt, "n");
}

mon $marker = 'run_network_tests';
dissocier $marker;
à moins que ($ret =~ /^Y$/i) {
ouvrir(TOUCH,"+>$marker") et fermer TOUCH ;
}

imprimer "\n" ;

Saut Autres Tests


Les tests de boucle POE activeront ou désactiveront les tests en fonction des capacités de la boucle d'événements.
Les distributions et les boucles d'événements peuvent définir ces variables pour signaler quels tests sont acceptables.
fonctionner.

POE_LOOP_USES_POLL
Certaines plateformes ne prennent pas en charge sondage() sur certains types de handles de fichiers. Boucles d'événements qui
utilisé sondage() Il faut définir cette variable d'environnement à la valeur « true ». Cela entraînera les tests
pour éviter cette combinaison gênante.

PODDITÉS
Les versions précédentes de POE::Test::Loops documentaient les sections « =for poe_tests » terminées par
=cut et contenant des lignes vides. Cette syntaxe POD est incorrecte, et c'est la raison pour laquelle
skip_tests() Les fonctions sont apparues dans perldoc et sur search.cpan.org. La syntaxe suivante
C'est faux et n'aurait pas dû être utilisé. Je suis vraiment désolé.

=pour poe_tests

sous-tests de saut { ... }

=couper

La syntaxe appropriée consiste à terminer « =for poe_tests » par une ligne vide :

=pour poe_tests
sous-tests de saut {
...
}

Les tests multilignes contenant des lignes vides peuvent être spécifiés à l'aide de POD « =begin poe_tests »
terminé par "=end poe_tests".

=commencer les tests poe

sous-tests de saut {
...
}

=fin poe_tests

Les trois syntaxes ci-dessus sont prises en charge à partir de la version 1.034 de POE::Test::Loops.
La syntaxe incorrecte =for est obsolète et sera supprimée dans une future version.

Utilisez poe-gen-testsp en ligne à l'aide des services onworks.net


Serveurs et postes de travail gratuits

Télécharger des applications Windows et Linux

Commandes Linux

Ad




×
Publicité
❤ ️Achetez, réservez ou achetez ici — gratuitement, contribue à maintenir la gratuité des services.