Commit 932aac93 authored by Guillaume Huard's avatar Guillaume Huard
Browse files

MAJ doc limites

parent 65560971
......@@ -182,25 +182,22 @@ En outre, l'exécution elle même, lorsqu'il s'agit du code soumis par l'étudia
deux réglages évitant une trop grande utilisation des ressources disponibles :
- =timeout= : valeur en secondes déterminant le temps alloué au test pour son exécution (10 par
défaut). Si le test dépasse le temps imparti, il est tué par le signal 9 (SIGKILL) ;
- =IOlimit= : taille maximale en blocs d'un fichier créé par le test (100 blocs par défaut). La taille du
bloc dépend du mode de bash elle est de 512 ou 1024 octets. Si un processus associé au test écrit
plus que cette limite dans un fichier, il reçoit le signal 25 (SIGXFSZ) qui, par défaut, met fin au processus en
question. Attention, cela ne met pas forcément fin au test : typiquement si le programme soumis
par l'étudiant est un script shell, les commandes sont exécutées dans des processus distincts et
si l'une d'elles se termine par le signal 25 ce n'est pas forcément le cas du script soumis
(comportement par défaut, qu'il est souhaitable de conserver dans un contexte d'apprentissage de
la programmation shell).
- =output_limit= : taille à partir de laquelle la sortie standard écrite par le programme
soumis n'est plus prise en compte (100Ko par défaut). Cette activité travaille intégralement en
mémoire, ce réglage est present pour que l'activité ne plante pas sans donner de note après avoir
tenté de lire la sortie d'une boucle d'affichage infinie (par exemple).
- =error_limit= : similaire à =output_limit= pour la sortie d'erreur standard.
L'exemple suivant comprend une petite série de tests avec limites, qui passe pour tout programme
s'exécutant en moins de 2 secondes et ayant un code de retour nul. En outre, pour les tests 2 et 3,
si le programme ne pourra pas créer de fichier de plus de 1 bloc :
seul le premier octet de la sortie standard sera lu :
#+BEGIN_SRC perl :exports code
{
"limites.sh" => {
code => 0, signal => 0,
tests => {
test_1 => { timeout => 2 },
test_2 => { IOlimit => 1 },
test_3 => { IOlimit => 1, timeout => 2 }
test_2 => { output_limit => 1 },
test_3 => { output_limit => 1, timeout => 2 }
}
}
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment