From: Martin Mares Date: Thu, 15 May 2008 10:51:03 +0000 (+0200) Subject: Moved the main config file to cf/eval. X-Git-Tag: python-dummy-working~187 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=4b4a4ee2d962681c449a6cf62e75e72016d51cf4;p=eval.git Moved the main config file to cf/eval. --- diff --git a/config b/config deleted file mode 100644 index 0c56c5b..0000000 --- a/config +++ /dev/null @@ -1,179 +0,0 @@ -# Configuration file for the MO Evaluator -# (c) 2001--2008 Martin Mares - -# 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 - -# 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 - -# 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 - -# (optional) Use remote submitting -REMOTE_SUBMIT=1 -REMOTE_SUBMIT_USER=mo-submit -REMOTE_SUBMIT_GROUP=mo-submit - -### Programming language settings - -# Known source file extensions -EXTENSIONS="c cc C cpp p pas" - -# Some of the extensions can be aliases for other extensions -ALIAS_EXT_cc=cpp -ALIAS_EXT_C=cpp -ALIAS_EXT_p=pas - -## Variables which control compilation and execution -## (see below for values for individual languages) - -# Command used to run the compiler -COMP=false - -# Sandbox options used when compiling -COMP_SANDBOX_OPTS='-m262144 -w60 -e -i/dev/null' - -# Extra per-language sandbox options used when testing -LANG_SANDBOX_OPTS= - -# Translation of runtime errors: a function, which receives the exit code as an argument and -# if it is recognized as a runtime error code, it prints its name to the standard output. -EXIT_CODE_HOOK= - -# Hooks which can alter the contents of the sandbox in $BOXDIR before/after compilation/running -PRE_COMPILE_HOOK= -POST_COMPILE_HOOK= -PRE_RUN_HOOK= -POST_RUN_HOOK= - -## 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_cpp_COMP='/usr/bin/g++ -O2 -g -o $EXE $EXTRA_CXXFLAGS $SRC -lm' -EXTRA_CXXFLAGS= - -# Pascal -EXT_pas_COMP='/usr/bin/fpc -Ci -Cr -Ct -g -O2 -Sg -o$EXE $EXTRA_PFLAGS $SRC' -EXTRA_PFLAGS= -EXT_pas_EXIT_CODE_HOOK=fpc-exit-code - -### 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 $LANG_SANDBOX_OPTS $BOX_EXTRAS' - -# Extra options to be overridden in task configuration -BOX_EXTRAS= - -### 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 diff --git a/eval/Makefile b/eval/Makefile index 23dc796..ad39641 100644 --- a/eval/Makefile +++ b/eval/Makefile @@ -7,3 +7,6 @@ DATAFILES+=$(o)/eval/libeval.sh $(o)/eval/iwrapper: $(o)/eval/iwrapper.o $(o)/eval/ev: $(s)/eval/ev.sh + +CONFIGS+=eval +run/cf/eval: $(o)/eval/eval.cf diff --git a/eval/ev.sh b/eval/ev.sh index 5750f0b..94c08a3 100755 --- a/eval/ev.sh +++ b/eval/ev.sh @@ -3,12 +3,12 @@ # (c) 2001--2008 Martin Mares set -e -if [ ! -f config -o ! -f lib/libeval.sh ] ; then +if [ ! -f cf/eval -o ! -f lib/libeval.sh ] ; then echo "Unable to find evaluator files!" exit 1 fi . lib/libeval.sh -. config +. cf/eval while parse-cmdline "$1" ; do shift done diff --git a/eval/eval.cf b/eval/eval.cf new file mode 100644 index 0000000..0c56c5b --- /dev/null +++ b/eval/eval.cf @@ -0,0 +1,179 @@ +# Configuration file for the MO Evaluator +# (c) 2001--2008 Martin Mares + +# 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 + +# 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 + +# 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 + +# (optional) Use remote submitting +REMOTE_SUBMIT=1 +REMOTE_SUBMIT_USER=mo-submit +REMOTE_SUBMIT_GROUP=mo-submit + +### Programming language settings + +# Known source file extensions +EXTENSIONS="c cc C cpp p pas" + +# Some of the extensions can be aliases for other extensions +ALIAS_EXT_cc=cpp +ALIAS_EXT_C=cpp +ALIAS_EXT_p=pas + +## Variables which control compilation and execution +## (see below for values for individual languages) + +# Command used to run the compiler +COMP=false + +# Sandbox options used when compiling +COMP_SANDBOX_OPTS='-m262144 -w60 -e -i/dev/null' + +# Extra per-language sandbox options used when testing +LANG_SANDBOX_OPTS= + +# Translation of runtime errors: a function, which receives the exit code as an argument and +# if it is recognized as a runtime error code, it prints its name to the standard output. +EXIT_CODE_HOOK= + +# Hooks which can alter the contents of the sandbox in $BOXDIR before/after compilation/running +PRE_COMPILE_HOOK= +POST_COMPILE_HOOK= +PRE_RUN_HOOK= +POST_RUN_HOOK= + +## 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_cpp_COMP='/usr/bin/g++ -O2 -g -o $EXE $EXTRA_CXXFLAGS $SRC -lm' +EXTRA_CXXFLAGS= + +# Pascal +EXT_pas_COMP='/usr/bin/fpc -Ci -Cr -Ct -g -O2 -Sg -o$EXE $EXTRA_PFLAGS $SRC' +EXTRA_PFLAGS= +EXT_pas_EXIT_CODE_HOOK=fpc-exit-code + +### 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 $LANG_SANDBOX_OPTS $BOX_EXTRAS' + +# Extra options to be overridden in task configuration +BOX_EXTRAS= + +### 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