From 1c91e7852529eda5aa25217f727edf58fe9eb9dd Mon Sep 17 00:00:00 2001
From: Christophe Sovant <christophe.sovant@forgerock.com>
Date: Sun, 01 Jun 2008 14:26:09 +0000
Subject: [PATCH] Enable snmp/snmp_mibvalues testsuite

---
 opendj-sdk/opends/tests/shared/functions/snmp.xml                          |   36 +-
 opendj-sdk/opends/tests/shared/python/snmp.py                              |   16 
 opendj-sdk/opends/tests/functional-tests/testcases/snmp/snmp.xml           |    4 
 opendj-sdk/opends/tests/functional-tests/testcases/snmp/snmp_mibvalues.xml |  614 +++++++++++++++++++++++++++++++++++++++------------
 4 files changed, 500 insertions(+), 170 deletions(-)

diff --git a/opendj-sdk/opends/tests/functional-tests/testcases/snmp/snmp.xml b/opendj-sdk/opends/tests/functional-tests/testcases/snmp/snmp.xml
index 17402ba..3f10c7e 100644
--- a/opendj-sdk/opends/tests/functional-tests/testcases/snmp/snmp.xml
+++ b/opendj-sdk/opends/tests/functional-tests/testcases/snmp/snmp.xml
@@ -55,7 +55,7 @@
           <script>
             STOP_RUN = 'False'
             SNMP_PROPERTIES = {}
-            
+
             testList = []
             testList.append(['.','snmp_setup'])
             testList.append(['.','snmp_defaultproperties'])
@@ -63,7 +63,7 @@
             testList.append(['.','snmp_v2c_defaultconf'])
             testList.append(['.','snmp_v3_defaultconf'])
             testList.append(['.','snmp_trap_defaultconf'])
-            #testList.append(['.','snmp_mibvalues'])
+            testList.append(['.','snmp_mibvalues'])
             testList.append(['.','snmp_v1_customconf'])
             testList.append(['.','snmp_v2c_customconf'])
             testList.append(['.','snmp_v3_customconf'])
diff --git a/opendj-sdk/opends/tests/functional-tests/testcases/snmp/snmp_mibvalues.xml b/opendj-sdk/opends/tests/functional-tests/testcases/snmp/snmp_mibvalues.xml
index cc3742e..a84cbd9 100644
--- a/opendj-sdk/opends/tests/functional-tests/testcases/snmp/snmp_mibvalues.xml
+++ b/opendj-sdk/opends/tests/functional-tests/testcases/snmp/snmp_mibvalues.xml
@@ -50,18 +50,19 @@
           </script>
 
           <call function="'testSuite_Preamble'"/>
-          
+
           <!--- Desactivate the verbose mode -->
           <script>
             VERBOSE_MODE = 'False'
           </script>
-          
+
           <!-- Default values -->
           <script>
             community = '%s@%s' \
             % (SNMP_PROPERTIES['community'], SNMP_PROPERTIES['community'])
+            nbLoop = 10
           </script>
-          
+
           <!--- Test Case information
             #@TestMarker          SNMP MIB values
             #@TestName            snmp_mibvalues: TODO
@@ -73,14 +74,14 @@
             #@TestResult          TODO.
           -->
           <testcase name="getTestCaseName
-          ('snmp_mibvalues: check the number of connection handler')">
+          ('snmp_mibvalues: check the connection handlers')">
 
             <sequence>
 
               <call function="'testCase_Preamble'"/>
 
               <message>
-                'snmp_mibvalues: check the number of connection handler'
+                'snmp_mibvalues: save the snmp values'
               </message>
 
               <call function="'SNMPGet'">
@@ -97,17 +98,30 @@
 
               <script>
                 DEFAULT_VALUES = create_table_fromoutput(STAXResult[0][1])
+              </script>
+
+              <message>
+                'snmp_mibvalues: check the connection handlers'
+              </message>
+
+              <script>
                 nbHandler = get_handler_count(DEFAULT_VALUES)
+                indexSNMP = get_handler_index(DEFAULT_VALUES, '1.3.6.1.27.3.%s'\
+                                         % SNMP_PORT)
                 indexLDAP = get_handler_index(DEFAULT_VALUES, '1.3.6.1.27.3.%s'\
                                          % DIRECTORY_INSTANCE_PORT)
+                indexLDIF = get_handler_index(DEFAULT_VALUES, '1.3.6.1.4.1.42')
               </script>
