#!/usr/bin/ksh
#
# Name: fvt-common-1
#
# Purpose:
#    Populates a CMVC Version 2.3.1 family with objects for FVT
#    purposes: defects, features, tracks, files, levels, 
#    components, releases, etc.
#
# Notes:
#
# 1) This script should be run before the other FVT scripts.
#
# 2) This script can be run from either the CMVC family user id
#    or a CMVC client user id, because only client CMVC commands
#    are used.
#
# 3) To invoke this shell script and redirect standard output and
#    standard error to a file (such as fvt-common-1.out) do the
#    following (the -s flag is "silent mode" to avoid prompts to the
#    user):
#
#    ./fvt-common-1  -s  2>&1  | tee fvt-common-1.out
#
# 4) After the execution of this script the following files will be 
#    checked out:
#       file: notes.ProjectA   relase:  track-level-1.1
#       file: softtar.mk       release: track-level-1.2
#
# 5) After the execution of this script the following level will be
#    uncommitted:
#       level:  04             release: track-level-1.2
#
# 6) After the execution of this script the following file will be 
#    created that has a long file name with blanks and SCCS keywords:
#       file: File with SCCS keywords.txt   relase:  track-level-1.1
#
# Requisite auxiliary files in $HOME/fvt:
# *  sccskeys.binary (It is binary to avoid expansion during
#       the checkout to preserve the original SCCS keywords).
#
# Return codes:
#  0 = All commands were successful
#  1 = At least one command failed, see the output file and search
#      for the keyword "ERROR".
#
######################################################################.#########

# ----------------------------
# Subroutine to print the usage
# ----------------------------

usage()
{
 print "USAGE: fvt-common-1 [-h] [-s]"
 print "WHERE: -h = help       -s = silent (no prompts)"
 print "PREREQUISITES:"
 print " - The CMVC family to be used should be only for FVT purposes."
 print " - "mkdb -d" should have been used to create this CMVC family "
 print " - The workstation login of the CMVC family must have"
 print "   client access to the family as well as superuser privilege."
 print " - The CMVC_FAMILY environment variable must be set. "
 print " - The CMVC_HOME environment variable must be set. (such as /usr/lpp/cmvc )"
 print " - The DEMO_CLIENT_LOGIN environment variable must be set to the "
 print "   name of the client user login. "
 print " - The DEMO_CLIENT_HOSTNAME environment variable must be set to the "
 print "   name of the client user's hostname. "
 print " - The directory, fvt, must exist relative to the CMVC family "
 print "   account's home directory (such as /home/cmfvt/fvt)"
 print " - Run fvt-common-1 from the fvt directory."
 print "fvt-common-1: exiting now with rc=1."
 exit 1
}

# ----------------------------------
# Subroutine to terminate abnormally
# ----------------------------------

terminate()
{
 print "The populate action for the CMVC family was not successful."
 print "Recreating the family may be necessary before running fvt-common-1 again,"
 print "that is, you must use 'rmdb', 'rmfamily', 'mkfamily' and 'mkdb -d'. "
 print "fvt-common-1 terminated, exiting now with rc=1."
 dateTest=`date`
 print "End of testing at: $dateTest"
 print ""
 exit 1
}

# ---------------------------------------------------------------------------
# CMVC commands are called in a subroutine so that return code can be
# checked for possible errors.
# ---------------------------------------------------------------------------

CreateUser()
{
 User -create -login $1 -address $2 -name "$3 $4" -area $5 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in User -create -login $1"
  let "errorCounter = errorCounter + 1"
 fi
}

CreateHost()
{
 Host -create $1 -login $2 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Host -create $1 -login $2"
  let "errorCounter = errorCounter + 1"
 fi
}

CreateComponent()
{
 Component -create $1 -parent $2 -owner $3 -description "Component $1" -process $4 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Component -create $1"
  let "errorCounter = errorCounter + 1"
 fi
}

CreateAccess()
{
 Access -create -component $1 -login $2 -authority $3 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Access -create -component $1 -login $2 -authority $3"
  let "errorCounter = errorCounter + 1"
 fi
}

CreateNotify()
{
 Notify -create -component $1 -login $2 -interest $3 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Notify -create -component $1 -login $2 -interest $3"
  let "errorCounter = errorCounter + 1"
 fi
}

CreateReleaseNoTracking()
{
 Release -create $1 -component $2 -owner $3 -description "Release $1" -process $4  -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Release -create $1 (No tracking)"
  let "errorCounter = errorCounter + 1"
 fi
}

CreateReleaseTrackingLevel()
{
 Release -create $1 -component $2 -owner $3 -description "Release $1" -process $4 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Release -create $1 (tracking, level)"
  let "errorCounter = errorCounter + 1"
 fi
}

CreateReleaseTrackingAppLevelEnv()
{
 Release -create $1 -component $2 -owner $3 -description "Release $1" -process $4 -approver $5 -environment $6 -tester $7  -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Release -create $1 (tracking, approval, level, test)"
  let "errorCounter = errorCounter + 1"
 fi
}

ModifyFeatureTarget()
{
 Feature -modify $1 -target $2 -become $3 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Feature -modify $1 -target $2"
  let "errorCounter = errorCounter + 1"
 fi
}

ModifyFeaturePriorityTarget()
{
 Feature -modify $1 -priority $2 -target $3 -become $4 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Feature -modify $1 -priority $2 -target $3"
  let "errorCounter = errorCounter + 1"
 fi
}

SizeFeature()
{
 Feature -size $1 -become $2 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Feature -size $1"
  let "errorCounter = errorCounter + 1"
 fi
}

ReviewFeature()
{
 Feature -review $1 -become $2 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Feature -review $1"
  let "errorCounter = errorCounter + 1"
 fi
}

AcceptFeature()
{
 Feature -accept $1 -become $2 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Feature -accept $1"
  let "errorCounter = errorCounter + 1"
 fi
}

AcceptDefect()
{
 Defect -accept $1 -answer $2 -become $3 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Defect -accept $1"
  let "errorCounter = errorCounter + 1"
 fi
}

AssignDefect()
{
 Defect -assign $1 -owner $2 -become $3 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Defect -assign $1"
  let "errorCounter = errorCounter + 1"
 fi
}

MarkDefectApprovalRecord()
{
 Approval -$1 -defect $2 -release $3 -approver $4 -become $5 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Approval -$1 -defect $2"
  let "errorCounter = errorCounter + 1"
 fi
}

