Subject: CMVC 2.3.1, Function Verification Test (FVT) bucket
Date last updated: 29-Jan-2001
Filename: README.fvt.txt


TABLE OF CONTENTS
=================

  1. Purpose of the CMVC FVT bucket.

  2. Procedure for configuring a CMVC family to be used for FVT.

  3. Running the FVT Korn shell scripts.

  4. Running a basic FVT bucket for the GUI.


1. PURPOSE OF THE CMVC FVT BUCKET
   ------------------------------

This file contains information for configuring a CMVC 
family to be used during Function Verification Test (FVT)
and for executing the FVT bucket for CMVC 2.3.1.

This FVT bucket is just a "sanity" test of the product and it is
not a comprehensive system test. The idea is to run this FVT bucket
whenever there is a need to test the basic functionality of CMVC 
after a new version (or significant patches) for the operating system
or the DBMS in question.

This FVT bucket was also used for testing the transition and the working
status of CMVC from 1999 to 2000 for the Year 2000 readiness test.

You will have to manually create a CMVC family and then 
you can execute the appropriate Korn shell scripts:

* fvt-common-1: 
    To populate this family with users, components, releases, 
    defects, files and other CMVC objects.
    This script can be executed from either the server or the client.
    This is the main FVT bucket for the server and the client (line
    commands).

* fvt-server-2:
    To interact with the DBMS to age the defects.
    This script can be executed ONLY from the server.

* fvt-client-3: 
    After fvt-server-2 are done, then you can use fvt-client-3
    to perform some CMVC actions that can be done from the client.
    This script was used to test the transition period
    between 1999 and 2000, and the working status of CMVC 
    in the Year 2000. 

* fvt-cleanup:
    To cleanup the $HOME/fvt directory of the files that were
    extracted during the execution of the other scripts.
    It also cleans up the $HOME/queue subdirectory.


1.1. Limitations

The following limitations apply to the CMVC FVT Family:

* The defects and features created by the shell scripts  will 
  begin with 1001, thus, if you have more than 1000 defects/features
  in your FVT family, the shell scripts will fail to create 
  the desired objects.

  The idea behind starting at this high defect number is to allow
  the tester to open defects into a test family (the numbers will 
  start with 1) and then, if so desired, to populate the family 
  with more defects (which will start with 1001). 

1.1.a Suggestions

It is suggested to use the family name of "cmvcfvt". However, this is
not necessary. In this document we will use "cmvcfvt" to illustrate
the commands.

* Family name:      cmvcfvt
* First superuser:  cmvcfvt
* First host login: cmvcfvt
* First host:       the same host where the cmvcfvt family is created

You can specify an additional user and host for that user, in that
way you can run the CMVC FVT scripts from either the cmvcfvt
account or the account of the additional user. 


1.3 Objects created in the FVT family

   The shell scripts create entries for the following CMVC tables,
   in the order in which they are accessed:

   Users
   Host Lists
   Components
   Access Lists
   Notification List
   Defects
   Features
   Verification Records
   Releases
   Approver Lists
   Environment Lists
   Files
   Levels
   Level Members 
   Tracks
   Approval Records
   Fix Records
   Test Records

1.4 Files created in the $HOME directory

   The scripts create/extract files in the directory $HOME/fvt.
   To clean them up, run:  $HOME/fvt/fvt-cleanup


2. PROCEDURE FOR CONFIGURING A CMVC FAMILY TO BE USED FOR FVT
   ----------------------------------------------------------

2.1. Prerequisites

The procedure in this section assumes that the following prerequisites
are installed and configured:

* CMVC Server

  For the installation instructions for the Server, refer to 
  the Server manual:
  IBM Configuration Management Version Control, 
  Server Administration and Installation, 2.3
   
* CMVC Client 

  For the installation instructions for the Client, refer to 
  the Client manual:
  IBM Configuration Management Version Control, 
  UNIX Client Installation and Configuration, 2.3


2.2. Configuring the FVT CMVC family.     

Configuring the FVT CMVC family involves creating a new family 
on the CMVC server.  Follow the instructions in Chapter 6 of 
the Server manual for configuring a new family on the CMVC server, 
with the following additional requirements:

   a) This example uses the family name 'cmvcfvt'.

   b) Specify the following CMVC environment variables in the .profile

         export CMVC_HOME=/usr/lpp/cmvc
         export CMVC_FAMILY=$LOGNAME
         export CMVC_SUPERUSER=$LOGNAME
         export CMVC_BECOME=$LOGNAME
         export CLIENT_LOGIN=$LOGNAME
         export CLIENT_HOSTNAME=`hostname -s`

   c) Specify the following additional environment variables in the
      .profile and which will be used by the shell scripts for the FVT
      to create an additional user and host from where that user can
      access CMVC:

         export DATABASE=DB2    (or INFORMIX or SYBASE or ORACLE)
         export DEMO_CLIENT_LOGIN=$LOGNAME         (set as appropriate)
         export DEMO_CLIENT_HOSTNAME=`hostname -s` (set as appropriate)

   d) Logoff and login again in order to activate the changes
      done to the .profile.

   e) Run the following to create the directories and files
      for the CMVC family:

         mkfamily

   f) Run mkdb with the -d option to load the required default
      configurable fields for CMVC defects and features:    

         mkdb -d

   g) Start the cmvcd server daemons for the FVT CMVC family 
      (if they are not already started) by following the
      procedure in Chapter 13 of the Server manual.
      For example, issue the following command that will start 
      2 daemons:  

         cmvcd $LOGNAME 2

   h) Verify that the CMVC daemons are running:

            ps -ef | grep cmvcd

      The result should be something like this:

cmvcfvt 12952 20119   0 12:02:41      -  0:00 cmvcd cmvcfvt 2 
cmvcfvt 20119     1   0 12:02:41      -  0:00 cmvcd cmvcfvt 2 
cmvcfvt 24721     1   0 12:02:39      -  0:00 cmvcd cmvcfvt 2 
cmvcfvt 26258 24721   0 12:02:39      -  0:00 cmvcd cmvcfvt 2 
cmvcfvt 30625 16001  13 12:04:57  pts/4  0:00 ps -ef 
cmvcfvt 16001  9600   0 11:59:11  pts/4  0:00 -ksh 
cmvcfvt 24994 16001   4 12:04:57  pts/4  0:00 grep cmvcfvt 

      Note: if you invoke 2 cmvc daemons, then 2 pairs of daemons are
            created: 2 parents with their 2 children. Therefore, the
            number of entries given by the ps command is the double of
            the number used when the cmvcd command was invoked. In this
            example, cmvcd was invoked with 2, thus, ps shows 4 entries
            for cmvcd.

    i) Start also the notification daemon:

       notifyd


2.3. Configuring the FVT CMVC client (optional)     

After the FVT CMVC family is properly configured, if you want
to test the client from another host, you will need to configure
the client with the proper data.

   a) This example uses the client name 'cmvcclt'.

   b) Specify the following CMVC environment variables in the .profile

         export CMVC_HOME=/usr/lpp/cmvc
         export CMVC_FAMILY=familyName@host@port
         export CMVC_BECOME=$LOGNAME

      Note: You need to specify the proper values for CMVC_FAMILY.

   c) Specify the following additional environment variables in the
      .profile and which will be used by the shell scripts for the FVT
      to create an additional user and host from where that user can
      access CMVC:

         export DEMO_CLIENT_LOGIN=$LOGNAME         (set as appropriate)
         export DEMO_CLIENT_HOSTNAME=`hostname -s` (set as appropriate)

   d) Logoff and login again in order to activate the changes
      done to the .profile.


2.4. Copying the FVT shell scripts into the CMVC FVT user id

The FVT shell scripts and the associated files need to be copied
into the directory structure of the CMVC FVT user id.
Although this section uses the cmvcfvt userid, the same applies
to other userids, such as cmvcclt.

   a) Login to the cmvcfvt account.  You should be in the home 
      directory of the family's account on the CMVC Server.  
      Let's assume that is /home/cmvcfvt

   b) Create a directory for the test cases:  

        mkdir fvt

   c) Copy the FVT shell scripts and associated files.

   d) Change the proper file permissions:

      chmod u+x fvt*


3. RUNNING THE FVT KORN SHELL SCRIPTS
   ----------------------------------

Please take a look at the comments in the header of each
shell script for more details.
  
   *) Change the directory where the scripts were copied:

      cd $HOME/fvt

   *) From $HOME/fvt run the script that will populate the 
      FVT CMVC family. This script only issues CMVC commands,
      and thus, it can be run from the CMVC family user id or
      another CMVC client user id:

      ./fvt-common-1 -s  2>&1  | tee fvt-common-1.out

   *) Look at the bottom of the output file "fvt-common-1.out" and 
      see the conclusion of the summary report.

   *) From $HOME/fvt of the CMVC family user id, run the script
      to age the defects. This script requires difect access 
      to the DBMS and thus it can only be issued from the CMVC
      family server user id:

      ./fvt-server-2 -s  2>&1  | tee fvt-server-2.out

   *) Look at the bottom of the output file "fvt-server-2.out" and 
      see the conclusion of the summary report.

   *) Run the script that will perform several CMVC actions
      that are client related, such as checkout a file (and keep
      a lock), release extract, etc.

      ./fvt-client-3 -s  2>&1  | tee fvt-client-3.out

   *) Look at the bottom of the output file "fvt-client-3.out" and 
      see the conclusion of the summary report.

   *) If you are ready to start the test cycle again, then you
      need to perform the following actions:

     1) Cleanup the $HOME/fvt directory by executing:

      ./fvt-cleanup
      
     2) Stop the family and recreate it:

      stopCMVC 
      rmdb -s
      rmfamily -s
      mkfamily -s
      mkdb -d -s
      cmvcd $CMVC_FAMILY 2


4. Running a basic FVT bucket for the GUI.
   ---------------------------------------

Once the CMVC family has been populated with objects, you can
perform a basic FVT bucket for the GUI.
       
   a) Login to the account on a CMVC user id.

   b) Ensure that you are in the home directory:

        cd $HOME

   c) Set the DISPLAY environment variable, if required (replace "hostname"):
 
         export DISPLAY=hostname:0

   d) Then invoke the graphical user interface by issuing the following
      command:

         cmvc 
 
   e) You can explore the CMVC objects that were populated by the 
      FVT scripts.

      You can start by clicking the desired task from the 
      "IBM CMVC - Tasks" window (the "main" window).

   f) Do the following actions:

      - Report -testServer (if it is in the task list)

      - Look at all the defects (Windows -> Defects -> Defects...)
        - File -> Open List, then expand the Command Box and specify the
          query:  name like '%' order by addDate

      - Create a new defect. From the defects window:
        - Actions -> Open, then use component "root" and fill out the rest. 

      - Look at component tree (Windows -> Components -> Components Tree... )
        - expand the complete component tree: select "root" node and then
          from the right mouse button: Expand Downward Fully

      - Look at the help (Help -> On Process... )

      - Look at the version number (Help -> On Version... )

*** end ***