-              
-              <if expr="nbHandler == 3">
+
+              <if expr="nbHandler == 3 and indexSNMP != 0 and indexLDAP != 0 and indexLDIF != 0">
                 <sequence>
                   <script>
-                    msg1 = 'The number of connection handler is correct.\n'
-                    msg2 = 'Current value: %s' % nbHandler
-                    msg = '%s%s' % (msg1, msg2)
+                    msg1 = 'The connection handlers info are correct.\n'
+                    msg2 = 'number of hanlder: %s\n' % nbHandler
+                    msg3 = 'index SNMP hanlder: %s\n' % indexSNMP
+                    msg4 = 'index LDAP hanlder: %s\n' % indexLDAP
+                    msg5 = 'index LDIF hanlder: %s\n' % indexLDIF
+                    msg = '%s%s%s%s%s' % (msg1, msg2, msg3, msg4, msg5)
                   </script>
                   <message>
                     '%s' % msg
@@ -117,10 +131,12 @@
                 <else>
                   <sequence>
                     <script>
-                      msg1 = 'The number of connection handler is wrong.\n'
-                      msg2 = 'Expected value: 3\n'
-                      msg3 = 'Current value: %s' % nbHandler
-                      msg = '%s%s%s' % (msg1, msg2, msg3)
+                      msg1 = 'The connection handlers info are wrong.\n'
+                      msg2 = 'number of hanlder: %s/3\n' % nbHandler
+                      msg3 = 'index SNMP hanlder: %s\n' % indexSNMP
+                      msg4 = 'index LDAP hanlder: %s\n' % indexLDAP
+                      msg5 = 'index LDIF hanlder: %s' % indexLDIF
+                      msg = '%s%s%s%s%s' % (msg1, msg2, msg3, msg4, msg5)
                     </script>
                     <message>
                       '%s' % msg
@@ -129,7 +145,7 @@
                   </sequence>
                 </else>
               </if>
-              
+
               <call function="'testCase_Postamble'"/>
 
             </sequence>
@@ -159,8 +175,10 @@
 
               <script>
                 dsServerType = DEFAULT_VALUES['dsServerType.1']
-                dsVersion = DSInfo.getServerVersion(DSInfo.ServerDict['server version'])
-                dsBuild = DSInfo.getServerBuildId(DSInfo.ServerDict['server buildid'])
+                version = DSInfo.ServerDict['server version']
+                dsVersion = DSInfo.getServerVersion(version)
+                build = DSInfo.ServerDict['server buildid']
+                dsBuild = DSInfo.getServerBuildId(build)
                 dsServer = 'OpenDS Directory Server %s - %s' \
                            % (dsVersion, dsBuild)
               </script>
@@ -277,42 +295,83 @@
               <call function="'testCase_Preamble'"/>
 
               <message>
-                'snmp_mibvalues: check value of dsApplIfSearchOps entry'
+                'snmp_mibvalues: do %s search operation' % nbLoop
+              </message>
+
+              <loop var="loop" from="1" to="nbLoop">
+                <sequence>
+
+                  <script>
+                    id = 700 + loop
+                    userDn = 'uid=user.%s,o=snmp tests,dc=example,dc=com' % id
+                  </script>
+
+                  <message>
+                    'LOOP %s: %s' % (loop, userDn)
+                  </message>
+
+                  <call function="'ldapSearchWithScript'">
+                    {
+                    'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
+                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
+                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
+                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
+                    'dsTypesOnly'      : 'True' ,
+                    'dsBaseDN'         : 'dc=com' ,
+                    'dsFilter'         : userDn
+                    }
+                  </call>
+
+                </sequence>
+              </loop>
+
+              <message>
+                'snmp_mibvalues: increment the snmp values'
               </message>
 
               <script>
-                dn = 'uid=user.2,o=snmp tests,dc=example,dc=com'
-              </script>
-              <call function="'ldapCompareWithScript'">
-                {
-                'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'dsDn'             : ['postalCode:64447' ,
-                                      '%s' % dn] ,
-                'expectedRC'       : 'noCheck'
-                }
-              </call>
-
-              <!--- Increment default values -->
-              <script>
                 key = 'dsApplIfReadOps.%s' % indexLDAP
                 DEFAULT_VALUES[key] = \
