From 9333c8dfd72d2ad28be57c8471dd8cac4a0044ff Mon Sep 17 00:00:00 2001
From: ugaston <ugaston@localhost>
Date: Mon, 22 Oct 2007 15:32:20 +0000
Subject: [PATCH] New totalupdate testcases + mark some known issues

---
 opends/tests/functional-tests/testcases/replication/totalupdate/totalupdate.xml |  221 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 221 insertions(+), 0 deletions(-)

diff --git a/opends/tests/functional-tests/testcases/replication/totalupdate/totalupdate.xml b/opends/tests/functional-tests/testcases/replication/totalupdate/totalupdate.xml
index f404b2d..ae4d220 100644
--- a/opends/tests/functional-tests/testcases/replication/totalupdate/totalupdate.xml
+++ b/opends/tests/functional-tests/testcases/replication/totalupdate/totalupdate.xml
@@ -48,10 +48,24 @@
           </script>
           
           <!--- Test Case : Total Update -->          
+          <!--- Test Case information
+          #@TestMarker          Replication Total Update Tests
+          #@TestName            Replication: Total Update: Simple LDIF
+          #@TestID                  Simple LDIF
+          #@TestPurpose        Initialize server with total update
+          #@TestPreamble
+          #@TestSteps
+          #@TestPostamble
+          #@TestResult
+          -->                           
           <testcase name="getTestCaseName('Simple LDIF')">
             <sequence>
             
               <call function="'testCase_Preamble'"/>
+
+              <message>
+                 'Replication: Total Update: Simple LDIF. Initialize server with total update'
+              </message>                                
               
               <!-- Stop "master" Directory Server -->
               <call function="'StopDsWithScript'">
@@ -149,6 +163,213 @@
               <call function="'testCase_Postamble'"/>
             </sequence>
           </testcase>
+
+
+
+          <!--- Test Case information
+          #@TestMarker          Replication Total Update Tests
+          #@TestName            Replication: Total Update: Schema total update
+          #@TestID                  Schema total update
+          #@TestPurpose         Initialize the schema with total update.
+          #@TestPreamble
+          #@TestSteps
+          #@TestPostamble
+          #@TestResult
+          -->                           
+          <testcase name="getTestCaseName('Schema total update')">
+            <sequence>
+            
+              <call function="'testCase_Preamble'"/>
+
+              <message>
+                 'Replication: Total Update: Schema total update. Initialize schema with total update'
+              </message>                                
+
+              <script>
+                consumer = consumerList[0]
+              </script>                
+                
+              <!-- Try to add entry belonging to new schema (see replication setup)
+                to "consumer" server; should be rejected with error 65 (objectclass violation) -->                       
+              <call function="'addEntry'">
+                { 'location'  :  clientHost,
+                  'dsPath'  :  clientPath,
+                  'dsInstanceHost'  :  consumer.getHostname(),
+                  'dsInstancePort'  :  consumer.getPort(), 
+                  'dsInstanceDn'  :  consumer.getRootDn(),
+                  'dsInstancePswd'  :  consumer.getRootPwd(),
+                  'entryToBeAdded'  :  '%s/replication/testuser-1.ldif' % clientDataDir,
+                  'expectedRC'  :  65 }
+              </call>                     
+
+              <!-- Perform the total update on every server -->                 
+              <!-- Issue #2487 makes 'dsreplication initialize-all' for cn=schema hang.
+              <iterate var="server" in="consumerList">
+                <sequence>     
+                  <call function="'initializeReplication'">
+                    { 'location'  :  clientHost,
+                      'dsPath'  :  clientPath,
+                      'dsInstanceHost'  :  server.getHostname(),
+                      'dsInstancePort'  :  server.getPort(),
+                      'sourceInstanceHost'  :  masterHost,
+                      'sourceInstancePort'  :  master.getPort(),
+                      'replicationDnList'  :  ['cn=schema']
+                    }
+                  </call>
+                </sequence>
+              </iterate>
+              -->                  
+                
+              <!-- Add entry to "consumer" server -->                       
+              <call function="'addEntry'">
+                { 'location'  :  clientHost,
+                  'dsPath'  :  clientPath,
+                  'dsInstanceHost'  :  consumer.getHostname(),
+                  'dsInstancePort'  :  consumer.getPort(), 
+                  'dsInstanceDn'  :  consumer.getRootDn(),
+                  'dsInstancePswd'  :  consumer.getRootPwd(),
+                  'entryToBeAdded'  :  '%s/replication/testuser-1.ldif' % clientDataDir }
+              </call>           
+
+              <!-- Verify the synchronization of the schema among the servers in the topology -->          
+              <call function="'verifySchemas'">
+                [ clientHost, clientPath, master, consumerList, '99-user.ldif' ]
+              </call> 
+                                                
+              <!-- Verify the synchronization of the trees among the servers in the topology -->          
+              <call function="'verifyTrees'">
+                [ clientHost, clientPath, master, consumerList, 'o=example' ]
+              </call>                 
+
+              <script>
+                knownIssue(2263)
+              </script>                 
+                                                                           
+              <call function="'testCase_Postamble'"/>
+            </sequence>
+          </testcase>
+
+                                                
+
+          <!--- Test Case information
+          #@TestMarker          Replication Total Update Tests
+          #@TestName            Replication: Total Update: Initialize all
+          #@TestID                  Initialize all
+          #@TestPurpose        Initialize all servers with total update
+          #@TestPreamble
+          #@TestSteps
+          #@TestPostamble
+          #@TestResult
+          -->                           
+          <testcase name="getTestCaseName('Initialize all')">
+            <sequence>
+            
+              <call function="'testCase_Preamble'"/>
+
+              <message>
+                 'Replication: Total Update: Initialize all. Initialize all servers with total update'
+              </message>                                
+              
+              <!-- Stop "master" Directory Server -->
+              <call function="'StopDsWithScript'">
+                { 'location'  : masterHost,
+                  'dsPath'    : masterPath,
+                  'dsHost'    : masterHost,
+                  'dsPort'    : master.getPort(),
+                  'dsBindDN'  : master.getRootDn(),
+                  'dsBindPwd' : master.getRootPwd()
+                }
+              </call>
+              
+              <!-- Check that the Directory Server is stopped -->
+              
+              <!-- Import data into "master" Directory Server -->
+              <call function="'ImportLdifWithScript'">
+                { 'location'     : masterHost,
+                  'dsPath'       : masterPath,
+                  'dsBackEnd'    : 'userRoot',          
+                  'dsLdifFile'   : '%s/replication/Short_Example.ldif' % masterDataDir
+                }
+              </call>
+              
+              <!-- Check some data was imported into Directory Server -->
+              <call function="'checkImport'">
+                { 'location'        : masterHost,
+                  'dsPath'          : masterPath,
+                  'dsHost'          : masterHost,
+                  'dsPort'          : master.getPort(),
+                  'dsDn'            : master.getRootDn(),
+                  'dsPswd'          : master.getRootPwd(),
+                  'expectedEntries' : ['uid=scarter,ou=People,o=example',
+                                       'uid=dmiller, ou=People, o=example',
+                                       'uid=sholmes, ou=People, o=example']
+                }
+              </call>
+              
+              <!-- Start the Directory Server -->
+              <call function="'StartDsWithScript'">
+                { 'location'  : masterHost,
+                  'dsPath'    : masterPath
+                }
+              </call>
+              
+              <!-- Wait for DS to start -->
+              <call function="'isAlive'">
+                { 'location'         : masterHost,
+                  'dsPath'           : masterPath,
+                  'dsInstanceHost'   : masterHost,
+                  'dsInstancePort'   : master.getPort() ,
+                  'dsInstanceDn'     : master.getRootDn() ,
+                  'dsInstancePswd'   : master.getRootPwd() ,
+                  'noOfLoops'        : 10 ,
+                  'noOfMilliSeconds' : 2000
+                }
+              </call>
+
+                                                       
+              <!-- Perform the total update -->
+              <call function="'initializeReplication'">
+                { 'location'  :  clientHost,
+                  'dsPath'  :  clientPath,
+                  'sourceInstanceHost'  :  masterHost,
+                  'sourceInstancePort'  :  master.getPort(),
+                  'replicationDnList'  :  ['o=example']
+                }
+              </call>
+
+
+              <iterate var="server" in="consumerList">
+                <sequence>                                                                                                     
+                  <!-- Verify the total update -->
+                  <call function="'checkImport'">
+                    { 'location'  : server.getHostname(),
+                      'dsPath'    : '%s/%s' % (server.getDir(),OPENDSNAME),
+                      'dsHost'    : server.getHostname(),
+                      'dsPort'    : server.getPort(),
+                      'dsDn'      : server.getRootDn(),
+                      'dsPswd'    : server.getRootPwd(),
+                      'expectedEntries' : ['uid=scarter,ou=People,o=example',
+                                           'uid=dmiller, ou=People, o=example',
+                                           'uid=sholmes, ou=People, o=example'],
+                      'startDS'  : 'no'
+                    }
+                  </call>                                                                                
+                </sequence>
+              </iterate>
+                
+              <!-- Verify the synchronization of the trees among the servers in the topology -->          
+              <call function="'verifyTrees'">
+                [ clientHost, clientPath, master, consumerList, 'o=example' ]
+              </call>                 
+
+              <script>
+                knownIssue(2425)
+              </script> 
+                
+              <call function="'testCase_Postamble'"/>
+            </sequence>
+          </testcase>
+                                                                                                                        
           
           <import machine="STAF_LOCAL_HOSTNAME"
             file="'%s/testcases/replication/replication_cleanup.xml' % (TESTS_DIR)"/>

--
Gitblit v1.10.0