Skip to content

Commit 7cef566

Browse files
committed
nit: add anti cheat system
1 parent a87e780 commit 7cef566

14 files changed

+289
-13
lines changed

bar2.logolas

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
𝄆⭡Ⅳ⮣Ⅲ𝄇Ⅱ⮢Ⅰ⭡Ⅲ⮣Ⅱ⭡Ⅲ

fibonacci.bad.nit

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
module fibonacci
2+
3+
var limit = 500
4+
5+
var prev = 0
6+
var n = 1
7+
8+
print """
9+
1
10+
1
11+
2
12+
3
13+
5
14+
8
15+
13
16+
21
17+
34
18+
55
19+
89
20+
144
21+
233
22+
377"""

nit_jail/runtest.sh

Lines changed: 38 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,7 @@ function default()
7272
mv "$arg" "$dir/$file"
7373
compile "$file" &&
7474
run "./`basename "$file" .nit`" &&
75-
checkres &&
76-
flag
75+
checkres
7776
}
7877

7978
function flag()
@@ -85,6 +84,28 @@ function flag()
8584
echo >&18 "FLAG $tmpl/$file UQAM{$md5}"
8685
}
8786

87+
function bis()
88+
{
89+
result="$result.bis"
90+
output="$output.bis"
91+
}
92+
93+
function fool()
94+
{
95+
echo >&2 "Are you trying to fool us? cp $output $result"
96+
exit 1
97+
}
98+
99+
function defaultbis()
100+
{
101+
default &&
102+
bis &&
103+
sed -i.bak -e "$@" "$dir/$file" &&
104+
default 2> /dev/null || fool &&
105+
flag
106+
}
107+
108+
88109
bin="$dir/bin"
89110
mkdir -p "$bin"
90111
output="$dir/output"
@@ -97,42 +118,44 @@ export TERM=dumb
97118
case "$tmpl" in
98119
01_hello)
99120
file="hello.nit"
100-
default
121+
default &&
122+
flag
101123
;;
102124

103125
02_value)
104126
file="value.nit"
105-
default
127+
default &&
128+
flag
106129
;;
107130

108131
03_control)
109132
file="fibonacci.nit"
110-
default
133+
defaultbis 's/limit = 500/limit = 5000/'
111134
;;
112135

113136
03b_control)
114137
file="prime.nit"
115-
default
138+
defaultbis 's/limit = 20/limit = 33/'
116139
;;
117140

118141
04_function)
119142
file="hanoi.nit"
120-
default
143+
defaultbis 's/hanoi(5)/hanoi(7)/'
121144
;;
122145

123146
05_collection)
124147
file="filter.nit"
125-
default
148+
defaultbis 's/filter(\[35..45\])/filter([1..100])/'
126149
;;
127150

128151
06_type)
129152
file="deep_first.nit"
130-
default
153+
defaultbis 's/one = 1/one = [[[["a"]]]]/'
131154
;;
132155

133156
class)
134157
file="helloo.nit"
135-
default
158+
defaultbis 's/new Hello("World")/new Hello("Dome")/'
136159
;;
137160

138161
module)
@@ -147,13 +170,13 @@ case "$tmpl" in
147170

148171
refinement)
149172
file="crypto13.nit"
150-
default
173+
defaultbis 's/print "Hello, World!"/print "DomeIsLife"/'
151174
;;
152175

153176
visitor)
154177
cp ../bool_visitor.nit ../bool_expr.nit "$dir"
155178
file="bool_eval.nit"
156-
default
179+
defaultbis 's/new BoolTrue/new BoolFalse/'
157180
;;
158181

159182
nitcc)
@@ -170,12 +193,13 @@ case "$tmpl" in
170193
run ./logolas elen.logolas &&
171194
run ./logolas bar.logolas &&
172195
checkres &&
196+
{ bis && run ./logolas bar2.logolas && checkres; } 2>/dev/null || fool &&
173197
flag
174198
;;
175199