-                  str(int(DEFAULT_VALUES[key]) + 1)
+                  str(int(DEFAULT_VALUES[key]) + nbLoop)
                 key = 'dsApplIfSearchOps.%s' % indexLDAP
                 DEFAULT_VALUES[key] = \
-                  str(int(DEFAULT_VALUES[key]) + 1)
+                  str(int(DEFAULT_VALUES[key]) + nbLoop)
               </script>
-              
+
+              <message>
+                'snmp_mibvalues: check value of dsApplIfSearchOps entry'
+              </message>
+
               <call function="'compareSNMPValues'">
                 {
                 'snmpHost'      : DIRECTORY_INSTANCE_HOST ,
                 'snmpPort'      : SNMP_PORT ,
-                'snmpCommunity' : community
+                'snmpCommunity' : community ,
+                'index'         : indexLDAP
                 }
               </call>
 
+              <message>
+                'snmp_mibvalues: save the snmp values'
+              </message>
+
+              <call function="'SNMPGet'">
+                {
+                'snmpVersion'   : '1',
+                'snmpHost'      : DIRECTORY_INSTANCE_HOST ,
+                'snmpPort'      : SNMP_PORT ,
+                'snmpCommunity' : community ,
+                'snmpOIDs'      : '' ,
+                'snmpStatus'    : 'noError' ,
+                'snmpWalk'      : 'True'
+                }
+              </call>
+
+              <script>
+                DEFAULT_VALUES = {}
+                DEFAULT_VALUES = create_table_fromoutput(STAXResult[0][1])
+              </script>
+
               <call function="'testCase_Postamble'"/>
 
             </sequence>
@@ -337,48 +396,100 @@
               <call function="'testCase_Preamble'"/>
 
               <message>
-                'snmp_mibvalues: check value of dsApplIfAddEntryOps entry'
+                'snmp_mibvalues: do %s add operations' % nbLoop
+              </message>
+
+              <loop var="loop" from="1" to="nbLoop">
+                <sequence>
+
+                  <script>
+                    id = 1000 + loop
+                    userDn = 'uid=user.%s,o=snmp tests,dc=example,dc=com' % id
+
+                    listAttr = []
+                    listAttr.append('objectclass:top')
+                    listAttr.append('objectclass:organizationalperson')
+                    listAttr.append('objectclass:inetorgperson')
+                    listAttr.append('objectclass:person')
+                    listAttr.append('givenname:Izen.0')
+                    listAttr.append('sn:Abizen.0')
+                    listAttr.append('cn:Izen Abizen.0')
+                    listAttr.append('l:ICNC')
+                  </script>
+
+                  <message>
+                    'LOOP %s: %s' % (loop, userDn)
+                  </message>
+
+                  <call function="'addAnEntry'">
+                    {
+                    'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
+                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
+                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
+                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
+                    'DNToAdd'          : userDn,
+                    'listAttributes'   : listAttr
+                    }
+                  </call>
+
+                </sequence>
+              </loop>
+
+              <message>
+                'snmp_mibvalues: increment the snmp values'
               </message>
 
               <script>
-                dn = 'uid=user.2,o=snmp tests,dc=example,dc=com'
-              </script>
-              <call function="'ldapCompareWithScript'">
-                {
-                'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'dsDn'             : ['postalCode:64447' ,
-                                      '%s' % dn] ,
-                'expectedRC'       : 'noCheck'
-                }
-              </call>
-
-              <!--- Increment default values -->
-              <script>
                 key = 'dsApplIfReadOps.%s' % indexLDAP
                 DEFAULT_VALUES[key] = \
-                  str(int(DEFAULT_VALUES[key]) + 1)
+                  str(int(DEFAULT_VALUES[key]) + nbLoop)
                 key = 'dsApplIfAddEntryOps.%s' % indexLDAP
                 DEFAULT_VALUES[key] = \
-                  str(int(DEFAULT_VALUES[key]) + 1)
+                  str(int(DEFAULT_VALUES[key]) + nbLoop)
+                DEFAULT_VALUES['dsMasterEntries.1'] = \
+                  str(int(DEFAULT_VALUES['dsMasterEntries.1']) + nbLoop)
               </script>
-              
+
+              <message>
+                'snmp_mibvalues: check value of dsApplIfAddEntryOps entry'
+              </message>
+
               <call function="'compareSNMPValues'">
                 {
                 'snmpHost'      : DIRECTORY_INSTANCE_HOST ,
                 'snmpPort'      : SNMP_PORT ,
-                'snmpCommunity' : community
+                'snmpCommunity' : community ,
+                'index'         : indexLDAP
                 }
               </call>
 