MarkFeatureApprovalRecord()
{
 Approval -$1 -feature $2 -release $3 -approver $4 -become $5 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Approval -$1 -feature $2"
  let "errorCounter = errorCounter + 1"
 fi
}

MarkDefectFixRecord()
{
 Fix -$1 -defect $2 -release $3 -component $4 -become $5 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Fix -$1 -defect $2"
  let "errorCounter = errorCounter + 1"
 fi
}

MarkFeatureFixRecord()
{
 Fix -$1 -feature $2 -release $3 -component $4 -become $5 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Fix -$1 -feature $2"
  let "errorCounter = errorCounter + 1"
 fi
}

MarkDefectTestRecord()
{
 Test -$1 -defect $2 -release $3 -environment $4 -tester $5 -become $6 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Test -$1 -defect $2"
  let "errorCounter = errorCounter + 1"
 fi
}

MarkFeatureTestRecord()
{
 Test -$1 -feature $2 -release $3 -environment $4 -tester $5 -become $6 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Test -$1 -feature $2"
  let "errorCounter = errorCounter + 1"
 fi
}

MarkDefectVerifyRecord()
{
 Verify -$1 -defect $2 -tester $3 -become $4 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Verify -$1 -defect $2"
  let "errorCounter = errorCounter + 1"
 fi
}

MarkFeatureVerifyRecord()
{
 Verify -$1 -feature $2 -tester $3 -become $4 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Verify -$1 -feature $2"
  let "errorCounter = errorCounter + 1"
 fi
}

CreateDefectTrack()
{
 Track -create -defect $1 -release $2 -target $3 -become $4 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Track -create -defect $1"
  let "errorCounter = errorCounter + 1"
 fi
}

CreateFeatureTrack()
{
 Track -create -feature $1 -release $2 -target $3 -become $4 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Track -create -feature $1"
  let "errorCounter = errorCounter + 1"
 fi
}

CreateLevel()
{
 Level -create $1 -release $2 -type $3 -become $4 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Level -create $1 -release $2"
  let "errorCounter = errorCounter + 1"
 fi
}

CreateDefectLevelMember()
{
 LevelMember -create -level $1 -release $2 -defect $3 -become $4 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in LevelMember -create -level $1 -release $2 -defect $3"
  let "errorCounter = errorCounter + 1"
 fi
}

CreateFeatureLevelMember()
{
 LevelMember -create -level $1 -release $2 -feature $3 -become $4 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in LevelMember -create -level $1 -release $2 -feature $3"
  let "errorCounter = errorCounter + 1"
 fi
}

CommitLevel()
{
 Level -commit $1 -release $2 -become $3 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Level -commit $1 -release $2"
  let "errorCounter = errorCounter + 1"
 fi
}

CompleteLevel()
{
 Level -complete $1 -release $2 -become $3 -verbose
 if [ $? -ne 0 ]
 then
  print "ERROR found in Level -complete $1 -release $2"
  let "errorCounter = errorCounter + 1"
 fi
}


################################################################################

# --------------------------------------------
# Main routine for populating the CMVC family
# --------------------------------------------

CALLER=`basename $0`                    # The Caller name
SILENT="no"                             # User wants prompts
let "errorCounter = 0"

# ----------------------------------
# Handle keyword parameters (flags).
# ----------------------------------

set -- `getopt hs $* 2>/dev/null`       # -h = help & -s = silent

if [ $? != 0 ]
then
 print "Unknown flag(s)"
 usage
fi

while [ "$1" != -- ]                    # While $1 is not the termination char
 do
  case "$1" in
   -h) usage "HELP";            shift;; # Help requested
   -s) SILENT="yes";            shift;; # Prompt is not needed
  esac
 done

shift                                   # Shift pass --

# ------------------------------------------------
# The following CMVC environment variables must be set
# ------------------------------------------------

[ -z "$CMVC_FAMILY" ] && { print "The environment variable CMVC_FAMILY is not set."; usage; }
[ -z "$CMVC_HOME" ] && { print "The environment variable CMVC_HOME is not set."; usage; }
[ -z "$DEMO_CLIENT_LOGIN" ] && { print "The environment variable DEMO_CLIENT_LOGIN is not set."; usage; }
[ -z "$DEMO_CLIENT_HOSTNAME" ] && { print "The environment variable DEMO_CLIENT_HOSTNAME is not set."; usage; }

# ----------------------------------------------------------
# Check the values for DEMO_CLIENT_LOGIN
# ----------------------------------------------------------

case "$DEMO_CLIENT_LOGIN" in
   pat) print "The value selected for DEMO_CLIENT_LOGIN is already being used in the demo.  Choose another value."; usage;
                ;;
   bob) print "The value selected for DEMO_CLIENT_LOGIN is already being used in the demo.  Choose another value."; usage;
                ;;
   ted) print "The value selected for DEMO_CLIENT_LOGIN is already being used in the demo.  Choose another value."; usage;
                ;;
   jan) print "The value selected for DEMO_CLIENT_LOGIN is already being used in the demo.  Choose another value."; usage;
                ;;
   jill) print "The value selected for DEMO_CLIENT_LOGIN is already being used in the demo.  Choose another value."; usage;
                ;;
   lee) print "The value selected for DEMO_CLIENT_LOGIN is already being used in the demo.  Choose another value."; usage;
                ;;
   dale) print "The value selected for DEMO_CLIENT_LOGIN is already being used in the demo.  Choose another value."; usage;
                ;;
   jim) print "The value selected for DEMO_CLIENT_LOGIN is already being used in the demo.  Choose another value."; usage;
                ;;
   val) print "The value selected for DEMO_CLIENT_LOGIN is already being used in the demo.  Choose another value."; usage;
                ;;
   paul) print "The value selected for DEMO_CLIENT_LOGIN is already being used in the demo.  Choose another value."; usage;
   ;;
esac

#---------------------------------------
# What is the system login?
#---------------------------------------

THISUSERID=$LOGNAME

#---------------------------------------
# Setup the CMVC user ID
#---------------------------------------

CMVC_BECOME=$THISUSERID
export CMVC_BECOME

# ---------------------------------------------------
# Make sure that this user can access the CMVC family
# ---------------------------------------------------

