AnglaisFrançaisEspagnol

Ad


Icône de favori OnWorks

tesh - En ligne dans le Cloud

Exécutez tesh 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 tesh qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples 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


tesh - shell de test

SYNOPSIS


teste [OPTION]... [DOSSIER] ...

DESCRIPTION


C'est l'outil TESH. Il constitue un shell de test, c'est-à-dire une sorte de shell spécialisé
exécuter des tests. La liste des actions à entreprendre est analysée à partir de fichiers nommés testsuite.

OPTIONS


--cd some/directory : demande à tesh de changer de répertoire de travail avant
lancer les tests
--setenv var=value : définit une variable d'environnement spécifique
--cfg arg : ajoute le paramètre --cfg=arg à chaque ligne de commande
--enable-coverage : ignore les lignes de sortie commençant par "profiling:"

TESTER DOSSIER SYNTAXE


Voici la syntaxe de ces fichiers :

Le type de chaque ligne est donné par le premier caractère (le deuxième caractère doit être vide et est
ignoré):

Commande `$' à exécuter au premier plan
`&' commande à exécuter en arrière-plan
`<' entrée à passer à la commande
`>' sortie attendue de la commande
`!' métacommande, qui peut être l'une des suivantes :
'timeout' |non
's'attendre à un signal'
" s'attendre à un retour "
"sortie"
`setenv = '
`p' une chaîne à imprimer
`P' une chaîne à imprimer au niveau CRITIQUE (facilité de journalisation)

Si la sortie attendue ne correspond pas à ce que la commande crache, TESH produira une erreur
montrant le diff (voir OUTPUT ci-dessous).

IO COMMANDES


Les lignes < et > ajoutent IO à la commande définie dans le bloc courant (les blocs sont séparés
par des lignes vides). Il est possible de placer ces lignes soit après la commande, soit avant.
La différence entre les deux morceaux suivants est principalement cosmétique dans vos suites de test,
TESH s'en moque. (cf IO-orders.tesh)

$ chat
< TOTO
> TOTO

> TOTO
$ chat
< TOTO

Néanmoins, il est possible d'avoir plusieurs commandes dans le même bloc, mais aucune
peut avoir n'importe quelle sortie. Cela peut sembler un peu restrictif, car on pourrait dire qu'une commande obtient
toutes les E/S jusqu'à la prochaine commande, mais j'ai peur des erreurs telles que les suivantes :

$ cd tout
> TOTO
$ mkfile fichier

TOTO sera passé à la commande cd, où l'utilisateur veut clairement le passer au
commande intégrée mkfile (voir ci-dessous).

FLUX REDIRECTION


Les redirections de flux (les constructions ">", "<" et "|" dans sh) ne sont pas encore implémentées dans tesh.
C'est un peu restrictif, mais bon, patch bienvenu...

La situation dans laquelle il est principalement problématique est de créer un fichier temporaire. Les
la solution consiste à utiliser la commande intégrée "mkfile", comme dans l'exemple suivant : $ mkfile
myFile > du contenu > dans le fichier

Cela créera un fichier appelé myFile (premier argument de la commande mkfile). Son contenu
sera toute l'entrée fournie à la commande.

RETOUR CODE


TESH crache un message d'erreur approprié lorsque les fils ne retournent pas 0 comme code retour (cf.
catch-return.tesh) et renvoie le code+40 lui-même.

Il est également possible de spécifier qu'une commande donnée doit retourner une autre valeur. Pour ça,
utilisez la métacommande "expect return", qui prend un entier comme argument. Le changement seulement
appliquer à la commande suivante (cf. set-return.tesh).

SIGNAUX


TESH détecte quand l'enfant est tué par un signal (comme sur les erreurs de segmentation) et crache un
message d'erreur approprié (cf. catch-signal.tesh).

Il est également possible de spécifier qu'une commande donnée doit élever un signal donné. Pour ça,
utilisez la métacommande « expect signal ». Il prend le nom du signal comme argument. Le changement seulement
appliquer à la commande suivante (cf. set-signal.tesh).

TEMPS MORT


Par défaut, toutes les commandes ont 5 secondes pour s'exécuter (cf. catch-timeout.tesh). Vous pouvez
changez cela avec le "timeout", qui prend un entier comme argument. Le changement s'applique uniquement
à la commande suivante (cf. set-timeout.tesh). Si vous passez "non" en argument, la commande
ne peut pas expirer.

SORTIE


Par défaut, la sortie des commandes est comparée à celle attendue, et une erreur est
soulevée en cas de divergence. Métacommandes pour changer cela :
"output ignorer" -> sortie complètement ignorée
"affichage de la sortie" -> sortie affichée (mais non vérifiée)
"sortie de sortie" -> trie l'affichage avant de le vérifier (voir ci-dessous)

TRI SORTIE


Trier la sortie semble être une idée étrange, mais c'est obligatoire dans SimGrid puisque le
les processus s'exécutent dans le désordre à n'importe quel point de planification (c'est-à-dire que tous les processus sont prêts à s'exécuter à
temps t simulé exécuté en parallèle). Pour garantir que les sorties du simulateur correspondent toujours, nous
devez trier la sortie avant de la comparer.

Nous nous attendons à ce que les simulateurs s'exécutent avec cet argument de formatage de journal :
--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n Ensuite, tesh trie la chaîne sur les 19 premiers caractères
seulement, et est stable lorsque les débuts de ligne sont égaux. Cela devrait garantir que :
(1) le test est efficace (pas de faux positif, pas de faux négatif)
(2) les points de planification sont séparés les uns des autres
(3) à chaque point de planification, les processus sont séparés les uns des autres
(4) l'ordre de ce que dit un processus donné à un ordonnancement donné
point est conservé.

C'est bien sûr très orienté SimGrid, brisant la généralité de tesh, mais qu'importe,
réellement?

Si vous souhaitez modifier la longueur du préfixe utilisé pour le tri, précisez-le simplement après
la directive de tri de sortie, comme ceci :

! tri de sortie 22

ENVIRONNEMENT


Vous pouvez ajouter du contenu à l'environnement des processus testés avec la métacommande setenv.
Cela fonctionne comme prévu. Par exemple:
"setenv CHEMIN=/ bin"

Utilisez tesh en ligne en utilisant les services onworks.net


Serveurs et postes de travail gratuits

Télécharger des applications Windows et Linux

Commandes Linux

Ad