Skip to content

Commit d396f30

Browse files
committed
Test more language variants in communication
1 parent dd86dfa commit d396f30

File tree

1 file changed

+41
-27
lines changed

1 file changed

+41
-27
lines changed

cmstestsuite/Tests.py

Lines changed: 41 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -53,18 +53,32 @@
5353
LANG_PYPY3 = "Python 3 / PyPy"
5454
LANG_RUST = "Rust"
5555
LANG_C_SHARP = "C# / Mono"
56+
5657
ALL_LANGUAGES = (
57-
LANG_CPP, LANG_CPP14, LANG_CPP17, LANG_CPP20, LANG_C, LANG_HS, LANG_JAVA, LANG_PASCAL,
58-
LANG_PHP, LANG_PYTHON3, LANG_PYPY3, LANG_RUST, LANG_C_SHARP
59-
)
60-
NON_INTERPRETED_LANGUAGES = (
61-
LANG_C, LANG_CPP, LANG_CPP14, LANG_CPP17, LANG_CPP20, LANG_PASCAL
62-
)
63-
COMPILED_LANGUAGES = (
64-
LANG_C, LANG_CPP, LANG_CPP14, LANG_CPP17, LANG_CPP20, LANG_PASCAL, LANG_JAVA,
65-
LANG_PYTHON3, LANG_PYPY3, LANG_HS, LANG_RUST, LANG_C_SHARP
58+
LANG_C,
59+
LANG_C_SHARP,
60+
LANG_CPP, LANG_CPP14, LANG_CPP17, LANG_CPP20,
61+
LANG_HS,
62+
LANG_JAVA,
63+
LANG_PASCAL,
64+
LANG_PHP,
65+
LANG_PYTHON3, LANG_PYPY3,
66+
LANG_RUST,
6667
)
6768