Report -testServer > /dev/null
if [ $? -ne 0 ]
then
 print "Cannot access the CMVC family $CMVC_FAMILY"
 usage
fi

# --------------------------------------------------
# Everything seems to be OK, prompt for comfirmation
# --------------------------------------------------

if [ "$SILENT" = "yes" ]
then
 RESPONSE="y"
else
 print "Family $CMVC_FAMILY will be populated with FVT objects."
 print "Do you wish to proceed [y or n]? "
 read RESPONSE                         # Wait for response
 [ -z "$RESPONSE" ] && RESPONSE="n"
fi

case "$RESPONSE" in
 [yY]|[yY][eE]|[yY][eE][sS])
 ;;
 *)
  print "$CALLER terminated with rc=1."
  exit 1
 ;;
esac

# --------------------------------------------------
print "Subject: CMVC 2.3.1, FVT testing, Common, Part 1"
dateTest=`date`
print "Begin testing at: $dateTest"
print ""
print "Database: $DATABASE"
print "Family:   $CMVC_FAMILY"
print "Testcase: fvt-common-1"
print ""
# --------------------------------------------------

# --------------------------------------------------
print ""
print "Creating Users..."
# --------------------------------------------------

CreateUser pat  $THISUSERID@`hostname` Pat  Anderson  Management
CreateUser bob  $THISUSERID@`hostname` Bob  Buchanan  Development
CreateUser ted  $THISUSERID@`hostname` Ted  Cumber    Development
CreateUser jan  $THISUSERID@`hostname` Jan  Eaton     Testing
CreateUser jill $THISUSERID@`hostname` Jill Ferguson  Development
CreateUser lee  $THISUSERID@`hostname` Lee  Gray      Documentation
CreateUser dale $THISUSERID@`hostname` Dale Harrison  Development
CreateUser jim  $THISUSERID@`hostname` James Stuart   Management
CreateUser val  $THISUSERID@`hostname` Valerie Dupont Management
CreateUser paul $THISUSERID@`hostname` Paul Wilder    Manufacturing

User -view $DEMO_CLIENT_LOGIN > /dev/null
if [ $? -ne 0 ]
then
 CreateUser $DEMO_CLIENT_LOGIN $DEMO_CLIENT_LOGIN@$DEMO_CLIENT_HOSTNAME Demo Client Demonstrations
fi

# --------------------------------------------------
print ""
print "Creating Host lists..."
# --------------------------------------------------

CreateHost $THISUSERID@`hostname` pat
CreateHost $THISUSERID@`hostname` bob
CreateHost $THISUSERID@`hostname` ted
CreateHost $THISUSERID@`hostname` jan
CreateHost $THISUSERID@`hostname` jill
CreateHost $THISUSERID@`hostname` lee
CreateHost $THISUSERID@`hostname` dale
CreateHost $THISUSERID@`hostname` jim
CreateHost $THISUSERID@`hostname` val
CreateHost $THISUSERID@`hostname` paul

if [ "$THISUSERID@`hostname`" != "$DEMO_CLIENT_LOGIN@$DEMO_CLIENT_HOSTNAME" ]
then
  CreateHost $DEMO_CLIENT_LOGIN@$DEMO_CLIENT_HOSTNAME pat
  CreateHost $DEMO_CLIENT_LOGIN@$DEMO_CLIENT_HOSTNAME bob
  CreateHost $DEMO_CLIENT_LOGIN@$DEMO_CLIENT_HOSTNAME ted
  CreateHost $DEMO_CLIENT_LOGIN@$DEMO_CLIENT_HOSTNAME jan
  CreateHost $DEMO_CLIENT_LOGIN@$DEMO_CLIENT_HOSTNAME jill
  CreateHost $DEMO_CLIENT_LOGIN@$DEMO_CLIENT_HOSTNAME lee
  CreateHost $DEMO_CLIENT_LOGIN@$DEMO_CLIENT_HOSTNAME dale
  CreateHost $DEMO_CLIENT_LOGIN@$DEMO_CLIENT_HOSTNAME jim
  CreateHost $DEMO_CLIENT_LOGIN@$DEMO_CLIENT_HOSTNAME val
  CreateHost $DEMO_CLIENT_LOGIN@$DEMO_CLIENT_HOSTNAME paul
fi

# --------------------------------------------------
print ""
print "Creating Components..."
#

CreateComponent Chicago root pat default
CreateComponent SanFrancisco root jim default
CreateComponent Finance Chicago bob default
CreateComponent Payroll Finance bob default
CreateComponent Order Finance bob default
CreateComponent Development Chicago ted default
CreateComponent ProjectA Development ted default
CreateComponent DocumentA ProjectA lee default
CreateComponent CodeA ProjectA jill default
CreateComponent TestA ProjectA jan default
CreateComponent ProjectB Development dale prototype
CreateComponent DocumentB ProjectB lee prototype
CreateComponent CodeB ProjectB dale prototype
CreateComponent Manufacturing SanFrancisco val default
CreateComponent LineTest Manufacturing paul default

# --------------------------------------------------
print ""
print "Creating Access lists..."
# --------------------------------------------------

CreateAccess Development ted    projectlead
CreateAccess Development pat    general
CreateAccess Development jim    general
CreateAccess Development lee    general
CreateAccess Development jill   general
CreateAccess Development jan    general
CreateAccess Development dale   general
CreateAccess Development pat    manager
CreateAccess Development jim    manager

CreateAccess DocumentA   lee    componentlead
CreateAccess DocumentA   lee    writer

CreateAccess CodeA       jill   componentlead
CreateAccess CodeA       ted    developer+
CreateAccess CodeA       dale   developer+

CreateAccess TestA       jan    componentlead
CreateAccess TestA       jill   developer+

CreateAccess ProjectB    dale   projectlead
CreateAccess CodeB       ted    developer+

CreateAccess DocumentB   lee    componentlead
CreateAccess DocumentB   lee    writer

CreateAccess Manufacturing val  projectlead
CreateAccess Manufacturing jim  manager

CreateAccess LineTest    paul   componentlead

CreateAccess Finance     bob    projectlead
CreateAccess Finance     pat    manager

# --------------------------------------------------
print ""
print "Creating Notification lists..."
# --------------------------------------------------

CreateNotify    Development     pat     manager
CreateNotify    Development     jim     manager

CreateNotify    Development     ted     high

