RST Suggested Improvements

See also:

All RST-related programs (rst, rsta, distrst, testcompRST, pub_test_runner, pub_test_logger, ...)

Configuration options should be as flexible as possible. This collection of programs should follow the following algorithm:

  • Set up default values (same for all scripts)
  • Override with values specified in configuration files: first from .submitrc, then from .rstrc (possibly ~$course/.rstrc and then $markingdir/.rstrc?)
  • Override with values specified on the command line (for example, /u/isg/bin/testcompRST -p testcomplogdir=/xxx/xxx/xxx

This may require changing the command-line interface to rst/rsta/distrst; this could be handled by supplying a version number in .rstrc (defaulting to rstversion=1), and only branching to the updated interface if this version number is higher. This could then have an option for output file generation instead of a required parameter: default (generate text, postscript, and html (eventually)), mailout (text), printing (postscript), html (html), and complete (default + all temporary files).

Ideal implementation: In the configuration portion, set default values for any variables that are not defined (for example, run type of m if nothing else is specified). Then do necessary calculations from there. Line length in particular should be set only in this config section and not elsewhere, with the possible exception of an override from fold flags (although this unfortunately would not be available for truncate without introduction of another flag... :S).

RST

RST proper

  • RST should be able to generate a testresults file for results per test (in addition to OUTPUT.txt, etc.). This file could then be parsed by Marmoset, or by some potential future testing environment inside of MarkUs.
  • RST should lock the handin directory of any student it is currently processing because of permission changes that can affect other RST runs. This will require some careful signal catching, and self-cleanup in any directory being processed. The best way to do a lock would likely be to lock the directory via flock only long enough to drop a dot-file (which can be checked by other rst processes), and then at the end flock only long enough to remove the dot-file.
  • RST should chmod g-w "$testdir" in absence of RST_secure being set.
  • RST should have an option to do have test suites output html in addition to the current postscript and plain text options. This could be signalled on the command line with h as the suite type.
  • RST should have an option to allow printing assignment in different size.
  • RST attempts to copy files out of tmpdir, particular in the case of complete test runs; however, file names like *.jar will make it die.
  • RSTA should die immediately when there is no solution present, yet it attempts to do a full test-run before dying.
  • distrst needs to be able to branch to servers other than Solaris 8 servers. RSTPublicTestsImprovePit contains a proposal that impacts this point.

Pitfall (belongs elsewhere?)

  • If you run RST with a timestamp, suite name, etc. that has a hyphen or other non-alphanumeric character in it, filenames will get garbled. For example, the file normally called Autotesting will get a funny alphanumeric nonsensical name. This is done to keep LaTeX happy, but can cause unexpected results for the person who's using RST.

computeMarks Utilities

  • In cleanFile, it should be possible to suppress information about, for example, control character/blank line supression via prepareFile. This is particularly applicable to the marksheet.
  • printFile/keepFile do not truncate lines... so, for example, an 8000+-character line is problematic. An option should be added for this, and a default maximum should be put in place.
  • printFile/keepFile should conceptually write to a priority queue, not just a queue, so a priority number can be attached to any kept file to allow for more flexibility in the order files are printed; marksheet would always be the highest priority, likely 0.
  • printFile/keepFile should have an option to pretty-format a kept file, likely using the listings LaTeX package.
  • EPS files kept by keepFile ... -E are sometimes overtaking the header preceding them. CS 350 has had this issue, and Peter Buhr has also reported it.
  • processFile, deProcessFile, prepareFiles, etc. can be dependent on a common perl module that handles the details of the save file formatting and parsing, and exposes a common interface for them.
  • cleanFile needs to be documented more; it should also potentially be refactored to contain fewer global variables.
  • It should be possible for printFile/keepFile to accept any arbitrary image instead of just EPS. This would mean a sufficiently new utility would need to be available to do the conversion that exists on all systems so it can be required via requirepackage. ImageMagick's convert would appear to be a good choice, if all available architectures can support a sufficiently modern version; this requirement means it's likely that Solaris 8 servers will need to be completely phased out before this can be implemented.

Post-test printing and mailing

  • printOut should incorporate the printWithPauses script when -7 is specified, so shared printing resources are shared in a more cooperative fashion.
  • printOut should allow sorting printout by practicum, etc. while splitting into multiple evenly sized piles.
  • There are problems with local printing account names, notably in the psp script. For example, cs842 was set to charge to "Teaching" rather than "Admin-CS" so a "-7T" print option was hacked in.
Topic revision: r5 - 2010-04-27 - TerryVaskor
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback