From 2848f22821f36ea934e78ae583a7009ddc4b62f7 Mon Sep 17 00:00:00 2001
From: al_xipe <al_xipe@localhost>
Date: Thu, 13 Sep 2007 00:03:29 +0000
Subject: [PATCH] first draft of automated response time tests
---
opendj-sdk/opends/tests/performance/response-time/opends.properties | 23 +
opendj-sdk/opends/tests/performance/response-time/build | 1
opendj-sdk/opends/tests/performance/response-time/build.bat | 1
opendj-sdk/opends/tests/performance/response-time/build.properties | 11
opendj-sdk/opends/tests/performance/response-time/build.xml | 376 +++++++++++++++++++++++++++++++
opendj-sdk/opends/tests/performance/response-time/proxy.xml | 24 ++
opendj-sdk/opends/tests/performance/response-time/data/telco.template.stubs | 179 ++++++++++++++
opendj-sdk/opends/tests/performance/response-time/data/98telco.ldif | 77 ++++++
8 files changed, 692 insertions(+), 0 deletions(-)
diff --git a/opendj-sdk/opends/tests/performance/response-time/build b/opendj-sdk/opends/tests/performance/response-time/build
new file mode 100755
index 0000000..0e1bb19
--- /dev/null
+++ b/opendj-sdk/opends/tests/performance/response-time/build
@@ -0,0 +1 @@
+ant/bin/ant ${*}
diff --git a/opendj-sdk/opends/tests/performance/response-time/build.bat b/opendj-sdk/opends/tests/performance/response-time/build.bat
new file mode 100644
index 0000000..730446e
--- /dev/null
+++ b/opendj-sdk/opends/tests/performance/response-time/build.bat
@@ -0,0 +1 @@
+ant\bin\ant %*
diff --git a/opendj-sdk/opends/tests/performance/response-time/build.properties b/opendj-sdk/opends/tests/performance/response-time/build.properties
new file mode 100644
index 0000000..66a86b3
--- /dev/null
+++ b/opendj-sdk/opends/tests/performance/response-time/build.properties
@@ -0,0 +1,11 @@
+# directory names
+install.dir=install
+product.dir=product
+tmp.dir=tmp
+data.dir=data
+
+# directory pathes
+install.path=${basedir}${file.separator}${install.dir}
+product.path=${install.path}${file.separator}${product.dir}
+data.path=${basedir}${file.separator}${data.dir}
+tmp.path=${basedir}${file.separator}${tmp.dir}
diff --git a/opendj-sdk/opends/tests/performance/response-time/build.xml b/opendj-sdk/opends/tests/performance/response-time/build.xml
new file mode 100644
index 0000000..2ac05b6
--- /dev/null
+++ b/opendj-sdk/opends/tests/performance/response-time/build.xml
@@ -0,0 +1,376 @@
+<project name="opends-perf-test" basedir="." default="usage">
+ <target name="usage">
+ <echo>Usage:
+ clean : remove OpenDS instance and all temporary files
+ get-opends : retrieve the latest weekly build
+ configure-opends: install and configures opends</echo>
+ </target>
+ <!-- declare the ant-contrib resource -->
+ <taskdef resource="net/sf/antcontrib/antcontrib.properties"/>
+
+ <!-- load the properties -->
+ <property file="build.properties" />
+ <property file="opends.properties" prefix="opends" />
+ <property file="proxy.properties" prefix="proxy" />
+
+ <!-- platform specific properties -->
+ <condition property="script.ext" value=".bat" else="">
+ <os family="windows" />
+ </condition>
+ <condition
+ property="opends.bin.path"
+ value="${product.path}${file.separator}bat"
+ else="${product.path}${file.separator}bin" >
+ <os family="windows" />
+ </condition>
+
+ <target name="clean-install">
+ <delete dir="${install.path}" />
+ </target>
+ <target name="clean"
+ description="Removes all temporary files and installed bits"
+ depends="clean-install" >
+ <delete dir="${tmp.path}" />
+ </target>
+
+
+ <target name="init">
+ <!-- create the temporary directory -->
+ <mkdir dir="${tmp.path}" />
+ </target>
+
+ <target name="chk-pkg">
+ <available file="${dest}"
+ property="already.downloaded"/>
+ </target>
+
+ <target name="get-pkg" depends="chk-pkg" unless="already.downloaded">
+ <get src="${src}" dest="${dest}"/>
+ </target>
+
+ <target name="get-opends-id" depends="init" unless="opends.manual.download">
+ <delete file="${tmp.path}${file.separator}${opends.url.file}" />
+ <condition property="opends.url" value="${opends.url.weekly}/${opends.url.file}">
+ <not>
+ <isset property="opends.url" />
+ </not>
+ </condition>
+ <antcall target="get-pkg">
+ <param name="src" value="${opends.url}"/>
+ <param name="dest" value="${tmp.path}${file.separator}${opends.url.file}"/>
+ </antcall>
+ <loadfile srcfile="${tmp.path}${file.separator}${opends.url.file}"
+ property="opends.build.name">
+ <filterchain>
+ <linecontainsregexp>
+ <regexp pattern="OpenDS-.*\.zip" />
+ </linecontainsregexp>
+ <replaceregex
+ pattern="^.*<A HREF=".*(OpenDS-.*)\.zip">.*$"
+ replace="\1" />
+ <striplinebreaks/>
+ </filterchain>
+ </loadfile>
+ <loadfile srcfile="${tmp.path}${file.separator}${opends.url.file}"
+ property="opends.package.url">
+ <filterchain>
+ <linecontainsregexp>
+ <regexp pattern="OpenDS-.*\.zip" />
+ </linecontainsregexp>
+ <replaceregex
+ pattern="^.*<A HREF="(.*)">.*$"
+ replace="\1" />
+ <striplinebreaks/>
+ </filterchain>
+ </loadfile>
+ <property name="opends.package.name" value="${opends.build.name}.zip" />
+ </target>
+
+ <target name="get-opends"
+ depends="init,get-opends-id"
+ unless="opends.package.available">
+ <echo message="The latest weekly build of OpenDS is packaged as [${opends.package.name}]"/>
+ <condition property="opends.url" value="${opends.url.weekly}/${opends.url.file}">
+ <not>
+ <isset property="opends.url" />
+ </not>
+ </condition>
+ <antcall target="get-pkg">
+ <param name="src" value="${opends.url}${opends.package.url}"/>
+ <param name="dest" value="${tmp.path}${file.separator}${opends.package.name}"/>
+ </antcall>
+ </target>
+
+ <target name="unpack-opends">
+ <if>
+ <available file="${product.path}" />
+ <then>
+ <echo message="OpenDS already unpacked." />
+ </then>
+ <else>
+ <mkdir dir="${install.path}" />
+ <unzip dest="${install.path}">
+ <fileset dir="${tmp.path}">
+ <include name="OpenDS-*.zip"/>
+ </fileset>
+ <mapper type="regexp" from="^OpenDS-.*?/(.*)$$" to="${product.dir}/\1"/>
+ </unzip>
+ <if>
+ <not>
+ <os family="windows" />
+ </not>
+ <then>
+ <chmod perm="755" >
+ <fileset dir="${product.path}">
+ <include name="setup" />
+ <include name="lib/*" />
+ <include name="bin/*" />
+ </fileset>
+ </chmod>
+ </then>
+ </if>
+ </else>
+ </if>
+ </target>
+
+ <target name="configure-opends">
+ <if>
+ <available file="${product.path}" />
+ <then>
+ <echo message="Setting custom schema" />
+ <copy file="${data.path}${file.separator}${opends.schema.ldif}"
+ tofile="${product.path}${file.separator}config${file.separator}schema${file.separator}${opends.schema.ldif}" />
+ <echo message="Setting OpenDS up" />
+ <exec
+ executable="${product.path}${file.separator}setup${script.ext}">
+ <arg value="--cli" />
+ <arg value="--rootUserDN" />
+ <arg value="${opends.admin.dn}" />
+ <arg line="--rootUserPassword" />
+ <arg value="${opends.admin.pwd}" />
+ <arg line="--ldapPort ${opends.port.ldap}" />
+ <arg value="--baseDN" />
+ <arg value="${opends.suffix}" />
+ <arg value="--addBaseEntry" />
+ </exec>
+ <echo message="Importing data" />
+ <exec
+ executable="${opends.bin.path}${file.separator}import-ldif${script.ext}">
+ <arg value="--ldifFile" />
+ <arg value="${tmp.path}${file.separator}${opends.makeldif.ldif}" />
+ <arg line="--backendID" />
+ <arg value="userRoot" />
+ <env key="JAVA_ARGS" value="-Xms256M -Xmx1G" />
+ </exec>
+ <echo message="Tuning server settings" />
+ </then>
+ <else>
+ <echo message="OpenDS is not installed." />
+ </else>
+ </if>
+ </target>
+
+ <target name="regenerate-template">
+ <delete file="${tmp.path}${file.separator}${opends.makeldif.template}" />
+ <antcall target="generate-template" />
+ </target>
+
+ <target name="generate-template">
+ <if>
+ <available file="${tmp.path}${file.separator}${opends.makeldif.template}" />
+ <then>
+ <echo message="Template already generated."/>
+ </then>
+ <else>
+ <if>
+ <isset property="opends.makeldif.entries"/>
+ <then>
+ <property name="entries.total.input" value="${opends.makeldif.entries}" />
+ </then>
+ <else>
+ <input message="How many entries should the resulting template generate?"
+ addproperty="entries.total.input" />
+ </else>
+ </if>
+
+ <math result="modulo30"
+ operand1="${entries.total.input}"
+ operation="%"
+ operand2="30"
+ datatype="long"/>
+ <if>
+ <equals arg1="${modulo30}" arg2="0" />
+ <then>
+ <echo message="Keeping ${entries.total.input} because it is divisable by 30"/>
+ <property name="entries.total" value="${entries.total.input}"/>
+ </then>
+ <else>
+ <math result="modulo30.adjust"
+ operand1="30"
+ operation="-"
+ operand2="${modulo30}"
+ datatype="long"/>
+ <math result="entries.total"
+ operand1="${entries.total.input}"
+ operation="+"
+ operand2="${modulo30.adjust}"
+ datatype="long"/>
+ <echo message="Increasing total entries to ${entries.total} to make it divisable by 30"/>
+ </else>
+ </if>
+
+ <math result="entries.subscribers"
+ operand1="${entries.total}"
+ operation="/"
+ operand2="3"/>
+ <math result="entries.devices"
+ operand1="${entries.subscribers}"
+ operation="*"
+ operand2="2"
+ datatype="long" />
+ <math result="entries.subscribers.4devices"
+ operand1="${entries.subscribers}"
+ operation="/"
+ operand2="10"
+ datatype="long" />
+ <math result="entries.subscribers.3devices"
+ operand1="${entries.subscribers.4devices}"
+ operation="*"
+ operand2="2"
+ datatype="long" />
+ <math result="entries.subscribers.2devices"
+ operand1="${entries.subscribers.4devices}"
+ operation="*"
+ operand2="3"
+ datatype="long" />
+ <math result="entries.subscribers.1device"
+ operand1="${entries.subscribers.4devices}"
+ operation="*"
+ operand2="4"
+ datatype="long" />
+ <property name="offset" value="1000000001"/>
+ <property name="subscribersStart" value="${offset}" />
+ <property name="devicesStart" value="${offset}" />
+ <property name="subscribers1Start" value="${subscribersStart}" />
+ <math result="subscribers2Start"
+ operand1="${subscribers1Start}"
+ operation="+"
+ operand2="${entries.subscribers.1device}"
+ datatype="long" />
+ <math result="subscribers3Start"
+ operand1="${subscribers2Start}"
+ operation="+"
+ operand2="${entries.subscribers.2devices}"
+ datatype="long" />
+ <math result="subscribers4Start"
+ operand1="${subscribers3Start}"
+ operation="+"
+ operand2="${entries.subscribers.3devices}"
+ datatype="long" />
+ <math result="subscribers2aStart"
+ operand1="${subscribers1Start}"
+ operation="+"
+ operand2="${entries.subscribers.1device}"
+ datatype="long" />
+ <math result="subscribers2bStart"
+ operand1="${subscribers2aStart}"
+ operation="+"
+ operand2="${entries.subscribers.2devices}"
+ datatype="long" />
+ <math result="subscribers3aStart"
+ operand1="${subscribers2bStart}"
+ operation="+"
+ operand2="${entries.subscribers.2devices}"
+ datatype="long" />
+ <math result="subscribers3bStart"
+ operand1="${subscribers3aStart}"
+ operation="+"
+ operand2="${entries.subscribers.3devices}"
+ datatype="long" />
+ <math result="subscribers3cStart"
+ operand1="${subscribers3bStart}"
+ operation="+"
+ operand2="${entries.subscribers.3devices}"
+ datatype="long" />
+ <math result="subscribers4aStart"
+ operand1="${subscribers3cStart}"
+ operation="+"
+ operand2="${entries.subscribers.3devices}"
+ datatype="long" />
+ <math result="subscribers4bStart"
+ operand1="${subscribers4aStart}"
+ operation="+"
+ operand2="${entries.subscribers.4devices}"
+ datatype="long" />
+ <math result="subscribers4cStart"
+ operand1="${subscribers4bStart}"
+ operation="+"
+ operand2="${entries.subscribers.4devices}"
+ datatype="long" />
+ <math result="subscribers4dStart"
+ operand1="${subscribers4cStart}"
+ operation="+"
+ operand2="${entries.subscribers.4devices}"
+ datatype="long" />
+ <copy file="${data.path}${file.separator}${opends.makeldif.stubs}"
+ tofile="${tmp.path}${file.separator}${opends.makeldif.template}">
+ <filterchain>
+ <expandproperties />
+ </filterchain>
+ </copy>
+ </else>
+ </if>
+ </target>
+
+ <target name="regenerate-ldif">
+ <delete file="${tmp.path}${file.separator}${opends.makeldif.ldif}" />
+ <antcall target="generate-ldif" />
+ </target>
+ <target name="generate-ldif">
+ <if>
+ <or>
+ <available file="${tmp.path}${file.separator}${opends.makeldif.ldif}" />
+ <not>
+ <available file="${tmp.path}${file.separator}${opends.makeldif.template}" />
+ </not>
+ <not>
+ <available file="${product.path}"/>
+ </not>
+ </or>
+ <then>
+ <if>
+ <available file="${tmp.path}${file.separator}${opends.makeldif.ldif}" />
+ <then>
+ <echo message="LDIF data already generated."/>
+ </then>
+ <else>
+ <if>
+ <available file="${product.path}"/>
+ <then>
+ <echo message="Template not available. Use 'generate-template' target."/>
+ </then>
+ <else>
+ <echo message="OpenDS not installed. Use 'get-opends unpack-opends' targets."/>
+ </else>
+ </if>
+ </else>
+ </if>
+ </then>
+ <else>
+ <exec executable="${opends.bin.path}${file.separator}make-ldif${script.ext}">
+ <arg line="--randomSeed 0" />
+ <arg value="--templateFile" />
+ <arg value="${tmp.path}${file.separator}${opends.makeldif.template}" />
+ <arg value="--ldifFile" />
+ <arg value="${tmp.path}${file.separator}${opends.makeldif.ldif}" />
+ </exec>
+ </else>
+ </if>
+ </target>
+
+ <target name="generate-opends-config">
+ </target>
+
+ <target name="generate-slamd-config" >
+ </target>
+</project>
diff --git a/opendj-sdk/opends/tests/performance/response-time/data/98telco.ldif b/opendj-sdk/opends/tests/performance/response-time/data/98telco.ldif
new file mode 100644
index 0000000..cad87ec
--- /dev/null
+++ b/opendj-sdk/opends/tests/performance/response-time/data/98telco.ldif
@@ -0,0 +1,77 @@
+dn: cn=schema
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.18.1 NAME 'ntlRadiusChapPassword' DESC 'Equal to userPassword' SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.18.2 NAME 'ntlRadiusStatus' DESC 'active' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+attributeTypes: (2.16.840.1.113730.3.1.692 NAME 'inetUserStatus' DESC 'active' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.18.4 NAME 'ntlRadiusGlobalProfileRef' DESC 'ntlRadiusGlobalProfileRef ' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.18.5 NAME 'ntlParentScopeRef' DESC 'ntlParentScopeRef' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.18.6 NAME 'portabilityState' DESC 'password change 1:initial system generated(non-portable) 2: userdefined password(portable) 3:reset system generated (non-portable)' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.18.7 NAME 'nai' DESC 'nai' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.18.8 NAME 'subscriberId' DESC 'subscriber id or SubID can be used as it is done in VISION LDAP' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.18.9 NAME 'userprofileId' DESC 'user profile id' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.18.10 NAME 'esn' DESC 'ESN or uid can be used as it is done in VISION currently' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.19.1 NAME 'modelId' DESC 'Model Identifier' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.19.2 NAME 'dataCapableDevice3G' DESC 'Data Capable Device 3G' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.19.3 NAME 'smsCapableDevice2way' DESC 'SMS Capable Device 2way' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.19.4 NAME 'shortMailCapableDevice' DESC 'Short Mail Capable Device' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.19.5 NAME 'prePaidSubscriber' DESC 'Pre Paid Subscriber' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.19.6 NAME 'cameraCapableDevice' DESC 'Camera Capable Device' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.19.7 NAME 'mmsCapableDevice' DESC 'MMS Capable Device' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.19.8 NAME 'videoMailCapableDevice' DESC 'Video Mail Capable Device' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.19.9 NAME 'pushtype' DESC 'how to push a application to device' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.1 NAME 'mdn' DESC 'Mobile Dialed Number' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.2 NAME 'msid' DESC 'Mobile Station Identifier Number' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.4 NAME 'meid' DESC 'Mobile Equipment Identifier' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.5 NAME 'manufactureid' DESC 'Manufacturer Identifier' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.6 NAME 'productId' DESC 'Product Identifier' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.7 NAME 'routingMask' DESC 'Routing Mask 3Gsub | 2WSMS | Short Mail Compatible | Virgin | Reseller' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.8 NAME 'billingmask' DESC 'Billing Mask' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.9 NAME 'contentProviderMask' DESC 'Content Provider Mask Currently not in user' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.10 NAME 'picMailServiceName' DESC 'Picture Mail Service Name' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.11 NAME 'videoMailServiceName' DESC 'Video Mail Service Name' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.12 NAME 'effectiveDate' DESC 'Date/Time Stamp Mask' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.13 NAME 'blockinfo' DESC 'block info mdn,email or domain which will be blocked' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.14 NAME 'allowWeb' DESC 'Allow Web SMS message are allowed from web' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.15 NAME 'allowMail' DESC 'Allow Mail SMS message are allowed from Mail' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.16 NAME 'allowTap' DESC 'Allow Tap SMS message are allowed from TAP' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.17 NAME 'displayMask' DESC 'Display Mask FSB: From, Subject, Body display options' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.18 NAME 'deliveryOverride' DESC 'Delivery Overide' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.19 NAME 'smsPdrOcos' DESC 'Subscriber-level Outbound Class of Service' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.8.20.20 NAME 'resellerId' DESC 'Reseller Id' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.21 NAME 'winTriggerName' DESC 'winTriggerName' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.22 NAME 'smsSubscriberFilterMt' DESC 'Subscriber controlled block of MT' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.23 NAME 'smsWhitelist' DESC 'SMS Subscriber whitelist' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.24 NAME 'smsAllowMoMessaging' DESC 'MO Provisioning Indicator' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.25 NAME 'smsAllowMtMessaging' DESC 'MT Provisioning Indicator' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.26 NAME 'smsHotlined' DESC 'Hotlined indicator' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.27 NAME 'servBeginDate' DESC 'Service Begin Date' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.28 NAME 'servEndDate' DESC 'Service End Date' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.29 NAME 'archIndicator' DESC 'Archive Indicator' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.30 NAME 'caseNumber' DESC 'case Number' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.31 NAME 'lastmodifiedbyspm' DESC 'case Number' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.32 NAME 'evdo' DESC 'EVDO' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.33 NAME 'imsi' DESC 'imsi' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.34 NAME 'imei' DESC 'imei is also tied to a device and can be similar to ESN. This can be used to identity a device.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.35 NAME 'ipaddress' DESC 'ipaddress tied to ptn handset' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.36 NAME 'mmsService' DESC 'Device is capable of mms service' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.37 NAME 'smsService' DESC 'Short Messaging Service' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.38 NAME 'twowayintlService' DESC 'subscriber is capable of international roaming' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.39 NAME 'boostService' DESC 'Subscriber has boost service' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.40 NAME 'premierService' DESC 'Subscriber has premier service' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.41 NAME 'basicService' DESC 'Subscriber has basic service' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.42 NAME 'arbalance' DESC 'Accounts Receiveable Balance for JavaCAPS' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+attributeTypes: (1.3.6.1.4.1.2792.2006.9.20.43 NAME 'arbalanced' DESC 'Accounts Receiveable Balance Date for JavaCAPS' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+objectClasses: ( 1.3.6.1.4.1.2792.2006.9.100.1 NAME 'subscriberinfo' DESC 'Subscriber Information objectclass' SUP top STRUCTURAL MAY (uid $ userPassword $ ntlRadiusChapPassword $ ntlRadiusStatus $ inetUserStatus $ ntlRadiusGlobalProfileRef $ ntlParentScopeRef $ portabilityState $ nai $ subscriberId $ userprofileId $ esn $ arbalance $ arbalanced) )
+objectClasses: ( 1.3.6.1.4.1.2792.2006.9.100.2 NAME 'devicedetails' DESC 'Device details objectclass' SUP top STRUCTURAL MAY (modelId $ dataCapableDevice3G $ smsCapableDevice2way $ shortMailCapableDevice $ prePaidSubscriber $ cameraCapableDevice $ mmsCapableDevice $ videoMailCapableDevice $ pushtype) )
+objectClasses: ( 1.3.6.1.4.1.2792.2006.9.100.3 NAME 'deviceinfo' DESC 'Subscriber Information for a Device objectclass' SUP top STRUCTURAL MAY (nai $ mdn $ msid $ esn $ meid $ manufactureId $ modelId $ productId $ routingMask $ billingMask $ contentProviderMask $ picMailServiceName $ videoMailServiceName $ effectiveDate $ blockInfo $ allowWeb $ allowMail $ allowTap $ displayMask $ deliveryOverride $ smsPdrOcos $ resellerId $ winTriggerName $ smsSubscriberFilterMt $ smsWhitelist $ smsAllowMoMessaging $ smsAllowMtMessaging $ smsHotlined $ servBeginDate $ servEndDate $ archIndicator $ caseNumber $ lastmodifiedbyspm $ evdo $ imsi $ imei $ ipaddress $ mmsService $ smsService $ twowayintlService $ boostService $ premierService $ basicService) )
+attributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.501 NAME 'sun-fm-saml2-nameid-info'
+ DESC 'SAML 2.0 Name Identifier Information' SYNTAX 1.3.6.1.4.1.1466.115.121.
+ 1.15 X-ORIGIN ( 'Sun Java System Access Management' 'user defined' ) )
+attributeTypes: ( 1.3.6.1.4.1.42.2.27.9.1.500 NAME 'sun-fm-saml2-nameid-infoke
+ y' DESC 'SAML 2.0 Name Identifier Information Key' SYNTAX 1.3.6.1.4.1.1466.1
+ 15.121.1.15 X-ORIGIN ( 'Sun Java System Access Management' 'user defined' )
+ )
+objectClasses: ( 1.3.6.1.4.1.42.2.27.9.2.200 NAME 'sunFMSAML2NameIdentifier' D
+ ESC 'SAML 2.0 name identifier objectclass' SUP top AUXILIARY MAY ( sun-fm-sa
+ ml2-nameid-infokey $ sun-fm-saml2-nameid-info ) X-ORIGIN ( 'Sun Java System
+ Access Management' 'user defined' )
+
diff --git a/opendj-sdk/opends/tests/performance/response-time/data/telco.template.stubs b/opendj-sdk/opends/tests/performance/response-time/data/telco.template.stubs
new file mode 100644
index 0000000..4989a88
--- /dev/null
+++ b/opendj-sdk/opends/tests/performance/response-time/data/telco.template.stubs
@@ -0,0 +1,179 @@
+branch: ${opends.suffix}
+
+branch: uid=admin,${opends.suffix}
+objectClass: top
+objectClass: person
+objectClass: organizationalPerson
+objectClass: inetOrgPerson
+givenName: Admin
+sn: User
+cn: Admin User
+userPassword: password
+
+branch: uid=default,${opends.suffix}
+objectClass: top
+objectClass: person
+objectClass: organizationalPerson
+objectClass: inetOrgPerson
+givenName: Default
+sn: User
+cn: Default User
+userPassword: password
+
+branch: uid=proxy,${opends.suffix}
+objectClass: top
+objectClass: person
+objectClass: organizationalPerson
+objectClass: inetOrgPerson
+givenName: Proxy
+sn: User
+cn: Proxy User
+userPassword: password
+
+branch: o=entries,${opends.suffix}
+
+branch: ou=subscriber,o=entries,${opends.suffix}
+subordinateTemplate: subscriberWithOneDevice:${entries.subscribers.1device}
+subordinateTemplate: subscriberWithTwoDevices:${entries.subscribers.2devices}
+subordinateTemplate: subscriberWithThreeDevices:${entries.subscribers.3devices}
+subordinateTemplate: subscriberWithFourDevices:${entries.subscribers.4devices}
+
+branch: ou=device,o=entries,${opends.suffix}
+subordinateTemplate: device:${entries.devices}
+
+branch: ou=devicedetails,o=entries,${opends.suffix}
+subordinateTemplate: deviceDetail:1000
+
+template: subscriberWithOneDevice
+rdnAttr: uid
+objectClass: top
+objectClass: subscriberInfo
+subscriberId: <sequential:${subscribers1Start}>
+uid: {subscriberId}
+userPassword: password
+ntlRadiusChapPassword: password
+ntlRadiusStatus: <list:Active;75:Suspended;25>
+ntlRadiusGlobalProfileRef: cn={uid},ou=profiles,ou=radius,ou=ip services,o=entries,${opends.suffix}
+ntlParentScopeRef: cn=scope<random:numeric:2>,ou=scopes,o=entries,${opends.suffix}
+inetUserStatus: {ntlRadiusStatus}
+portabilityState: <list:90;0:10;1>
+nai: {uid}\@${opends.domain}
+userProfileId: {uid}
+esn: <sequential:${subscribers1Start}>
+
+template: subscriberWithTwoDevices
+rdnAttr: uid
+objectClass: top
+objectClass: subscriberInfo
+subscriberId: <sequential:${subscribers2Start}>
+uid: {subscriberId}
+userPassword: password
+ntlRadiusChapPassword: password
+ntlRadiusStatus: <list:Active;75:Suspended;25>
+ntlRadiusGlobalProfileRef: cn={uid},ou=profiles,ou=radius,ou=ip services,o=entries,${opends.suffix}
+ntlParentScopeRef: cn=scope<random:numeric:2>,ou=scopes,o=entries,${opends.suffix}
+inetUserStatus: {ntlRadiusStatus}
+portabilityState: <list:90;0:10;1>
+nai: {uid}\@${opends.domain}
+userProfileId: {uid}
+esn: <sequential:${subscribers2aStart}>
+esn: <sequential:${subscribers2bStart}>
+
+template: subscriberWithThreeDevices
+rdnAttr: uid
+objectClass: top
+objectClass: subscriberInfo
+subscriberId: <sequential:${subscribers3Start}>
+uid: {subscriberId}
+userPassword: password
+ntlRadiusChapPassword: password
+ntlRadiusStatus: <list:Active;75:Suspended;25>
+ntlRadiusGlobalProfileRef: cn={uid},ou=profiles,ou=radius,ou=ip services,o=entries,${opends.suffix}
+ntlParentScopeRef: cn=scope<random:numeric:2>,ou=scopes,o=entries,${opends.suffix}
+inetUserStatus: {ntlRadiusStatus}
+portabilityState: <list:90;0:10;1>
+nai: {uid}\@${opends.domain}
+userProfileId: {uid}
+esn: <sequential:${subscribers3aStart}>
+esn: <sequential:${subscribers3bStart}>
+esn: <sequential:${subscribers3cStart}>
+
+template: subscriberWithFourDevices
+rdnAttr: uid
+objectClass: top
+objectClass: subscriberInfo
+subscriberId: <sequential:${subscribers4Start}>
+uid: {subscriberId}
+userPassword: password
+ntlRadiusChapPassword: password
+ntlRadiusStatus: <list:Active;75:Suspended;25>
+ntlRadiusGlobalProfileRef: cn={uid},ou=profiles,ou=radius,ou=ip services,o=entries,${opends.suffix}
+ntlParentScopeRef: cn=scope<random:numeric:2>,ou=scopes,o=entries,${opends.suffix}
+inetUserStatus: {ntlRadiusStatus}
+portabilityState: <list:90;0:10;1>
+nai: {uid}\@${opends.domain}
+userProfileId: {uid}
+esn: <sequential:${subscribers4aStart}>
+esn: <sequential:${subscribers4bStart}>
+esn: <sequential:${subscribers4cStart}>
+esn: <sequential:${subscribers4dStart}>
+
+template: device
+rdnAttr: esn
+objectClass: top
+objectClass: deviceInfo
+esn: <sequential:${devicesStart}>
+mdn: {esn}
+nai: {esn}\@${opends.domain}
+msid: {esn}
+meid: <random:hex:14>
+manufactureId: <random:numeric:3>
+modelId: <random:alpha:2><sequential:1000>
+routingMask: <random:hex:8>
+billingMask: <random:hex:8>
+contentProviderMask: 00
+picMailServiceName: 0
+videoMailServiceName: 0
+effectiveDate: 20060911031121
+blockInfo: <random:alphanumeric:8>\@<random:alphanumeric:14>.com
+allowWeb: <list:1;90:0;10>
+allowMail: <list:1;90:0;10>
+allowTap: <list:0;90:1;10>
+displayMask: <random:numeric:3>
+deliveryOverride: <random:alpha:1>
+smsPdrOcos: <random:numeric:1>
+resellerId: <random:alphanumeric:2>
+winTriggerName: <random:alphanumeric:4>
+smsSubscriberFilterMt: <list:0;90:1;10>
+smsWhitelist: <random:alphanumeric:14>\@<random:alphanumeric:13>.com
+smsAllowMoMessaging: <list:0;90:1;10>
+smsAllowMtMessaging: <list:0;90:1;10>
+smsHotlined: <list:0;90:1;10>
+servBeginDate: 20041011221521
+servEndDate: 20060410231521
+caseNumber: <random:alphanumeric:15>
+lastmodifiedbyspm: 20060311105019.9177
+evdo: <list:0;90:1;10>
+imsi: <random:numeric:15>
+imei: <random:numeric:15>
+ipaddress: <random:hex:8>
+mmsService: <list:0;90:1;10>
+smsService: <list:1;90:0;10>
+twowayintlService: <list:0;90:1;10>
+boostService: <list:0;90:1;10>
+premierService: <list:0;90:1;10>
+
+template: deviceDetail
+rdnAttr: modelId
+objectClass: top
+objectClass: deviceDetails
+modelId: <random:alpha:2><sequential:1000>
+dataCapableDevice3g: <list:0;90:1;10>
+smsCapableDevice2Way: <list:0;90:1;10>
+shortMailCapableDevice: <list:0;90:1;10>
+prePaidSubscriber: <list:0;90:1;10>
+cameraCapableDevice: <list:0;90:1;10>
+mmsCapableDevice: <list:0;90:1;10>
+videoMailCapableDevice: <list:0;90:1;10>
+pushType: <random:alpha:3>
+
diff --git a/opendj-sdk/opends/tests/performance/response-time/opends.properties b/opendj-sdk/opends/tests/performance/response-time/opends.properties
new file mode 100644
index 0000000..3445e4a
--- /dev/null
+++ b/opendj-sdk/opends/tests/performance/response-time/opends.properties
@@ -0,0 +1,23 @@
+# opends repository configuration
+url.file=index.html
+url.daily=http://builds.opends.org/daily-builds/latest/
+url.weekly=http://builds.opends.org/weekly-builds/latest/
+url=${url.daily}
+# opends instance configuration parameters
+admin.dn=uid=admin
+admin.pwd=P@55w0rd
+port.ldap=7389
+port.ldaps=7636
+port.jmx=7689
+company=telco
+domain=${company}.com
+suffix=o=${domain}
+
+# default number of entries for which to generate the make-ldif template
+makeldif.entries=1200
+makeldif.template=${company}.template
+makeldif.stubs=${company}.template.stubs
+makeldif.ldif=${company}.ldif
+
+# schema extensions
+schema.ldif=98${company}.ldif
diff --git a/opendj-sdk/opends/tests/performance/response-time/proxy.xml b/opendj-sdk/opends/tests/performance/response-time/proxy.xml
new file mode 100644
index 0000000..8d5eae1
--- /dev/null
+++ b/opendj-sdk/opends/tests/performance/response-time/proxy.xml
@@ -0,0 +1,24 @@
+<project name="opends-test-proxy" basedir="." default="usage">
+ <target name="check-proxy" unless="proxy.disabled">
+ <echo>Checking for proxy [${proxy.host}:${proxy.port}] as user [${proxy.user}].</echo>
+ <echo>Note: If these values do not match your environment, </echo>
+ <echo> please use the 'configure' target</echo>
+ <condition property="proxy.enabled">
+ <and>
+ <not>
+ <http url="${deps.propono.url}"/>
+ </not>
+ <isreachable host="${proxy.host}" timeout="5"/>
+ </and>
+ </condition>
+ </target>
+ <target name="set-proxy" depends="check-proxy" if="proxy.enabled">
+ <echo>Proxy detected. Configuring.</echo>
+ <setproxy
+ proxyhost="${proxy.host}"
+ proxyport="${proxy.port}"
+ proxyuser="${proxy.user}"
+ proxypassword="${proxy.password}"/>
+ </target>
+</project>
+
--
Gitblit v1.10.0