CreateNotify    ProjectA        lee     low
CreateNotify    ProjectA        jill    low
CreateNotify    ProjectA        jan     low
CreateNotify    ProjectA        dale    low

CreateNotify    DocumentA       lee     high

CreateNotify    CodeA           jill    high
CreateNotify    CodeA           ted     developer
CreateNotify    CodeA           dale    developer

CreateNotify    TestA           jan     high

CreateNotify    LineTest        paul    high

CreateNotify    Manufacturing   val     high
CreateNotify    Manufacturing   jim     manager

CreateNotify    Finance         bob     high
CreateNotify    Finance         pat     manager

# --------------------------------------------------
print ""
print "Creating Releases..."
# --------------------------------------------------

CreateReleaseTrackingLevel       track-level-1.1 ProjectA ted track_level
CreateReleaseTrackingLevel       track-level-1.2 ProjectA ted track_level 
CreateReleaseTrackingAppLevelEnv track-full-1.3  ProjectA ted track_full ted HPUX  jan
CreateReleaseNoTracking          track-only      LineTest paul track_only
CreateReleaseTrackingAppLevelEnv track-full-1.f  ProjectA ted track_full ted IBM jan
CreateReleaseTrackingAppLevelEnv track-full-2.1  ProjectA ted track_full ted ALL jan
CreateReleaseNoTracking          track-only-b    ProjectB dale track_only
CreateReleaseNoTracking          track-only-2    ProjectB dale track_only


# --------------------------------------------------
# Just in case the existing family has already some defects
# and features created, start the new names with 1001.
print ""
print "Opening Feature 1001..."
# --------------------------------------------------

Feature -open -name 1001 -component CodeA -remarks "Initial Code Drop" \
        -prefix f -become ted
if [ $? -ne 0 ]
then
 print "ERROR found in Feature -open -name 1001"
 let "errorCounter = errorCounter + 1"
fi

ModifyFeatureTarget 1001 01 ted

# --------------------------------------------------
print ""
print "Opening Feature 1002..."
# --------------------------------------------------
Feature -open -name 1002 -component DocumentA \
        -remarks "Documentation Code Drop" -prefix f -become ted
if [ $? -ne 0 ]
then
 print "ERROR found in Feature -open"
 let "errorCounter = errorCounter + 1"
fi

ModifyFeatureTarget 1002 01 ted

# ----------------------------------------------------
print ""
print "Design, Size, Review for Feature 1001"
# ----------------------------------------------------

Feature -design 1001 -remarks "Need to Encapsulate tar" -become ted -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in Feature -design 1001"
 let "errorCounter = errorCounter + 1"
fi

Feature -size 1001 -remarks "About 1PY total" -become ted -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in Feature -size 1001"
 let "errorCounter = errorCounter + 1"
fi

ReviewFeature 1001 ted
AcceptFeature 1001 ted

CreateFeatureTrack 1001 track-level-1.1 01 ted

# ----------------------------------------------------
print ""
print "Design, Size, Review for Feature 1002"
# ----------------------------------------------------

Feature -design 1002 -remarks "Need to document tar" -become lee -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in Feature -design 1002"
 let "errorCounter = errorCounter + 1"
fi

Feature -size 1002 -remarks "About 1MM total" -become lee -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in Feature -size 1002"
 let "errorCounter = errorCounter + 1"
fi

ReviewFeature 1002 ted
AcceptFeature 1002 ted

CreateFeatureTrack 1002 track-level-1.1 01 ted


print ""
print "Creating the actual files in $HOME/fvt"
# --------------------------------------------------

cd $HOME/fvt

print ""
print "Creating file softtar.c"

echo "Subject: This is softtar.c" >  softtar.c
echo "This is line 2 of the file" >> softtar.c

print ""
print "Creating file softtar.mk"

echo "Subject: This is softtar.mk" >  softtar.mk
echo "This is line 2 of the file"  >> softtar.mk
 
print ""
print "Creating file notes.ProjectA"

echo "Subject: This is notes.ProjectA" >  notes.ProjectA
echo "This is line 2 of the file"      >> notes.ProjectA
 
print ""
print "Creating file softtar.tar"

cp `whence Report` report.exe
tar -cvf softtar.tar softtar.c softtar.mk report.exe

print ""
print "Creating file 'File with SCCS keywords.txt'"
cp sccskeys.binary "File with SCCS keywords.txt"

# --------------------------------------------------
print ""
print "Creating softtar files and levels..."
# --------------------------------------------------
File -create softtar.c softtar.mk -release track-level-1.1 \
     -component CodeA -top $HOME/fvt -feature 1001 -become jill -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -create softtar.c softtar.mk"
 let "errorCounter = errorCounter + 1"
fi

File -create softtar.tar          -release track-level-1.1 -binary\
     -component CodeA -top $HOME/fvt -feature 1001 -become jill -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -create softtar.tar (binary)"
 let "errorCounter = errorCounter + 1"
fi

File -create notes.ProjectA -release track-level-1.1 \
     -component DocumentA \
     -top $HOME/fvt -feature 1002 -become lee -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -create notes.ProjectA"
 let "errorCounter = errorCounter + 1"
fi

File -checkout notes.ProjectA -release track-level-1.1 \
     -relative $HOME/fvt -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -checkout notes.ProjectA"
 let "errorCounter = errorCounter + 1"
fi

File -create "File with SCCS keywords.txt" -release track-level-1.1 \
     -component DocumentA \
     -top $HOME/fvt -feature 1002 -become lee -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -create 'File with SCCS keywords.txt'"
 let "errorCounter = errorCounter + 1"
fi

File -extract "File with SCCS keywords.txt" -release track-level-1.1 \
     -relative $HOME/fvt -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -extract 'File with SCCS keywords.txt'"
 let "errorCounter = errorCounter + 1"
fi

# --------------------------------------------------
print ""
print "Processing level 01 for release track-level-1.1 ..."
# --------------------------------------------------
MarkFeatureFixRecord complete 1001 track-level-1.1 CodeA     ted
MarkFeatureFixRecord complete 1002 track-level-1.1 DocumentA lee

CreateLevel              01 track-level-1.1 prototype ted
CreateFeatureLevelMember 01 track-level-1.1 1001 ted
CreateFeatureLevelMember 01 track-level-1.1 1002 ted
CommitLevel              01 track-level-1.1 ted
CompleteLevel            01 track-level-1.1 ted

