Project 1 Test Cases

These are just short descriptions of the test cases that will be run by the autograder, so that you can somewhat interpret the autograder's results when you submit early.

  1. ThreadGrader1: Condition2
    1. Test ThreadGrader1.a: Tests your condition variables using a few threads
    2. Test ThreadGrader1.b: Tests your condition variables using many threads
  2. ThreadGrader2: Communicator
    1. Test ThreadGrader2.a: Tests your communicator
    2. Test ThreadGrader2.b: Tests your communicator, with more speakers/listeners
    3. Test ThreadGrader2.c: Tests your communicator, with more speakers/listneers, and transmits more messages
  3. ThreadGrader3: Join
    1. Test ThreadGrader3.a: Tries a join on thread x before x actually runs
    2. Test ThreadGrader3.b: Tries a join on thread x after x has completed
  4. ThreadGrader4: WaitUntil
    1. Test ThreadGrader4.a: Tests waitUntil to ensure it waits at least minimum amount of time
    2. Test ThreadGrader4.b: Tests whether waitUntil actually wakes up at correct time
  5. ThreadGrader5: Priority Scheduling
    1. Test ThreadGrader5.a: Tests priority scheduler without donation
    2. Test ThreadGrader5.c: Tests priority scheduler without donation, altering priorities of threads after they've started running
  6. ThreadGrader6a: More Priority Scheduling
    1. Test ThreadGrader6a.a: Tests priority donation
    2. Test ThreadGrader6a.b: Tests priority donation with more locks and more complicated resource allocation
  7. BoatGrader: Boat Simulation
    1. Tests BoatGrader2.a-BoatGrader2.f: Test boat simulation with various numbers of threads.
    2. Test stresstest: Tests boat simulation with a ton of threads.