+              <message>
+                'snmp_mibvalues: save the snmp values'
+              </message>
+
+              <call function="'SNMPGet'">
+                {
+                'snmpVersion'   : '1',
+                'snmpHost'      : DIRECTORY_INSTANCE_HOST ,
+                'snmpPort'      : SNMP_PORT ,
+                'snmpCommunity' : community ,
+                'snmpOIDs'      : '' ,
+                'snmpStatus'    : 'noError' ,
+                'snmpWalk'      : 'True'
+                }
+              </call>
+
+              <script>
+                DEFAULT_VALUES = {}
+                DEFAULT_VALUES = create_table_fromoutput(STAXResult[0][1])
+              </script>
+
               <call function="'testCase_Postamble'"/>
 
             </sequence>
 
           </testcase>
-          
+
            <!--- Test Case information
             #@TestMarker          SNMP MIB values
             #@TestName            snmp_mibvalues: TODO
@@ -397,48 +508,89 @@
               <call function="'testCase_Preamble'"/>
 
               <message>
-                'snmp_mibvalues: check value of dsApplIfRemoveEntryOps entry'
+                'snmp_mibvalues: do %s remove operations' % nbLoop
+              </message>
+
+              <loop var="loop" from="1" to="nbLoop">
+                <sequence>
+
+                  <script>
+                    id = 1000 + loop
+                    userDn = 'uid=user.%s,o=snmp tests,dc=example,dc=com' % id
+                  </script>
+
+                  <message>
+                    'LOOP %s: %s' % (loop, userDn)
+                  </message>
+
+                  <call function="'ldapDeleteWithScript'">
+                    {
+                    'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
+                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
+                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
+                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
+                    'dsDn'             : ['%s' % userDn]
+                    }
+                  </call>
+
+                </sequence>
+              </loop>
+
+              <message>
+                'snmp_mibvalues: increment the snmp values'
               </message>
 
               <script>
-                dn = 'uid=user.2,o=snmp tests,dc=example,dc=com'
-              </script>
-              <call function="'ldapCompareWithScript'">
-                {
-                'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'dsDn'             : ['postalCode:64447' ,
-                                      '%s' % dn] ,
-                'expectedRC'       : 'noCheck'
-                }
-              </call>
-
-              <!--- Increment default values -->
-              <script>
                 key = 'dsApplIfReadOps.%s' % indexLDAP
                 DEFAULT_VALUES[key] = \
-                  str(int(DEFAULT_VALUES[key]) + 1)
+                  str(int(DEFAULT_VALUES[key]) + nbLoop)
                 key = 'dsApplIfRemoveEntryOps.%s' % indexLDAP
                 DEFAULT_VALUES[key] = \
-                  str(int(DEFAULT_VALUES[key]) + 1)
+                  str(int(DEFAULT_VALUES[key]) + nbLoop)
+                DEFAULT_VALUES['dsMasterEntries.1'] = \
+                  str(int(DEFAULT_VALUES['dsMasterEntries.1']) - nbLoop)
               </script>
-              
+
+              <message>
+                'snmp_mibvalues: check value of dsApplIfRemoveEntryOps entry'
+              </message>
+
               <call function="'compareSNMPValues'">
                 {
                 'snmpHost'      : DIRECTORY_INSTANCE_HOST ,
                 'snmpPort'      : SNMP_PORT ,
-                'snmpCommunity' : community
+                'snmpCommunity' : community ,
+                'index'         : indexLDAP
                 }
               </call>
 
+              <message>
+                'snmp_mibvalues: save the snmp values'
+              </message>
+
+              <call function="'SNMPGet'">
+                {
+                'snmpVersion'   : '1',
+                'snmpHost'      : DIRECTORY_INSTANCE_HOST ,
+                'snmpPort'      : SNMP_PORT ,
+                'snmpCommunity' : community ,
+                'snmpOIDs'      : '' ,
+                'snmpStatus'    : 'noError' ,
+                'snmpWalk'      : 'True'
+                }
+              </call>
+
+              <script>
+                DEFAULT_VALUES = {}
+                DEFAULT_VALUES = create_table_fromoutput(STAXResult[0][1])
+              </script>
+
               <call function="'testCase_Postamble'"/>
 
             </sequence>
 
           </testcase>