MarkFeatureVerifyRecord accept 1001 ted ted

# --------------------------------------------------
print ""
print "Opening Feature 1003..."
# --------------------------------------------------
Feature -open -name 1003 -component LineTest -remarks "Line test for toolA" \
        -prefix f -become paul
if [ $? -ne 0 ]
then
 print "ERROR found in Feature -open 1003"
 let "errorCounter = errorCounter + 1"
fi

ModifyFeatureTarget 1003 01 paul

# ------------------------------------------------
print ""
print "Design, Size, Review for Feature 1003"
# ------------------------------------------------

Feature -design 1003 -remarks "Need to have some tests for tooler" \
        -become paul -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in Feature -design 1003"
 let "errorCounter = errorCounter + 1"
fi

SizeFeature   1003 paul
ReviewFeature 1003 paul
AcceptFeature 1003 paul

CreateFeatureTrack 1003 track-only 01 paul

# --------------------------------------------------
print ""
print "Creating the actual files in $HOME/fvt"
# --------------------------------------------------

cd $HOME/fvt

print ""
print "Creating file demoprog.mk"

echo "Subject: This is demoprog.mk" >  demoprog.mk
echo "This is line 2 of the file"   >> demoprog.mk

print ""
print "Creating file main.c"

echo "Subject: This is main.c"     >  main.c
echo "This is line 2 of the file"  >> main.c

print ""
print "Creating file sqri.c"

echo "Subject: This is sqri.c"     >  sqri.c
echo "This is line 2 of the file"  >> sqri.c

print ""
print "Creating file copyright.h"

echo "Subject: This is copyright.h" >  copyright.h
echo "This is line 2 of the file"   >> copyright.h

# --------------------------------------------------
print ""
print "Creating LineTest files..."
# --------------------------------------------------
File -create demoprog.mk main.c sqri.c copyright.h -release track-only \
     -component LineTest -top $HOME/fvt -feature 1003 -become paul \
     -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -create demoprog.mk main.c sqri.c copyright.h"
 let "errorCounter = errorCounter + 1"
fi

Track -integrate -feature 1003 -release track-only -become paul
MarkFeatureVerifyRecord accept 1003 paul paul

# --------------------------------------------------
print ""
print "Opening Feature 1004..."
# --------------------------------------------------

Feature -open -name 1004 -component ProjectA -become ted -prefix s \
        -remarks "Need to port to HPUX"
if [ $? -ne 0 ]
then
 print "ERROR found in Feature -open 1004"
 let "errorCounter = errorCounter + 1"
fi

ModifyFeaturePriorityTarget 1004 mustfix 01 ted

# --------------------------------------------------
print ""
print "Opening Feature 1005..."
# --------------------------------------------------
Feature -open -name 1005 -component ProjectA -become ted -prefix s \
        -remarks "Need to port to Solaris" 
if [ $? -ne 0 ]
then
 print "ERROR found in Feature -open 1005"
 let "errorCounter = errorCounter + 1"
fi

ModifyFeaturePriorityTarget 1005 mustfix 01 ted

# --------------------------------------------------
print ""
print "Design, Size and Review Feature 1004"
# --------------------------------------------------

Feature -design 1004 -remarks "OEM Customer base requires it" \
        -become ted -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in Feature -design 1004"
 let "errorCounter = errorCounter + 1"
fi

Feature -size 1004 -remarks "Minimal effort required" \
        -become ted -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in Feature -size 1004"
 let "errorCounter = errorCounter + 1"
fi

ReviewFeature 1004 ted
AcceptFeature 1004 ted

# --------------------------------------------------
print ""
print "Design, Size and Review Feature 1005"
# --------------------------------------------------

Feature -design 1005 -become ted -verbose \
        -remarks "Solaris also has softbench, should be no problem"
if [ $? -ne 0 ]
then
 print "ERROR found in Feature -design 1005"
 let "errorCounter = errorCounter + 1"
fi

Feature -size 1005 -become ted -verbose \
        -remarks "Will have to wait and see.  Guess 1 person week"
if [ $? -ne 0 ]
then
 print "ERROR found in Feature -size 1005"
 let "errorCounter = errorCounter + 1"
fi

ReviewFeature 1005 ted
AcceptFeature 1005 ted

CreateFeatureTrack 1005 track-level-1.2 01 ted
CreateFeatureTrack 1004 track-full-1.3 01 ted
MarkFeatureApprovalRecord accept 1004 track-full-1.3 ted ted

# --------------------------------------------------
print ""
print "Linking track-level-1.1 files to track-full-1.3"
# --------------------------------------------------
File -top $HOME/fvt -link softtar.tar softtar.c softtar.mk \
     -release track-level-1.1 -to track-full-1.3 -feature 1004 \
     -become jill -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -link softtar.tar softtar.c softtar.mk"
 let "errorCounter = errorCounter + 1"
fi

File -top $HOME/fvt -link softtar.tar softtar.c softtar.mk \
     -release track-level-1.1 -to track-level-1.2 -feature 1005 \
     -become jill -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -link softtar.tar softtar.c softtar.mk"
 let "errorCounter = errorCounter + 1"
fi

# --------------------------------------------------
print ""
print "Processing level 01 for releases track-level-1.2 and track-full-1.3"
# --------------------------------------------------
MarkFeatureFixRecord complete 1005 track-level-1.2 CodeA jill
MarkFeatureFixRecord complete 1004 track-full-1.3 CodeA jill

CreateLevel 01 track-level-1.2 development ted
CreateLevel 01 track-full-1.3 development ted
CreateFeatureLevelMember 01 track-level-1.2 1005 ted
CreateFeatureLevelMember 01 track-full-1.3 1004 ted
CommitLevel   01 track-level-1.2 ted
CommitLevel   01 track-full-1.3 ted
CompleteLevel 01 track-level-1.2 ted
CompleteLevel 01 track-full-1.3 ted

MarkFeatureTestRecord  abstain 1004 track-full-1.3 HPUX    jan jan
MarkFeatureVerifyRecord accept 1004 ted ted
MarkFeatureVerifyRecord accept 1005 ted ted

# -------------------------------------------------------
print ""
print "Opening Defects 1006 and 1007 for makefiles for Solaris and HPUX"
# -------------------------------------------------------