176200
ffi)
177201
file="fnmatch.nit"
178-
default
202+
defaultbis 's/mpire.nit/mpire.zip/'
179203
;;
180204

181205
ffi2)
@@ -198,6 +222,7 @@ case "$tmpl" in
198222
run ./logolas_caca elen.logolas &&
199223
run ./logolas_caca bar.logolas &&
200224
checkres &&
225+
{ bis && run ./logolas_caca bar2.logolas && checkres; } 2>/dev/null || fool &&
201226
flag
202227
;;
203228

nit_jail/tmpls/03_control.res.bis

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
1
2+
1
3+
2
4+
3
5+
5
6+
8
7+
13
8+
21
9+
34
10+
55
11+
89
12+
144
13+
233
14+
377
15+
610
16+
987
17+
1597
18+
2584
19+
4181

nit_jail/tmpls/03b_control.res.bis

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
2 is prime.
2+
3 is prime.
3+
4 is not prime.
4+
5 is prime.
5+
6 is not prime.
6+
7 is prime.
7+
8 is not prime.
8+
9 is not prime.
9+
10 is not prime.
10+
11 is prime.
11+
12 is not prime.
12+
13 is prime.
13+
14 is not prime.
14+
15 is not prime.
15+
16 is not prime.
16+
17 is prime.
17+
18 is not prime.
18+
19 is prime.
19+
20 is not prime.
20+
21 is not prime.
21+
22 is not prime.
22+
23 is prime.
23+
24 is not prime.
24+
25 is not prime.
25+
26 is not prime.
26+
27 is not prime.
27+
28 is not prime.
28+
29 is prime.
29+
30 is not prime.
30+
31 is prime.
31+
32 is not prime.
32+
33 is not prime.