-          
+
           <!--- Test Case information
             #@TestMarker          SNMP MIB values
             #@TestName            snmp_mibvalues: TODO
@@ -457,48 +609,88 @@
               <call function="'testCase_Preamble'"/>
 
               <message>
-                'snmp_mibvalues: check value of dsApplIfCompareOps entry'
+                'snmp_mibvalues: do %s compare operations' % nbLoop
+              </message>
+
+              <loop var="loop" from="1" to="nbLoop">
+                <sequence>
+
+                  <script>
+                    id = 0 + loop
+                    userDn = 'uid=user.%s,o=snmp tests,dc=example,dc=com' % id
+                  </script>
+
+                  <message>
+                    'LOOP %s: %s' % (loop, userDn)
+                  </message>
+
+                  <call function="'ldapCompareWithScript'">
+                    {
+                    'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
+                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
+                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
+                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
+                    'dsDn'             : ['postalCode:64447', '%s' % userDn] ,
+                    'expectedRC'       : 'noCheck'
+                    }
+                  </call>
+
+                </sequence>
+              </loop>
+
+              <message>
+                'snmp_mibvalues: increment the snmp values'
               </message>
 
               <script>
-                dn = 'uid=user.2,o=snmp tests,dc=example,dc=com'
-              </script>
-              <call function="'ldapCompareWithScript'">
-                {
-                'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'dsDn'             : ['postalCode:64447' ,
-                                      '%s' % dn] ,
-                'expectedRC'       : 'noCheck'
-                }
-              </call>
-
-              <!--- Increment default values -->
-              <script>
                 key = 'dsApplIfReadOps.%s' % indexLDAP
                 DEFAULT_VALUES[key] = \
-                  str(int(DEFAULT_VALUES[key]) + 1)
+                  str(int(DEFAULT_VALUES[key]) + nbLoop)
                 key = 'dsApplIfCompareOps.%s' % indexLDAP
                 DEFAULT_VALUES[key] = \
-                  str(int(DEFAULT_VALUES[key]) + 1)
+                  str(int(DEFAULT_VALUES[key]) + nbLoop)
               </script>
-              
+
+              <message>
+                'snmp_mibvalues: check value of dsApplIfCompareOps entry'
+              </message>
+
               <call function="'compareSNMPValues'">
                 {
                 'snmpHost'      : DIRECTORY_INSTANCE_HOST ,
                 'snmpPort'      : SNMP_PORT ,
-                'snmpCommunity' : community
+                'snmpCommunity' : community ,
+                'index'         : indexLDAP
                 }
               </call>
 
+              <message>
+                'snmp_mibvalues: save the snmp values'
+              </message>
+
+              <call function="'SNMPGet'">
+                {
+                'snmpVersion'   : '1',
+                'snmpHost'      : DIRECTORY_INSTANCE_HOST ,
+                'snmpPort'      : SNMP_PORT ,
+                'snmpCommunity' : community ,
+                'snmpOIDs'      : '' ,
+                'snmpStatus'    : 'noError' ,
+                'snmpWalk'      : 'True'
+                }
+              </call>
+
+              <script>
+                DEFAULT_VALUES = {}
+                DEFAULT_VALUES = create_table_fromoutput(STAXResult[0][1])
+              </script>
+
               <call function="'testCase_Postamble'"/>
 
             </sequence>
 
           </testcase>
-          
+
           <!--- Test Case information
             #@TestMarker          SNMP MIB values
             #@TestName            snmp_mibvalues: TODO
@@ -517,48 +709,90 @@
               <call function="'testCase_Preamble'"/>
 
               <message>
-                'snmp_mibvalues: check value of dsApplIfModifyEntryOps entry'
+                'snmp_mibvalues: do %s modify operations' % nbLoop
+              </message>
+
+              <loop var="loop" from="1" to="nbLoop">
+                <sequence>
+
+                  <script>
+                    id = 400 + loop
+                    userDn = 'uid=user.%s,o=snmp tests,dc=example,dc=com' % id
+                  </script>
+
+                  <message>
+                    'LOOP %s: %s' % (loop, userDn)
+                  </message>
+
+                  <call function="'modifyAnAttribute'">
+                    {
+                    'dsInstanceHost'     : DIRECTORY_INSTANCE_HOST ,
+                    'dsInstancePort'     : DIRECTORY_INSTANCE_PORT ,
+                    'dsInstanceDn'       : DIRECTORY_INSTANCE_DN ,
+                    'dsInstancePswd'     : DIRECTORY_INSTANCE_PSWD ,
+                    'DNToModify'         : userDn ,
+                    'attributeName'      : 'postalCode' ,
+                    'newAttributeValue'  : '%s' % id ,
+                    'changetype'         : 'replace'
+                    }
+                  </call>
+
+                </sequence>
+              </loop>
+
+              <message>
+                'snmp_mibvalues: increment the snmp values'
               </message>
 
               <script>