Defect -open -name 1006 -component CodeA -release track-full-1.3 \
   -remarks "Makefile for ProjectA fails on HPUX"  \
   -level 01 -environment HPUX -prefix d -severity 1 \
   -symptom build_failed -phaseFound development -become jill
if [ $? -ne 0 ]
then
 print "ERROR found in Defect -open 1006"
 let "errorCounter = errorCounter + 1"
fi

Defect -open -name 1007 -component CodeA -release track-level-1.2 \
   -remarks "Makefile for ProjectA fails on Solaris"  \
   -level 01 -environment Solaris -prefix d -severity 1 \
   -symptom build_failed -phaseFound development -become jill
if [ $? -ne 0 ]
then
 print "ERROR found in Defect -open 1007"
 let "errorCounter = errorCounter + 1"
fi

AcceptDefect 1006 comply_with jill
AcceptDefect 1007 comply_with jill

CreateDefectTrack 1007 track-level-1.2 02 jill
CreateDefectTrack 1006 track-full-1.3 02 jill
MarkDefectApprovalRecord accept 1006 track-full-1.3 ted ted

export CMVC_BECOME=dale

# -------------------------------------------------------
print ""
print "Versioning makefiles for Solaris and HPUX..."
# -------------------------------------------------------
File -checkout softtar.mk -release track-full-1.3 \
     -relative $HOME/fvt -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -checkout softtar.mk"
 let "errorCounter = errorCounter + 1"
fi

print ""
print "Adding a new line to softtar.mk"
echo "this is a new line" >> softtar.mk

File -checkin softtar.mk -release track-full-1.3  \
     -relative $HOME/fvt -defect 1006 \
     -remarks "fixed up the paths" -force -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -checkin softtar.mk"
 let "errorCounter = errorCounter + 1"
fi

File -checkout softtar.mk -release track-level-1.2 -relative $HOME/fvt \
     -become dale -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -checkout softtar.mk"
 let "errorCounter = errorCounter + 1"
fi

print ""
print "Adding a new line to softtar.mk"
echo "this is another new line" >> softtar.mk

File -checkin softtar.mk -release track-level-1.2 \
     -relative $HOME/fvt -defect 1007 \
     -remarks "Adjusted libraries" -force -become dale -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -checkin"
 let "errorCounter = errorCounter + 1"
fi

# --------------------------------------------------
print ""
print "Processing level 02 for releases track-level-1.2 and track-full-1.3"
# --------------------------------------------------
MarkDefectFixRecord complete 1007 track-level-1.2 CodeA dale
MarkDefectFixRecord complete 1006 track-full-1.3 CodeA dale

CreateLevel 02 track-level-1.2 development ted
CreateLevel 02 track-full-1.3 development ted
CreateDefectLevelMember 02 track-level-1.2 1007 ted
CreateDefectLevelMember 02 track-full-1.3 1006 ted
CommitLevel   02 track-level-1.2 ted
CommitLevel   02 track-full-1.3 ted
CompleteLevel 02 track-level-1.2 ted
CompleteLevel 02 track-full-1.3 ted

MarkDefectTestRecord   accept 1006 track-full-1.3 HPUX jan jan
MarkDefectVerifyRecord accept 1006 jill jill
MarkDefectVerifyRecord accept 1007 jill jill

# ---------------------------------------------------------------------
print ""
print "Opening defect 1008"
# ---------------------------------------------------------------------

CMVC_BECOME=jill
export CMVC_BECOME

Defect -open -name 1008 -component CodeA \
       -remarks "Integration problem with messages in Workbench" \
       -release track-level-1.1 -prefix d -severity 3 \
       -symptom intgr_problem \
       -phaseFound inspections -environment IBM -become jill
if [ $? -ne 0 ]
then
 print "ERROR found in Defect -open 1008"
 let "errorCounter = errorCounter + 1"
fi


# ---------------------------------------------------------------------
print ""
print "Opening defect 1009"
# ---------------------------------------------------------------------
Defect -open -name 1009 -component CodeA \
  -remarks "Need to be able to select the type of archive device" \
  -release track-level-1.2 -level 02 -environment Solaris \
  -prefix d -severity 3 \
  -symptom function_needed -phaseFound development -become jan
if [ $? -ne 0 ]
then
 print "ERROR found in Defect -open 1009"
 let "errorCounter = errorCounter + 1"
fi


# ---------------------------------------------------------------------
print ""
print "Opening defect 1010"
# ---------------------------------------------------------------------
Defect -open -name 1010 -component CodeA \
  -remarks "Core dumps occasionally when remote execution host" \
  -release track-full-1.3 -level 02 -environment HPUX \
  -prefix d -severity 1 \
  -symptom core_dump -phaseFound development -become jan
if [ $? -ne 0 ]
then
 print "ERROR found in Defect -open 1010"
 let "errorCounter = errorCounter + 1"
fi


# ---------------------------------------------------------------------
print ""
print "Opening defect 1011"
# ---------------------------------------------------------------------
Defect  -open -name 1011 -component CodeA \
  -remarks "Integra tion with DM tool incorrect"  \
  -prefix d -severity 2 \
  -symptom intgr_problem -phaseFound development -become ted
if [ $? -ne 0 ]
then
 print "ERROR found in Defect -open 1011"
 let "errorCounter = errorCounter + 1"
fi

# ---------------------------------------------------------------------
print ""
print "Handling defects 1008 thru 1011"
# ---------------------------------------------------------------------
AssignDefect 1008 dale jill
AssignDefect 1011 dale jill
AssignDefect 1009 jan  jill
AssignDefect 1010 jan  jill

AcceptDefect 1008 program_defect dale
AcceptDefect 1009 new_function   jan
AcceptDefect 1010 remove_support jan
AcceptDefect 1011 comply_with    dale

CreateDefectTrack 1008 track-full-1.f  01 dale
CreateDefectTrack 1009 track-level-1.2 03 jan
CreateDefectTrack 1010 track-full-1.3  03 jan
CreateDefectTrack 1011 track-full-1.f  01 dale
CreateDefectTrack 1011 track-level-1.2 03 dale
CreateDefectTrack 1011 track-full-1.3  03 dale

MarkDefectApprovalRecord accept 1008 track-full-1.f ted ted
MarkDefectApprovalRecord accept 1010 track-full-1.3 ted ted
MarkDefectApprovalRecord accept 1011 track-full-1.3 ted ted
MarkDefectApprovalRecord accept 1011 track-full-1.f ted ted

