Une plate-forme qui vous permet de soumettre et de tester des extraits de code en ligne pour la pratique.
LaunchTestrun dépend du logiciel suivant à exécuter:
Pour installer ces packages sur Ubuntu ou Debian, veuillez exécuter les commandes suivantes:
Pour installer les chaînes d'outils requises, exécutez
sudo apt-get update
sudo apt-get install default-jre default-jdk build-essential python2 python3 mono-devel
release/ vers le répertoire webapps/ dans votre serveur Apache Tomcat (si vous avez utilisé les étapes précédentes, Tomcat doit être installé dans ~ / LaunchTestrun) et passez à l'étape 5.LaunchTestRun.war .webapps/ .bin/catalina.sh dans votre installation Apache Tomcat par le catalina.sh dans ce répertoire (Problèmes de correctifs avec Java 9 et Tomcat 8).bin/ répertoire dans votre installation Tomcat exécutable en exécutant chmod +x *.sh dans le bin/ répertoire de votre installation Tomcat.bin/startup.sh dans votre répertoire d'installation Tomcat pour démarrer LaunchTestrun. Si vous souhaitez plus de sécurité sur votre installation LaunchTestrun (fortement recommandé car d'autres exécuteront du code sur votre serveur!), Vous devez créer un nouvel utilisateur qui n'a que des autorisations pour exécuter et accéder aux fichiers dans le répertoire d'installation TomCat. Pour sécuriser votre configuration, après avoir exécuté bin/startup.sh la première fois après avoir déplacé le fichier .war, exécutez les commandes suivantes (remplacez tout le texte entre parenthèses par des emplacements applicables à votre installation spécifique):
su root
chmod 755 [ YOUR TOMCAT DIRECTORY HERE ] -R
cd [ YOUR TOMCAT DIRECTORY HERE ]
useradd launchtestrun
mkdir work
touch webapps/LaunchTestRun/forensics.txt
chown launchtestrun:launchtestrun -R work
chown launchtestrun:launchtestrun -R logs
chown launchtestrun:launchtestrun -R webapps/LaunchTestRun
chown launchtestrun:launchtestrun -R webapps/LaunchTestRun/upload
chown launchtestrun:launchtestrun -R webapps/LaunchTestRun/forensics.txt
Après avoir défini ces autorisations, lors du démarrage du serveur LaunchTestrun, passez à l'utilisateur launchtestrun avant d'exécuter startup.sh avec les commandes suivantes:
su launchtestrun
cd [ YOUR TOMCAT DIRECTORY HERE ]/bin
./startup.sh
Pour afficher un journal médico-légal de tous les fichiers téléchargés et exécutés (contenant IP, entrée, sortie, hachage MD5, temps téléchargé, etc.), affichez webapps/LaunchTestRun/forensics.txt .
Remarque: il est recommandé d'incitaliser un référentiel GIT dans webapps/LaunchTestRun/problems afin que les problèmes puissent être téléchargés, modifiés et revus si nécessaire.
webapps/LaunchTestRun/problems dans votre répertoire Apache Tomcat. Créez un nouveau répertoire avec la structure suivante: [+] Name of problem
|- config.json
|- judge.in
|- judge.out
|- sample.in
|- sample.out
config.json doit contenir les données suivantes:
{
"cpid":"12345",
"title":"Sample Tile 1",
"description":"Test Problem Description",
"pdf":"http://www.pdfsite.org/files/test.pdf",
"setinfo":"Fall Competition 2019",
"samplein":"sample.in",
"sampleout":"sample.out",
"judgein":"judge.in",
"judgeout":"judge.out",
"inputname":"input.txt",
"timeout":"2000"
}
Où:
cpid est l'ID # pour le problème que vous souhaitez définir.title est le titre du problème que vous souhaitez définir.description est la description du problème que vous souhaitez définir.pdf est le lien URL vers le fichier PDF que vous souhaitez afficher avec le problème.setinfo est les informations sur l'ensemble de problèmes que le problème que vous souhaitez définir vient.samplein est le nom de l'exemple de fichier d'entrée. (L'entrée donnée au programme téléchargé par l'utilisateur)sampleout est le nom de l'exemple de fichier de sortie. (La sortie attendue pour l'entrée)judgein est le nom du dossier de saisie du juge. (L'entrée donnée au programme téléchargé par l'utilisateur)judgeout est le nom du dossier de sortie du juge. (La sortie attendue pour l'entrée)inputname est le nom du fichier d'entrée que le programme téléchargé par l'utilisateur lira, que le fichier d'entrée de l'exemple / juge sera renommé.timeout est un entier définissant le nombre de millisecondes que le programme sera attribué à exécuter avant une résiliation forcée.webapps/LaunchTestRun/settings.json , qui contient les chemins dans lesquels LaunchTestrun recherchera les compilateurs. Le serveur LaunchTestrun est accessible par défaut à partir de: http://127.0.0.1:8080/LaunchTestRun/index.html/ après avoir été configuré avec Tomcat dans les sections précédentes. Une liste de problèmes ajoutés peut être accessible par défaut de: http://127.0.0.1:8080/LaunchTestRun/listproblems.html/ .