69+
# Languages which support compilation with a manager/grader.
70+
# TODO: this should be the same as `ALL_LANGUAGES`.
71+
MANAGER_LANGUAGES = [
72+
lang for lang in ALL_LANGUAGES if lang not in (LANG_HS, LANG_PHP, LANG_RUST)
73+
]
74+
75+
# Languages for which solutions to be linked to a stub for communication tasks
76+
# are present under `code/`.
77+
# TODO: this should be the same as `ALL_LANGUAGES`.
78+
COMMUNICATION_LANGUAGES = [
79+
lang for lang in MANAGER_LANGUAGES if lang not in (LANG_C_SHARP,)
80+
]
81+
6882
ALL_TESTS = [
6983

7084
# Correct solutions to batch tasks.
@@ -172,7 +186,8 @@
172186

173187
Test('compile-fail',
174188
task=batch_fileio, filenames=['compile-fail.%l'],
175-
languages=COMPILED_LANGUAGES,
189+
# PHP's compilation step cannot fail, since it is just `cp`.
190+
languages=[lang for lang in ALL_LANGUAGES if lang != LANG_PHP],
176191
checks=[CheckCompilationFail()]),
177192

178193
Test('compile-timeout',
@@ -239,66 +254,65 @@
239254

240255
Test('oom-static',
241256
task=batch_stdio, filenames=['oom-static.%l'],
242-
languages=NON_INTERPRETED_LANGUAGES,
257+
languages=(LANG_C, LANG_CPP, LANG_CPP14,
258+
LANG_CPP17, LANG_CPP20, LANG_PASCAL),
243259
checks=[CheckOverallScore(0, 100)]),
244260

245261
Test('oom-heap',
246262
task=batch_stdio, filenames=['oom-heap.%l'],
247263
languages=ALL_LANGUAGES,
248264
checks=[CheckOverallScore(0, 100)]),
249265

250-
# Tasks with graders. PHP is not yet supported.
266+
# Tasks with graders.
251267

252268
Test('managed-correct',
253269
task=batch_fileio_managed, filenames=['managed-correct.%l'],
254-
languages=(LANG_C, LANG_CPP, LANG_PASCAL, LANG_PYTHON3, LANG_JAVA,
255-
LANG_C_SHARP),
270+
languages=MANAGER_LANGUAGES,
256271
checks=[CheckOverallScore(100, 100)],
257272
user_tests=True, user_managers=['grader.%l'],
258273
user_checks=[CheckUserTestEvaluated()]),
259274

260275
Test('managed-incorrect',
261276
task=batch_fileio_managed, filenames=['managed-incorrect.%l'],
262-
languages=(LANG_C, LANG_CPP, LANG_PASCAL, LANG_PYTHON3, LANG_JAVA,
263-
LANG_C_SHARP),
277+
languages=MANAGER_LANGUAGES,
264278
checks=[CheckOverallScore(0, 100)]),
265279

266-
# Communication tasks. PHP is not yet supported.
280+
# Communication tasks.
267281

268282
Test('communication-fifoio-correct',
269283
task=communication_fifoio_stubbed,
270284
filenames=['communication-stubbed-correct.%l'],
271-
languages=(LANG_C, LANG_CPP, LANG_PASCAL, LANG_PYTHON3, LANG_JAVA),
285+
languages=COMMUNICATION_LANGUAGES,
272286
checks=[CheckOverallScore(100, 100)]),
273287

274288
Test('communication-fifoio-incorrect',
275289
task=communication_fifoio_stubbed,
276290
filenames=['communication-stubbed-incorrect.%l'],
277-
languages=(LANG_C, LANG_CPP, LANG_PASCAL, LANG_PYTHON3, LANG_JAVA),
291+
languages=COMMUNICATION_LANGUAGES,
278292
checks=[CheckOverallScore(0, 100)]),
279293

280294
Test('communication-stdio-correct',
281295
task=communication_stdio_stubbed,
282296
filenames=['communication-stubbed-correct.%l'],
283-
languages=(LANG_C, LANG_CPP, LANG_PASCAL, LANG_PYTHON3, LANG_JAVA),
297+
languages=COMMUNICATION_LANGUAGES,
284298
checks=[CheckOverallScore(100, 100)]),
285299

286300
Test('communication-stdio-incorrect',
287301
task=communication_stdio_stubbed,
288302
filenames=['communication-stubbed-incorrect.%l'],
289-
languages=(LANG_C, LANG_CPP, LANG_PASCAL, LANG_PYTHON3, LANG_JAVA),
303+
languages=COMMUNICATION_LANGUAGES,
290304
checks=[CheckOverallScore(0, 100)]),
291305

292306
Test('communication-stdio-unstubbed-correct',
293307
task=communication_stdio,
294308
filenames=['communication-stdio-correct.%l'],
295-
languages=(LANG_C, LANG_CPP, LANG_PASCAL, LANG_PYTHON3, LANG_JAVA),
309+
languages=COMMUNICATION_LANGUAGES,
296310
checks=[CheckOverallScore(100, 100)]),
297311

298312
Test('communication-stdio-unstubbed-incorrect',
299313
task=communication_stdio,
300314
filenames=['communication-stdio-incorrect.%l'],
301-
languages=(LANG_C, LANG_CPP, LANG_PASCAL, LANG_PYTHON3, LANG_JAVA),
315+
languages=COMMUNICATION_LANGUAGES,
302316
checks=[CheckOverallScore(0, 100)]),
303317

304318
# Communication tasks with two processes.
@@ -307,28 +321,28 @@
307321
task=communication_many_fifoio_stubbed,
308322
filenames=['communication-many-correct-user1.%l',
309323
'communication-many-correct-user2.%l'],
310-
languages=(LANG_C, LANG_CPP, LANG_PASCAL, LANG_PYTHON3, LANG_JAVA),
324+
languages=COMMUNICATION_LANGUAGES,
311325
checks=[CheckOverallScore(100, 100)]),
312326

313327
Test('communication-many-fifoio-incorrect',
314328
task=communication_many_fifoio_stubbed,
315329
filenames=['communication-many-incorrect-user1.%l',
316330
'communication-many-incorrect-user2.%l'],
317-
languages=(LANG_C, LANG_CPP, LANG_PASCAL, LANG_PYTHON3, LANG_JAVA),
331+
languages=COMMUNICATION_LANGUAGES,
318332
checks=[CheckOverallScore(0, 100)]),
319333

320334
Test('communication-many-stdio-correct',
321335
task=communication_many_stdio_stubbed,
322336
filenames=['communication-many-correct-user1.%l',
323337
'communication-many-correct-user2.%l'],
324-
languages=(LANG_C, LANG_CPP, LANG_PASCAL, LANG_PYTHON3, LANG_JAVA),
338+
languages=COMMUNICATION_LANGUAGES,
325339
checks=[CheckOverallScore(100, 100)]),
326340

327341
Test('communication-many-stdio-incorrect',
328342
task=communication_many_stdio_stubbed,
329343
filenames=['communication-many-incorrect-user1.%l',
330344
'communication-many-incorrect-user2.%l'],
331-
languages=(LANG_C, LANG_CPP, LANG_PASCAL, LANG_PYTHON3, LANG_JAVA),
345+
languages=COMMUNICATION_LANGUAGES,
332346
checks=[CheckOverallScore(0, 100)]),
333347

334348
# TwoSteps

0 commit comments

Comments
 (0)