29 Commits

Author SHA1 Message Date
Robert Tice
6397dd9301 Refactoring some redundancies. 2019-04-01 12:17:07 -04:00
Robert Tice
0ec318391e Adding labs framework. Submit gets labs_io.txt from the frontend and uses that to drive test cases. TODO: need to figure out how to compare test case stdout with expected values to evaluate success. 2019-03-22 16:43:55 -04:00
Nicolas Setton
d8362829d8 Implement the 'flow' and 'full' SPARK modes in the runner
Move the handling of extra args completely to the runner.
2019-02-04 19:41:21 -05:00
Nicolas Setton
513f947978 Implement and support the gnatprove mode
Factor some code in the runner.
2019-02-01 16:39:37 -05:00
Nicolas Setton
f987815443 Change the ownership of files on container to the runner id 2019-02-01 15:10:16 -05:00
Nicolas Setton
256712dfda Move the doctoring of .gpr / definition of main to the runner
One more step to simplify the handling being done at the
server level.
2019-01-25 11:24:40 -05:00
Nicolas Setton
b4a2e6403c Make runs under the 'unprivileged' user
Simplify the handling of timeouts.
2019-01-23 11:16:48 -05:00
Nicolas Setton
f82659d3cf Create a separate payload to run in the safecontainer
Part of the transition to running everything in the container.
Start a documentation section.
2019-01-22 13:14:05 -05:00
Nicolas Setton
b86557832e Restrict the use of Pragma Interface 2018-07-23 01:26:36 -04:00
Nicolas Setton
d3959e2ec6 Solidify the .adc mechanism and add protections
Make the .adc systematic, and add protection against
pragma Import and the use of machine code.
2018-07-22 18:51:13 -04:00
Nicolas Setton
a14d864f8e Add size limit to files we accept to process 2018-07-22 12:17:37 -04:00
Nicolas Setton
8cb4282fd0 Add a soft limit to the number of running processes 2018-07-20 01:08:29 -04:00
Nicolas Setton
a2f77fed9f Remove some obsolete comments and bits 2018-07-16 17:57:02 -04:00
Nicolas Setton
e4c668a9c5 Add support for sandboxing the executables
This relies on an lxc container
2018-07-09 14:35:43 -04:00
Nicolas Setton
ea3a7fc6e7 Add an "universal" spec
Needed to be able to run all combinations of inlined widgets:
with or without SPARK, and with or without main.
2018-06-20 14:28:30 -04:00
Nicolas Setton
38166ae13a Run SPARK with --level=0 --no-axiom-guard 2018-06-18 14:01:25 -04:00
Nicolas Setton
65b5629234 R525-028 Add features for the SPARK course
Add the ability to pass extra arguments to the prover.
2018-06-05 20:07:47 -04:00
Nicolas Setton
087206674b R525-028 Factor out code
Provision for allowing both "prove" and "run" buttons
on some examples.
2018-06-05 19:35:14 -04:00
Nicolas Setton
317c180aee R525-028 Add support for editors with just a 'Run' button
Enable the running backend (in completely unsafe mode for now)
Code cleanup in editors.js.

For inline editors, do not require an AJAX request to get the
example base, assume everything is provided inline.

Add support for providing shadow files: these will not be displayed
in editors but will be transmitted to the backend.
2018-06-05 12:54:01 -04:00
Nicolas Setton
faef8ee40f R525-028 call gnatprove 2018 with --checks-as-errors
Otherwise it reports success even when there are check errors.
2018-06-02 13:28:23 -04:00
Nicolas Setton
c9ca24e99d Use Django directly to set the Allow-Access-Control-Origin
Since the cors plugin seems to only set it when an origin
header is passed to the request, which Chrome does not do.
2017-10-10 15:53:04 -04:00
Nicolas Setton
85bb873d17 Add the possibility to run programs
This is deactivated for now.:
2017-10-10 12:01:19 -04:00
Nicolas Setton
291b6052be Support several server instances
To do this, we can no longer rely on in-memory sharing of data: instead,
use the filesystem to store the output and status of the running
processes.
2017-09-11 15:47:46 -04:00
Nicolas Setton
52ce097894 Improve error reporting 2017-09-11 11:40:12 -04:00
Nicolas Setton
97d0ff0fb7 Minor UI improvements
Fiddle with spacing, margin, fonts.
Improve the display of errors.
Add framework for launching several processes in succession.
2017-09-07 16:18:37 -04:00