X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=config;h=0297a06a5dd734f38743faa8cd39e9d46f1aacb9;hb=b47a33af0224bccc9e5da80570e3526dfa7f4fb1;hp=84bf889b68dce056625b86d0eef75c4d1c78bc61;hpb=d8ffb1d8f28c456bee59730816a5ee276da76399;p=moe.git diff --git a/config b/config index 84bf889..0297a06 100644 --- a/config +++ b/config @@ -1,41 +1,172 @@ -# Configuration file for MO Evaluator -# (c) 2001 Martin Mares +# Configuration file for the MO Evaluator +# (c) 2001--2008 Martin Mares -# Directories and users -MO_ROOT=/home/mo +# The root of the whole directory hierarchy +MO_ROOT=/mo + +# User and group used by the evaluator itself EVAL_USER=mo-eval EVAL_GROUP=mo-eval + +# Test user for the sandbox. You can let mo-setup create more test users +# and then run several evaluators in parallel, each in its own sandbox. +# For testing, you can also leave TEST_USER undefined and run the sandbox +# with EVAL_USER privileges, but beware, this is INSECURE. +#TEST_USER=${TEST_USER:-mo-test1} TEST_USERS="mo-test1 mo-test2" +TEST_GROUP=mo-test -# UID range assigned to contestants -CT_UID_MIN=21000 -CT_UID_MAX=29999 +# These values are used when creating logins for eval and contestants +# (group id's are from the same range) +EVAL_UID_MIN=65000 +CT_UID_MIN=65100 +CT_UID_MAX=65199 -# Test user for sandboxing -TEST_USER=${TEST_USER:mo-test1} +# Sometimes we need to get a list of all contestants (not in the evaluator +# itself, but in various auxiliary scripts). In such cases we call mo-get-users, +# which either uses an explicit list of contestants CT_USER_LIST (usernamefullname), +# or (if undefined) scans /etc/passwd for users with UID between CT_UID_MIN and CT_UID_MAX. +CT_USER_LIST=userlist -### all of the following variables can be overriden in per-task config file +# (optional) Use remote submitting +REMOTE_SUBMIT=1 +REMOTE_SUBMIT_USER=mo-submit +REMOTE_SUBMIT_GROUP=mo-submit -# Default task type (file or interactive) -TASK_TYPE=file +### Programming language settings # Known source file extensions -EXTENSIONS="c C cpp p pas" +EXTENSIONS="c cc C cpp p pas" -# Extra compiler flags (null, but can be overriden) -EXTRA_CFLAGS= +## Variables which control compilation and execution +## (see below for values for individual languages) -# For each source extension, we must give compiler command -COMP_c='/usr/bin/gcc -O2 -g -o $EXE $EXTRA_CFLAGS $SRC' -COMP_C='/usr/bin/g++ -O2 -g -o $EXE $EXTRA_CFLAGS $SRC' -COMP_cpp="$COMP_C" -COMP_p='/usr/bin/fpc -Ci -Cr -g -O2 -So -Sg -o$EXE $EXTRA_CFLAGS $SRC' -COMP_pas="$COMP_p" +# Command used to run the compiler +COMP=false # Sandbox options used when compiling -COMP_SANDBOX_OPTS='-m65536 -t60 -w -e' +COMP_SANDBOX_OPTS='-m262144 -w60 -e -i/dev/null' + +# Sandbox initialization commands for compilation +COMP_SANDBOX_INIT= + +## Settings for individual languages + +# C +EXT_c_COMP='/usr/bin/gcc -std=gnu99 -O2 -g -o $EXE $EXTRA_CFLAGS $SRC -lm' +EXTRA_CFLAGS= + +# C++ +EXT_C_COMP='/usr/bin/g++ -O2 -g -o $EXE $EXTRA_CXXFLAGS $SRC -lm' +EXT_cpp_COMP="$EXT_C_COMP" +EXT_cc_COMP="$EXT_C_COMP" +EXTRA_CXXFLAGS= + +# Pascal +EXT_p_COMP='/usr/bin/fpc -Ci -Cr -Ct -g -O2 -Sg -o$EXE $EXTRA_PFLAGS $SRC' +EXT_pas_COMP="$EXT_p_COMP" +EXTRA_PFLAGS= + +# Translate FreePascal exit codes to names of well-known runtime errors +FREE_PASCAL_RTE=1 + +### Per-task configuration variables (default values, override in per-task config) + +# List of extra files needed for compilation. They are copied to the compiler +# sandbox from the problem's directory. +#COMP_EXTRAS="extras.h" + +## Tester settings (most can be overriden in per-test config): + +# The following variables are automatically set by the evaluator: +# PROBLEM name of the problem +# HDIR home directory of the evaluator (i.e., this file is $HDIR/config) +# PDIR directory containing problem data +# SDIR directory containing contestant's solution +# TDIR directory containing testing results +# TMPDIR directory containing temporary files +# TEST name of the current test + +# Task type: +# offline off-line task +# interactive interactive task communicating via stdio with a testing program +# open-data open-data task (i.e., we don't submit program, but output files) +TASK_TYPE=file + +# I/O type (IO_TYPE sets defaults for IN_TYPE and OUT_TYPE) +# file input from $PROBLEM.in, output to $PROBLEM.out (possible even for interactive tasks) +# stdio input from stdin, output to stdout +# none no input/output +IO_TYPE=stdio +#IN_TYPE=stdio +#OUT_TYPE=stdio + +# A list of all tests +TESTS="1 2 3 4 5 6 7 8 9 10" + +# A list of public tests (executed by submit and check scripts) +SAMPLE_TESTS="0" + +# Number of points per test +POINTS_PER_TEST=1 + +# Time limit in seconds (can be fractional, but beware of noise) +TIME_LIMIT=10 + +# Memory limit in kilobytes +MEM_LIMIT=16384 + +# Command used for filtering of program output (optional) +# If turned on, program output (*.raw) is ran through this filter and the +# checkers are applied to the output of the filter (*.out). +# Can exit with code 1 if there is a syntax error in the output. +#OUTPUT_FILTER='tr -d '\''\r'\'' <$TDIR/$TEST.raw >$TDIR/$TEST.out' + +# Command used to check output syntax (optional) +# Returns exit code 1 if syntax is wrong, 0 if correct +# fd1 is connect to evaluator log, feel free to log anything +# fd2 is an optional one-line verdict +#SYNTAX_CHECK='grep -v -- - $TDIR/$TEST.out' + +# Command used to check output correctness +# Returns exit code 1 if output is incorrect, 0 if correct +# fd1 is connect to evaluator log, feel free to log anything +# fd2 is an optional one-line verdict +# The checker can generate $TDIR/$TEST.pts to assign points irregularly +OUTPUT_CHECK='diff -bBu $TDIR/$TEST.ok $TDIR/$TEST.out' + +# Checker for interactive tasks +# Returns exit code 1 if test failed, 0 if passed +# fd0 and fd1 are connected to fd1 and fd0 of the program tested +# fd2 is an optional one-line verdict +# The checker can generate $TDIR/$TEST.pts to assign points irregularly +#IC_CHECK='$PDIR/checker $PDIR/$TEST.in $PDIR/$TEST.chk' # Sandbox options used when testing -TEST_SANDBOX_OPTS='-a2 -f -m$MEM_LIMIT -t$TIME_LIMIT' -# -w for wall clock measuring -# For stdio tasks append '-i$PROBLEM.in -o$PROBLEM.out' +TEST_SANDBOX_OPTS='-a2 -f -m$MEM_LIMIT -t$TIME_LIMIT $BOX_EXTRAS' + +# Extra options to be overridden in task configuration +BOX_EXTRAS= + +# Sandbox initialization commands +SANDBOX_INIT= + +### Debugging and testing + +# DEBUG: Let `ev' run sample tests, too. +#EV_SAMPLE=1 + +# DEBUG: Run `pedant' on all input data. Set either to `1' or to pedant's options. +#EV_PEDANT=1 + +# DEBUG: Skip checks (useful when generating output files by running model solution) +#EV_NOCHECK=1 + +# DEBUG: Skip output filters (if you suspect they are buggy) +#EV_NOFILTER=1 + +### Variables overrides (most variables can be overridden for specific tests or source extensions): + +#EXT_pas_TIME_LIMIT=100 +#TEST_1_TIME_LIMIT=100 +#EXT_pas_TEST_1_TIME_LIMIT=100