-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcheck_sol.cfg
45 lines (41 loc) · 1.69 KB
/
check_sol.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/bin/bash
# konfiguracja programu check_sol
#################################
# jesli zmienna o nazwie $1 jest nieustawiona, wstaw $2
function set_if_null
{
if [ -z "${!1+x}" ]; then
eval $1=\"$2\"
fi
}
# domyślny program sprawdzający
DEFAULT_CHECKER='~/.check_sol/default_compare'
# ścieżka do programu time
TIMEPRG='/usr/bin/time'
# domyślne kompilatory i ich flagi
set_if_null C "gcc"
set_if_null CFLAGS "-O2 -Wall -Wunused -Wformat -Wfloat-equal -Wsequence-point"
set_if_null CXX "g++"
set_if_null CXXFLAGS "$CFLAGS -Weffc++ -std=c++0x"
set_if_null PPC "ppc386"
set_if_null PASFLAGS "-O2 -XS -Xt"
# znaki sterujące kolorów wyjścia
# można wykomentować tę sekcję celem uzyskania monochromatycznego wyjścia
C_RST="$(echo -en "\033[m")"
# uwaga: poniższe powinny mieć tę samą liczbę znaków
C_DRK="$(echo -en "${C_RST}\033[1;30m")" # numery testów
C_EMP="$(echo -en "${C_RST}\033[1;37m")" # wyróżniony tekst
C_MEM="$(echo -en "${C_RST}\033[0;36m")" # kolumna PAMIĘĆ
C_TIM="$(echo -en "${C_RST}\033[0;33m")" # kolumna CZAS
C_AC="$(echo -en "\033[30m\033[42m")" # wynik prawidłowy
C_TL="$(echo -en "\033[31m\033[43m")" # przekroczenie czasu
C_ML="$(echo -en "\033[31m\033[46m")" # przekroczenie pamięci
C_WA="$(echo -en "\033[30m\033[41m")" # zła odpowiedź
C_RE="$(echo -en "\033[31m\033[47m")" # błąd wykonania
C_INT="$(echo -en "\033[31m\033[40m")" # błąd wewnętrzny
C_GEN="$(echo -en "\033[32m\033[44m")" # generowanie testu
# szerokosc pól wyników
FWD_COL=13 # offset zależny od liczby znaków w powyższych kodach, żeby printf "% Ns" działał dobrze
FWD_MEM=$[10+FWD_COL] # kolumna PAMIĘĆ
FWD_TIM=$[8+FWD_COL] # kolumna CZAS
FWD_RES=$[6+FWD_COL] # kolumna WYNIK