  <chapter id="cvs-regression">
    <title>How to do regression testing using CVS</title>

    <para>
      written by Gerard Patel
    </para>
    <para>
      (Extracted from <filename>wine/documentation/bugreports</filename>)
    </para>

    <para>
      A problem that can happen sometimes is 'it used to work
      before, now it doesn't anymore...'. Here is a step by step
      procedure to try to pinpoint when the problem occured. This is
      <emphasis>NOT</emphasis> for casual users.
    </para>

    <orderedlist>
      <listitem>
        <para>
          Get the <quote>full CVS</quote> archive from winehq. This archive is
          the CVS tree but with the tags controlling the versioning
          system. It's a big file (> 40 meg) with a name like
          wine-cvsdirs-&lt;last update date> (it's more than 100mb
          when uncompressed, you can't very well do this with
          small, old computers or slow Internet connections).
        </para>
      </listitem>
      <listitem>
        <para>
          untar it into a repository directory:
          <screen>
cd /home/gerard
tar -zxf cvs-dirs-2003-01-15.tar.gz
mv wine repository
          </screen>
        </para>
      </listitem>
      <listitem>
        <para>
          extract a new destination directory. This directory must
          not be in a subdirectory of the repository else
          <command>cvs</command> will think it's part of the
          repository and deny you an extraction in the repository:
          <screen>
cd /home/gerard
mv wine wine_current (-> this protects your current wine sandbox, if any)
export CVSROOT=/home/gerard/repository
cd /home/gerard
cvs -d $CVSROOT checkout wine
          </screen>
        </para>
        <para>
          Note that it's not possible to do a checkout at a given
          date; you always do the checkout for the last date where
          the wine-cvsdirs-xxx snapshot was generated.
        </para>
        <para>
          Note also that it is possible to do all this with a direct
          CVS connection, of course. The full CVS file method is less
          painful for the Winehq CVS server and probably a bit faster
          if you don't have a very good net connection.
        </para>
        <note>
          <para>
            If you use CVS directly from the winehq.com server, do not
            forget to add to your <filename>.cvsrc</filename> file:
          </para>
          <screen>
cvs -z 3
update -dPA
diff -u
          </screen>
         </note>
      </listitem>
      <listitem>
        <para>
          you will have now in the <filename>~/wine</filename>
          directory an image of the CVS tree, on the client side.
          Now update this image to the date you want:
          <screen>
cd /home/gerard/wine
cvs -d $CVSROOT update -D "2002-06-01 CST"   
          </screen>
        </para>
        <para>
          The date format is <literal>YYYY-MM-DD HH:MM:SS</literal>.
          Using the CST date format ensure that you will be able to
          extract patches in a way that will be compatible with the
          wine-cvs archive
          <ulink url="http://www.winehq.com/hypermail/wine-cvs">
          http://www.winehq.com/hypermail/wine-cvs</ulink>
        </para>
        <para>
          Many messages will inform you that more recent files have
          been deleted to set back the client cvs tree to the date
          you asked, for example:
          <screen>
cvs update: tsx11/ts_xf86dga2.c is no longer in the repository
          </screen>
        </para>
        <para>
          <command>cvs update</command> is not limited to upgrade to
          a <emphasis>newer</emphasis> version as I have believed for
          far too long :-(
        </para>
      </listitem>
      <listitem>
        <para>
          Now proceed as for a normal update:
        </para>
        <screen>
./configure
make depend && make
        </screen>
        <para>
          If any non-programmer reads this, the fastest method to get
          at the point where the problem occured is to use a binary
          search, that is, if the problem occured in 1999, start at
          mid-year, then is the problem is already here, back to 1st
          April, if not, to 1st October, and so on.
        </para>
        <para>
          If you have lot of hard disk free space (a full compile currently
          takes 400 Mb), copy the oldest known working version before
          updating it, it will save time if you need to go back. (it's
          better to <command>make distclean</command> before going back in
          time, so you have to make everything if you don't backup the older
          version)
        </para>
        <para>  
          When you have found the day where the problem happened, continue
          the search using the wine-cvs archive (sorted by date) and a
          more precise cvs update including hour, minute, second :
          <screen>
cvs -d $CVSROOT update -D "2002-06-01 15:17:25 CST"
          </screen>
          This will allow you to find easily the exact patch that did it.
        </para>
      </listitem>
      <listitem>
        <para>
          If you find the patch that is the cause of the problem, you have
          almost won; report about it to
          <ulink url="http://bugs.winehq.com/">Wine Bugzilla</ulink>
          or susbscribe to wine-devel and post it there. There is a chance
          that the author
          will jump in to suggest a fix; or there is always the possibility
          to look hard at the patch until it is coerced to reveal where is
          the bug :-) 
        </para>
      </listitem>
    </orderedlist>
  </chapter>

  <!-- Keep this comment at the end of the file
  Local variables:
  mode: sgml
  sgml-parent-document:("wine-devel.sgml" "set" "book" "part" "chapter" "")
  End:
  -->
