User:Gordon/Optical Drive Testing Script

From FreekiWiki
< User:Gordon
Revision as of 14:17, 16 December 2009 by Gordon (talk | contribs)
Jump to navigation Jump to search

Optical drive testing is currently a time consuming, error prone manual process that relies too much on human judgement and doesn't yield enough information about the drives being tested. A look at the current testing documents reveal a very complicated flowchart and several long lists of instructions for testing various types of drives. Based on the documentation and in my experience in advanced testing, much more human effort is expended per drive than many of the drives are worth; a brand-new DVD+R dual layer burner can be had for $27 on Newegg. This is a process that begs for increased automation so that less work time is spent per drive and fewer testing errors occur.

I propose the following:

  • To write software which makes use of freely-available open source tools in order to standardize and largely automate the identification and testing of optical drives
  • To create a specification for sticky labels, if such labels are deemed useful by Free Geek staff, such that drives are better identified according to their capabilities
  • To make the software configurable such that Free Geek staff can easily change the criteria by which drives are recycled as the capabilities of incoming hardware continue to improve

Requirements

  • The script must correctly identify CD-ROM, CD-RW, DVD-ROM+CD-RW (combo), DVD +/- RW and CD-RW drives. I will leave DVD-RAM out.
  • The script must test read functionality from known-good CD-ROMs for CD capable drives.
  • The script must test read functionality from known-good DVD-ROMs for DVD capable drives.
  • The script must test read functionality on both the inner and outer surfaces of a known-good disc in order to rule out laser sled malfunctions.
  • The script must test and verify write functionality on a known-good CD-RW disc for CD write capable drives. We assume that the ability to successfully write to CD-RW (high laser power) indicates the ability to successfully write to CD-R.
    • If using sessions, the script must erase CD-RWs when they fill up with test sessions to enable their reuse.
  • The script must test and verify DVD-RW write functionality on a known-good DVD-RW disc for DVD write capable drives. We assume that the ability to successfully write to DVD-RW (high laser power) indicates the ability to successfully write to DVD-R and DVD+R/RW; see "questionable requirements" for more information on this assumption.
    • If using sessions, the script must erase DVD-RWs when they fill up with test sessions to enable their reuse.

RFC requirements

  • I believe that DVD+R/RW drives which are not capable of DVD-R/RW are a very small minority. In my (dated) research, DVD-R/RW is more widely compatible with various equipment than DVD+R/RW, so I propose testing only with DVD-R/RW and assuming this indicates DVD+R/RW functionality (if present) will also work, since the same physical hardware is involved; I further propose recycling any old drives that are not capable of DVD-R/RW (i.e. DVD+R/RW-only drives).

Nice to have

  • It'd be nice if the script could keep track of how many times a rewritable disc has been used and tell the user to discard it and use a new one after a certain number of rewrite cycles. The buildup of scratches and dirt on the disc surface and the limited write cycle life of rewritable disc media will necessitate periodic replacement of test discs.

Dependencies

  • The script will be written in Python (whatever version is installed by default in Ubuntu 9.10)
  • The script will depend on 'wodim'