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

MAJ en cours

parent e204f0a0
......@@ -178,6 +178,25 @@ notre programme
}
}
#+END_SRC
En outre, l'exécution elle même est controllée par 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) ;
- =IOlimit= : taille maximale en blocs d'un fichier créé par le test (10 par défaut). La taille du
bloc dépend du système mais est souvent de 512 octets.
L'exemple suivant comprend une petite série de tests qui ne passe que si le programme s'exécute dans
les limites imposées :
#+BEGIN_SRC perl :exports code
{
"limits.sh" => {
tests => {
test_1 => {}, # limites par défaut
test_2 => { timeout => 2, IOlimit => 100 },
test_3 => { timeout => 30, IOlimit => 1 }
}
}
}
#+END_SRC
** Valeurs attendues
......@@ -311,6 +330,15 @@ cut -d' ' -s -f$1-$2
}
};
$cases->{"limits.sh"} = {
show => 1,
tests => {
test_1 => {}, # limites par défaut
test_2 => { timeout => 2, IOlimit => 100 },
test_3 => { timeout => 30, IOlimit => 1 }
}
};
my $validator = q{#!/bin/bash
[ -f $1 -a -x $1 ]
};
......@@ -361,11 +389,15 @@ l'activité et sont gérés par les réglages suivants :
L'exécution et la compilation sont assurés par des programmes qui disposent de deux variables
d'environnement :
- =NAME= : le nom du programme exécutable (à produire ou à exécuter) ;
- =NAME= : le nom du programme exécutable (à produire ou à exécuter), déterminé selon le contexte ;
- =FILES= : l'ensemble des fichiers impliqués (donné par le réglage =files=).
et sont donnés par les réglages suivants, qui sont des programmes permettant :
- =compile= : de produire le programme de nom =NAME=
- =execute= : d'exécuter le programme de nom =NAME=
- =compile= : de produire le programme de nom =$NAME=, en l'absence de ce réglage, le programme n'est
pas compilé (programme écrit dans un langage interprété, par exemple) ;
- =execute= : d'exécuter le programme de nom =$NAME=, en l'absence de ce réglage, le programme
=$NAME= est exécuté directement. Si ce réglage a une valeur fausse (0 ou =undef=), le programme
n'est pas exécuté (utile lorsque nous souhaitons juste compiler l'exécutable et laisser un
validateur lancer les exécutions, par exemple).
Bien entendu, même si un contenu scalaire vient plutôt à l'idée pour ces programmes, typiquement
quelques lignes de shell, il peuvent néanmoins être spécifiés plus en détails et être eux même
compilés ou exécutés de manière particulière. Cela peut continuer ainsi sans limite particulière
......
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