-                dn = 'uid=user.2,o=snmp tests,dc=example,dc=com'
-              </script>
-              <call function="'ldapCompareWithScript'">
-                {
-                'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'dsDn'             : ['postalCode:64447' ,
-                                      '%s' % dn] ,
-                'expectedRC'       : 'noCheck'
-                }
-              </call>
-
-              <!--- Increment default values -->
-              <script>
                 key = 'dsApplIfReadOps.%s' % indexLDAP
                 DEFAULT_VALUES[key] = \
-                  str(int(DEFAULT_VALUES[key]) + 1)
+                  str(int(DEFAULT_VALUES[key]) + nbLoop)
                 key = 'dsApplIfModifyEntryOps.%s' % indexLDAP
                 DEFAULT_VALUES[key] = \
-                  str(int(DEFAULT_VALUES[key]) + 1)
+                  str(int(DEFAULT_VALUES[key]) + nbLoop)
               </script>
-              
+
+              <message>
+                'snmp_mibvalues: check value of dsApplIfModifyEntryOps entry'
+              </message>
+
               <call function="'compareSNMPValues'">
                 {
                 'snmpHost'      : DIRECTORY_INSTANCE_HOST ,
                 'snmpPort'      : SNMP_PORT ,
-                'snmpCommunity' : community
+                'snmpCommunity' : community ,
+                'index'         : indexLDAP
                 }
               </call>
 
+              <message>
+                'snmp_mibvalues: save the snmp values'
+              </message>
+
+              <call function="'SNMPGet'">
+                {
+                'snmpVersion'   : '1',
+                'snmpHost'      : DIRECTORY_INSTANCE_HOST ,
+                'snmpPort'      : SNMP_PORT ,
+                'snmpCommunity' : community ,
+                'snmpOIDs'      : '' ,
+                'snmpStatus'    : 'noError' ,
+                'snmpWalk'      : 'True'
+                }
+              </call>
+
+              <script>
+                DEFAULT_VALUES = {}
+                DEFAULT_VALUES = create_table_fromoutput(STAXResult[0][1])
+              </script>
+
               <call function="'testCase_Postamble'"/>
 
             </sequence>
 
           </testcase>
-          
+
           <!--- Test Case information
             #@TestMarker          SNMP MIB values
             #@TestName            snmp_mibvalues: TODO
@@ -577,53 +811,143 @@
               <call function="'testCase_Preamble'"/>
 
               <message>
-                'snmp_mibvalues: check value of dsApplIfModifyRDNOps entry'
+                'snmp_mibvalues: do %s modify RDN operations' % nbLoop
               </message>
 