# --------------------------------------------------
print ""
print "Linking track-level-1.1 files to track-full-1.f (f for fix)"
# --------------------------------------------------
File -top $HOME/fvt -link softtar.tar softtar.c softtar.mk \
  -release track-level-1.1 -to track-full-1.f \
  -defect 1008 -become jill -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -link softtar.tar softtar.c softtar.mk"
 let "errorCounter = errorCounter + 1"
fi

# -------------------------------------------------------
print ""
print "Versioning CodeA files..."
# -------------------------------------------------------
File -checkout softtar.c -release track-full-1.f -relative $HOME/fvt \
     -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -checkout softtar.c"
 let "errorCounter = errorCounter + 1"
fi

File -checkin softtar.c -release track-full-1.f -relative $HOME/fvt \
  -defect 1008 -remarks "Changed integration" -force -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -checkin softtar.c"
 let "errorCounter = errorCounter + 1"
fi

File -checkout softtar.mk -release track-full-1.f \
     -relative $HOME/fvt -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -checkout softtar.mk"
 let "errorCounter = errorCounter + 1"
fi

File -checkout softtar.mk -release track-level-1.2 -relative $HOME/fvt \
     -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -checkout softtar.mk"
 let "errorCounter = errorCounter + 1"
fi

File -checkout softtar.mk -release track-full-1.3 -relative $HOME/fvt \
     -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -checkout softtar.mk"
 let "errorCounter = errorCounter + 1"
fi

print ""
print "Adding a new line to softtar.mk"
echo "this is yet another new line" >> softtar.mk

File -checkin softtar.mk -release track-full-1.f \
  -relative $HOME/fvt -defect 1008 1011 -force\
  -remarks "Needed to modify makefiles for changes made" -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -checkin softtar.mk"
 let "errorCounter = errorCounter + 1"
fi

File -checkin softtar.mk -release track-level-1.2 \
  -relative $HOME/fvt -defect 1009 1011 -force\
  -remarks "Needed to modify makefiles for changes made" -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -checkin softtar.mk"
 let "errorCounter = errorCounter + 1"
fi

File -checkin softtar.mk -release track-full-1.3 \
  -relative $HOME/fvt -defect 1010 1011 -force\
  -remarks "Needed to modify makefiles for changes made" -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -checkin softtar.mk"
 let "errorCounter = errorCounter + 1"
fi

File -checkout softtar.tar -release track-full-1.f \
     -relative $HOME/fvt -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -checkout softtar.tar"
 let "errorCounter = errorCounter + 1"
fi

File -checkin softtar.tar -release track-full-1.f \
  -relative $HOME/fvt \
  -defect 1011 -common track-full-1.3 track-level-1.2 -force -verbose \
  -remarks "Modify the Resources"
if [ $? -ne 0 ]
then
 print "ERROR found in File -checkin softtar.tar"
 let "errorCounter = errorCounter + 1"
fi

File -checkout softtar.tar softtar.c -release track-full-1.f \
  -relative $HOME/fvt -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -checkout softtar.tar"
 let "errorCounter = errorCounter + 1"
fi

File -checkin softtar.tar -release track-full-1.f \
  -relative $HOME/fvt -defect 1011 \
  -common track-level-1.2 track-full-1.3 \
  -remarks "Re-fix due to some coding practice changes" -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -checkin softtar.tar"
 let "errorCounter = errorCounter + 1"
fi

File -checkin softtar.c -release track-full-1.f \
  -relative $HOME/fvt -defect 1011  \
  -remarks "Re-fix due to some coding practice changes" -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -checkin softtar.c"
 let "errorCounter = errorCounter + 1"
fi

File -checkout softtar.mk -release track-level-1.2 -relative $HOME/fvt \
  -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -checkout softtar.mk"
 let "errorCounter = errorCounter + 1"
fi

File -checkin softtar.mk -release track-level-1.2 -relative $HOME/fvt \
   -defect 1009 -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -checkin softtar.mk"
 let "errorCounter = errorCounter + 1"
fi

# --------------------------------------------------
print ""
print "Processing levels 01, 03 for the releases"
# --------------------------------------------------
MarkDefectFixRecord complete 1011 track-level-1.2 CodeA dale
MarkDefectFixRecord complete 1011 track-full-1.3 CodeA dale
MarkDefectFixRecord complete 1011 track-full-1.f CodeA dale
MarkDefectFixRecord complete 1010 track-full-1.3 CodeA jill
MarkDefectFixRecord complete 1009 track-level-1.2 CodeA dale
MarkDefectFixRecord complete 1008 track-full-1.f CodeA dale

CreateLevel   01 track-full-1.f integration ted
CreateLevel   03 track-full-1.3 integration ted
CreateLevel   03 track-level-1.2 integration ted
CreateDefectLevelMember 01 track-full-1.f 1008 ted
CreateDefectLevelMember 01 track-full-1.f 1011 ted
CreateDefectLevelMember 03 track-level-1.2 1009 ted
CreateDefectLevelMember 03 track-level-1.2 1011 ted
CreateDefectLevelMember 03 track-full-1.3 1010 ted
CreateDefectLevelMember 03 track-full-1.3 1011 ted
CommitLevel   01 track-full-1.f ted
CommitLevel   03 track-full-1.3 ted
CommitLevel   03 track-level-1.2 ted
CompleteLevel 01 track-full-1.f ted
CompleteLevel 03 track-full-1.3 ted
CompleteLevel 03 track-level-1.2 ted

MarkDefectTestRecord accept 1011 track-full-1.3 HPUX jan jan
MarkDefectTestRecord accept 1011 track-full-1.f IBM jan jan
MarkDefectTestRecord accept 1010 track-full-1.3 HPUX jan jan
MarkDefectTestRecord accept 1008 track-full-1.f IBM jan jan

MarkDefectVerifyRecord accept 1008 jill jill
MarkDefectVerifyRecord accept 1011 ted ted
MarkDefectVerifyRecord accept 1009 jan jan
MarkDefectVerifyRecord accept 1010 jan jan

CMVC_BECOME=ted
export CMVC_BECOME

# ---------------------------------------------------------------------
print ""
print "Processing defect 1012"
# ---------------------------------------------------------------------

Defect -open -name 1012 -component LineTest \
  -remarks "Need more guts for the tool test"  -prefix d \
  -severity 1 -symptom core_dump -phaseFound functional_test
