MozillaQualityAssurance:Download Checker
General Info
- Developer: Bob Clary
 - Maintainer: Bob Clary
 - Currently Runs: Manually by QA. Can be converted to running automatically on Tinderboxes at some point.
 
Description
- For those of you who have set up access to the qa farm and have set up test.mozilla.com to point to one of the qa servers you can see the code at [1]
 - Sample Results
 
- The main steps it executes
- loads all.html. It could just as well have been written to extract download links from any list or set of directories...
 - filters the download urls for the specific platform and converts them to point to the download.mozilla.org site
 - downloads each build using curl.
 - determines the file type (zip, gz, bz2, exe, dmg) and then performs an install depending on the platform and the file type.
 - creates a profile, initializes some prefs and installs spider.
 - loads spider which loads a page <http://test.mozilla.com/bin/buildinfo.html> which collects the data from nsIXULAppInfo and navigator.*
 - posts the info using XMLHttpRequest to a cgi that collects the data on the server. This part is really a kludge using a comma delimited text file for a database.
 
 
Run Time: About an hour for each platform. I didn't originally write it with concurrency in mind, so I ran it again one platform at a time to make sure collisions didn't affect the results. With a little tweaking all platforms could be run simultaneously.
Some Issues
- concurrency issues with current design. Not really an issue if we used a database to store results.
 - 1.0.x installers on windows are broken and sometimes require the installation dialog to be manually closed. Not an issue going forward since 1.0.x is dead! ;-)
 - 1.0.x installers on linux don't support the ability to install into specific directories and currently fail. This is why the 1.0.8 results don't have any linux data. I will remove support for the 1.0.x linux installers since the don't work. Not an issue going forward since 1.0.x is dead!! ;-)
 - The data structure was written in a way that doesn't distinguish between Mac PPC builds and Mac Universal builds running on PPC or Intel, so the report is really just for the Mac Universal builds installed on a Mac PPC. I need to get access to a Mac Intel box for testing and for running the test.
 
This approach could be modified to perform other tests such as checking the contents of text files for configuration issues, or performing update tests, or perhaps handing of the installed build off to eggplant so it could run interactive tests.
On a side note: this was quickly modified to reuse some code <http://test.mozilla.com/tests/mozilla.org/buildids/> I used to test if the nightly builds were being generated which used red to highlight rows where the build date doesn't match the date the build was tested. That isn't really useful for this case but I didn't take it out of the code yet.