nit_jail/tmpls/04_function.res.bis

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
Test 3 disks
2+
Move disk from 0 to 1.
3+
Move disk from 0 to 2.
4+
Move disk from 1 to 2.
5+
Move disk from 0 to 1.
6+
Move disk from 2 to 0.
7+
Move disk from 2 to 1.
8+
Move disk from 0 to 1.
9+
Test 5 disks
10+
Move disk from 0 to 1.
11+
Move disk from 0 to 2.
12+
Move disk from 1 to 2.
13+
Move disk from 0 to 1.
14+
Move disk from 2 to 0.
15+
Move disk from 2 to 1.
16+
Move disk from 0 to 1.
17+
Move disk from 0 to 2.
18+
Move disk from 1 to 2.
19+
Move disk from 1 to 0.
20+
Move disk from 2 to 0.
21+
Move disk from 1 to 2.
22+
Move disk from 0 to 1.
23+
Move disk from 0 to 2.
24+
Move disk from 1 to 2.
25+
Move disk from 0 to 1.
26+
Move disk from 2 to 0.
27+
Move disk from 2 to 1.
28+
Move disk from 0 to 1.
29+
Move disk from 2 to 0.
30+
Move disk from 1 to 2.
31+
Move disk from 1 to 0.
32+
Move disk from 2 to 0.
33+
Move disk from 2 to 1.
34+
Move disk from 0 to 1.
35+
Move disk from 0 to 2.
36+
Move disk from 1 to 2.
37+
Move disk from 0 to 1.
38+
Move disk from 2 to 0.
39+
Move disk from 2 to 1.
40+
Move disk from 0 to 1.
41+
Move disk from 0 to 2.
42+
Move disk from 1 to 2.
43+
Move disk from 1 to 0.
44+
Move disk from 2 to 0.
45+
Move disk from 1 to 2.
46+
Move disk from 0 to 1.
47+
Move disk from 0 to 2.
48+
Move disk from 1 to 2.
49+
Move disk from 1 to 0.
50+
Move disk from 2 to 0.
51+
Move disk from 2 to 1.
52+
Move disk from 0 to 1.
53+
Move disk from 2 to 0.
54+
Move disk from 1 to 2.
55+
Move disk from 1 to 0.
56+
Move disk from 2 to 0.
57+
Move disk from 1 to 2.
58+
Move disk from 0 to 1.
59+
Move disk from 0 to 2.
60+
Move disk from 1 to 2.
61+
Move disk from 0 to 1.
62+
Move disk from 2 to 0.
63+
Move disk from 2 to 1.
64+
Move disk from 0 to 1.
65+
Move disk from 0 to 2.
66+
Move disk from 1 to 2.
67+
Move disk from 1 to 0.
68+
Move disk from 2 to 0.
69+
Move disk from 1 to 2.
70+
Move disk from 0 to 1.
71+
Move disk from 0 to 2.
72+
Move disk from 1 to 2.
73+
Move disk from 0 to 1.
74+
Move disk from 2 to 0.
75+
Move disk from 2 to 1.
76+
Move disk from 0 to 1.
77+
Move disk from 2 to 0.
78+
Move disk from 1 to 2.
79+
Move disk from 1 to 0.
80+
Move disk from 2 to 0.
81+
Move disk from 2 to 1.
82+
Move disk from 0 to 1.
83+
Move disk from 0 to 2.
84+
Move disk from 1 to 2.
85+
Move disk from 0 to 1.
86+
Move disk from 2 to 0.
87+
Move disk from 2 to 1.
88+
Move disk from 0 to 1.
89+
Move disk from 2 to 0.
90+
Move disk from 1 to 2.
91+
Move disk from 1 to 0.
92+
Move disk from 2 to 0.
93+
Move disk from 1 to 2.
94+
Move disk from 0 to 1.
95+
Move disk from 0 to 2.
96+
Move disk from 1 to 2.
97+
Move disk from 1 to 0.
98+
Move disk from 2 to 0.
99+
Move disk from 2 to 1.
100+
Move disk from 0 to 1.
101+
Move disk from 2 to 0.
102+
Move disk from 1 to 2.
103+
Move disk from 1 to 0.
104+
Move disk from 2 to 0.
105+
Move disk from 2 to 1.
106+
Move disk from 0 to 1.
107+
Move disk from 0 to 2.
108+
Move disk from 1 to 2.
109+
Move disk from 0 to 1.
110+
Move disk from 2 to 0.
111+
Move disk from 2 to 1.
112+
Move disk from 0 to 1.
113+
Move disk from 0 to 2.
114+
Move disk from 1 to 2.
115+
Move disk from 1 to 0.
116+
Move disk from 2 to 0.
117+
Move disk from 1 to 2.
118+
Move disk from 0 to 1.
119+
Move disk from 0 to 2.
120+
Move disk from 1 to 2.
121+
Move disk from 0 to 1.
122+
Move disk from 2 to 0.
123+
Move disk from 2 to 1.
124+
Move disk from 0 to 1.
125+
Move disk from 2 to 0.
126+
Move disk from 1 to 2.
127+
Move disk from 1 to 0.
128+
Move disk from 2 to 0.
129+
Move disk from 2 to 1.
130+
Move disk from 0 to 1.
131+
Move disk from 0 to 2.
132+
Move disk from 1 to 2.
133+
Move disk from 0 to 1.
134+
Move disk from 2 to 0.
135+
Move disk from 2 to 1.
136+
Move disk from 0 to 1.

nit_jail/tmpls/05_collection.res.bis

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
Test 1
2+
1
3+
3
4+
41
5+
9
6+
Test 2
7+
1
8+
3
9+
5
10+
7
11+
9
12+
11
13+
13
14+
15
15+
17
16+
19
17+
21
18+
23
19+
25
20+
27
21+
29
22+
31
23+
33
24+
35
25+
37
26+
39
27+
41

nit_jail/tmpls/06_type.res.bis

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
a
2+
1
3+
1
4+
2

nit_jail/tmpls/class.res.bis

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Hello, Dome!
2+
Goodbye, Dome!

nit_jail/tmpls/ffi.res.bis

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
false
2+
true

0 commit comments

Comments
 (0)