Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Design the compilation and verification pipeline #5

Closed
LiquidLemon opened this issue Jul 19, 2020 · 2 comments
Closed

Design the compilation and verification pipeline #5

LiquidLemon opened this issue Jul 19, 2020 · 2 comments

Comments

@LiquidLemon
Copy link
Owner

No description provided.

@LiquidLemon
Copy link
Owner Author

This is what I'm thinking of currently:

  1. Download all the solution files and store them in a temporary directory.
  2. Run a dedicated Docker container which will build the program (it should try to sandbox the compilation process as much as possible, apply timeouts, etc.).
  3. If compilation succeeded download a test case, mount the resulting binary in a new container, run it with the test case as input and store the output.
  4. Update the state:
    • If the process exited cleanly compare the actual output to the expected output (or run a verification script in an extended scenario) and update the state appropriately.
    • If errors occurred save them in the database.
  5. Delete files specific to this test case.
  6. Repeat 3-5 for all test cases in a problem.
  7. Clean up the entire directory made for this solution.

@LiquidLemon
Copy link
Owner Author

Alright, this seems to make sense, I'm moving this list to the wiki.

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant