tidied more
This commit is contained in:
@@ -13,27 +13,30 @@ mount -t ext4 /dev/vdd /root/results
|
||||
cp -a /root/student/. /tmp/
|
||||
cp -a --remove-destination /root/project/build/. /tmp/
|
||||
chmod -R 777 /tmp
|
||||
cd /tmp || exit 1
|
||||
cd /tmp
|
||||
rm -f program
|
||||
|
||||
sandbox() {
|
||||
LIMIT="$1" ; shift
|
||||
(
|
||||
ulimit -t "$LIMIT" -u 256 -n 256 -f 2048
|
||||
(
|
||||
ulimit -t 30 -u 256 -n 256 -f 2048
|
||||
timeout -s 9 30 \
|
||||
setpriv --reuid=1 --regid=1 --clear-groups --no-new-privs --inh-caps=-all \
|
||||
timeout -s 9 "$LIMIT" "$@"
|
||||
)
|
||||
}
|
||||
|
||||
sandbox 30 make >/root/results/build.log 2>&1
|
||||
echo $? >/root/results/build.status
|
||||
make -B >/root/results/build.log 2>&1
|
||||
echo $? >/root/results/build.status
|
||||
)
|
||||
|
||||
for TEST in /root/project/tests/* ; do
|
||||
[ -f "$TEST" ] || continue
|
||||
NAME="$(basename "$TEST")"
|
||||
|
||||
ARGS="/root/project/args/$NAME"
|
||||
[ -f "$ARGS" ] || ARGS=/dev/null
|
||||
|
||||
sandbox 2 "$TEST" <"$ARGS" >"/root/results/$NAME" 2>/dev/null
|
||||
echo $? >"/root/results/$NAME.status"
|
||||
cp -a --remove-destination "$TEST" /tmp/test
|
||||
chmod 755 /tmp/test
|
||||
(
|
||||
ulimit -t 2 -u 256 -n 256 -f 2048
|
||||
timeout -s 9 2 \
|
||||
setpriv --reuid=1 --regid=1 --clear-groups --no-new-privs --inh-caps=-all \
|
||||
/tmp/test <"$ARGS" >"/root/results/$NAME" 2>/dev/null
|
||||
echo $? >"/root/results/$NAME.status"
|
||||
)
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user