if [ $? -ne 0 ]
then
 print "ERROR found in Defect -open 1012"
 let "errorCounter = errorCounter + 1"
fi

# --------------------------------------------------
print ""
print "Processing Defect 1013"
# --------------------------------------------------
Defect -open -name 1013 -component CodeA \
  -remarks "Need to integrate to the CM tool" \
  -release track-level-1.2 \
  -level 01 -environment IBM -prefix d -severity 3 \
  -symptom docs_incorrect -phaseFound integrate_test
if [ $? -ne 0 ]
then
 print "ERROR found in Defect -open 1013"
 let "errorCounter = errorCounter + 1"
fi

AcceptDefect 1013 new_function ted
CreateDefectTrack 1013 track-level-1.2 04 ted
CreateDefectTrack 1013 track-only-2 04 ted

# --------------------------------------------------
print ""
print "Versioning files for track 1013"
# --------------------------------------------------
File -checkout softtar.mk -release track-level-1.2 \
     -relative $HOME/fvt -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -checkout softtar.mk"
 let "errorCounter = errorCounter + 1"
fi

print ""
print "Adding a new line to softtar.mk"
echo "this is yet another newest line" >> softtar.mk

File -checkin softtar.mk -release track-level-1.2  \
     -relative $HOME/fvt -defect 1013 \
     -remarks "this is a test" -force -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -checkin softtar.mk"
 let "errorCounter = errorCounter + 1"
fi

File -checkout softtar.mk -release track-level-1.2 \
     -relative $HOME/fvt -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -checkout softtar.mk"
 let "errorCounter = errorCounter + 1"
fi

# --------------------------------------------------
print ""
print "Linking Release track-only to Release track-only-2"
# --------------------------------------------------
Release -link track-only -to track-only-2 -defect 1013 -verbose -become $LOGNAME
if [ $? -ne 0 ]
then
 print "ERROR found in Release -link track-only -to track-only-2"
 let "errorCounter = errorCounter + 1"
fi

# --------------------------------------------------
print ""
print "Processing Feature 1014"
# --------------------------------------------------
Feature -open -name 1014 -component ProjectB \
  -remarks "Prototype for Product B" -prefix f -become dale
if [ $? -ne 0 ]
then
 print "ERROR found in Feature -open 1014"
 let "errorCounter = errorCounter + 1"
fi

AcceptFeature 1014 dale
CreateFeatureTrack 1014 track-only-b 01 dale

# --------------------------------------------------
print ""
print "Creating track-only-b files..."
# --------------------------------------------------

cd $HOME/fvt

mkdir superHello
cd    superHello

print ""
print "Creating file superHello/Makefile"

echo "Subject: This is superHello/Makefile" >  Makefile
echo "This is line 2 of the file"           >> Makefile

print ""
print "Creating file superHello/superHello.C"

echo "Subject: This is superHello/superHello.C" >  superHello.C
echo "This is line 2 of the file"               >> superHello.C

cd $HOME/fvt

File -create superHello/Makefile \
  -release track-only-b \
  -component CodeB -relative $HOME/fvt -feature 1014 \
  -become dale -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -create superHello/Makefile"
 let "errorCounter = errorCounter + 1"
fi

File -create superHello/superHello.C \
  -release track-only-b \
  -component CodeB -relative $HOME/fvt -feature 1014 \
  -become dale -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in File -create superHello/superHello.C"
 let "errorCounter = errorCounter + 1"
fi

# --------------------------------------------------
print ""
print "Processing feature 1015"
# --------------------------------------------------
Feature -open -name 1015 -component LineTest \
  -remarks "Would like to port the tests to Solaris and HPUX" \
  -become paul -prefix s
if [ $? -ne 0 ]
then
 print "ERROR found in Feature -open 1015"
 let "errorCounter = errorCounter + 1"
fi

Feature -design 1015 -remarks "Need this perhaps" -become paul -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in Feature -design 1015"
 let "errorCounter = errorCounter + 1"
fi

# --------------------------------------------------
print ""
print "Processing feature 1016"
# --------------------------------------------------
Feature -open -name 1016 -component LineTest \
  -remarks "More documentation to make tool tests easier to perform" \
  -become paul -prefix f
if [ $? -ne 0 ]
then
 print "ERROR found in Feature -open 1016"
 let "errorCounter = errorCounter + 1"
fi

Feature -design 1016 -remarks "No problem" -become paul -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in Feature -design 1016"
 let "errorCounter = errorCounter + 1"
fi

Feature -size 1016 -remarks "About 1 week" -become paul -verbose
if [ $? -ne 0 ]
then
 print "ERROR found in Feature -size 1016"
 let "errorCounter = errorCounter + 1"
fi
ReviewFeature 1016 paul
AcceptFeature 1016 paul

# --------------------------------------------------
print ""
print "============================================================================="
print ""
# --------------------------------------------------

# --------------------------------------------------
print ""
print "Performing a report on all defects, ordered by date"
# --------------------------------------------------
Report -view DefectView -where "name like '%' order by addDate" -raw
if [ $? -ne 0 ]
then
 print "ERROR found in Report -view DefectView"
 let "errorCounter = errorCounter + 1"
fi

# --------------------------------------------------
print ""
print "Performing a report on all files that are checked out"
# --------------------------------------------------
Report -view FilesOutView
if [ $? -ne 0 ]
then
 print "ERROR found in Report -view FilesOutView"
 let "errorCounter = errorCounter + 1"
fi

# Report -general is only available in DB2
if [ $DATABASE = "DB2"]
then
 
# --------------------------------------------------
print ""
print "Performing a report general on the Sequence table"
# --------------------------------------------------
Report -general Sequence
if [ $? -ne 0 ]
then
 print "ERROR found in Report -general Sequence"
 let "errorCounter = errorCounter + 1"
fi

fi  # If DB2


# --------------
# Exit
# --------------
if [ $errorCounter -ne 0 ]
then
 print ""
 print "*** $errorCounter ERRORS found during the execution of this test case. ***"
 terminate
else
 print ""
 print "*** Yeah! No errors were found during the execution of this test case. Yeah! ***"
fi

print ""
print "fvt-common-1 complete."
print ""
dateTest=`date`
print "End of testing at: $dateTest"
print ""

exit 0

# end of file
