cs50 / check50

This is check50, a command-line program with which you can check the correctness of your programs.
GNU General Public License v3.0
397 stars 264 forks source link

Windows Support for `check50` #342

Closed Sashank999 closed 3 weeks ago

Sashank999 commented 1 month ago

Refer to my PR cs50/lib50#79 for more context.

Summary:

  1. Use pexpect.PopenSpawn instead of pexpect.spawn, for both check50 and testsuite.
  2. Use threading.Timer for raising timeouts in checks.
  3. Add additional exit() when compiling checks.
    • This ensures that the check subprocesses run until their cleanup.
    • Existing pre-compiled checks are also modified.
  4. Add check50.run.isalive() for checking subprocess status.
  5. Add quoting for command line arguments.
  6. Kill check subprocesses when timeout or EOF is raised.
  7. Wait until the compiler's process exits, with a timeout of 30 seconds.
rongxin-liu commented 3 weeks ago

Again thanks for your contribution, but we decided not to move forward with merging this PR per https://github.com/cs50/lib50/pull/79.