-              <script>
-                dn = 'uid=user.2,o=snmp tests,dc=example,dc=com'
-              </script>
-              <call function="'ldapCompareWithScript'">
+              <loop var="loop" from="1" to="nbLoop">
+                <sequence>
+
+                  <!--- Create a ldif file for moddn -->
+                  <script>
+                    id = 800 + loop
+                    userDn = 'uid=user.%s,o=snmp tests,dc=example,dc=com' % id
+                    newid = 2000 + loop
+                    newDn = 'uid=user.%s' % newid
+
+                    templateFile = 'template.ldif'
+                    templatePath = '%s/%s' % (TMPDIR, templateFile)
+                    ldifFile = 'moddn.ldif'
+                    ldifPath = '%s/%s' % (DIRECTORY_INSTANCE_DIR, ldifFile)
+                    ldifLines = []
+                    ldifLines.append('dn: %s' % userDn)
+                    ldifLines.append('changetype: moddn')
+                    ldifLines.append('newRDN: %s' % newDn)
+                    ldifLines.append('deleteOldRDN: 1')
+                    outFile = open(templatePath, "w")
+                    for line in ldifLines:
+                      outFile.write("%s\n" % line)
+                    outFile.close()
+                  </script>
+
+                  <message>
+                    'LOOP %s: %s => %s' % (loop, userDn, newDn)
+                  </message>
+
+                  <!--- Copy file to remote host -->
+                  <message>
+                    'Copy %s to %s on %s' \
+                    % (templateFile,DIRECTORY_INSTANCE_DIR,STAF_REMOTE_HOSTNAME)
+                  </message>
+                  <call function="'copyFile'">
+                    {
+                    'srcfile'    : templatePath ,
+                    'destfile'   : ldifPath ,
+                    'remotehost' : STAF_REMOTE_HOSTNAME
+                    }
+                  </call>
+
+                  <call function="'ldapModifyWithScript'">
+                    {
+                    'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
+                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
+                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
+                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
+                    'dsFilename'       : ldifPath
+                    }
+                  </call>
+
+                  <!--- Delete the ldif file used for moddn on remote host -->
+                  <message>
+                    'Delete %s on %s' % (ldifPath, STAF_REMOTE_HOSTNAME)
+                  </message>
+                  <call function="'deleteFile'">
+                    {
+                    'location' : STAF_REMOTE_HOSTNAME ,
+                    'filename' : ldifPath
+                    }
+                  </call>
+                </sequence>
+              </loop>
+
+              <!--- Delete locally the ldif file used for moddn -->
+              <message>
+                'Delete locally %s' % templatePath
+              </message>
+              <call function="'deleteFile'">
                 {
-                'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'dsDn'             : ['postalCode:64447' ,
-                                      '%s' % dn] ,
-                'expectedRC'       : 'noCheck'
+                'location' : STAXServiceMachine ,
+                'filename' : templatePath
                 }
               </call>
 
-              <!--- Increment default values -->
+              <message>
+                'snmp_mibvalues: increment the snmp values'
+              </message>
+
               <script>
                 key = 'dsApplIfReadOps.%s' % indexLDAP
                 DEFAULT_VALUES[key] = \
-                  str(int(DEFAULT_VALUES[key]) + 1)
+                  str(int(DEFAULT_VALUES[key]) + nbLoop)
                 key = 'dsApplIfModifyRDNOps.%s' % indexLDAP
                 DEFAULT_VALUES[key] = \
-                  str(int(DEFAULT_VALUES[key]) + 1)
+                  str(int(DEFAULT_VALUES[key]) + nbLoop)
               </script>
-              
+
+              <message>
+                'snmp_mibvalues: check value of dsApplIfModifyRDNOps entry'
+              </message>
+
               <call function="'compareSNMPValues'">
                 {
                 'snmpHost'      : DIRECTORY_INSTANCE_HOST ,
                 'snmpPort'      : SNMP_PORT ,
-                'snmpCommunity' : community
+                'snmpCommunity' : community ,
+                'index'         : indexLDAP
                 }
               </call>
 
+              <message>
+                'snmp_mibvalues: save the snmp values'
+              </message>
+
+              <call function="'SNMPGet'">
+                {
+                'snmpVersion'   : '1',
+                'snmpHost'      : DIRECTORY_INSTANCE_HOST ,
+                'snmpPort'      : SNMP_PORT ,
+                'snmpCommunity' : community ,
+                'snmpOIDs'      : '' ,
+                'snmpStatus'    : 'noError' ,
+                'snmpWalk'      : 'True'
+                }
+              </call>
+
+              <script>
+                DEFAULT_VALUES = {}
+                DEFAULT_VALUES = create_table_fromoutput(STAXResult[0][1])
+              </script>
+
               <call function="'testCase_Postamble'"/>
 
             </sequence>
 
           </testcase>
-          
+
           <!--- Activate the verbose mode -->
           <script>
             VERBOSE_MODE = 'True'
           </script>
-          
+
           <call function="'testSuite_Postamble'"/>
 
         </sequence>
diff --git a/opendj-sdk/opends/tests/shared/functions/snmp.xml b/opendj-sdk/opends/tests/shared/functions/snmp.xml
index 9e5d234..1f0c4c0 100755
--- a/opendj-sdk/opends/tests/shared/functions/snmp.xml
+++ b/opendj-sdk/opends/tests/shared/functions/snmp.xml
@@ -645,6 +645,12 @@
         </function-arg-description>
         <function-arg-property name="type" value="string"/>
       </function-arg-def>
+      <function-arg-def name="index" type="required">
+        <function-arg-description>
+          Index for the out/in bytes check
+        </function-arg-description>
+        <function-arg-property name="type" value="string"/>
+      </function-arg-def>
       <function-arg-def name="expectedRC" type="optional" default="0">
         <function-arg-description>
           Expected return code value. Default value is 0
