/piscine-rust

GNU General Public License v3.0GPL-3.0

piscine-rust

This is originally a dump of the /app folder of the test-rust docker image from 01-edu.

It's the pedagogical and technical backbone of this 01-style piscine, which, unlike 42, is moulinette-only.
Its general idea is simple :

  • Start the first quest from the curriculum below
  • Do the first exercise
  • Test it with the included automated test
  • If good, move on to the next one
  • ...
  • Congratulations, you are now a rust developer.

Though in the real program:

  • each Day... uuh I mean, Quest becomes available the day after the other,
  • there is a 3 minutes cooldown between each moulinette test
  • you're supposed to do the 2 rushes... uhh I mean, raids in groups of 3 and be audited manually by staff
  • the practical project chaikin is (the only project) to be reviewed by peers.

Instructions

Make sure the Rust toolchain is installed on your computer.
It is best to install it the official way, by going here, and not through your package manager.

Make sure your whole piscine repo is the solutions folder alongside tests, at the root of this repository.
This should look like this:
piscine-rust/ <- you are here!
------------/tests
------------/solutions/fibonacci2/<contents of the cargo module>

You can launch the automated testing of a completed exercise at the root of this repository with the command ./test.sh <exercise_name>.
You can also directly run cargo test --manifest-path tests/<exercise_name>_test/Cargo.toml.

Feel free to fork this repository, remove solutions/* from .gitignore and get to work directly in it.
Have fun!

Notes

The original test mechanism was the following:

  • The student repo was cloned under /jail/student by the 01 runner program
  • The container is run, $EXERCISE and such are filled and /jail is set as current directory
  • /app/entrypoint.sh (reworked into test.sh) is called upon running the container
  • /app/tests is copied in /jail so that it is alongside the student repo
  • /jail/student is renamed into /jail/solutions because runner clones the repo as "student" yet all rust tests are written to look for a "solutions" package šŸ¤¦
    NB: I have yet no idea if the /app/tests_utility is necessary since it is never copied in /jail/student during testing

Curriculum

Week One

Quest 01-rust

Video: https://www.youtube.com/watch?v=gjGzMMUdKDM

Exercises:

Quest 02-rust

Video: https://www.youtube.com/watch?v=O0o19HANB_w

Exercices:

Quest 03-rust

Video: https://www.youtube.com/watch?v=URAJIouRd0I

Exercices:

Raid 01-rust

Exercice:


Week Two

Quest 04-rust

Video: https://www.youtube.com/watch?v=3D0mOw0egHc

Exercices:

Quest 05-rust

Video: https://www.youtube.com/watch?v=XyUliQD7v-0

Exercices:

Raid 02-rust

Exercice:


Week Three

Quest 06-rust

Video: https://www.youtube.com/watch?v=xCEDVb4p7Js

Exercices:

Quest 07-rust

Video: https://www.youtube.com/watch?v=jzgKZTtVNwQ

Exercices:

Project 01-rust

Exercice:


Week Four

Quest 08-rust

Video: https://www.youtube.com/watch?v=sdEEmmlI6K0

Exercices:

Quest 09-rust

Video: https://www.youtube.com/watch?v=LMOcoPamcxM

Exercices: