MozillaQualityAssurance:Update Checker

From MozillaWiki
Jump to: navigation, search

Firefox and Thunderbird Software Update Checker Test

  • Developer: Dave Liebreich
  • Maintainer: Robert Helmer
  • Currently Runs: automated on release machines. Will be converted to running automatically on Buildbot in the near future

This test executes the following steps for all the locales listed in all-locales (+en-US):

  1. get update.xml from aus2 using the same url that Firefox 1.5.0.3 on linux would use
  2. check the bouncer redirect for both the partial and complete updates. Take the redirected location (e.g. http://ftp-mozilla.netscape.com/pub/mozilla.org/firefox/releases/1.5.0.4/update/mac/en-US/firefox-1.5.0.3-1.5.0.4.partial.mar) and convert it to a path in a local mirror copy of stage (~/tmp/stage.mozilla.org/pub/mozilla.org/firefox/releases/1.5.0.4/update/mac/en-US/firefox-1.5.0.3-1.5.0.4.partial.mar)
  3. check that the mar files have the right size and that the hash matches
  4. install 1.5.0.3 and 1.5.0.4 in separate directories
  5. using the partial mar and the 1.5.0.3 updater application, update the 1.5.0.3 installation
  6. compare the result with the 1.5.0.4 install. complain if there are any differences other than the comment in channel-prefs.js
  7. repeat 5 and 6 using the complete mar instead of the partial mar.

There are a few additional modes: Usage: verify.sh [OPTION] [CONFIG_FILE]

   -u, --update-only      only download update.xml
   -t, --test-only        only test that MARs exist
   -m, --mars-only        only test MARs
   -c, --complete         complete upgrade test

--test-only is the fastest, it:

  1. gets the MAR URL from AUS update.xml
  2. does an HTTP HEAD and follows any redirects (e.g. bouncer)

This proves at least that AUS and bouncer are configured correctly.

Here's the output from a typical run:

checking Linux_x86-gcc3 ar
checking Linux_x86-gcc3 bg
checking Linux_x86-gcc3 ca
checking Linux_x86-gcc3 cs
checking Linux_x86-gcc3 da
checking Linux_x86-gcc3 de
checking Linux_x86-gcc3 el
checking Linux_x86-gcc3 en-GB
checking Linux_x86-gcc3 en-US
checking Linux_x86-gcc3 es-AR
checking Linux_x86-gcc3 es-ES
checking Linux_x86-gcc3 eu
checking Linux_x86-gcc3 fi
checking Linux_x86-gcc3 fr
checking Linux_x86-gcc3 fy-NL
FAIL: no partial update found
FAIL: no complete update found
checking Linux_x86-gcc3 ga-IE
checking Linux_x86-gcc3 gu-IN
checking Linux_x86-gcc3 he
checking Linux_x86-gcc3 hu
checking Linux_x86-gcc3 hy-AM
FAIL: no partial update found
FAIL: no complete update found
checking Linux_x86-gcc3 it
checking Linux_x86-gcc3 ja
checking Linux_x86-gcc3 ja-JP-mac
FAIL: no partial update found
FAIL: no complete update found
checking Linux_x86-gcc3 ko
checking Linux_x86-gcc3 lt
FAIL: no partial update found
FAIL: no complete update found
checking Linux_x86-gcc3 mk
checking Linux_x86-gcc3 mn
FAIL: no partial update found
FAIL: no complete update found
checking Linux_x86-gcc3 nb-NO
checking Linux_x86-gcc3 nl
checking Linux_x86-gcc3 nn-NO
FAIL: no partial update found
FAIL: no complete update found
checking Linux_x86-gcc3 pa-IN
checking Linux_x86-gcc3 pl
checking Linux_x86-gcc3 pt-BR
checking Linux_x86-gcc3 ro
checking Linux_x86-gcc3 ru
checking Linux_x86-gcc3 sk
checking Linux_x86-gcc3 sl
checking Linux_x86-gcc3 sq
FAIL: no partial update found
FAIL: no complete update found
checking Linux_x86-gcc3 sv-SE
checking Linux_x86-gcc3 tr
checking Linux_x86-gcc3 zh-CN
checking Linux_x86-gcc3 zh-TW