@@ -677,7 +683,7 @@
         CURRENT_VALUES = {}
         CURRENT_VALUES = create_table_fromoutput(STAXResult[0][1])
 
-        result = compare_snmp_values(DEFAULT_VALUES, CURRENT_VALUES)
+        result = compare_snmp_values(DEFAULT_VALUES, CURRENT_VALUES, index)
       </script>
 
       <message>
@@ -733,19 +739,19 @@
     </function-map-args>
 
     <sequence>
-      
+
       <if expr="timerRC == 1 or timerRC == 0">
         <sequence>
-          
+
           <if expr="timerRC == 0">
             <sequence>
               <tcstatus result="'pass'"></tcstatus>
-              
+
               <message>
                 'Process TrapListener ended before timer duration: %s' \
                 % timerDuration
               </message>
-              
+
               <stafcmd name="'Delete file %s' % outputFile">
                 <location>location</location>
                 <service>'FS'</service>
@@ -755,22 +761,22 @@
             <else>
               <sequence>
                 <tcstatus result="'fail'"></tcstatus>
-                
+
                 <message>
                   'Process TrapListener still running after timer duration: %s' \
                   % timerDuration
                 </message>
-                
+
                 <stafcmd name="'Get output from TrapListener'">
                   <location>location</location>
                   <service>'FS'</service>
                   <request>'GET FILE %s' % outputFile</request>
                 </stafcmd>
-                
+
                 <if expr="RC == 0">
                   <sequence>
                     <log message="1">'Output:%s' % STAFResult</log>
-                    
+
                     <stafcmd name="'Delete file %s' % outputFile">
                       <location>location</location>
                       <service>'FS'</service>
@@ -784,22 +790,22 @@
                     </log>
                   </else>
                 </if>
-                
+
                 <message>
                   'Delete event from the trap listener'
                 </message>
-                
+
                 <call function="'DeleteEvent'">
                   {
                   'location' : location ,
                   'name'     : 'SNMPTrapListener/Ready'
                   }
                 </call>
-                
+
                 <message>
                   'Delete event from the trap listener'
                 </message>
-                
+
                 <call function="'DeleteEvent'">
                   {
                   'location' : location ,
@@ -814,8 +820,8 @@
           <tcstatus result="'fail'">'Timer failed to begin.'</tcstatus>
         </else>
       </if>
-      
+
     </sequence>
   </function>
-  
+
 </stax>
diff --git a/opendj-sdk/opends/tests/shared/python/snmp.py b/opendj-sdk/opends/tests/shared/python/snmp.py
index a6fa1ea..312135a 100644
--- a/opendj-sdk/opends/tests/shared/python/snmp.py
+++ b/opendj-sdk/opends/tests/shared/python/snmp.py
@@ -50,7 +50,7 @@
 
     return table
 
-def compare_snmp_values(refTable, newTable):
+def compare_snmp_values(refTable, newTable, index):
     import re
 
     result = ''
@@ -67,18 +67,18 @@
         result = result + 'ERROR: Entry ' + refKey + ' does not exists'
         result = result + ' in the new table.\n'
       else:
-        result = result + refKey + '=> expected: ' + refTable[refKey] 
+        result = result + refKey + '=> expected: ' + refTable[refKey]
         result = result + ' , result: ' + newTable[refKey] + '\n'
 
-      pattern1 = re.compile('dsApplIfOutBytes.*')
-      pattern2 = re.compile('dsApplIfInBytes.*')
-      if pattern1.search(refKey) != None or pattern2.search(refKey) != None:
-        if refTable[refKey] > newTable[refKey]:
-          result = result + 'ERROR: Value for ' + refKey 
+      pattern1 = 'dsApplIfOutBytes.%s' % index
+      pattern2 = 'dsApplIfInBytes.%s' % index
+      if refKey == pattern1 or refKey == pattern2:
+        if int(newTable[refKey]) <= int(refTable[refKey]):
+          result = result + 'ERROR: Value for ' + refKey
           result = result + ' should be greater.\n'
       else:
         if refTable[refKey] != newTable[refKey]:
-          result = result + 'ERROR: Value for ' + refKey 
+          result = result + 'ERROR: Value for ' + refKey
           result = result + ' should be the same.\n'
 
     return result

--
Gitblit v1.10.0