From 34ac48d938d5f3411505f7d0f883a585148ec716 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Fri, 08 Jan 2010 18:13:58 +0000
Subject: [PATCH] * various minor code fixes * fix unit tests * remove TODOs from Javadoc (issues are now in Issue Tracker)
---
sdk/test-output/sdk/testng-failed.xml | 14
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreEqualityMatchingRuleTest.java | 2
sdk/src/org/opends/sdk/AbstractLoadBalancingAlgorithm.java | 121
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/AttributeTypeSyntaxTest.java | 2
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreIA5SubstringMatchingRuleTest.java | 2
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/OtherMailboxSyntaxTest.java | 2
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/SchemaUtilsTest.java | 116 +
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/MatchingRuleUseSyntaxTest.java | 2
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreSubstringMatchingRuleTest.java | 2
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/LDAPSyntaxTest.java | 2
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreOrderingMatchingRuleTest.java | 2
sdk/test-output/sdk/org.opends.sdk.schema.SchemaUtilsTest.properties | 1
sdk/test-output/testng-results.xml | 1041 +++++++++++
sdk/src/org/opends/sdk/AuthenticatedConnectionFactory.java | 1
sdk/test-output/sdk/testng.xml.html | 1
sdk/src/org/opends/sdk/ldif/package-info.java | 12
sdk/tests/unit-tests-testng/src/org/opends/sdk/TestListener.java | 1458 ++++++++++++++++
sdk/test-output/testng-failed.xml | 14
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactSubstringMatchingRuleTest.java | 2
sdk/test-output/sdk/reporter-output.html | 1
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/GuideSyntaxTest.java | 2
sdk/test-output/sdk/methods.html | 150 +
sdk/test-output/sdk/org.opends.sdk.schema.SchemaUtilsTest.xml | 75
sdk/test-output/testng.css | 9
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/MatchingRuleSyntaxTest.java | 2
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/SubstitutionSyntaxTestCase.java | 71
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/BooleanEqualityMatchingRuleTest.java | 2
sdk/test-output/sdk/methods-alphabetical.html | 150 +
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/BitStringSyntaxTest.java | 2
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/GeneralizedTimeSyntaxTest.java | 137 -
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CoreSchemaTest.java | 2
sdk/src/com/sun/opends/sdk/tools/ModRate.java | 2
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/EnumSyntaxTestCase.java | 2
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/SyntaxTestCase.java | 4
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/IA5StringSyntaxTest.java | 2
sdk/test-output/sdk/groups.html | 5
sdk/tests/unit-tests-testng/src/com/sun/opends/sdk/util/StaticUtilsTest.java | 130 +
sdk/test-output/sdk/org.opends.sdk.schema.SubstitutionSyntaxTestCase.xml | 14
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/TelexSyntaxTest.java | 2
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/DITContentRuleSyntaxTest.java | 2
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/AttributeTypeTest.java | 58
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactOrderingMatchingRuleTest.java | 2
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/RegexSyntaxTestCase.java | 16
sdk/test-output/sdk/org.opends.sdk.schema.SchemaUtilsTest.html | 774 ++++++++
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/ApproximateMatchingRuleTest.java | 15
sdk/src/org/opends/sdk/package-info.java | 41
sdk/test-output/sdk/main.html | 2
sdk/test-output/sdk/org.opends.sdk.schema.SubstitutionSyntaxTestCase.properties | 1
sdk/test-output/sdk/index.html | 6
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreIA5EqualityMatchingRuleTest.java | 2
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactIA5EqualityMatchingRuleTest.java | 2
sdk/tests/unit-tests-testng/src/org/opends/sdk/SuiteRunner.java | 54
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/UTCTimeSyntaxTest.java | 2
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/BitStringEqualityMatchingRuleTest.java | 2
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactEqualityMatchingRuleTest.java | 2
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/UUIDSyntaxTest.java | 2
sdk/test-output/sdk/classes.html | 42
sdk/tests/unit-tests-testng/src/org/opends/sdk/OpenDSTestCase.java | 166 +
sdk/src/com/sun/opends/sdk/util/StaticUtils.java | 32
sdk/test-output/sdk/org.opends.sdk.schema.SubstitutionSyntaxTestCase.html | 190 ++
sdk/test-output/sdk/toc.html | 30
sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactIA5SubstringMatchingRuleTest.java | 2
sdk/test-output/sdk/methods-not-run.html | 2
sdk/src/org/opends/sdk/schema/SchemaUtils.java | 320 +--
sdk/tests/unit-tests-testng/src/org/opends/sdk/LinkedAttributeTest.java | 25
65 files changed, 4,759 insertions(+), 594 deletions(-)
diff --git a/sdk/src/com/sun/opends/sdk/tools/ModRate.java b/sdk/src/com/sun/opends/sdk/tools/ModRate.java
index c9d9fdd..31a8c876 100644
--- a/sdk/src/com/sun/opends/sdk/tools/ModRate.java
+++ b/sdk/src/com/sun/opends/sdk/tools/ModRate.java
@@ -129,7 +129,7 @@
+ "measure modify performance");
// TODO: correct usage
ArgumentParser argParser =
- new ArgumentParser(SearchRate.class.getName(), toolDescription,
+ new ArgumentParser(ModRate.class.getName(), toolDescription,
false, true, 1, 0, "[modifyString ...]");
ArgumentParserConnectionFactory connectionFactory;
ModifyPerformanceRunner runner;
diff --git a/sdk/src/com/sun/opends/sdk/util/StaticUtils.java b/sdk/src/com/sun/opends/sdk/util/StaticUtils.java
index 8cdd478..ccd41b9 100644
--- a/sdk/src/com/sun/opends/sdk/util/StaticUtils.java
+++ b/sdk/src/com/sun/opends/sdk/util/StaticUtils.java
@@ -44,7 +44,6 @@
-
/**
* Common utility methods.
*/
@@ -1183,8 +1182,8 @@
b = (byte) 0xF0;
break;
default:
- final LocalizableMessage message = ERR_HEX_DECODE_INVALID_CHARACTER.get(
- new String(new char[] { c1, c2 }), c1);
+ final LocalizableMessage message = ERR_HEX_DECODE_INVALID_CHARACTER
+ .get(new String(new char[] { c1, c2 }), c1);
throw new ParseException(message.toString(), 0);
}
@@ -1245,8 +1244,8 @@
b |= 0x0F;
break;
default:
- final LocalizableMessage message = ERR_HEX_DECODE_INVALID_CHARACTER.get(
- new String(new char[] { c1, c2 }), c1);
+ final LocalizableMessage message = ERR_HEX_DECODE_INVALID_CHARACTER
+ .get(new String(new char[] { c1, c2 }), c1);
throw new ParseException(message.toString(), 0);
}
@@ -1710,17 +1709,18 @@
throws DataFormatException
{
byte[] inputBytes = input.toByteArray();
- byte[] outputBytes = new byte[uncompressedSize > 0 ? uncompressedSize : 0];
+ byte[] outputBytes = new byte[uncompressedSize > 0 ? uncompressedSize
+ : 0];
- int decompressResult = uncompress(inputBytes, 0,
- inputBytes.length, outputBytes, 0, outputBytes.length);
+ int decompressResult = uncompress(inputBytes, 0, inputBytes.length,
+ outputBytes, 0, outputBytes.length);
if (decompressResult < 0)
{
// The destination buffer wasn't big enough. Resize and retry.
outputBytes = new byte[-decompressResult];
- decompressResult = uncompress(inputBytes, 0,
- inputBytes.length, outputBytes, 0, outputBytes.length);
+ decompressResult = uncompress(inputBytes, 0, inputBytes.length,
+ outputBytes, 0, outputBytes.length);
}
if (decompressResult >= 0)
@@ -1834,8 +1834,8 @@
}
}
}
- final LocalizableMessage message = ERR_INVALID_ESCAPE_CHAR.get(reader
- .getString(), c1);
+ final LocalizableMessage message = ERR_INVALID_ESCAPE_CHAR.get(
+ reader.getString(), c1);
throw DecodeException.error(message);
}
@@ -1843,8 +1843,8 @@
// comprise the escaped value.
if (reader.remaining() == 0)
{
- final LocalizableMessage message = ERR_HEX_DECODE_INVALID_LENGTH.get(reader
- .getString());
+ final LocalizableMessage message = ERR_HEX_DECODE_INVALID_LENGTH
+ .get(reader.getString());
throw DecodeException.error(message);
}
@@ -1907,8 +1907,8 @@
b |= 0x0F;
break;
default:
- final LocalizableMessage message = ERR_HEX_DECODE_INVALID_CHARACTER.get(
- new String(new char[] { c1, c2 }), c1);
+ final LocalizableMessage message = ERR_HEX_DECODE_INVALID_CHARACTER
+ .get(new String(new char[] { c1, c2 }), c1);
throw DecodeException.error(message);
}
return (char) b;
diff --git a/sdk/src/org/opends/sdk/AbstractLoadBalancingAlgorithm.java b/sdk/src/org/opends/sdk/AbstractLoadBalancingAlgorithm.java
index c903cc2..b5233a1 100644
--- a/sdk/src/org/opends/sdk/AbstractLoadBalancingAlgorithm.java
+++ b/sdk/src/org/opends/sdk/AbstractLoadBalancingAlgorithm.java
@@ -1,5 +1,34 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2009 Sun Microsystems, Inc.
+ */
+
package org.opends.sdk;
+
+
import com.sun.opends.sdk.util.Validator;
import com.sun.opends.sdk.util.StaticUtils;
@@ -7,20 +36,27 @@
import java.util.ArrayList;
import java.util.logging.Level;
+
+
/**
- * Created by IntelliJ IDEA. User: digitalperk Date: Dec 15, 2009 Time: 3:49:17
- * PM To change this template use File | Settings | File Templates.
+ * Created by IntelliJ IDEA. User: digitalperk Date: Dec 15, 2009 Time:
+ * 3:49:17 PM To change this template use File | Settings | File
+ * Templates.
*/
-public abstract class AbstractLoadBalancingAlgorithm
- implements LoadBalancingAlgorithm
+public abstract class AbstractLoadBalancingAlgorithm implements
+ LoadBalancingAlgorithm
{
protected final List<MonitoredConnectionFactory> factoryList;
- protected AbstractLoadBalancingAlgorithm(ConnectionFactory<?>... factories)
+
+
+ protected AbstractLoadBalancingAlgorithm(
+ ConnectionFactory<?>... factories)
{
- Validator.ensureNotNull(factories);
- factoryList = new ArrayList<MonitoredConnectionFactory>(factories.length);
- for(ConnectionFactory<?> f : factories)
+ Validator.ensureNotNull((Object[]) factories);
+ factoryList = new ArrayList<MonitoredConnectionFactory>(
+ factories.length);
+ for (ConnectionFactory<?> f : factories)
{
factoryList.add(new MonitoredConnectionFactory(f));
}
@@ -28,30 +64,42 @@
new MonitorThread().start();
}
- protected class MonitoredConnectionFactory
- extends AbstractConnectionFactory<AsynchronousConnection>
- implements ResultHandler<AsynchronousConnection>
+
+
+ protected class MonitoredConnectionFactory extends
+ AbstractConnectionFactory<AsynchronousConnection> implements
+ ResultHandler<AsynchronousConnection>
{
private final ConnectionFactory<?> factory;
+
private volatile boolean isOperational;
+
private volatile FutureResult<?> pendingConnectFuture;
+
+
private MonitoredConnectionFactory(ConnectionFactory<?> factory)
{
this.factory = factory;
this.isOperational = true;
}
+
+
public boolean isOperational()
{
return isOperational;
}
+
+
public void handleErrorResult(ErrorResultException error)
{
isOperational = false;
}
+
+
public void handleResult(AsynchronousConnection result)
{
isOperational = true;
@@ -59,44 +107,43 @@
result.close();
}
- public FutureResult<? extends AsynchronousConnection>
- getAsynchronousConnection(
+
+
+ public FutureResult<? extends AsynchronousConnection> getAsynchronousConnection(
final ResultHandler<? super AsynchronousConnection> resultHandler)
{
- ResultHandler handler = new ResultHandler<AsynchronousConnection>()
+ ResultHandler<AsynchronousConnection> handler = new ResultHandler<AsynchronousConnection>()
{
public void handleErrorResult(ErrorResultException error)
{
isOperational = false;
- if(resultHandler != null)
+ if (resultHandler != null)
{
resultHandler.handleErrorResult(error);
}
if (StaticUtils.DEBUG_LOG.isLoggable(Level.WARNING))
{
- StaticUtils.DEBUG_LOG
- .warning(String
- .format(
- "Connection factory " + factory +
- " is no longer operational: "
- + error.getMessage()));
+ StaticUtils.DEBUG_LOG.warning(String
+ .format("Connection factory " + factory
+ + " is no longer operational: "
+ + error.getMessage()));
}
}
+
+
public void handleResult(AsynchronousConnection result)
{
isOperational = true;
- if(resultHandler != null)
+ if (resultHandler != null)
{
resultHandler.handleResult(result);
}
if (StaticUtils.DEBUG_LOG.isLoggable(Level.WARNING))
{
- StaticUtils.DEBUG_LOG
- .warning(String
- .format(
- "Connection factory " + factory +
- " is now operational"));
+ StaticUtils.DEBUG_LOG.warning(String
+ .format("Connection factory " + factory
+ + " is now operational"));
}
}
};
@@ -104,6 +151,8 @@
}
}
+
+
private class MonitorThread extends Thread
{
private MonitorThread()
@@ -112,21 +161,25 @@
this.setDaemon(true);
}
+
+
public void run()
{
- while(true)
+ while (true)
{
- for(MonitoredConnectionFactory f : factoryList)
+ for (MonitoredConnectionFactory f : factoryList)
{
- if(!f.isOperational && (f.pendingConnectFuture == null ||
- f.pendingConnectFuture.isDone()))
+ if (!f.isOperational
+ && (f.pendingConnectFuture == null || f.pendingConnectFuture
+ .isDone()))
{
if (StaticUtils.DEBUG_LOG.isLoggable(Level.FINEST))
{
- StaticUtils.DEBUG_LOG
- .finest(String.format("Attempting connect on factory " + f));
+ StaticUtils.DEBUG_LOG.finest(String
+ .format("Attempting connect on factory " + f));
}
- f.pendingConnectFuture = f.factory.getAsynchronousConnection(f);
+ f.pendingConnectFuture = f.factory
+ .getAsynchronousConnection(f);
}
}
try
diff --git a/sdk/src/org/opends/sdk/AuthenticatedConnectionFactory.java b/sdk/src/org/opends/sdk/AuthenticatedConnectionFactory.java
index 4fd5102..bec779a 100644
--- a/sdk/src/org/opends/sdk/AuthenticatedConnectionFactory.java
+++ b/sdk/src/org/opends/sdk/AuthenticatedConnectionFactory.java
@@ -377,7 +377,6 @@
protected AsynchronousConnection transformResult(
BindResult result) throws ErrorResultException
{
- // FIXME: should make the result unmodifiable.
return new AuthenticatedAsynchronousConnection(connection);
}
diff --git a/sdk/src/org/opends/sdk/ldif/package-info.java b/sdk/src/org/opends/sdk/ldif/package-info.java
index 3353109..74795fb 100755
--- a/sdk/src/org/opends/sdk/ldif/package-info.java
+++ b/sdk/src/org/opends/sdk/ldif/package-info.java
@@ -27,18 +27,6 @@
/**
* Classes and interfaces for reading and writing LDIF.
- *
- * <h1>TO DO</h1>
- * <ul>
- * <li>Make LDIFEntryReader concurrent and support DN reservation.
- * <li>LDIF*Reader Reject and skip support
- * <li>Remaining schema checking (e.g. binary option)
- * <li>Fix error messages (prefix with file/lineno)
- * <li>Support multiple LDIF*Reader sources
- * <li>Support EntryWriter splitting
- * <li>Support LDIFConnectionFactory
- * <li>Comments and optional charset encoding?
- * </ul>
*/
package org.opends.sdk.ldif;
diff --git a/sdk/src/org/opends/sdk/package-info.java b/sdk/src/org/opends/sdk/package-info.java
index 78eac13..fdd33fd 100755
--- a/sdk/src/org/opends/sdk/package-info.java
+++ b/sdk/src/org/opends/sdk/package-info.java
@@ -27,47 +27,6 @@
/**
* Core OpenDS SDK API including connections, entries, and attributes.
- *
- * <h1>TODO</h1>
- * <ul>
- * <li>LDIF support <b>[Matt]</b>
- * <ul>
- * <li>LDIFReader
- * <ul>
- * <li>filtered reader (this should wrap an entry enumeration)
- * <li>should implement generic entry enumeration API.
- * </ul>
- * <li>LDIFWriter
- * <ul>
- * <li>add comments for DNs
- * <li>comments in native charset
- * <li>rest of output must be in ASCII
- * </ul>
- * </ul>
- * <li>Logging?
- * <li>Exceptions sub-types for ErrorResultException (e.g. referrals, assertion failures, client side errors).
- * <li>SearchResultEntry must be cheap to decode in non schema case.
- * <li>How should non-default Grizzly transport be specified by the application?
- * <li>Unmodifiable requests and responses
- * <li>Check that it is possible to create SearchResultEntry objects with empty attributes.
- * <li>Nameable? All objects that have a getName() method
- * <li>Enum / GeneralizedTime parsing function
- * <li>LDAP connection request timeouts configured using LDAPConnectionOptions.
- * <li>Re-instate Connection.isValid()
- * <li>Support parameters in result handlers.
- * <li>Javadoc
- * <li>Unit tests
- * <li>LDAP URL support and referral support
- * <li>Escapes in substring filter
- * <li>Threading model for decoding messages and calling result handlers
- * <li>SASL for CLI tools
- * <li>IBM JVM SSL support?
- * <li>Intermediate response support.
- * <li>Consider using Collections instead of Iterables.
- * <li>Get rid of write lock on connections so encoding can be done in parallel using Grizzly's buffers
- * <li>Should we dispose of the SASLContext on rebind?
- * </ul>
- *
*/
package org.opends.sdk;
diff --git a/sdk/src/org/opends/sdk/schema/SchemaUtils.java b/sdk/src/org/opends/sdk/schema/SchemaUtils.java
index dc1b056..0f4b596 100644
--- a/sdk/src/org/opends/sdk/schema/SchemaUtils.java
+++ b/sdk/src/org/opends/sdk/schema/SchemaUtils.java
@@ -51,7 +51,7 @@
* single quoted string, or an open parenthesis followed by a
* space-delimited set of quoted strings or unquoted words followed by
* a close parenthesis.
- *
+ *
* @param reader
* The string representation of the definition.
* @return The "extra" parameter value that was read.
@@ -108,8 +108,7 @@
values.add(readQuotedString(reader));
reader.skipWhitespaces();
reader.mark();
- }
- while (reader.read() != ')');
+ } while (reader.read() != ')');
}
}
else
@@ -118,8 +117,7 @@
do
{
length++;
- }
- while (reader.read() != ' ');
+ } while (reader.read() != ' ');
reader.reset();
values = Collections.singletonList(reader.read(length));
@@ -129,7 +127,8 @@
}
catch (final StringIndexOutOfBoundsException e)
{
- final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE
+ .get();
throw DecodeException.error(message);
}
}
@@ -181,15 +180,13 @@
values.add(readQuotedDescriptor(reader));
reader.skipWhitespaces();
reader.mark();
- }
- while (reader.read() != ')');
+ } while (reader.read() != ')');
}
}
else
{
- final LocalizableMessage message =
- ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID.get(String
- .valueOf(c), reader.pos() - 1);
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
+ .get(String.valueOf(c), reader.pos() - 1);
throw DecodeException.error(message);
}
@@ -197,92 +194,8 @@
}
catch (final StringIndexOutOfBoundsException e)
{
- final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
- throw DecodeException.error(message);
- }
- }
-
-
-
- /**
- * Reads the next OID from the definition, skipping over any leading
- * spaces.
- *
- * @param reader
- * The string representation of the definition.
- * @return The OID read from the definition.
- * @throws DecodeException
- * If a problem is encountered while reading the token name.
- */
- static String readNumericOID(SubstringReader reader)
- throws DecodeException
- {
- // This must be a numeric OID. In that case, we will accept
- // only digits and periods, but not consecutive periods.
- boolean lastWasPeriod = false;
- int length = 0;
-
- // Skip over any spaces at the beginning of the value.
- reader.skipWhitespaces();
- reader.mark();
-
- try
- {
- char c;
- while ((c = reader.read()) != ' ' && c != '\'')
- {
- if (c == '.')
- {
- if (lastWasPeriod)
- {
- final LocalizableMessage message =
- ERR_ATTR_SYNTAX_OID_CONSECUTIVE_PERIODS.get(reader
- .getString(), reader.pos() - 1);
- throw DecodeException.error(message);
- }
- else
- {
- lastWasPeriod = true;
- }
- }
- else if (!isDigit(c))
- {
- // Technically, this must be an illegal character. However, it
- // is possible that someone just got sloppy and did not
- // include a space between the name/OID and a closing
- // parenthesis. In that case, we'll assume it's the end of the
- // value.
- if (c == ')')
- {
- break;
- }
-
- // This must have been an illegal character.
- final LocalizableMessage message =
- ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER.get(reader
- .getString(), reader.pos() - 1);
- throw DecodeException.error(message);
- }
- else
- {
- lastWasPeriod = false;
- }
- length++;
- }
-
- if (length == 0)
- {
- final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_NO_VALUE.get();
- throw DecodeException.error(message);
- }
-
- reader.reset();
-
- return reader.read(length);
- }
- catch (final StringIndexOutOfBoundsException e)
- {
- final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE
+ .get();
throw DecodeException.error(message);
}
}
@@ -292,7 +205,7 @@
/**
* Reads the attribute description or numeric OID, skipping over any
* leading or trailing spaces.
- *
+ *
* @param reader
* The string representation of the definition.
* @return The attribute description or numeric OID read from the
@@ -303,31 +216,78 @@
*/
static String readOID(SubstringReader reader) throws DecodeException
{
- int length = 1;
+ int length = 0;
boolean enclosingQuote = false;
- String oid;
// Skip over any spaces at the beginning of the value.
reader.skipWhitespaces();
reader.mark();
- try
+ if (reader.remaining() > 0)
{
// The next character must be either numeric (for an OID) or
// alphabetic (for an attribute description).
- char c = reader.read();
- if (c == '\'')
+ if (reader.read() == '\'')
{
enclosingQuote = true;
reader.mark();
- c = reader.read();
}
- if (isDigit(c))
+ else
{
reader.reset();
- oid = readNumericOID(reader);
}
+ }
+ if (reader.remaining() > 0)
+ {
+ char c = reader.read();
+ length++;
+
+ if (isDigit(c))
+ {
+ // This must be a numeric OID. In that case, we will accept
+ // only digits and periods, but not consecutive periods.
+ boolean lastWasPeriod = false;
+
+ while (reader.remaining() > 0 && (c = reader.read()) != ' '
+ && c != ')' && !(c == '\'' && enclosingQuote))
+ {
+ if (c == '.')
+ {
+ if (lastWasPeriod)
+ {
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_CONSECUTIVE_PERIODS
+ .get(reader.getString(), reader.pos() - 1);
+ throw DecodeException.error(message);
+ }
+ else
+ {
+ lastWasPeriod = true;
+ }
+ }
+ else if (!isDigit(c))
+ {
+ // This must be an illegal character.
+ // This must have been an illegal character.
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER
+ .get(reader.getString(), reader.pos() - 1);
+ throw DecodeException.error(message);
+ }
+ else
+ {
+ lastWasPeriod = false;
+ }
+
+ length++;
+ }
+
+ if (lastWasPeriod)
+ {
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_ENDS_WITH_PERIOD
+ .get(reader.getString());
+ throw DecodeException.error(message);
+ }
+ }
else if (isAlpha(c))
{
// This must be an attribute description. In this case, we will
@@ -339,9 +299,8 @@
if (length == 0 && !isAlpha(c))
{
// This is an illegal character.
- final LocalizableMessage message =
- ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID.get(String
- .valueOf(c), reader.pos() - 1);
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
+ .get(String.valueOf(c), reader.pos() - 1);
throw DecodeException.error(message);
}
@@ -349,40 +308,44 @@
&& c != '_')
{
// This is an illegal character.
- final LocalizableMessage message =
- ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID.get(String
- .valueOf(c), reader.pos() - 1);
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
+ .get(String.valueOf(c), reader.pos() - 1);
throw DecodeException.error(message);
}
length++;
}
-
- reader.reset();
-
- // Return the position of the first non-space character after
- // the token.
- oid = reader.read(length);
}
else
{
- final LocalizableMessage message =
- ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID.get(String
- .valueOf(c), reader.pos() - 1);
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
+ .get(String.valueOf(c), reader.pos() - 1);
throw DecodeException.error(message);
}
- if (enclosingQuote)
+ if (enclosingQuote && c != '\'')
{
- reader.read();
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_EXPECTED_QUOTE_AT_POS
+ .get(reader.pos() - 1, String.valueOf(c));
+ throw DecodeException.error(message);
}
- return oid;
}
- catch (final StringIndexOutOfBoundsException e)
+
+ if (length == 0)
{
- final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_NO_VALUE
+ .get();
throw DecodeException.error(message);
}
+
+ reader.reset();
+ String oid = reader.read(length);
+ if (enclosingQuote)
+ {
+ reader.read();
+ }
+
+ return oid;
}
@@ -390,7 +353,7 @@
/**
* Reads the next OID from the definition, skipping over any leading
* spaces. The OID may be followed by a integer length in brackets.
- *
+ *
* @param reader
* The string representation of the definition.
* @return The OID read from the definition.
@@ -428,9 +391,8 @@
{
if (lastWasPeriod)
{
- final LocalizableMessage message =
- ERR_ATTR_SYNTAX_OID_CONSECUTIVE_PERIODS.get(reader
- .getString(), reader.pos() - 1);
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_CONSECUTIVE_PERIODS
+ .get(reader.getString(), reader.pos() - 1);
throw DecodeException.error(message);
}
else
@@ -451,9 +413,8 @@
}
// This must have been an illegal character.
- final LocalizableMessage message =
- ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER.get(reader
- .getString(), reader.pos() - 1);
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER
+ .get(reader.getString(), reader.pos() - 1);
throw DecodeException.error(message);
}
else
@@ -465,7 +426,8 @@
if (length == 0)
{
- final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_NO_VALUE.get();
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_NO_VALUE
+ .get();
throw DecodeException.error(message);
}
}
@@ -481,9 +443,8 @@
if (length == 0 && !isAlpha(c))
{
// This is an illegal character.
- final LocalizableMessage message =
- ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID.get(String
- .valueOf(c), reader.pos() - 1);
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
+ .get(String.valueOf(c), reader.pos() - 1);
throw DecodeException.error(message);
}
@@ -491,9 +452,8 @@
&& c != '_')
{
// This is an illegal character.
- final LocalizableMessage message =
- ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID.get(String
- .valueOf(c), reader.pos() - 1);
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
+ .get(String.valueOf(c), reader.pos() - 1);
throw DecodeException.error(message);
}
@@ -502,9 +462,8 @@
}
else
{
- final LocalizableMessage message =
- ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID.get(String
- .valueOf(c), reader.pos() - 1);
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
+ .get(String.valueOf(c), reader.pos() - 1);
throw DecodeException.error(message);
}
@@ -524,9 +483,8 @@
{
if (!isDigit(c))
{
- final LocalizableMessage message =
- ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER.get(reader
- .getString(), reader.pos() - 1);
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_OID_ILLEGAL_CHARACTER
+ .get(reader.getString(), reader.pos() - 1);
throw DecodeException.error(message);
}
}
@@ -544,7 +502,8 @@
}
catch (final StringIndexOutOfBoundsException e)
{
- final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE
+ .get();
throw DecodeException.error(message);
}
}
@@ -573,8 +532,7 @@
// Skip over any trailing spaces;
reader.skipWhitespaces();
- }
- while (reader.read() != ')');
+ } while (reader.read() != ')');
}
else
{
@@ -586,7 +544,8 @@
}
catch (final StringIndexOutOfBoundsException e)
{
- final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE
+ .get();
throw DecodeException.error(message);
}
}
@@ -596,7 +555,7 @@
/**
* Reads the value of a string enclosed in single quotes, skipping
* over the quotes and any leading spaces.
- *
+ *
* @param reader
* The string representation of the definition.
* @return The string value read from the definition.
@@ -604,7 +563,7 @@
* If a problem is encountered while reading the quoted
* string.
*/
- static String readQuotedDescriptor(SubstringReader reader)
+ private static String readQuotedDescriptor(SubstringReader reader)
throws DecodeException
{
int length = 0;
@@ -618,9 +577,8 @@
char c = reader.read();
if (c != '\'')
{
- final LocalizableMessage message =
- ERR_ATTR_SYNTAX_EXPECTED_QUOTE_AT_POS.get(reader.pos() - 1,
- String.valueOf(c));
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_EXPECTED_QUOTE_AT_POS
+ .get(reader.pos() - 1, String.valueOf(c));
throw DecodeException.error(message);
}
@@ -631,9 +589,8 @@
if (length == 0 && !isAlpha(c))
{
// This is an illegal character.
- final LocalizableMessage message =
- ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID.get(String
- .valueOf(c), reader.pos() - 1);
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
+ .get(String.valueOf(c), reader.pos() - 1);
throw DecodeException.error(message);
}
@@ -641,9 +598,8 @@
&& c != '.')
{
// This is an illegal character.
- final LocalizableMessage message =
- ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID.get(String
- .valueOf(c), reader.pos() - 1);
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_ILLEGAL_CHAR_IN_STRING_OID
+ .get(String.valueOf(c), reader.pos() - 1);
throw DecodeException.error(message);
}
@@ -658,7 +614,8 @@
}
catch (final StringIndexOutOfBoundsException e)
{
- final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE
+ .get();
throw DecodeException.error(message);
}
}
@@ -668,7 +625,7 @@
/**
* Reads the value of a string enclosed in single quotes, skipping
* over the quotes and any leading spaces.
- *
+ *
* @param reader
* The string representation of the definition.
* @return The string value read from the definition.
@@ -690,9 +647,8 @@
final char c = reader.read();
if (c != '\'')
{
- final LocalizableMessage message =
- ERR_ATTR_SYNTAX_EXPECTED_QUOTE_AT_POS.get(reader.pos() - 1,
- String.valueOf(c));
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_EXPECTED_QUOTE_AT_POS
+ .get(reader.pos() - 1, String.valueOf(c));
throw DecodeException.error(message);
}
@@ -711,7 +667,8 @@
}
catch (final StringIndexOutOfBoundsException e)
{
- final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE
+ .get();
throw DecodeException.error(message);
}
}
@@ -721,7 +678,7 @@
/**
* Reads the next ruleid from the definition, skipping over any
* leading spaces.
- *
+ *
* @param reader
* The string representation of the definition.
* @return The ruleid read from the definition.
@@ -748,7 +705,8 @@
if (length == 0)
{
- final LocalizableMessage message = ERR_ATTR_SYNTAX_RULE_ID_NO_VALUE.get();
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_RULE_ID_NO_VALUE
+ .get();
throw DecodeException.error(message);
}
@@ -761,14 +719,15 @@
}
catch (final NumberFormatException e)
{
- final LocalizableMessage message =
- ERR_ATTR_SYNTAX_RULE_ID_INVALID.get(ruleID);
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_RULE_ID_INVALID
+ .get(ruleID);
throw DecodeException.error(message);
}
}
catch (final StringIndexOutOfBoundsException e)
{
- final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE
+ .get();
throw DecodeException.error(message);
}
}
@@ -797,8 +756,7 @@
// Skip over any trailing spaces;
reader.skipWhitespaces();
- }
- while (reader.read() != ')');
+ } while (reader.read() != ')');
}
else
{
@@ -810,7 +768,8 @@
}
catch (final StringIndexOutOfBoundsException e)
{
- final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE
+ .get();
throw DecodeException.error(message);
}
}
@@ -820,8 +779,8 @@
/**
* Reads the next token name from the definition, skipping over any
* leading or trailing spaces or <code>null</code> if there are no
- * moretokens to read.
- *
+ * more tokens to read.
+ *
* @param reader
* The string representation of the definition.
* @return The token name read from the definition or
@@ -859,8 +818,8 @@
if (token == null && reader.remaining() > 0)
{
reader.reset();
- final LocalizableMessage message =
- ERR_ATTR_SYNTAX_UNEXPECTED_CLOSE_PARENTHESIS.get(length);
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_UNEXPECTED_CLOSE_PARENTHESIS
+ .get(length);
throw DecodeException.error(message);
}
@@ -868,7 +827,8 @@
}
catch (final StringIndexOutOfBoundsException e)
{
- final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE.get();
+ final LocalizableMessage message = ERR_ATTR_SYNTAX_TRUNCATED_VALUE
+ .get();
throw DecodeException.error(message);
}
}
diff --git a/sdk/test-output/sdk/classes.html b/sdk/test-output/sdk/classes.html
new file mode 100644
index 0000000..192c7a9
--- /dev/null
+++ b/sdk/test-output/sdk/classes.html
@@ -0,0 +1,42 @@
+<table border='1'>
+<tr>
+<th>Class name</th>
+<th>Method name</th>
+<th>Groups</th>
+</tr><tr>
+<td>org.opends.sdk.schema.SchemaUtilsTest</td>
+<td> </td><td> </td></tr>
+<tr>
+<td align='center' colspan='3'>@Test</td>
+</tr>
+<tr>
+<td> </td>
+<td>testReadOIDInvalid</td>
+<td>schema precommit sdk </td>
+</tr>
+<tr>
+<td> </td>
+<td>testReadOIDValid</td>
+<td>schema precommit sdk </td>
+</tr>
+<tr>
+<td align='center' colspan='3'>@BeforeClass</td>
+</tr>
+<tr>
+<td align='center' colspan='3'>@BeforeMethod</td>
+</tr>
+<tr>
+<td align='center' colspan='3'>@AfterMethod</td>
+</tr>
+<tr>
+<td align='center' colspan='3'>@AfterClass</td>
+</tr>
+<tr>
+<td> </td>
+<td>nullMemberVariablesAfterTest</td>
+<td> </td></tr>
+<tr>
+<td> </td>
+<td>clearSuccessfulTestParams</td>
+<td> </td></tr>
+</table>
diff --git a/sdk/test-output/sdk/groups.html b/sdk/test-output/sdk/groups.html
new file mode 100644
index 0000000..3760022
--- /dev/null
+++ b/sdk/test-output/sdk/groups.html
@@ -0,0 +1,5 @@
+<h2>Groups used for this test run</h2><table border="1">
+<tr> <td align="center"><b>Group name</b></td><td align="center"><b>Methods</b></td></tr><tr><td>precommit</td><td>org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)<br/>org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)<br/></td></tr>
+<tr><td>schema</td><td>org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)<br/>org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)<br/></td></tr>
+<tr><td>sdk</td><td>org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)<br/>org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)<br/></td></tr>
+</table>
diff --git a/sdk/test-output/sdk/index.html b/sdk/test-output/sdk/index.html
new file mode 100644
index 0000000..14b5885
--- /dev/null
+++ b/sdk/test-output/sdk/index.html
@@ -0,0 +1,6 @@
+<html><head><title>Results for sdk</title></head>
+<frameset cols="26%,74%">
+<frame src="toc.html" name="navFrame">
+<frame src="main.html" name="mainFrame">
+</frameset>
+</html>
diff --git a/sdk/test-output/sdk/main.html b/sdk/test-output/sdk/main.html
new file mode 100644
index 0000000..a064a1c
--- /dev/null
+++ b/sdk/test-output/sdk/main.html
@@ -0,0 +1,2 @@
+<html><head><title>Results for sdk</title></head>
+<body>Select a result on the left-hand pane.</body></html>
diff --git a/sdk/test-output/sdk/methods-alphabetical.html b/sdk/test-output/sdk/methods-alphabetical.html
new file mode 100644
index 0000000..1be672b
--- /dev/null
+++ b/sdk/test-output/sdk/methods-alphabetical.html
@@ -0,0 +1,150 @@
+<h2>Methods run, sorted chronologically</h2><h3>>> means before, << means after</h3><p/><br/><em>sdk</em><p/><small><i>(Hover the method name to see the test class name)</i></small><p/>
+<table border="1">
+<tr><th>Time</th><th>Delta (ms)</th><th>Suite<br>configuration</th><th>Test<br>configuration</th><th>Class<br>configuration</th><th>Groups<br>configuration</th><th>Method<br>configuration</th><th>Test<br>method</th><th>Thread</th><th>Instances</th></tr>
+<tr bgcolor="8bb7e0"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td title="<<org.opends.sdk.OpenDSTestCase.clearSuccessfulTestParams()"><<clearSuccessfulTestParams</td>
+<td> </td><td> </td><td> </td> <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="8bb7e0"> <td>10/01/08 18:59:19</td> <td>-1</td> <td> </td><td> </td><td title="<<org.opends.sdk.OpenDSTestCase.nullMemberVariablesAfterTest()"><<nullMemberVariablesAfterTest</td>
+<td> </td><td> </td><td> </td> <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-7</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-7</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-7</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-7</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-7</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-7</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-7</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-7</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-7</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-7</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-7</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>-213</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+</table>
diff --git a/sdk/test-output/sdk/methods-not-run.html b/sdk/test-output/sdk/methods-not-run.html
new file mode 100644
index 0000000..54b14cb
--- /dev/null
+++ b/sdk/test-output/sdk/methods-not-run.html
@@ -0,0 +1,2 @@
+<h2>Methods that were not run</h2><table>
+</table>
\ No newline at end of file
diff --git a/sdk/test-output/sdk/methods.html b/sdk/test-output/sdk/methods.html
new file mode 100644
index 0000000..4621209
--- /dev/null
+++ b/sdk/test-output/sdk/methods.html
@@ -0,0 +1,150 @@
+<h2>Methods run, sorted chronologically</h2><h3>>> means before, << means after</h3><p/><br/><em>sdk</em><p/><small><i>(Hover the method name to see the test class name)</i></small><p/>
+<table border="1">
+<tr><th>Time</th><th>Delta (ms)</th><th>Suite<br>configuration</th><th>Test<br>configuration</th><th>Class<br>configuration</th><th>Groups<br>configuration</th><th>Method<br>configuration</th><th>Test<br>method</th><th>Thread</th><th>Instances</th></tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)">testReadOIDValid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>206</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>206</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>206</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>206</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>206</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>206</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>206</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>206</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>206</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>206</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="e0b6f5"> <td>10/01/08 18:59:19</td> <td>206</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)">testReadOIDInvalid</td>
+ <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="8bb7e0"> <td>10/01/08 18:59:19</td> <td>212</td> <td> </td><td> </td><td title="<<org.opends.sdk.OpenDSTestCase.nullMemberVariablesAfterTest()"><<nullMemberVariablesAfterTest</td>
+<td> </td><td> </td><td> </td> <td>main@20324370</td> <td></td> </tr>
+<tr bgcolor="8bb7e0"> <td>10/01/08 18:59:19</td> <td>213</td> <td> </td><td> </td><td title="<<org.opends.sdk.OpenDSTestCase.clearSuccessfulTestParams()"><<clearSuccessfulTestParams</td>
+<td> </td><td> </td><td> </td> <td>main@20324370</td> <td></td> </tr>
+</table>
diff --git a/sdk/test-output/sdk/org.opends.sdk.schema.SchemaUtilsTest.html b/sdk/test-output/sdk/org.opends.sdk.schema.SchemaUtilsTest.html
new file mode 100644
index 0000000..33f3923
--- /dev/null
+++ b/sdk/test-output/sdk/org.opends.sdk.schema.SchemaUtilsTest.html
@@ -0,0 +1,774 @@
+<html>
+<head>
+<title>TestNG: org.opends.sdk.schema.SchemaUtilsTest</title>
+<link href="../testng.css" rel="stylesheet" type="text/css" />
+<link href="../my-testng.css" rel="stylesheet" type="text/css" />
+
+<style type="text/css">
+.log { display: none;}
+.stack-trace { display: none;}
+</style>
+<script type="text/javascript">
+<!--
+function flip(e) {
+ current = e.style.display;
+ if (current == 'block') {
+ e.style.display = 'none';
+ return 0;
+ }
+ else {
+ e.style.display = 'block';
+ return 1;
+ }
+}
+
+function toggleBox(szDivId, elem, msg1, msg2)
+{
+ var res = -1; if (document.getElementById) {
+ res = flip(document.getElementById(szDivId));
+ }
+ else if (document.all) {
+ // this is the way old msie versions work
+ res = flip(document.all[szDivId]);
+ }
+ if(elem) {
+ if(res == 0) elem.innerHTML = msg1; else elem.innerHTML = msg2;
+ }
+
+}
+
+function toggleAllBoxes() {
+ if (document.getElementsByTagName) {
+ d = document.getElementsByTagName('div');
+ for (i = 0; i < d.length; i++) {
+ if (d[i].className == 'log') {
+ flip(d[i]);
+ }
+ }
+ }
+}
+
+// -->
+</script>
+
+</head>
+<body>
+<h2 align='center'>org.opends.sdk.schema.SchemaUtilsTest</h2><table border='1' align="center">
+<tr>
+<td>Tests passed/Failed/Skipped:</td><td>71/0/0</td>
+</tr><tr>
+<td>Started on:</td><td>Fri Jan 08 18:59:18 CET 2010</td>
+</tr>
+<tr><td>Total time:</td><td>0 seconds (394 ms)</td>
+</tr><tr>
+<td>Included groups:</td><td></td>
+</tr><tr>
+<td>Excluded groups:</td><td></td>
+</tr>
+</table><p/>
+<small><i>(Hover the method name to see the test class name)</i></small><p/>
+<table width='100%' border='1' class='invocation-passed'>
+<tr><td colspan='3' align='center'><b>PASSED TESTS</b></td></tr>
+<tr><td><b>Test method</b></td>
+<td width="10%"><b>Time (seconds)</b></td>
+<td width="30%"><b>Exception</b></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid()'>testReadOIDInvalid<br/><b>Parameters:</b> </td>
+<td>0</td>
+<td><div><pre>org.opends.sdk.DecodeException: The provided value could not be parsed as a valid OID because it did not contain any characters
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:338)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace28606871", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
+<div class='stack-trace' id='stack-trace28606871'><pre>org.opends.sdk.DecodeException: The provided value could not be parsed as a valid OID because it did not contain any characters
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:338)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:597)
+ at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
+ at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
+ at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
+ at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
+ at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
+ at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
+ at org.testng.TestRunner.runWorkers(TestRunner.java:759)
+ at org.testng.TestRunner.privateRun(TestRunner.java:592)
+ at org.testng.TestRunner.run(TestRunner.java:486)
+ at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
+ at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
+ at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
+ at org.testng.SuiteRunner.run(SuiteRunner.java:204)
+ at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
+ at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
+ at org.testng.TestNG.run(TestNG.java:751)
+ at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
+ at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
+</pre></div></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid()'>testReadOIDInvalid<br/><b>Parameters:</b> .0</td>
+<td>0</td>
+<td><div><pre>org.opends.sdk.DecodeException: Non-numeric OID contained an illegal character . at position 0
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:323)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace15136722", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
+<div class='stack-trace' id='stack-trace15136722'><pre>org.opends.sdk.DecodeException: Non-numeric OID contained an illegal character . at position 0
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:323)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:597)
+ at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
+ at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
+ at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
+ at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
+ at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
+ at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
+ at org.testng.TestRunner.runWorkers(TestRunner.java:759)
+ at org.testng.TestRunner.privateRun(TestRunner.java:592)
+ at org.testng.TestRunner.run(TestRunner.java:486)
+ at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
+ at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
+ at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
+ at org.testng.SuiteRunner.run(SuiteRunner.java:204)
+ at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
+ at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
+ at org.testng.TestNG.run(TestNG.java:751)
+ at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
+ at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
+</pre></div></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid()'>testReadOIDInvalid<br/><b>Parameters:</b> 0.</td>
+<td>0</td>
+<td><div><pre>org.opends.sdk.DecodeException: The provided value "0." could not be parsed as a valid OID because it ends with a period
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:288)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace26752749", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
+<div class='stack-trace' id='stack-trace26752749'><pre>org.opends.sdk.DecodeException: The provided value "0." could not be parsed as a valid OID because it ends with a period
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:288)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:597)
+ at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
+ at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
+ at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
+ at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
+ at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
+ at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
+ at org.testng.TestRunner.runWorkers(TestRunner.java:759)
+ at org.testng.TestRunner.privateRun(TestRunner.java:592)
+ at org.testng.TestRunner.run(TestRunner.java:486)
+ at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
+ at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
+ at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
+ at org.testng.SuiteRunner.run(SuiteRunner.java:204)
+ at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
+ at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
+ at org.testng.TestNG.run(TestNG.java:751)
+ at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
+ at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
+</pre></div></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid()'>testReadOIDInvalid<br/><b>Parameters:</b> 100.</td>
+<td>0</td>
+<td><div><pre>org.opends.sdk.DecodeException: The provided value "100." could not be parsed as a valid OID because it ends with a period
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:288)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace4067003", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
+<div class='stack-trace' id='stack-trace4067003'><pre>org.opends.sdk.DecodeException: The provided value "100." could not be parsed as a valid OID because it ends with a period
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:288)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:597)
+ at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
+ at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
+ at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
+ at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
+ at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
+ at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
+ at org.testng.TestRunner.runWorkers(TestRunner.java:759)
+ at org.testng.TestRunner.privateRun(TestRunner.java:592)
+ at org.testng.TestRunner.run(TestRunner.java:486)
+ at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
+ at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
+ at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
+ at org.testng.SuiteRunner.run(SuiteRunner.java:204)
+ at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
+ at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
+ at org.testng.TestNG.run(TestNG.java:751)
+ at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
+ at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
+</pre></div></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid()'>testReadOIDInvalid<br/><b>Parameters:</b> .999</td>
+<td>0</td>
+<td><div><pre>org.opends.sdk.DecodeException: Non-numeric OID contained an illegal character . at position 0
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:323)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace3753023", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
+<div class='stack-trace' id='stack-trace3753023'><pre>org.opends.sdk.DecodeException: Non-numeric OID contained an illegal character . at position 0
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:323)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:597)
+ at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
+ at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
+ at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
+ at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
+ at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
+ at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
+ at org.testng.TestRunner.runWorkers(TestRunner.java:759)
+ at org.testng.TestRunner.privateRun(TestRunner.java:592)
+ at org.testng.TestRunner.run(TestRunner.java:486)
+ at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
+ at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
+ at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
+ at org.testng.SuiteRunner.run(SuiteRunner.java:204)
+ at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
+ at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
+ at org.testng.TestNG.run(TestNG.java:751)
+ at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
+ at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
+</pre></div></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid()'>testReadOIDInvalid<br/><b>Parameters:</b> 1one</td>
+<td>0</td>
+<td><div><pre>org.opends.sdk.DecodeException: The provided value "1one" could not be parsed as a valid OID because it had an illegal character at position 1
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:274)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace28290629", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
+<div class='stack-trace' id='stack-trace28290629'><pre>org.opends.sdk.DecodeException: The provided value "1one" could not be parsed as a valid OID because it had an illegal character at position 1
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:274)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:597)
+ at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
+ at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
+ at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
+ at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
+ at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
+ at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
+ at org.testng.TestRunner.runWorkers(TestRunner.java:759)
+ at org.testng.TestRunner.privateRun(TestRunner.java:592)
+ at org.testng.TestRunner.run(TestRunner.java:486)
+ at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
+ at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
+ at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
+ at org.testng.SuiteRunner.run(SuiteRunner.java:204)
+ at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
+ at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
+ at org.testng.TestNG.run(TestNG.java:751)
+ at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
+ at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
+</pre></div></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid()'>testReadOIDInvalid<br/><b>Parameters:</b> one+two+three</td>
+<td>0</td>
+<td><div><pre>org.opends.sdk.DecodeException: Non-numeric OID contained an illegal character + at position 3
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:313)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace14306161", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
+<div class='stack-trace' id='stack-trace14306161'><pre>org.opends.sdk.DecodeException: Non-numeric OID contained an illegal character + at position 3
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:313)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:597)
+ at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
+ at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
+ at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
+ at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
+ at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
+ at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
+ at org.testng.TestRunner.runWorkers(TestRunner.java:759)
+ at org.testng.TestRunner.privateRun(TestRunner.java:592)
+ at org.testng.TestRunner.run(TestRunner.java:486)
+ at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
+ at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
+ at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
+ at org.testng.SuiteRunner.run(SuiteRunner.java:204)
+ at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
+ at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
+ at org.testng.TestNG.run(TestNG.java:751)
+ at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
+ at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
+</pre></div></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid()'>testReadOIDInvalid<br/><b>Parameters:</b> '0</td>
+<td>0</td>
+<td><div><pre>org.opends.sdk.DecodeException: A single quote was expected at position 1 but the character 0 was found instead
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:330)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace26156414", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
+<div class='stack-trace' id='stack-trace26156414'><pre>org.opends.sdk.DecodeException: A single quote was expected at position 1 but the character 0 was found instead
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:330)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:597)
+ at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
+ at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
+ at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
+ at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
+ at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
+ at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
+ at org.testng.TestRunner.runWorkers(TestRunner.java:759)
+ at org.testng.TestRunner.privateRun(TestRunner.java:592)
+ at org.testng.TestRunner.run(TestRunner.java:486)
+ at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
+ at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
+ at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
+ at org.testng.SuiteRunner.run(SuiteRunner.java:204)
+ at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
+ at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
+ at org.testng.TestNG.run(TestNG.java:751)
+ at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
+ at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
+</pre></div></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid()'>testReadOIDInvalid<br/><b>Parameters:</b> '10</td>
+<td>0</td>
+<td><div><pre>org.opends.sdk.DecodeException: A single quote was expected at position 2 but the character 0 was found instead
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:330)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace14247437", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
+<div class='stack-trace' id='stack-trace14247437'><pre>org.opends.sdk.DecodeException: A single quote was expected at position 2 but the character 0 was found instead
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:330)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:597)
+ at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
+ at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
+ at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
+ at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
+ at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
+ at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
+ at org.testng.TestRunner.runWorkers(TestRunner.java:759)
+ at org.testng.TestRunner.privateRun(TestRunner.java:592)
+ at org.testng.TestRunner.run(TestRunner.java:486)
+ at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
+ at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
+ at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
+ at org.testng.SuiteRunner.run(SuiteRunner.java:204)
+ at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
+ at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
+ at org.testng.TestNG.run(TestNG.java:751)
+ at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
+ at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
+</pre></div></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid()'>testReadOIDInvalid<br/><b>Parameters:</b> 999'</td>
+<td>0</td>
+<td><div><pre>org.opends.sdk.DecodeException: The provided value "999'" could not be parsed as a valid OID because it had an illegal character at position 3
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:274)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace12258573", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
+<div class='stack-trace' id='stack-trace12258573'><pre>org.opends.sdk.DecodeException: The provided value "999'" could not be parsed as a valid OID because it had an illegal character at position 3
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:274)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:597)
+ at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
+ at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
+ at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
+ at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
+ at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
+ at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
+ at org.testng.TestRunner.runWorkers(TestRunner.java:759)
+ at org.testng.TestRunner.privateRun(TestRunner.java:592)
+ at org.testng.TestRunner.run(TestRunner.java:486)
+ at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
+ at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
+ at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
+ at org.testng.SuiteRunner.run(SuiteRunner.java:204)
+ at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
+ at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
+ at org.testng.TestNG.run(TestNG.java:751)
+ at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
+ at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
+</pre></div></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid()'>testReadOIDInvalid<br/><b>Parameters:</b> 0.0'</td>
+<td>0</td>
+<td><div><pre>org.opends.sdk.DecodeException: The provided value "0.0'" could not be parsed as a valid OID because it had an illegal character at position 3
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:274)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace5629279", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
+<div class='stack-trace' id='stack-trace5629279'><pre>org.opends.sdk.DecodeException: The provided value "0.0'" could not be parsed as a valid OID because it had an illegal character at position 3
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:274)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:597)
+ at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
+ at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
+ at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
+ at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
+ at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
+ at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
+ at org.testng.TestRunner.runWorkers(TestRunner.java:759)
+ at org.testng.TestRunner.privateRun(TestRunner.java:592)
+ at org.testng.TestRunner.run(TestRunner.java:486)
+ at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
+ at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
+ at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
+ at org.testng.SuiteRunner.run(SuiteRunner.java:204)
+ at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
+ at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
+ at org.testng.TestNG.run(TestNG.java:751)
+ at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
+ at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
+</pre></div></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0.0</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 1.0</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 2.0</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 3.0</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 4.0</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 5.0</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 6.0</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 7.0</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 8.0</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 9.0</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0.1</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0.2</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0.3</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0.4</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0.5</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0.6</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0.7</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0.8</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0.9</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 10.0</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 100.0</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 999.0</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0.100</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0.999</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 100.100</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 999.999</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 111.22.333.44.55555.66.777.88.999</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> a</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> a2</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> a-</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> one</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> one1</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> one-two</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> one1-two2-three3</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> '0.0'</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> '10.0'</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> '999.0'</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> '111.22.333.44.55555.66.777.88.999'</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 'a'</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 'a2'</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 'a-'</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 'one'</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 'one1'</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 'one-two'</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 'one1-two2-three3'</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 1</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 2</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 3</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 4</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 5</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 6</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 7</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 8</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 9</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 00</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 01</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 01.0</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> 0.01</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid()'>testReadOIDValid<br/><b>Parameters:</b> one.two.three</td>
+<td>0</td>
+<td></td>
+</tr>
+</table><p>
+</body>
+</html>
\ No newline at end of file
diff --git a/sdk/test-output/sdk/org.opends.sdk.schema.SchemaUtilsTest.properties b/sdk/test-output/sdk/org.opends.sdk.schema.SchemaUtilsTest.properties
new file mode 100644
index 0000000..6d7ffb7
--- /dev/null
+++ b/sdk/test-output/sdk/org.opends.sdk.schema.SchemaUtilsTest.properties
@@ -0,0 +1 @@
+[SuiteResult org.opends.sdk.schema.SchemaUtilsTest]
\ No newline at end of file
diff --git a/sdk/test-output/sdk/org.opends.sdk.schema.SchemaUtilsTest.xml b/sdk/test-output/sdk/org.opends.sdk.schema.SchemaUtilsTest.xml
new file mode 100644
index 0000000..990b0db
--- /dev/null
+++ b/sdk/test-output/sdk/org.opends.sdk.schema.SchemaUtilsTest.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<testsuite name="org.opends.sdk.schema.SchemaUtilsTest" failures="0" tests="71" time="0.394" errors="0">
+ <properties/>
+ <testcase name="testReadOIDValid" time="0.018" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0030" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0020" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDValid" time="0.012" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDInvalid" time="0.151" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDInvalid" time="0.0090" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDInvalid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDInvalid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDInvalid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDInvalid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDInvalid" time="0.0020" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDInvalid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDInvalid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDInvalid" time="0.0010" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <testcase name="testReadOIDInvalid" time="0.0030" classname="org.opends.sdk.schema.SchemaUtilsTest"/>
+</testsuite>
diff --git a/sdk/test-output/sdk/org.opends.sdk.schema.SubstitutionSyntaxTestCase.html b/sdk/test-output/sdk/org.opends.sdk.schema.SubstitutionSyntaxTestCase.html
new file mode 100644
index 0000000..292adf0
--- /dev/null
+++ b/sdk/test-output/sdk/org.opends.sdk.schema.SubstitutionSyntaxTestCase.html
@@ -0,0 +1,190 @@
+<html>
+<head>
+<title>TestNG: org.opends.sdk.schema.SubstitutionSyntaxTestCase</title>
+<link href="../testng.css" rel="stylesheet" type="text/css" />
+<link href="../my-testng.css" rel="stylesheet" type="text/css" />
+
+<style type="text/css">
+.log { display: none;}
+.stack-trace { display: none;}
+</style>
+<script type="text/javascript">
+<!--
+function flip(e) {
+ current = e.style.display;
+ if (current == 'block') {
+ e.style.display = 'none';
+ return 0;
+ }
+ else {
+ e.style.display = 'block';
+ return 1;
+ }
+}
+
+function toggleBox(szDivId, elem, msg1, msg2)
+{
+ var res = -1; if (document.getElementById) {
+ res = flip(document.getElementById(szDivId));
+ }
+ else if (document.all) {
+ // this is the way old msie versions work
+ res = flip(document.all[szDivId]);
+ }
+ if(elem) {
+ if(res == 0) elem.innerHTML = msg1; else elem.innerHTML = msg2;
+ }
+
+}
+
+function toggleAllBoxes() {
+ if (document.getElementsByTagName) {
+ d = document.getElementsByTagName('div');
+ for (i = 0; i < d.length; i++) {
+ if (d[i].className == 'log') {
+ flip(d[i]);
+ }
+ }
+ }
+}
+
+// -->
+</script>
+
+</head>
+<body>
+<h2 align='center'>org.opends.sdk.schema.SubstitutionSyntaxTestCase</h2><table border='1' align="center">
+<tr>
+<td>Tests passed/Failed/Skipped:</td><td>10/0/0</td>
+</tr><tr>
+<td>Started on:</td><td>Fri Jan 08 13:13:04 CET 2010</td>
+</tr>
+<tr><td>Total time:</td><td>0 seconds (597 ms)</td>
+</tr><tr>
+<td>Included groups:</td><td></td>
+</tr><tr>
+<td>Excluded groups:</td><td></td>
+</tr>
+</table><p/>
+<small><i>(Hover the method name to see the test class name)</i></small><p/>
+<table width='100%' border='1' class='invocation-passed'>
+<tr><td colspan='3' align='center'><b>PASSED TESTS</b></td></tr>
+<tr><td><b>Test method</b></td>
+<td width="10%"><b>Time (seconds)</b></td>
+<td width="30%"><b>Exception</b></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SubstitutionSyntaxTestCase.testAcceptableValues()'>testAcceptableValues<br/><b>Parameters:</b> 12345678, true</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SubstitutionSyntaxTestCase.testAcceptableValues()'>testAcceptableValues<br/><b>Parameters:</b> 12345678â…£, false</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SubstitutionSyntaxTestCase.testSelfSubstitute1()'>testSelfSubstitute1</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SubstitutionSyntaxTestCase.testSelfSubstitute2()'>testSelfSubstitute2</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SubstitutionSyntaxTestCase.testSubstituteCore1()'>testSubstituteCore1</td>
+<td>0</td>
+<td><div><pre>org.opends.sdk.schema.ConflictingSchemaElementException: Unable to register attribute syntax ( 1.3.6.1.4.1.1466.115.121.1.26 DESC 'Replacing DirectorySyntax' X-SUBST '9.9.9' ) with the server schema because its OID 1.3.6.1.4.1.1466.115.121.1.26 conflicts with the OID of an existing syntax 1.3.6.1.4.1.1466.115.121.1.26
+ at org.opends.sdk.schema.SchemaBuilder.addSyntax(SchemaBuilder.java:2597)
+ at org.opends.sdk.schema.SchemaBuilder.addSyntax(SchemaBuilder.java:2043)
+ at org.opends.sdk.schema.SubstitutionSyntaxTestCase.testSubstituteCore1(SubstitutionSyntaxTestCase.java:124)
+... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace4677928", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
+<div class='stack-trace' id='stack-trace4677928'><pre>org.opends.sdk.schema.ConflictingSchemaElementException: Unable to register attribute syntax ( 1.3.6.1.4.1.1466.115.121.1.26 DESC 'Replacing DirectorySyntax' X-SUBST '9.9.9' ) with the server schema because its OID 1.3.6.1.4.1.1466.115.121.1.26 conflicts with the OID of an existing syntax 1.3.6.1.4.1.1466.115.121.1.26
+ at org.opends.sdk.schema.SchemaBuilder.addSyntax(SchemaBuilder.java:2597)
+ at org.opends.sdk.schema.SchemaBuilder.addSyntax(SchemaBuilder.java:2043)
+ at org.opends.sdk.schema.SubstitutionSyntaxTestCase.testSubstituteCore1(SubstitutionSyntaxTestCase.java:124)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:597)
+ at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
+ at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
+ at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
+ at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
+ at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
+ at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
+ at org.testng.TestRunner.runWorkers(TestRunner.java:759)
+ at org.testng.TestRunner.privateRun(TestRunner.java:592)
+ at org.testng.TestRunner.run(TestRunner.java:486)
+ at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
+ at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
+ at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
+ at org.testng.SuiteRunner.run(SuiteRunner.java:204)
+ at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
+ at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
+ at org.testng.TestNG.run(TestNG.java:751)
+ at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
+ at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
+</pre></div></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SubstitutionSyntaxTestCase.testSubstituteCore1Override()'>testSubstituteCore1Override</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SubstitutionSyntaxTestCase.testSubstituteCore2()'>testSubstituteCore2</td>
+<td>0</td>
+<td><div><pre>org.opends.sdk.schema.ConflictingSchemaElementException: Unable to register attribute syntax ( 1.3.6.1.4.1.1466.115.121.1.26 DESC 'Replacing DirectorySyntax' X-SUBST '9.9.9' ) with the server schema because its OID 1.3.6.1.4.1.1466.115.121.1.26 conflicts with the OID of an existing syntax 1.3.6.1.4.1.1466.115.121.1.26
+ at org.opends.sdk.schema.SchemaBuilder.addSyntax(SchemaBuilder.java:2597)
+ at org.opends.sdk.schema.SchemaBuilder.addSubstitutionSyntax(SchemaBuilder.java:1908)
+ at org.opends.sdk.schema.SubstitutionSyntaxTestCase.testSubstituteCore2(SubstitutionSyntaxTestCase.java:136)
+... Removed 22 stack frames</pre></div><a href='#' onClick='toggleBox("stack-trace20785379", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
+<div class='stack-trace' id='stack-trace20785379'><pre>org.opends.sdk.schema.ConflictingSchemaElementException: Unable to register attribute syntax ( 1.3.6.1.4.1.1466.115.121.1.26 DESC 'Replacing DirectorySyntax' X-SUBST '9.9.9' ) with the server schema because its OID 1.3.6.1.4.1.1466.115.121.1.26 conflicts with the OID of an existing syntax 1.3.6.1.4.1.1466.115.121.1.26
+ at org.opends.sdk.schema.SchemaBuilder.addSyntax(SchemaBuilder.java:2597)
+ at org.opends.sdk.schema.SchemaBuilder.addSubstitutionSyntax(SchemaBuilder.java:1908)
+ at org.opends.sdk.schema.SubstitutionSyntaxTestCase.testSubstituteCore2(SubstitutionSyntaxTestCase.java:136)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:597)
+ at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
+ at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
+ at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
+ at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
+ at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
+ at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
+ at org.testng.TestRunner.runWorkers(TestRunner.java:759)
+ at org.testng.TestRunner.privateRun(TestRunner.java:592)
+ at org.testng.TestRunner.run(TestRunner.java:486)
+ at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
+ at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
+ at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
+ at org.testng.SuiteRunner.run(SuiteRunner.java:204)
+ at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
+ at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
+ at org.testng.TestNG.run(TestNG.java:751)
+ at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
+ at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
+</pre></div></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SubstitutionSyntaxTestCase.testSubstituteCore2Override()'>testSubstituteCore2Override</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SubstitutionSyntaxTestCase.testUndefinedSubstitute1()'>testUndefinedSubstitute1</td>
+<td>0</td>
+<td></td>
+</tr>
+<tr>
+<td title='org.opends.sdk.schema.SubstitutionSyntaxTestCase.testUndefinedSubstitute2()'>testUndefinedSubstitute2</td>
+<td>0</td>
+<td></td>
+</tr>
+</table><p>
+</body>
+</html>
\ No newline at end of file
diff --git a/sdk/test-output/sdk/org.opends.sdk.schema.SubstitutionSyntaxTestCase.properties b/sdk/test-output/sdk/org.opends.sdk.schema.SubstitutionSyntaxTestCase.properties
new file mode 100644
index 0000000..dd8ffae
--- /dev/null
+++ b/sdk/test-output/sdk/org.opends.sdk.schema.SubstitutionSyntaxTestCase.properties
@@ -0,0 +1 @@
+[SuiteResult org.opends.sdk.schema.SubstitutionSyntaxTestCase]
\ No newline at end of file
diff --git a/sdk/test-output/sdk/org.opends.sdk.schema.SubstitutionSyntaxTestCase.xml b/sdk/test-output/sdk/org.opends.sdk.schema.SubstitutionSyntaxTestCase.xml
new file mode 100644
index 0000000..c4817b0
--- /dev/null
+++ b/sdk/test-output/sdk/org.opends.sdk.schema.SubstitutionSyntaxTestCase.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<testsuite name="org.opends.sdk.schema.SubstitutionSyntaxTestCase" failures="0" tests="10" time="0.597" errors="0">
+ <properties/>
+ <testcase name="testSubstituteCore2Override" time="0.164" classname="org.opends.sdk.schema.SubstitutionSyntaxTestCase"/>
+ <testcase name="testSelfSubstitute1" time="0.341" classname="org.opends.sdk.schema.SubstitutionSyntaxTestCase"/>
+ <testcase name="testSubstituteCore2" time="0.0060" classname="org.opends.sdk.schema.SubstitutionSyntaxTestCase"/>
+ <testcase name="testSubstituteCore1" time="0.0020" classname="org.opends.sdk.schema.SubstitutionSyntaxTestCase"/>
+ <testcase name="testSelfSubstitute2" time="0.01" classname="org.opends.sdk.schema.SubstitutionSyntaxTestCase"/>
+ <testcase name="testSubstituteCore1Override" time="0.0020" classname="org.opends.sdk.schema.SubstitutionSyntaxTestCase"/>
+ <testcase name="testAcceptableValues" time="0.0030" classname="org.opends.sdk.schema.SubstitutionSyntaxTestCase"/>
+ <testcase name="testAcceptableValues" time="0.0040" classname="org.opends.sdk.schema.SubstitutionSyntaxTestCase"/>
+ <testcase name="testUndefinedSubstitute1" time="0.0070" classname="org.opends.sdk.schema.SubstitutionSyntaxTestCase"/>
+ <testcase name="testUndefinedSubstitute2" time="0.0080" classname="org.opends.sdk.schema.SubstitutionSyntaxTestCase"/>
+</testsuite>
diff --git a/sdk/test-output/sdk/reporter-output.html b/sdk/test-output/sdk/reporter-output.html
new file mode 100644
index 0000000..063bc2e
--- /dev/null
+++ b/sdk/test-output/sdk/reporter-output.html
@@ -0,0 +1 @@
+<h2>Reporter output</h2><table></table>
\ No newline at end of file
diff --git a/sdk/test-output/sdk/testng-failed.xml b/sdk/test-output/sdk/testng-failed.xml
new file mode 100644
index 0000000..5a32c9e
--- /dev/null
+++ b/sdk/test-output/sdk/testng-failed.xml
@@ -0,0 +1,14 @@
+<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
+<suite thread-count="5" skipfailedinvocationCounts="false" verbose="1" name="Failed suite [sdk]" junit="false" parallel="false" annotations="JDK">
+ <test name="org.opends.sdk.schema.AttributeTypeTest(failed)" junit="false" parallel="false" annotations="JDK">
+ <classes>
+ <class name="org.opends.sdk.schema.AttributeTypeTest">
+ <methods>
+ <include name="nullMemberVariablesAfterTest"/>
+ <include name="clearSuccessfulTestParams"/>
+ <include name="testADSyntax"/>
+ </methods>
+ </class>
+ </classes>
+ </test>
+</suite>
diff --git a/sdk/test-output/sdk/testng.xml.html b/sdk/test-output/sdk/testng.xml.html
new file mode 100644
index 0000000..6045ec6
--- /dev/null
+++ b/sdk/test-output/sdk/testng.xml.html
@@ -0,0 +1 @@
+<html><head><title>testng.xml for sdk</title></head><body><tt><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"><br/><suite thread-count="5" skipfailedinvocationCounts="false" verbose="1" name="sdk" junit="false" parallel="false" annotations="JDK"><br/> <test verbose="2" name="org.opends.sdk.schema.SchemaUtilsTest" junit="false" annotations="JDK"><br/> <classes><br/> <class name="org.opends.sdk.schema.SchemaUtilsTest"/><br/> </classes><br/> </test><br/></suite><br/></tt></body></html>
\ No newline at end of file
diff --git a/sdk/test-output/sdk/toc.html b/sdk/test-output/sdk/toc.html
new file mode 100644
index 0000000..207ceaf
--- /dev/null
+++ b/sdk/test-output/sdk/toc.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+<title>Results for sdk</title>
+<link href="../testng.css" rel="stylesheet" type="text/css" />
+<link href="../my-testng.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<h3><p align="center">Results for<br/><em>sdk</em></p></h3>
+<table border='1' width='100%'>
+<tr valign='top'>
+<td>1 test</td>
+<td><a target='mainFrame' href='classes.html'>1 class</a></td>
+<td>2 methods:<br/>
+ <a target='mainFrame' href='methods.html'>chronological</a><br/>
+ <a target='mainFrame' href='methods-alphabetical.html'>alphabetical</a><br/>
+ <a target='mainFrame' href='methods-not-run.html'>not run (0)</a></td>
+</tr>
+<tr>
+<td><a target='mainFrame' href='groups.html'>3 groups</a></td>
+<td><a target='mainFrame' href='reporter-output.html'>reporter output</a></td>
+<td><a target='mainFrame' href='testng.xml.html'>testng.xml</a></td>
+</tr></table>
+<table width='100%' class='test-passed'>
+<tr><td>
+<table style='width: 100%'><tr><td valign='top'>org.opends.sdk.schema.SchemaUtilsTest (71/0/0)</td><td valign='top' align='right'>
+ <a href='org.opends.sdk.schema.SchemaUtilsTest.html' target='mainFrame'>Results</a>
+</td></tr></table>
+</td></tr><p/>
+</table>
+</body></html>
\ No newline at end of file
diff --git a/sdk/test-output/testng-failed.xml b/sdk/test-output/testng-failed.xml
new file mode 100644
index 0000000..5a32c9e
--- /dev/null
+++ b/sdk/test-output/testng-failed.xml
@@ -0,0 +1,14 @@
+<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
+<suite thread-count="5" skipfailedinvocationCounts="false" verbose="1" name="Failed suite [sdk]" junit="false" parallel="false" annotations="JDK">
+ <test name="org.opends.sdk.schema.AttributeTypeTest(failed)" junit="false" parallel="false" annotations="JDK">
+ <classes>
+ <class name="org.opends.sdk.schema.AttributeTypeTest">
+ <methods>
+ <include name="nullMemberVariablesAfterTest"/>
+ <include name="clearSuccessfulTestParams"/>
+ <include name="testADSyntax"/>
+ </methods>
+ </class>
+ </classes>
+ </test>
+</suite>
diff --git a/sdk/test-output/testng-results.xml b/sdk/test-output/testng-results.xml
new file mode 100644
index 0000000..8598147
--- /dev/null
+++ b/sdk/test-output/testng-results.xml
@@ -0,0 +1,1041 @@
+<testng-results>
+ <reporter-output>
+ </reporter-output>
+ <suite name="sdk">
+ <groups>
+ <group name="schema">
+ <method signature="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)" name="testReadOIDValid" class="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <method signature="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" class="org.opends.sdk.schema.SchemaUtilsTest"/>
+ </group>
+ <group name="precommit">
+ <method signature="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)" name="testReadOIDValid" class="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <method signature="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" class="org.opends.sdk.schema.SchemaUtilsTest"/>
+ </group>
+ <group name="sdk">
+ <method signature="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDValid(java.lang.String)" name="testReadOIDValid" class="org.opends.sdk.schema.SchemaUtilsTest"/>
+ <method signature="org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" class="org.opends.sdk.schema.SchemaUtilsTest"/>
+ </group>
+ </groups>
+ <test name="org.opends.sdk.schema.SchemaUtilsTest">
+ <class name="org.opends.sdk.schema.SchemaUtilsTest">
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="0" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[9]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="18" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[0.0]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA['one-two']]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA['a2']]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA['10.0']]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" duration-ms="1" started-at="2010-01-08T18:59:19Z" finished-at="2010-01-08T18:59:19Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[1one]]>
+ </value>
+ </param>
+ </params>
+ <exception class="org.opends.sdk.DecodeException">
+ <message>
+ <![CDATA[The provided value "1one" could not be parsed as a valid OID because it had an illegal character at position 1]]>
+ </message>
+ <full-stacktrace>
+ <![CDATA[org.opends.sdk.DecodeException: The provided value "1one" could not be parsed as a valid OID because it had an illegal character at position 1
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:274)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:597)
+ at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
+ at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
+ at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
+ at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
+ at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
+ at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
+ at org.testng.TestRunner.runWorkers(TestRunner.java:759)
+ at org.testng.TestRunner.privateRun(TestRunner.java:592)
+ at org.testng.TestRunner.run(TestRunner.java:486)
+ at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
+ at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
+ at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
+ at org.testng.SuiteRunner.run(SuiteRunner.java:204)
+ at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
+ at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
+ at org.testng.TestNG.run(TestNG.java:751)
+ at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
+ at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
+]]>
+ </full-stacktrace>
+ </exception>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[one]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[10.0]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="clearSuccessfulTestParams()" name="clearSuccessfulTestParams" is-config="true" duration-ms="1" started-at="2010-01-08T18:59:19Z" finished-at="2010-01-08T18:59:19Z">
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[one1-two2-three3]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[0.01]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA['one1-two2-three3']]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[0.5]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[999.0]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[01.0]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="0" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[one-two]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[8.0]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" duration-ms="1" started-at="2010-01-08T18:59:19Z" finished-at="2010-01-08T18:59:19Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[100.]]>
+ </value>
+ </param>
+ </params>
+ <exception class="org.opends.sdk.DecodeException">
+ <message>
+ <![CDATA[The provided value "100." could not be parsed as a valid OID because it ends with a period]]>
+ </message>
+ <full-stacktrace>
+ <![CDATA[org.opends.sdk.DecodeException: The provided value "100." could not be parsed as a valid OID because it ends with a period
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:288)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:597)
+ at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
+ at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
+ at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
+ at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
+ at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
+ at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
+ at org.testng.TestRunner.runWorkers(TestRunner.java:759)
+ at org.testng.TestRunner.privateRun(TestRunner.java:592)
+ at org.testng.TestRunner.run(TestRunner.java:486)
+ at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
+ at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
+ at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
+ at org.testng.SuiteRunner.run(SuiteRunner.java:204)
+ at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
+ at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
+ at org.testng.TestNG.run(TestNG.java:751)
+ at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
+ at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
+]]>
+ </full-stacktrace>
+ </exception>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[9.0]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[6]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[1.0]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[0.8]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="3" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[0.1]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[0]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[0.100]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[999.999]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[6.0]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[111.22.333.44.55555.66.777.88.999]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="2" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[0.6]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[0.999]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA['0.0']]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[one1]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" duration-ms="2" started-at="2010-01-08T18:59:19Z" finished-at="2010-01-08T18:59:19Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[one+two+three]]>
+ </value>
+ </param>
+ </params>
+ <exception class="org.opends.sdk.DecodeException">
+ <message>
+ <![CDATA[Non-numeric OID contained an illegal character + at position 3]]>
+ </message>
+ <full-stacktrace>
+ <![CDATA[org.opends.sdk.DecodeException: Non-numeric OID contained an illegal character + at position 3
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:313)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:597)
+ at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
+ at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
+ at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
+ at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
+ at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
+ at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
+ at org.testng.TestRunner.runWorkers(TestRunner.java:759)
+ at org.testng.TestRunner.privateRun(TestRunner.java:592)
+ at org.testng.TestRunner.run(TestRunner.java:486)
+ at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
+ at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
+ at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
+ at org.testng.SuiteRunner.run(SuiteRunner.java:204)
+ at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
+ at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
+ at org.testng.TestNG.run(TestNG.java:751)
+ at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
+ at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
+]]>
+ </full-stacktrace>
+ </exception>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[01]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[a-]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[100.0]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[a]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[0.3]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="12" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:19Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[one.two.three]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[4.0]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" duration-ms="3" started-at="2010-01-08T18:59:19Z" finished-at="2010-01-08T18:59:19Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[0.0']]>
+ </value>
+ </param>
+ </params>
+ <exception class="org.opends.sdk.DecodeException">
+ <message>
+ <![CDATA[The provided value "0.0'" could not be parsed as a valid OID because it had an illegal character at position 3]]>
+ </message>
+ <full-stacktrace>
+ <![CDATA[org.opends.sdk.DecodeException: The provided value "0.0'" could not be parsed as a valid OID because it had an illegal character at position 3
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:274)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:597)
+ at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
+ at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
+ at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
+ at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
+ at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
+ at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
+ at org.testng.TestRunner.runWorkers(TestRunner.java:759)
+ at org.testng.TestRunner.privateRun(TestRunner.java:592)
+ at org.testng.TestRunner.run(TestRunner.java:486)
+ at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
+ at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
+ at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
+ at org.testng.SuiteRunner.run(SuiteRunner.java:204)
+ at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
+ at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
+ at org.testng.TestNG.run(TestNG.java:751)
+ at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
+ at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
+]]>
+ </full-stacktrace>
+ </exception>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" duration-ms="1" started-at="2010-01-08T18:59:19Z" finished-at="2010-01-08T18:59:19Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA['0]]>
+ </value>
+ </param>
+ </params>
+ <exception class="org.opends.sdk.DecodeException">
+ <message>
+ <![CDATA[A single quote was expected at position 1 but the character 0 was found instead]]>
+ </message>
+ <full-stacktrace>
+ <![CDATA[org.opends.sdk.DecodeException: A single quote was expected at position 1 but the character 0 was found instead
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:330)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:597)
+ at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
+ at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
+ at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
+ at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
+ at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
+ at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
+ at org.testng.TestRunner.runWorkers(TestRunner.java:759)
+ at org.testng.TestRunner.privateRun(TestRunner.java:592)
+ at org.testng.TestRunner.run(TestRunner.java:486)
+ at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
+ at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
+ at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
+ at org.testng.SuiteRunner.run(SuiteRunner.java:204)
+ at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
+ at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
+ at org.testng.TestNG.run(TestNG.java:751)
+ at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
+ at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
+]]>
+ </full-stacktrace>
+ </exception>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA['one1']]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[0.2]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[5.0]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[a2]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA['111.22.333.44.55555.66.777.88.999']]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" duration-ms="1" started-at="2010-01-08T18:59:19Z" finished-at="2010-01-08T18:59:19Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[999']]>
+ </value>
+ </param>
+ </params>
+ <exception class="org.opends.sdk.DecodeException">
+ <message>
+ <![CDATA[The provided value "999'" could not be parsed as a valid OID because it had an illegal character at position 3]]>
+ </message>
+ <full-stacktrace>
+ <![CDATA[org.opends.sdk.DecodeException: The provided value "999'" could not be parsed as a valid OID because it had an illegal character at position 3
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:274)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:597)
+ at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
+ at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
+ at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
+ at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
+ at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
+ at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
+ at org.testng.TestRunner.runWorkers(TestRunner.java:759)
+ at org.testng.TestRunner.privateRun(TestRunner.java:592)
+ at org.testng.TestRunner.run(TestRunner.java:486)
+ at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
+ at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
+ at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
+ at org.testng.SuiteRunner.run(SuiteRunner.java:204)
+ at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
+ at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
+ at org.testng.TestNG.run(TestNG.java:751)
+ at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
+ at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
+]]>
+ </full-stacktrace>
+ </exception>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[2.0]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[5]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="0" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA['a-']]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[0.7]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" duration-ms="9" started-at="2010-01-08T18:59:19Z" finished-at="2010-01-08T18:59:19Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[.0]]>
+ </value>
+ </param>
+ </params>
+ <exception class="org.opends.sdk.DecodeException">
+ <message>
+ <![CDATA[Non-numeric OID contained an illegal character . at position 0]]>
+ </message>
+ <full-stacktrace>
+ <![CDATA[org.opends.sdk.DecodeException: Non-numeric OID contained an illegal character . at position 0
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:323)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:597)
+ at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
+ at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
+ at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
+ at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
+ at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
+ at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
+ at org.testng.TestRunner.runWorkers(TestRunner.java:759)
+ at org.testng.TestRunner.privateRun(TestRunner.java:592)
+ at org.testng.TestRunner.run(TestRunner.java:486)
+ at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
+ at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
+ at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
+ at org.testng.SuiteRunner.run(SuiteRunner.java:204)
+ at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
+ at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
+ at org.testng.TestNG.run(TestNG.java:751)
+ at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
+ at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
+]]>
+ </full-stacktrace>
+ </exception>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[2]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" duration-ms="1" started-at="2010-01-08T18:59:19Z" finished-at="2010-01-08T18:59:19Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[.999]]>
+ </value>
+ </param>
+ </params>
+ <exception class="org.opends.sdk.DecodeException">
+ <message>
+ <![CDATA[Non-numeric OID contained an illegal character . at position 0]]>
+ </message>
+ <full-stacktrace>
+ <![CDATA[org.opends.sdk.DecodeException: Non-numeric OID contained an illegal character . at position 0
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:323)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:597)
+ at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
+ at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
+ at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
+ at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
+ at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
+ at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
+ at org.testng.TestRunner.runWorkers(TestRunner.java:759)
+ at org.testng.TestRunner.privateRun(TestRunner.java:592)
+ at org.testng.TestRunner.run(TestRunner.java:486)
+ at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
+ at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
+ at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
+ at org.testng.SuiteRunner.run(SuiteRunner.java:204)
+ at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
+ at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
+ at org.testng.TestNG.run(TestNG.java:751)
+ at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
+ at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
+]]>
+ </full-stacktrace>
+ </exception>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" duration-ms="151" started-at="2010-01-08T18:59:19Z" finished-at="2010-01-08T18:59:19Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[]]>
+ </value>
+ </param>
+ </params>
+ <exception class="org.opends.sdk.DecodeException">
+ <message>
+ <![CDATA[The provided value could not be parsed as a valid OID because it did not contain any characters]]>
+ </message>
+ <full-stacktrace>
+ <![CDATA[org.opends.sdk.DecodeException: The provided value could not be parsed as a valid OID because it did not contain any characters
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:338)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:597)
+ at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
+ at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
+ at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
+ at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
+ at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
+ at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
+ at org.testng.TestRunner.runWorkers(TestRunner.java:759)
+ at org.testng.TestRunner.privateRun(TestRunner.java:592)
+ at org.testng.TestRunner.run(TestRunner.java:486)
+ at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
+ at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
+ at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
+ at org.testng.SuiteRunner.run(SuiteRunner.java:204)
+ at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
+ at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
+ at org.testng.TestNG.run(TestNG.java:751)
+ at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
+ at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
+]]>
+ </full-stacktrace>
+ </exception>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" duration-ms="1" started-at="2010-01-08T18:59:19Z" finished-at="2010-01-08T18:59:19Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[0.]]>
+ </value>
+ </param>
+ </params>
+ <exception class="org.opends.sdk.DecodeException">
+ <message>
+ <![CDATA[The provided value "0." could not be parsed as a valid OID because it ends with a period]]>
+ </message>
+ <full-stacktrace>
+ <![CDATA[org.opends.sdk.DecodeException: The provided value "0." could not be parsed as a valid OID because it ends with a period
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:288)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:597)
+ at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
+ at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
+ at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
+ at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
+ at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
+ at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
+ at org.testng.TestRunner.runWorkers(TestRunner.java:759)
+ at org.testng.TestRunner.privateRun(TestRunner.java:592)
+ at org.testng.TestRunner.run(TestRunner.java:486)
+ at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
+ at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
+ at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
+ at org.testng.SuiteRunner.run(SuiteRunner.java:204)
+ at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
+ at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
+ at org.testng.TestNG.run(TestNG.java:751)
+ at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
+ at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
+]]>
+ </full-stacktrace>
+ </exception>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[100.100]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[7]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[0.9]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[8]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="0" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[00]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA['a']]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA['999.0']]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[7.0]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[4]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[3]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[0.4]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="0" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA['one']]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="nullMemberVariablesAfterTest()" name="nullMemberVariablesAfterTest" is-config="true" duration-ms="0" started-at="2010-01-08T18:59:19Z" finished-at="2010-01-08T18:59:19Z">
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[3.0]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDInvalid(java.lang.String)" name="testReadOIDInvalid" duration-ms="1" started-at="2010-01-08T18:59:19Z" finished-at="2010-01-08T18:59:19Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA['10]]>
+ </value>
+ </param>
+ </params>
+ <exception class="org.opends.sdk.DecodeException">
+ <message>
+ <![CDATA[A single quote was expected at position 2 but the character 0 was found instead]]>
+ </message>
+ <full-stacktrace>
+ <![CDATA[org.opends.sdk.DecodeException: A single quote was expected at position 2 but the character 0 was found instead
+ at org.opends.sdk.DecodeException.error(DecodeException.java:95)
+ at org.opends.sdk.schema.SchemaUtils.readOID(SchemaUtils.java:330)
+ at org.opends.sdk.schema.SchemaUtilsTest.testReadOIDInvalid(SchemaUtilsTest.java:114)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:597)
+ at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
+ at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
+ at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
+ at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
+ at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
+ at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
+ at org.testng.TestRunner.runWorkers(TestRunner.java:759)
+ at org.testng.TestRunner.privateRun(TestRunner.java:592)
+ at org.testng.TestRunner.run(TestRunner.java:486)
+ at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
+ at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
+ at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
+ at org.testng.SuiteRunner.run(SuiteRunner.java:204)
+ at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:877)
+ at org.testng.TestNG.runSuitesLocally(TestNG.java:842)
+ at org.testng.TestNG.run(TestNG.java:751)
+ at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
+ at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
+]]>
+ </full-stacktrace>
+ </exception>
+ </test-method>
+ <test-method status="PASS" signature="testReadOIDValid(java.lang.String)" name="testReadOIDValid" duration-ms="1" started-at="2010-01-08T18:59:18Z" finished-at="2010-01-08T18:59:18Z">
+ <params>
+ <param index="0">
+ <value>
+ <![CDATA[1]]>
+ </value>
+ </param>
+ </params>
+ </test-method>
+ </class>
+ </test>
+ </suite>
+</testng-results>
diff --git a/sdk/test-output/testng.css b/sdk/test-output/testng.css
new file mode 100644
index 0000000..3904800
--- /dev/null
+++ b/sdk/test-output/testng.css
@@ -0,0 +1,9 @@
+.invocation-failed, .test-failed { background-color: #DD0000; }
+.invocation-percent, .test-percent { background-color: #006600; }
+.invocation-passed, .test-passed { background-color: #00AA00; }
+.invocation-skipped, .test-skipped { background-color: #CCCC00; }
+
+.main-page {
+ font-size: x-large;
+}
+
diff --git a/sdk/tests/unit-tests-testng/src/com/sun/opends/sdk/util/StaticUtilsTest.java b/sdk/tests/unit-tests-testng/src/com/sun/opends/sdk/util/StaticUtilsTest.java
index 352cbac..b249090 100644
--- a/sdk/tests/unit-tests-testng/src/com/sun/opends/sdk/util/StaticUtilsTest.java
+++ b/sdk/tests/unit-tests-testng/src/com/sun/opends/sdk/util/StaticUtilsTest.java
@@ -29,6 +29,11 @@
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.TimeZone;
+
import org.opends.sdk.OpenDSTestCase;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
@@ -97,4 +102,129 @@
Assert.assertEquals(actual, expected);
}
}
+
+
+
+ /**
+ * Create data for format(...) tests.
+ *
+ * @return Returns test data.
+ */
+ @DataProvider(name = "createFormatData")
+ public Object[][] createFormatData()
+ {
+ return new Object[][] {
+ // Note that Calendar months run from 0-11,
+ // and that there was no such year as year 0 (1 BC -> 1 AD).
+ { 1, 0, 1, 0, 0, 0, 0, "00010101000000.000Z" },
+ { 9, 0, 1, 0, 0, 0, 0, "00090101000000.000Z" },
+ { 10, 0, 1, 0, 0, 0, 0, "00100101000000.000Z" },
+ { 99, 0, 1, 0, 0, 0, 0, "00990101000000.000Z" },
+ { 100, 0, 1, 0, 0, 0, 0, "01000101000000.000Z" },
+ { 999, 0, 1, 0, 0, 0, 0, "09990101000000.000Z" },
+ { 1000, 0, 1, 0, 0, 0, 0, "10000101000000.000Z" },
+ { 2000, 0, 1, 0, 0, 0, 0, "20000101000000.000Z" },
+ { 2099, 0, 1, 0, 0, 0, 0, "20990101000000.000Z" },
+ { 2000, 8, 1, 0, 0, 0, 0, "20000901000000.000Z" },
+ { 2000, 9, 1, 0, 0, 0, 0, "20001001000000.000Z" },
+ { 2000, 10, 1, 0, 0, 0, 0, "20001101000000.000Z" },
+ { 2000, 11, 1, 0, 0, 0, 0, "20001201000000.000Z" },
+ { 2000, 0, 9, 0, 0, 0, 0, "20000109000000.000Z" },
+ { 2000, 0, 10, 0, 0, 0, 0, "20000110000000.000Z" },
+ { 2000, 0, 19, 0, 0, 0, 0, "20000119000000.000Z" },
+ { 2000, 0, 20, 0, 0, 0, 0, "20000120000000.000Z" },
+ { 2000, 0, 29, 0, 0, 0, 0, "20000129000000.000Z" },
+ { 2000, 0, 30, 0, 0, 0, 0, "20000130000000.000Z" },
+ { 2000, 0, 31, 0, 0, 0, 0, "20000131000000.000Z" },
+ { 2000, 0, 1, 9, 0, 0, 0, "20000101090000.000Z" },
+ { 2000, 0, 1, 10, 0, 0, 0, "20000101100000.000Z" },
+ { 2000, 0, 1, 19, 0, 0, 0, "20000101190000.000Z" },
+ { 2000, 0, 1, 20, 0, 0, 0, "20000101200000.000Z" },
+ { 2000, 0, 1, 23, 0, 0, 0, "20000101230000.000Z" },
+ { 2000, 0, 1, 0, 9, 0, 0, "20000101000900.000Z" },
+ { 2000, 0, 1, 0, 10, 0, 0, "20000101001000.000Z" },
+ { 2000, 0, 1, 0, 59, 0, 0, "20000101005900.000Z" },
+ { 2000, 0, 1, 0, 0, 9, 0, "20000101000009.000Z" },
+ { 2000, 0, 1, 0, 0, 10, 0, "20000101000010.000Z" },
+ { 2000, 0, 1, 0, 0, 59, 0, "20000101000059.000Z" },
+ { 2000, 0, 1, 0, 0, 0, 9, "20000101000000.009Z" },
+ { 2000, 0, 1, 0, 0, 0, 10, "20000101000000.010Z" },
+ { 2000, 0, 1, 0, 0, 0, 99, "20000101000000.099Z" },
+ { 2000, 0, 1, 0, 0, 0, 100, "20000101000000.100Z" },
+ { 2000, 0, 1, 0, 0, 0, 999, "20000101000000.999Z" }, };
+ }
+
+
+
+ /**
+ * Tests {@link StaticUtils#formatAsGeneralizedTime(long)} .
+ *
+ * @param yyyy
+ * The year.
+ * @param MM
+ * The month.
+ * @param dd
+ * The day.
+ * @param HH
+ * The hour.
+ * @param mm
+ * The minute.
+ * @param ss
+ * The second.
+ * @param SSS
+ * The milli-seconds.
+ * @param expected
+ * The expected generalized time formatted string.
+ * @throws Exception
+ * If an unexpected error occurred.
+ */
+ @Test(dataProvider = "createFormatData")
+ public void testFormatLong(int yyyy, int MM, int dd, int HH, int mm,
+ int ss, int SSS, String expected) throws Exception
+ {
+ Calendar calendar = new GregorianCalendar(TimeZone
+ .getTimeZone("UTC"));
+ calendar.set(yyyy, MM, dd, HH, mm, ss);
+ calendar.set(Calendar.MILLISECOND, SSS);
+ long time = calendar.getTimeInMillis();
+ String actual = StaticUtils.formatAsGeneralizedTime(time);
+ Assert.assertEquals(actual, expected);
+ }
+
+
+
+ /**
+ * Tests {@link GeneralizedTimeSyntax#format(java.util.Date)}.
+ *
+ * @param yyyy
+ * The year.
+ * @param MM
+ * The month.
+ * @param dd
+ * The day.
+ * @param HH
+ * The hour.
+ * @param mm
+ * The minute.
+ * @param ss
+ * The second.
+ * @param SSS
+ * The milli-seconds.
+ * @param expected
+ * The expected generalized time formatted string.
+ * @throws Exception
+ * If an unexpected error occurred.
+ */
+ @Test(dataProvider = "createFormatData")
+ public void testFormatDate(int yyyy, int MM, int dd, int HH, int mm,
+ int ss, int SSS, String expected) throws Exception
+ {
+ Calendar calendar = new GregorianCalendar(TimeZone
+ .getTimeZone("UTC"));
+ calendar.set(yyyy, MM, dd, HH, mm, ss);
+ calendar.set(Calendar.MILLISECOND, SSS);
+ Date time = new Date(calendar.getTimeInMillis());
+ String actual = StaticUtils.formatAsGeneralizedTime(time);
+ Assert.assertEquals(actual, expected);
+ }
}
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/LinkedAttributeTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/LinkedAttributeTest.java
index 834fc59..d4e53e9 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/LinkedAttributeTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/LinkedAttributeTest.java
@@ -30,6 +30,7 @@
import org.opends.sdk.schema.Schema;
+import org.testng.Assert;
import org.testng.annotations.Test;
import org.opends.sdk.ByteString;
@@ -54,18 +55,20 @@
attribute.add("a value");
attribute.add(ByteString.valueOf("another value"));
- System.out.println(attribute);
-
- System.out.println(attribute.contains(1));
- System.out.println(attribute.contains("a value"));
- System.out.println(attribute.contains(ByteString
+ Assert.assertTrue(attribute.contains(1));
+ Assert.assertTrue(attribute.contains("a value"));
+ Assert.assertTrue(attribute.contains(ByteString
.valueOf("another value")));
- attribute.remove(1);
- System.out.println(attribute);
- attribute.remove("a value");
- System.out.println(attribute);
- attribute.remove(ByteString.valueOf("another value"));
- System.out.println(attribute);
+ Assert.assertEquals(attribute.size(), 3);
+ Assert.assertTrue(attribute.remove(1));
+ Assert.assertEquals(attribute.size(), 2);
+ Assert.assertFalse(attribute.remove("a missing value"));
+ Assert.assertEquals(attribute.size(), 2);
+ Assert.assertTrue(attribute.remove("a value"));
+ Assert.assertEquals(attribute.size(), 1);
+ Assert.assertTrue(attribute.remove(ByteString
+ .valueOf("another value")));
+ Assert.assertEquals(attribute.size(), 0);
}
}
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/OpenDSTestCase.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/OpenDSTestCase.java
index 633d487..54ff24c 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/OpenDSTestCase.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/OpenDSTestCase.java
@@ -1,15 +1,43 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2009 Sun Microsystems, Inc.
+ */
+
package org.opends.sdk;
-import org.testng.annotations.BeforeSuite;
-import org.testng.annotations.AfterSuite;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.Test;
-import org.opends.server.TestCaseUtils;
-import java.util.IdentityHashMap;
-import java.util.Set;
+
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
+import java.util.IdentityHashMap;
+import java.util.Set;
+
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.Test;
+
+
/**
* This class defines a base test case that should be subclassed by all
@@ -18,75 +46,86 @@
* This class adds the ability to print error messages and automatically
* have them include the class name.
*/
-@Test(sequential=true)
-public abstract class OpenDSTestCase
+@Test(sequential = true)
+public abstract class OpenDSTestCase
{
- @BeforeSuite
- public final void suppressOutput() {
- TestCaseUtils.suppressOutput();
- }
-
- @AfterSuite
- public final void shutdownServer() {
- TestCaseUtils.unsupressOutput();
- }
//
// This is all a HACK to reduce the amount of memory that's consumed.
//
// This could be a problem if a subclass references a @DataProvider in
- // a super-class that provides static parameters, i.e. the parameters are
+ // a super-class that provides static parameters, i.e. the parameters
+ // are
// not regenerated for each invocation of the DataProvider.
//
- /** A list of all parameters that were generated by a @DataProvider
- * and passed to a test method of this class. TestListener helps us
- * keep this so that once all of the tests are finished, we can clear
- * it out in an @AfterClass method. We can't just clear it out right
- * away in the TestListener because some methods share a @DataProvider.*/
- private final IdentityHashMap<Object[],Object> successfulTestParams = new IdentityHashMap<Object[],Object>();
+ /**
+ * A list of all parameters that were generated by a @DataProvider and
+ * passed to a test method of this class. TestListener helps us keep
+ * this so that once all of the tests are finished, we can clear it
+ * out in an @AfterClass method. We can't just clear it out right away
+ * in the TestListener because some methods share a @DataProvider.
+ */
+ private final IdentityHashMap<Object[], Object> successfulTestParams = new IdentityHashMap<Object[], Object>();
- /** These are test parameters from a test that has failed. We need to
- * keep these around because the test report expects to find them when
- * printing out failures. */
- private final IdentityHashMap<Object[],Object> failedTestParams = new IdentityHashMap<Object[],Object>();
+ /**
+ * These are test parameters from a test that has failed. We need to
+ * keep these around because the test report expects to find them when
+ * printing out failures.
+ */
+ private final IdentityHashMap<Object[], Object> failedTestParams = new IdentityHashMap<Object[], Object>();
+
+
/**
* Adds testParams to the list of all test parameters, so it can be
* null'ed out later if it's not part.
*/
- void addParamsFromSuccessfulTests(Object[] testParams) {
- if (testParams != null) {
+ void addParamsFromSuccessfulTests(Object[] testParams)
+ {
+ if (testParams != null)
+ {
successfulTestParams.put(testParams, testParams);
}
}
+
+
/**
- * Adds testParams to the list of all failed test parameters, so that we
- * know to NOT null it out later.
+ * Adds testParams to the list of all failed test parameters, so that
+ * we know to NOT null it out later.
*/
- void addParamsFromFailedTest(Object[] testParams) {
- if (testParams != null) {
+ void addParamsFromFailedTest(Object[] testParams)
+ {
+ if (testParams != null)
+ {
failedTestParams.put(testParams, testParams);
}
}
+
+
/**
* null out all test parameters except the ones used in failed tests
* since we might need these again.
*/
@AfterClass(alwaysRun = true)
- public void clearSuccessfulTestParams() {
+ public void clearSuccessfulTestParams()
+ {
Set<Object[]> paramsSet = successfulTestParams.keySet();
- if (paramsSet == null) { // Can this ever happen?
+ if (paramsSet == null)
+ { // Can this ever happen?
return;
}
- for (Object[] params: paramsSet) {
- if (failedTestParams.containsKey(params)) {
+ for (Object[] params : paramsSet)
+ {
+ if (failedTestParams.containsKey(params))
+ {
continue;
}
- for (int i = 0; i < params.length; i++) {
+ for (int i = 0; i < params.length; i++)
+ {
params[i] = null;
}
}
@@ -94,38 +133,47 @@
failedTestParams.clear();
}
+
+
/**
- * The member variables of a test class can prevent lots of memory from being
- * reclaimed, so we use reflection to null out all of the member variables
- * after the tests have run. Since all tests must inherit from
- * DirectoryServerTestCase, TestNG guarantees that this method runs after
- * all of the subclass methods, so this isn't too dangerous.
+ * The member variables of a test class can prevent lots of memory
+ * from being reclaimed, so we use reflection to null out all of the
+ * member variables after the tests have run. Since all tests must
+ * inherit from DirectoryServerTestCase, TestNG guarantees that this
+ * method runs after all of the subclass methods, so this isn't too
+ * dangerous.
*/
@AfterClass(alwaysRun = true)
- public void nullMemberVariablesAfterTest() {
- Class cls = this.getClass();
+ public void nullMemberVariablesAfterTest()
+ {
+ Class<?> cls = this.getClass();
// Iterate through all of the fields in all subclasses of
// DirectoryServerTestCase, but not DirectoryServerTestCase itself.
- while (OpenDSTestCase.class.isAssignableFrom(cls) &&
- !OpenDSTestCase.class.equals(cls))
+ while (OpenDSTestCase.class.isAssignableFrom(cls)
+ && !OpenDSTestCase.class.equals(cls))
{
Field fields[] = cls.getDeclaredFields();
- for (int i = 0; i < fields.length; i++) {
+ for (int i = 0; i < fields.length; i++)
+ {
Field field = fields[i];
int modifiers = field.getModifiers();
- Class fieldClass = field.getType();
- // If it's a non-static non-final non-primitive type, then null it out
- // so that the garbage collector can reclaim it and everything it
+ Class<?> fieldClass = field.getType();
+ // If it's a non-static non-final non-primitive type, then null
+ // it out
+ // so that the garbage collector can reclaim it and everything
+ // it
// references.
- if (!fieldClass.isPrimitive() &&
- !fieldClass.isEnum() &&
- !Modifier.isFinal(modifiers) &&
- !Modifier.isStatic(modifiers))
+ if (!fieldClass.isPrimitive() && !fieldClass.isEnum()
+ && !Modifier.isFinal(modifiers)
+ && !Modifier.isStatic(modifiers))
{
field.setAccessible(true);
- try {
+ try
+ {
field.set(this, null);
- } catch (IllegalAccessException e) {
+ }
+ catch (IllegalAccessException e)
+ {
// We're only doing this to save memory, so it's no big deal
// if we can't set it.
}
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/SuiteRunner.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/SuiteRunner.java
new file mode 100755
index 0000000..e8bbb7b
--- /dev/null
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/SuiteRunner.java
@@ -0,0 +1,54 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2008 Sun Microsystems, Inc.
+ */
+package org.opends.sdk;
+
+
+
+import org.testng.TestNG;
+
+
+
+/**
+ * This class wraps TestNG so that we can force the process to exit if
+ * there is an uncaught exception (e.g. OutOfMemoryError).
+ */
+public class SuiteRunner
+{
+ public static void main(String[] args)
+ {
+ try
+ {
+ TestNG.main(args);
+ }
+ catch (Throwable e)
+ {
+ System.err.println("TestNG.main threw an expected exception:");
+ e.printStackTrace(System.err);
+ System.exit(TestNG.HAS_FAILURE);
+ }
+ }
+}
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/TestListener.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/TestListener.java
new file mode 100755
index 0000000..e2294bf
--- /dev/null
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/TestListener.java
@@ -0,0 +1,1458 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2008 Sun Microsystems, Inc.
+ */
+package org.opends.sdk;
+
+
+
+import org.testng.TestListenerAdapter;
+import org.testng.IReporter;
+import org.testng.ISuite;
+import org.testng.ITestResult;
+import org.testng.IClass;
+import org.testng.ITestNGMethod;
+import org.testng.ITestContext;
+import org.testng.annotations.Test;
+import org.testng.annotations.DataProvider;
+import org.testng.xml.XmlSuite;
+import static com.sun.opends.sdk.util.StaticUtils.EOL;
+
+import java.util.*;
+import java.io.PrintStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FileNotFoundException;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
+import java.lang.reflect.InvocationTargetException;
+
+
+
+/**
+ * This class is our replacement for the test results that TestNG
+ * generates. It prints out test to the console as they happen.
+ */
+public class TestListener extends TestListenerAdapter implements
+ IReporter
+{
+
+ /**
+ *
+ */
+ private static class TestClassResults
+ {
+ private final IClass _cls;
+
+ private final LinkedHashMap<ITestNGMethod, TestMethodResults> _methods = new LinkedHashMap<ITestNGMethod, TestMethodResults>();
+
+ private int _totalInvocations = 0;
+
+ private long _totalDurationMs = 0;
+
+ // Indexed by SUCCESS, FAILURE, SKIP, SUCCESS_PERCENTAGE_FAILURE
+ private int[] _resultCounts = new int[STATUSES.length];
+
+
+
+ public TestClassResults(IClass cls)
+ {
+ _cls = cls;
+ }
+
+
+
+ private TestMethodResults getResultsForMethod(ITestNGMethod method)
+ {
+ TestMethodResults results = _methods.get(method);
+ if (results == null)
+ {
+ results = new TestMethodResults(method);
+ _methods.put(method, results);
+ }
+ return results;
+ }
+
+
+
+ synchronized void addTestResult(ITestResult result)
+ {
+ _totalInvocations++;
+ _totalDurationMs += result.getEndMillis()
+ - result.getStartMillis();
+
+ getResultsForMethod(result.getMethod()).addTestResult(result);
+ int status = result.getStatus();
+ if (status < 0 || status >= _resultCounts.length)
+ {
+ status = 0;
+ }
+ _resultCounts[status]++;
+ }
+
+
+
+ synchronized Collection<TestMethodResults> getAllMethodResults()
+ {
+ return _methods.values();
+ }
+
+
+
+ synchronized void getSummaryTimingInfo(StringBuilder timingOutput)
+ {
+ timingOutput.append(_cls.getRealClass().getName() + " ");
+ timingOutput.append(getTotalDurationMs() + " ms" + " ("
+ + getTotalInvocations() + ")");
+ }
+
+
+
+ synchronized void getTimingInfo(StringBuilder timingOutput)
+ {
+ getSummaryTimingInfo(timingOutput);
+ timingOutput.append(EOL);
+ for (TestMethodResults results : getAllMethodResults())
+ {
+ results.getTimingInfo(timingOutput, false);
+ }
+
+ timingOutput.append(EOL);
+ }
+
+
+
+ long getTotalDurationMs()
+ {
+ return _totalDurationMs;
+ }
+
+
+
+ int getTotalInvocations()
+ {
+ return _totalInvocations;
+ }
+ }
+
+
+
+ /**
+ *
+ */
+ private static class TestMethodResults
+ {
+ private final ITestNGMethod _method;
+
+ int _totalInvocations = 0;
+
+ long _totalDurationMs = 0;
+
+ // Indexed by SUCCESS, FAILURE, SKIP, SUCCESS_PERCENTAGE_FAILURE
+ private int[] _resultCounts = new int[STATUSES.length];
+
+
+
+ public TestMethodResults(ITestNGMethod method)
+ {
+ _method = method;
+ }
+
+
+
+ synchronized void addTestResult(ITestResult result)
+ {
+ _totalInvocations++;
+ _totalDurationMs += result.getEndMillis()
+ - result.getStartMillis();
+
+ int status = result.getStatus();
+ if (status < 0 || status >= _resultCounts.length)
+ {
+ status = 0;
+ }
+ _resultCounts[status]++;
+ }
+
+
+
+ synchronized void getTimingInfo(StringBuilder timingOutput,
+ boolean includeClassName)
+ {
+ timingOutput.append(" ");
+ if (includeClassName)
+ {
+ timingOutput.append(_method.getRealClass().getName()).append(
+ "#");
+ }
+ timingOutput.append(_method.getMethodName() + " ");
+ timingOutput.append(_totalDurationMs + " ms" + " ("
+ + _totalInvocations + ")");
+ if (_resultCounts[ITestResult.FAILURE] > 0)
+ {
+ timingOutput.append(" " + _resultCounts[ITestResult.FAILURE]
+ + " failure(s)");
+ }
+ timingOutput.append(EOL);
+ }
+ }
+
+
+
+ public static final String REPORT_FILE_NAME = "results.txt";
+
+ // This is used to communicate with build.xml. So that even when a
+ // test
+ // fails, we can do the coverage report before failing the build.
+ public static final String ANT_TESTS_FAILED_FILE_NAME = ".tests-failed-marker";
+
+ private final StringBuilder _bufferedTestFailures = new StringBuilder();
+
+ public static final String PROPERTY_TEST_PROGRESS = "test.progress";
+
+ public static final String TEST_PROGRESS_NONE = "none";
+
+ public static final String TEST_PROGRESS_ALL = "all";
+
+ public static final String TEST_PROGRESS_DEFAULT = "default";
+
+ public static final String TEST_PROGRESS_TIME = "time";
+
+ public static final String TEST_PROGRESS_TEST_COUNT = "count";
+
+ // for
+ // now,
+ // since
+ // it's
+ // not
+ // useful
+ // to
+ // most
+ // developers
+
+ public static final String TEST_PROGRESS_MEMORY = "memory";
+
+ public static final String TEST_PROGRESS_MEMORY_GCS = "gcs"; // Hidden
+
+ public static final String TEST_PROGRESS_THREAD_COUNT = "threadcount";
+
+ public static final String TEST_PROGRESS_THREAD_CHANGES = "threadchanges";
+
+ private boolean doProgressNone = false;
+
+ private boolean doProgressTime = true;
+
+ private boolean doProgressTestCount = true;
+
+ private boolean doProgressMemory = false;
+
+ private boolean doProgressMemoryGcs = false;
+
+ private boolean doProgressThreadCount = false;
+
+ private boolean doProgressThreadChanges = false;
+
+ private static final String DIVIDER_LINE = "-------------------------------------------------------------------------------"
+ + EOL;
+
+ private final static int PAGE_WIDTH = 80;
+
+
+
+ public static void pauseOnFailure()
+ {
+ File tempFile = null;
+ try
+ {
+ tempFile = File.createTempFile("testfailure", "watchdog");
+ tempFile.deleteOnExit();
+ System.err.println("**** Pausing test execution until file "
+ + tempFile.getCanonicalPath() + " is removed.");
+ }
+ catch (Exception e)
+ {
+ System.err.println("**** ERROR: Could not create a watchdog "
+ + "file. Pausing test execution indefinitely.");
+ System.err.println("**** You will have to manually kill the "
+ + "JVM when you're done investigating the problem.");
+ }
+
+ while ((tempFile != null) && tempFile.exists())
+ {
+ try
+ {
+ Thread.sleep(100);
+ }
+ catch (Exception e)
+ {
+ }
+ }
+
+ System.err.println("**** Watchdog file removed. Resuming test "
+ + "case execution.");
+ }
+
+
+
+ /**
+ * Return a String representation of all of the current threads.
+ *
+ * @return a dump of all Threads on the server
+ */
+ public static String threadStacksToString()
+ {
+ Map<Thread, StackTraceElement[]> threadStacks = Thread
+ .getAllStackTraces();
+
+ // Re-arrange all of the elements by thread ID so that there is some
+ // logical
+ // order.
+ TreeMap<Long, Map.Entry<Thread, StackTraceElement[]>> orderedStacks = new TreeMap<Long, Map.Entry<Thread, StackTraceElement[]>>();
+ for (Map.Entry<Thread, StackTraceElement[]> e : threadStacks
+ .entrySet())
+ {
+ orderedStacks.put(e.getKey().getId(), e);
+ }
+
+ final StringBuilder buffer = new StringBuilder();
+ for (Map.Entry<Thread, StackTraceElement[]> e : orderedStacks
+ .values())
+ {
+ Thread t = e.getKey();
+ StackTraceElement[] stackElements = e.getValue();
+
+ long id = t.getId();
+
+ buffer.append("id=");
+ buffer.append(id);
+ buffer.append(" ---------- ");
+ buffer.append(t.getName());
+ buffer.append(" ----------");
+ buffer.append(EOL);
+
+ if (stackElements != null)
+ {
+ for (int j = 0; j < stackElements.length; j++)
+ {
+ buffer.append(" ").append(stackElements[j].getClassName());
+ buffer.append(".");
+ buffer.append(stackElements[j].getMethodName());
+ buffer.append("(");
+ buffer.append(stackElements[j].getFileName());
+ buffer.append(":");
+ if (stackElements[j].isNativeMethod())
+ {
+ buffer.append("native");
+ }
+ else
+ {
+ buffer.append(stackElements[j].getLineNumber());
+ }
+ buffer.append(")").append(EOL);
+ }
+ }
+ buffer.append(EOL);
+ }
+
+ return buffer.toString();
+ }
+
+
+
+ private static String center(String header)
+ {
+ StringBuilder buffer = new StringBuilder();
+ int indent = (PAGE_WIDTH - header.length()) / 2;
+ for (int i = 0; i < indent; i++)
+ {
+ buffer.append(" ");
+ }
+ buffer.append(header);
+ return buffer.toString();
+ }
+
+
+
+ private Set<Class<?>> _checkedForTypeAndAnnotations = new HashSet<Class<?>>();
+
+ private final LinkedHashSet<Class<?>> _classesWithTestsRunInterleaved = new LinkedHashSet<Class<?>>();
+
+ private Object _lastTestObject = null;
+
+ private final IdentityHashMap<Object, Object> _previousTestObjects = new IdentityHashMap<Object, Object>();
+
+ private Set<Method> _checkedForAnnotation = new HashSet<Method>();
+
+ private boolean statusHeaderPrinted = false;
+
+ private final long startTimeMs = System.currentTimeMillis();
+
+ private long prevTimeMs = System.currentTimeMillis();
+
+ private List<String> prevThreads = new ArrayList<String>();
+
+ private long prevMemInUse = 0;
+
+ private long maxMemInUse = 0;
+
+ private final LinkedHashMap<IClass, TestClassResults> _classResults = new LinkedHashMap<IClass, TestClassResults>();
+
+ private static final int NUM_SLOWEST_METHODS = 100;
+
+ private final static String[] STATUSES = { "<<invalid>>", "Success",
+ "Failure", "Skip", "Success Percentage Failure" };
+
+
+
+ public TestListener() throws Exception
+ {
+ initializeProgressVars();
+ }
+
+
+
+ public void generateReport(List<XmlSuite> xmlSuites,
+ List<ISuite> suites, String outputDirectory)
+ {
+ File reportFile = new File(outputDirectory, REPORT_FILE_NAME);
+
+ writeReportToFile(reportFile);
+ writeReportToScreen(reportFile);
+ writeAntTestsFailedMarker(outputDirectory);
+ }
+
+
+
+ public void onConfigurationFailure(ITestResult tr)
+ {
+ super.onConfigurationFailure(tr);
+
+ IClass cls = tr.getTestClass();
+ ITestNGMethod method = tr.getMethod();
+
+ String fqMethod = cls.getName() + "#" + method.getMethodName();
+
+ StringBuilder failureInfo = new StringBuilder();
+ failureInfo.append("Failed Test: ").append(fqMethod).append(EOL);
+ // Object[] parameters = tr.getParameters();
+
+ Throwable cause = tr.getThrowable();
+ if (cause != null)
+ {
+ failureInfo.append("Failure Cause: ").append(
+ getTestngLessStack(cause));
+ }
+
+ failureInfo.append(EOL + EOL);
+ System.err.print(EOL + EOL + EOL
+ + " C O N F I G U R A T I O N F A I L U R E ! ! !"
+ + EOL + EOL);
+ System.err.print(failureInfo);
+ System.err.print(DIVIDER_LINE + EOL + EOL);
+
+ _bufferedTestFailures.append(failureInfo);
+ }
+
+
+
+ public void onStart(ITestContext testContext)
+ {
+ super.onStart(testContext);
+
+ // Delete the previous report if it's there.
+ new File(testContext.getOutputDirectory(), REPORT_FILE_NAME)
+ .delete();
+ }
+
+
+
+ public void onTestFailedButWithinSuccessPercentage(ITestResult tr)
+ {
+ super.onTestFailedButWithinSuccessPercentage(tr);
+ onTestFinished(tr);
+ }
+
+
+
+ public void onTestFailure(ITestResult tr)
+ {
+ super.onTestFailure(tr);
+
+ IClass cls = tr.getTestClass();
+ ITestNGMethod method = tr.getMethod();
+
+ String fqMethod = cls.getName() + "#" + method.getMethodName();
+
+ StringBuilder failureInfo = new StringBuilder();
+ failureInfo.append("Failed Test: ").append(fqMethod).append(EOL);
+ Object[] parameters = tr.getParameters();
+
+ Throwable cause = tr.getThrowable();
+ if (cause != null)
+ {
+ failureInfo.append("Failure Cause: ").append(
+ getTestngLessStack(cause));
+ }
+
+ for (int i = 0; (parameters != null) && (i < parameters.length); i++)
+ {
+ Object parameter = parameters[i];
+ failureInfo.append("parameter[" + i + "]: ").append(parameter)
+ .append(EOL);
+ }
+
+ failureInfo.append(EOL + EOL);
+ System.err.print(EOL + EOL + EOL
+ + " T E S T F A I L U R E ! ! !" + EOL + EOL);
+ System.err.print(failureInfo);
+ System.err.print(DIVIDER_LINE + EOL + EOL);
+
+ _bufferedTestFailures.append(failureInfo);
+
+ String pauseStr = System
+ .getProperty("org.opends.test.pauseOnFailure");
+ if ((pauseStr != null) && pauseStr.equalsIgnoreCase("true"))
+ {
+ pauseOnFailure();
+ }
+
+ onTestFinished(tr);
+ }
+
+
+
+ public void onTestSkipped(ITestResult tr)
+ {
+ super.onTestSkipped(tr);
+ onTestFinished(tr);
+ }
+
+
+
+ public void onTestStart(ITestResult tr)
+ {
+ super.onTestStart(tr);
+
+ enforceTestClassTypeAndAnnotations(tr);
+ checkForInterleavedBetweenClasses(tr);
+ enforceMethodHasAnnotation(tr);
+ }
+
+
+
+ public void onTestSuccess(ITestResult tr)
+ {
+ super.onTestSuccess(tr);
+ onTestFinished(tr);
+ }
+
+
+
+ private void addTestResult(ITestResult result)
+ {
+ getResultsForClass(result.getTestClass()).addTestResult(result);
+
+ // Read the comments in DirectoryServerTestCase to understand what's
+ // going on here.
+ Object[] testInstances = result.getMethod().getInstances();
+ for (int i = 0; i < testInstances.length; i++)
+ {
+ Object testInstance = testInstances[i];
+ if (testInstance instanceof OpenDSTestCase)
+ {
+ OpenDSTestCase openDSTestCase = (OpenDSTestCase) testInstance;
+ Object[] parameters = result.getParameters();
+ if (result.getStatus() == ITestResult.SUCCESS)
+ {
+ openDSTestCase.addParamsFromSuccessfulTests(parameters);
+ // This can eat up a bunch of memory for tests that are
+ // expected to throw
+ result.setThrowable(null);
+ }
+ else
+ {
+ openDSTestCase.addParamsFromFailedTest(parameters);
+
+ // When the test finishes later on, we might not have
+ // everything
+ // that we need to print the result (e.g. the Schema for an
+ // Entry
+ // or DN), so go ahead and convert it to a String now.
+ result.setParameters(convertToStringParameters(parameters));
+ }
+ }
+ else
+ {
+ // We already warned about it.
+ }
+ }
+ }
+
+
+
+ private void checkForInterleavedBetweenClasses(ITestResult tr)
+ {
+ Object[] testInstances = tr.getMethod().getInstances();
+ // This will almost always have a single element. If it doesn't,
+ // just
+ // skip it.
+ if (testInstances.length != 1)
+ {
+ return;
+ }
+
+ Object testInstance = testInstances[0];
+
+ // We're running another test on the same test object. Everything is
+ // fine.
+ if (_lastTestObject == testInstance)
+ {
+ return;
+ }
+
+ // Otherwise, we're running a new test, so save the old one.
+ if (_lastTestObject != null)
+ {
+ _previousTestObjects.put(_lastTestObject, _lastTestObject);
+ }
+
+ // Output progress info since we're running a new class
+ outputTestProgress(_lastTestObject);
+
+ // And make sure we don't have a test object that we already ran
+ // tests with.
+ if (_previousTestObjects.containsKey(testInstance))
+ {
+ _classesWithTestsRunInterleaved.add(testInstance.getClass());
+ }
+
+ _lastTestObject = testInstance;
+ }
+
+
+
+ private String[] convertToStringParameters(Object[] parameters)
+ {
+ if (parameters == null)
+ {
+ return null;
+ }
+
+ String[] strParams = new String[parameters.length];
+ for (int i = 0; i < parameters.length; i++)
+ {
+ strParams[i] = String.valueOf(parameters[i]).intern();
+ }
+
+ return strParams;
+ }
+
+
+
+ private int countTestMethods()
+ {
+ int count = 0;
+ for (TestClassResults results : _classResults.values())
+ {
+ count += results._methods.size();
+ }
+ return count;
+ }
+
+
+
+ private int countTestsWithStatus(int status)
+ {
+ int count = 0;
+ for (TestClassResults results : _classResults.values())
+ {
+ count += results._resultCounts[status];
+ }
+ return count;
+ }
+
+
+
+ private int countTotalInvocations()
+ {
+ int count = 0;
+ for (TestClassResults results : _classResults.values())
+ {
+ count += results._totalInvocations;
+ }
+ return count;
+ }
+
+
+
+ private void enforceMethodHasAnnotation(ITestResult tr)
+ {
+ // Only warn once per method.
+ Method testMethod = tr.getMethod().getMethod();
+ if (_checkedForAnnotation.contains(testMethod))
+ {
+ return;
+ }
+ _checkedForAnnotation.add(testMethod);
+
+ Annotation testAnnotation = testMethod.getAnnotation(Test.class);
+ Annotation dataProviderAnnotation = testMethod
+ .getAnnotation(DataProvider.class);
+
+ if ((testAnnotation == null) && (dataProviderAnnotation == null))
+ {
+ String errorMessage = "The test method "
+ + testMethod
+ + " does not have a @Test annotation. "
+ + "However, TestNG assumes it is a test method because it's a public method "
+ + "in a class with a class-level @Test annotation. You can remove this warning by either "
+ + "marking the method with @Test or by making it non-public.";
+ System.err.println("\n\nWARNING: " + errorMessage + "\n\n");
+ }
+ }
+
+
+
+ private void enforceTestClassTypeAndAnnotations(ITestResult tr)
+ {
+ Class<?> testClass = null;
+ testClass = tr.getMethod().getRealClass();
+
+ // Only warn once per class.
+ if (_checkedForTypeAndAnnotations.contains(testClass))
+ {
+ return;
+ }
+ _checkedForTypeAndAnnotations.add(testClass);
+
+ if (!OpenDSTestCase.class.isAssignableFrom(testClass))
+ {
+ String errorMessage = "The test class " + testClass.getName()
+ + " must inherit (directly or indirectly) "
+ + "from DirectoryServerTestCase.";
+ System.err.println("\n\nERROR: " + errorMessage + "\n\n");
+ throw new RuntimeException(errorMessage);
+ }
+
+ Class<?> classWithTestAnnotation = findClassWithTestAnnotation(testClass);
+
+ if (classWithTestAnnotation == null)
+ {
+ String errorMessage = "The test class "
+ + testClass.getName()
+ + " does not have a @Test annotation. "
+ + "All test classes must have a @Test annotation, and this annotation must have "
+ + "sequential=true set to ensure that tests for a single class are run together.";
+ System.err.println("\n\nERROR: " + errorMessage + "\n\n");
+ throw new RuntimeException(errorMessage);
+ }
+
+ Test testAnnotation = classWithTestAnnotation
+ .getAnnotation(Test.class);
+ if (!testAnnotation.sequential())
+ {
+ // Give an error message that is as specific as possible.
+ String errorMessage = "The @Test annotation for class "
+ + testClass.getName()
+ + (classWithTestAnnotation.equals(testClass) ? " "
+ : (", which is declared by class "
+ + classWithTestAnnotation.getName() + ", "))
+ + "must include sequential=true to ensure that tests for a single class are run together.";
+ System.err.println("\n\nERROR: " + errorMessage + "\n\n");
+ throw new RuntimeException(errorMessage);
+ }
+ }
+
+
+
+ // Return the class in cls's inheritence hierarchy that has the @Test
+ // annotation defined.
+ private Class<?> findClassWithTestAnnotation(Class<?> cls)
+ {
+ while (cls != null)
+ {
+ if (cls.getAnnotation(Test.class) != null)
+ {
+ return cls;
+ }
+ else
+ {
+ cls = cls.getSuperclass();
+ }
+ }
+ return null;
+ }
+
+
+
+ synchronized private List<TestMethodResults> getAllMethodResults()
+ {
+ List<TestMethodResults> allResults = new ArrayList<TestMethodResults>();
+ for (TestClassResults results : _classResults.values())
+ {
+ allResults.addAll(results.getAllMethodResults());
+ }
+ return allResults;
+ }
+
+
+
+ private List<TestClassResults> getClassesDescendingSortedByDuration()
+ {
+ List<TestClassResults> allClasses = new ArrayList<TestClassResults>(
+ _classResults.values());
+ Collections.sort(allClasses, new Comparator<TestClassResults>()
+ {
+ public int compare(TestClassResults o1, TestClassResults o2)
+ {
+ if (o1._totalDurationMs > o2._totalDurationMs)
+ {
+ return -1;
+ }
+ else if (o1._totalDurationMs < o2._totalDurationMs)
+ {
+ return 1;
+ }
+ else
+ {
+ return 0;
+ }
+ }
+ });
+ return allClasses;
+ }
+
+
+
+ private String getFqMethod(ITestResult result)
+ {
+ IClass cls = result.getTestClass();
+ ITestNGMethod method = result.getMethod();
+
+ return cls.getName() + "#" + method.getMethodName();
+ }
+
+
+
+ private List<TestMethodResults> getMethodsDescendingSortedByDuration()
+ {
+ List<TestMethodResults> allMethods = getAllMethodResults();
+ Collections.sort(allMethods, new Comparator<TestMethodResults>()
+ {
+ public int compare(TestMethodResults o1, TestMethodResults o2)
+ {
+ if (o1._totalDurationMs > o2._totalDurationMs)
+ {
+ return -1;
+ }
+ else if (o1._totalDurationMs < o2._totalDurationMs)
+ {
+ return 1;
+ }
+ else
+ {
+ return 0;
+ }
+ }
+ });
+ return allMethods;
+ }
+
+
+
+ private TestClassResults getResultsForClass(IClass cls)
+ {
+ TestClassResults results = _classResults.get(cls);
+ if (results == null)
+ {
+ results = new TestClassResults(cls);
+ _classResults.put(cls, results);
+ }
+ return results;
+ }
+
+
+
+ private void getSlowestTestsOutput(StringBuilder timingOutput)
+ {
+ timingOutput.append(center("CLASS SUMMARY SORTED BY DURATION"))
+ .append(EOL);
+ timingOutput.append(
+ center("[class-name total-time (total-invocations)]")).append(
+ EOL + EOL);
+ List<TestClassResults> sortedClasses = getClassesDescendingSortedByDuration();
+ for (int i = 0; i < sortedClasses.size(); i++)
+ {
+ TestClassResults results = sortedClasses.get(i);
+ timingOutput.append(" ");
+ results.getSummaryTimingInfo(timingOutput);
+ timingOutput.append(EOL);
+ }
+
+ timingOutput.append(EOL + DIVIDER_LINE + EOL + EOL);
+ timingOutput.append(center("SLOWEST METHODS")).append(EOL);
+ timingOutput.append(
+ center("[method-name total-time (total-invocations)]")).append(
+ EOL + EOL);
+ List<TestMethodResults> sortedMethods = getMethodsDescendingSortedByDuration();
+ for (int i = 0; i < Math.min(sortedMethods.size(),
+ NUM_SLOWEST_METHODS); i++)
+ {
+ TestMethodResults results = sortedMethods.get(i);
+ results.getTimingInfo(timingOutput, true);
+ }
+ }
+
+
+
+ private String getTestngLessStack(Throwable t)
+ {
+ StackTraceElement[] elements = t.getStackTrace();
+
+ int lowestOpenDSFrame;
+ for (lowestOpenDSFrame = elements.length - 1; lowestOpenDSFrame >= 0; lowestOpenDSFrame--)
+ {
+ StackTraceElement element = elements[lowestOpenDSFrame];
+ String clsName = element.getClassName();
+ if (clsName.startsWith("org.opends.")
+ && !clsName.equals("org.opends.server.SuiteRunner"))
+ {
+ break;
+ }
+ }
+
+ StringBuilder buffer = new StringBuilder();
+ buffer.append(t).append(EOL);
+ for (int i = 0; i <= lowestOpenDSFrame; i++)
+ {
+ buffer.append(" ").append(elements[i]).append(EOL);
+ }
+
+ Throwable cause = t.getCause();
+ if (t != null)
+ {
+ if (cause instanceof InvocationTargetException)
+ {
+ InvocationTargetException invocation = ((InvocationTargetException) cause);
+ buffer.append("Invocation Target Exception: "
+ + getTestngLessStack(invocation));
+ }
+ }
+
+ return buffer.toString();
+ }
+
+
+
+ private void initializeProgressVars()
+ {
+ String prop = System.getProperty(PROPERTY_TEST_PROGRESS);
+ if (prop == null)
+ {
+ return;
+ }
+
+ prop = prop.toLowerCase();
+ List<String> progressValues = Arrays.asList(prop
+ .split("\\s*\\W+\\s*"));
+
+ if ((prop.length() == 0) || progressValues.isEmpty())
+ {
+ // Accept the defaults
+ }
+ else if (progressValues.contains(TEST_PROGRESS_NONE))
+ {
+ doProgressNone = true;
+ doProgressTime = false;
+ doProgressTestCount = false;
+ doProgressMemory = false;
+ doProgressMemoryGcs = false;
+ doProgressThreadCount = false;
+ doProgressThreadChanges = false;
+ }
+ else if (progressValues.contains(TEST_PROGRESS_ALL))
+ {
+ doProgressNone = false;
+ doProgressTime = true;
+ doProgressTestCount = true;
+ doProgressMemory = true;
+ doProgressMemoryGcs = true;
+ doProgressThreadCount = true;
+ doProgressThreadChanges = true;
+ }
+ else
+ {
+ doProgressNone = false;
+ doProgressTime = progressValues.contains(TEST_PROGRESS_TIME);
+ doProgressTestCount = progressValues
+ .contains(TEST_PROGRESS_TEST_COUNT);
+ doProgressMemory = progressValues.contains(TEST_PROGRESS_MEMORY);
+ doProgressMemoryGcs = progressValues
+ .contains(TEST_PROGRESS_MEMORY_GCS);
+ doProgressThreadCount = progressValues
+ .contains(TEST_PROGRESS_THREAD_COUNT);
+ doProgressThreadChanges = progressValues
+ .contains(TEST_PROGRESS_THREAD_CHANGES);
+
+ // If we were asked to do the defaults, then restore anything
+ // that's on by default
+ if (progressValues.contains(TEST_PROGRESS_DEFAULT))
+ {
+ doProgressTime = true;
+ doProgressTestCount = true;
+ }
+ }
+ }
+
+
+
+ private List<String> listAllThreadNames()
+ {
+ Thread currentThread = Thread.currentThread();
+ ThreadGroup topGroup = currentThread.getThreadGroup();
+ while (topGroup.getParent() != null)
+ {
+ topGroup = topGroup.getParent();
+ }
+
+ Thread threads[] = new Thread[topGroup.activeCount() * 2];
+ int numThreads = topGroup.enumerate(threads);
+
+ List<String> activeThreads = new ArrayList<String>();
+ for (int i = 0; i < numThreads; i++)
+ {
+ Thread thread = threads[i];
+ if (thread.isAlive())
+ {
+ String fullName = thread.getName();
+ activeThreads.add(fullName);
+ }
+ }
+
+ Collections.sort(activeThreads);
+ return activeThreads;
+ }
+
+
+
+ private void onTestFinished(ITestResult tr)
+ {
+ // Clear when a test finishes instead before the next one starts
+ // so that we get the output generated by any @BeforeClass method
+ // etc.
+ addTestResult(tr);
+ }
+
+
+
+ private void outputTestProgress(Object finishedTestObject)
+ {
+ if (doProgressNone)
+ {
+ return;
+ }
+
+ printStatusHeaderOnce();
+
+ if (doProgressTime)
+ {
+ long curTimeMs = System.currentTimeMillis();
+ long durationSec = (curTimeMs - startTimeMs) / 1000;
+ long durationLastMs = curTimeMs - prevTimeMs;
+ System.err.printf("{%2d:%02d (%3.0fs)} ", (durationSec / 60),
+ (durationSec % 60), (durationLastMs / 1000.0));
+ prevTimeMs = curTimeMs;
+ }
+
+ if (doProgressTestCount)
+ {
+ System.err.printf("{%3dc %4dm %5di %df} ", _classResults.size(),
+ countTestMethods(), countTotalInvocations(),
+ countTestsWithStatus(ITestResult.FAILURE));
+ }
+
+ if (doProgressMemory)
+ {
+ Runtime runtime = Runtime.getRuntime();
+ long beforeGc = System.currentTimeMillis();
+ int gcs = runGc();
+ long gcDuration = System.currentTimeMillis() - beforeGc;
+
+ long totalMemory = runtime.totalMemory();
+ long freeMemory = runtime.freeMemory();
+ long curMemInUse = totalMemory - freeMemory;
+ long memDelta = curMemInUse - prevMemInUse;
+ double perMegaByte = 1.0 / (1024.0 * 1024.0);
+
+ maxMemInUse = Math.max(maxMemInUse, curMemInUse);
+
+ System.err.printf("{%5.1fMB %+5.1fMB} ", curMemInUse
+ * perMegaByte, memDelta * perMegaByte);
+
+ if (doProgressMemoryGcs)
+ {
+ System.err.printf("{%2d gcs %4.1fs} ", gcs,
+ gcDuration / 1000.0);
+ }
+ prevMemInUse = curMemInUse;
+ }
+
+ if (doProgressThreadCount)
+ {
+ System.err.printf("{#td %3d} ", Thread.activeCount());
+ }
+
+ if (finishedTestObject == null)
+ {
+ System.err.println(": starting");
+ }
+ else
+ {
+ String abbrClass = packageLessClass(finishedTestObject);
+ System.err.printf(": %s ", abbrClass).flush();
+ System.err.println();
+ }
+
+ if (doProgressThreadChanges)
+ {
+ List<String> currentThreads = listAllThreadNames();
+ List<String> newThreads = removeExactly(prevThreads,
+ currentThreads);
+ List<String> oldThreads = removeExactly(currentThreads,
+ prevThreads);
+
+ if (!newThreads.isEmpty())
+ {
+ System.err.println(" Thread changes:");
+ for (int i = 0; i < oldThreads.size(); i++)
+ {
+ String threadName = oldThreads.get(i);
+ System.err.println(" + " + threadName);
+ }
+ for (int i = 0; i < newThreads.size(); i++)
+ {
+ String threadName = newThreads.get(i);
+ System.err.println(" - " + threadName);
+ }
+ }
+
+ prevThreads = currentThreads;
+ }
+ }
+
+
+
+ private String packageLessClass(Object obj)
+ {
+ return obj.getClass().getName().replaceAll(".*\\.", "");
+ }
+
+
+
+ private synchronized void printStatusHeaderOnce()
+ {
+ if (statusHeaderPrinted)
+ {
+ return;
+ }
+ statusHeaderPrinted = true;
+
+ if (doProgressNone)
+ {
+ return;
+ }
+
+ System.err.println();
+ System.err.println("How to read the progressive status info:");
+
+ if (doProgressTime)
+ {
+ System.err
+ .println(" Test duration status: {Total min:sec. Since last status sec.}");
+ }
+
+ if (doProgressTestCount)
+ {
+ System.err
+ .println(" Test count status: {# test classes # test methods # test method invocations # test failures}.");
+ }
+
+ if (doProgressMemory)
+ {
+ System.err
+ .println(" Memory usage status: {MB in use +/-change since last status}");
+ }
+
+ if (doProgressMemoryGcs)
+ {
+ System.err
+ .println(" GCs during status: {GCs done to settle used memory time to do it}");
+ }
+
+ if (doProgressThreadCount)
+ {
+ System.err
+ .println(" Thread count status: {#td number of active threads}");
+ }
+
+ if (doProgressThreadChanges)
+ {
+ System.err
+ .println(" Thread change status: +/- thread name for new or finished threads since last status");
+ }
+
+ System.err.println(" TestClass (the class that just completed)");
+ System.err.println();
+ }
+
+
+
+ /**
+ * Removes toRemove from base. If there are duplicate items in base,
+ * then only one is removed for each item in toRemove.
+ *
+ * @return a new List with base with toRemove items removed from it
+ */
+ private List<String> removeExactly(List<String> base,
+ List<String> toRemove)
+ {
+ List<String> diff = new ArrayList<String>(base);
+ for (int i = 0; i < toRemove.size(); i++)
+ {
+ String item = toRemove.get(i);
+ diff.remove(item);
+ }
+ return diff;
+ }
+
+
+
+ private int runGc()
+ {
+ Runtime runtime = Runtime.getRuntime();
+ int numGcs;
+ long curMem = usedMemory();
+ long prevMem = Long.MAX_VALUE;
+ StringBuilder gcConvergence = new StringBuilder();
+ for (numGcs = 0; (prevMem > curMem) && numGcs < 100; numGcs++)
+ {
+ runtime.runFinalization();
+ runtime.gc();
+ Thread.yield();
+ Thread.yield();
+
+ prevMem = curMem;
+ curMem = usedMemory();
+
+ gcConvergence.append("[" + numGcs + "]: " + (prevMem - curMem))
+ .append(" ");
+ }
+ return numGcs;
+ }
+
+
+
+ private long usedMemory()
+ {
+ Runtime runtime = Runtime.getRuntime();
+ return runtime.totalMemory() - runtime.freeMemory();
+ }
+
+
+
+ private void writeAntTestsFailedMarker(String outputDirectory)
+ {
+ // Signal 'ant' that all of the tests passed by removing this
+ // special file.
+ if ((countTestsWithStatus(ITestResult.FAILURE) == 0)
+ && (countTestsWithStatus(ITestResult.SKIP) == 0))
+ {
+ new File(outputDirectory, ANT_TESTS_FAILED_FILE_NAME).delete();
+ }
+ }
+
+
+
+ private void writeReportToFile(File reportFile)
+ {
+ PrintStream reportStream = null;
+ try
+ {
+ reportStream = new PrintStream(new FileOutputStream(reportFile));
+ }
+ catch (FileNotFoundException e)
+ {
+ System.err
+ .println("Could not open "
+ + reportFile
+ + " for writing. Will write the unit test report to the console instead.");
+ e.printStackTrace(System.err);
+ reportStream = System.err;
+ }
+
+ reportStream.println(center("UNIT TEST REPORT"));
+ reportStream.println(center("----------------") + EOL);
+ reportStream.println("Finished at: " + (new Date()));
+ reportStream.println("# Test classes: " + _classResults.size());
+ reportStream.println("# Test classes interleaved: "
+ + _classesWithTestsRunInterleaved.size());
+ reportStream.println("# Test methods: " + countTestMethods());
+ reportStream.println("# Tests passed: "
+ + countTestsWithStatus(ITestResult.SUCCESS));
+ reportStream.println("# Tests failed: "
+ + countTestsWithStatus(ITestResult.FAILURE));
+ reportStream.println(EOL + DIVIDER_LINE + DIVIDER_LINE + EOL + EOL);
+ reportStream.println(center("TEST CLASSES RUN INTERLEAVED"));
+ reportStream.println(EOL + EOL);
+ for (Iterator<Class<?>> iterator = _classesWithTestsRunInterleaved
+ .iterator(); iterator.hasNext();)
+ {
+ Class<?> cls = iterator.next();
+ reportStream.println(" " + cls.getName());
+ }
+
+ reportStream.println(EOL + DIVIDER_LINE + DIVIDER_LINE + EOL + EOL);
+ reportStream.println(center("FAILED TESTS"));
+ reportStream.println(EOL + EOL);
+ reportStream.println(_bufferedTestFailures);
+
+ reportStream.println(EOL + DIVIDER_LINE + DIVIDER_LINE + EOL);
+
+ reportStream.println(getTimingInfo());
+
+ reportStream.close();
+
+ if ((countTestsWithStatus(ITestResult.FAILURE) == 0)
+ && (countTestsWithStatus(ITestResult.SKIP) != 0))
+ {
+ System.err
+ .println("There were no explicit test failures, but some tests were skipped (possibly due to errors in @Before* or @After* methods).");
+ System.exit(-1);
+ }
+ }
+
+
+
+ private void writeReportToScreen(File reportFile)
+ {
+ // HACK: print out status for the last test object
+ outputTestProgress(_lastTestObject);
+
+ List<ITestResult> failedTests = getFailedTests();
+ StringBuilder failed = new StringBuilder();
+ for (int i = 0; i < failedTests.size(); i++)
+ {
+ ITestResult failedTest = failedTests.get(i);
+ String fqMethod = getFqMethod(failedTest);
+ int numFailures = 1;
+ // Peek ahead to see if we had multiple failures for the same
+ // method
+ // In which case, we list it once with a count of the failures.
+ while (((i + 1) < failedTests.size())
+ && fqMethod.equals(getFqMethod(failedTests.get(i + 1))))
+ {
+ numFailures++;
+ i++;
+ }
+
+ failed.append(" ").append(fqMethod);
+
+ if (numFailures > 1)
+ {
+ failed.append(" (x " + numFailures + ")");
+ }
+
+ failed.append(EOL);
+ }
+
+ if (failed.length() > 0)
+ {
+ System.err.println("The following unit tests failed: ");
+ System.err.println(failed);
+ System.err.println();
+ System.err
+ .println("Include the ant option '-Dtest.failures=true' to rerun only the failed tests.");
+ }
+ else
+ {
+ System.err.println("All of the tests passed.");
+ }
+
+ System.err.println();
+ System.err.println("Wrote full test report to:");
+ System.err.println(reportFile.getAbsolutePath());
+ System.err.println("Test classes run interleaved: "
+ + _classesWithTestsRunInterleaved.size());
+
+ // Try to hard to reclaim as much memory as possible.
+ runGc();
+
+ System.err.printf("Final amount of memory in use: %.1f MB",
+ (usedMemory() / (1024.0 * 1024.0))).println();
+ if (doProgressMemory)
+ {
+ System.err.printf("Maximum amount of memory in use: %.1f MB",
+ (maxMemInUse / (1024.0 * 1024.0))).println();
+ }
+ System.err.println("Final number of threads: "
+ + Thread.activeCount());
+
+ System.err.println();
+
+ if (doProgressThreadChanges)
+ {
+ System.err.print(threadStacksToString());
+ }
+
+ if (_classesWithTestsRunInterleaved.size() > 0)
+ {
+ System.err
+ .println("WARNING: Some of the test methods for multiple classes "
+ + "were run out of order (i.e. interleaved with other classes). Either "
+ + "a class doesn't have the sequential=true annotation, which should "
+ + "have been reported already or there has been a regression with TestNG.");
+ }
+ }
+
+
+
+ synchronized StringBuilder getTimingInfo()
+ {
+ StringBuilder timingOutput = new StringBuilder();
+ timingOutput.append(center("TESTS RUN BY CLASS")).append(EOL);
+ timingOutput.append(
+ center("[method-name total-time (total-invocations)]")).append(
+ EOL + EOL);
+ for (TestClassResults results : _classResults.values())
+ {
+ results.getTimingInfo(timingOutput);
+ }
+
+ timingOutput.append(EOL + DIVIDER_LINE + DIVIDER_LINE + EOL);
+
+ getSlowestTestsOutput(timingOutput);
+ return timingOutput;
+ }
+}
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/ApproximateMatchingRuleTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/ApproximateMatchingRuleTest.java
index 62b99bc..ce6a792 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/ApproximateMatchingRuleTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/ApproximateMatchingRuleTest.java
@@ -28,7 +28,7 @@
-import static org.opends.server.schema.SchemaConstants.AMR_DOUBLE_METAPHONE_NAME;
+import static org.opends.sdk.schema.SchemaConstants.AMR_DOUBLE_METAPHONE_NAME;
import static org.testng.Assert.assertEquals;
import org.opends.sdk.ConditionResult;
@@ -44,8 +44,8 @@
*/
public class ApproximateMatchingRuleTest extends SchemaTestCase
{
- MatchingRule metaphone =
- Schema.getCoreSchema().getMatchingRule(AMR_DOUBLE_METAPHONE_NAME);
+ MatchingRule metaphone = Schema.getCoreSchema().getMatchingRule(
+ AMR_DOUBLE_METAPHONE_NAME);
@@ -154,13 +154,12 @@
throws Exception
{
// normalize the 2 provided values
- ByteString normalizedValue1 =
- rule.normalizeAttributeValue(ByteString.valueOf(value1));
+ ByteString normalizedValue1 = rule
+ .normalizeAttributeValue(ByteString.valueOf(value1));
// check that the approximatelyMatch return the expected result.
- ConditionResult liveResult =
- rule.getAssertion(ByteString.valueOf(value2)).matches(
- normalizedValue1);
+ ConditionResult liveResult = rule.getAssertion(
+ ByteString.valueOf(value2)).matches(normalizedValue1);
assertEquals(result, liveResult);
}
}
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/AttributeTypeSyntaxTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/AttributeTypeSyntaxTest.java
index 08dbbf5..785f8e0 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/AttributeTypeSyntaxTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/AttributeTypeSyntaxTest.java
@@ -28,7 +28,7 @@
-import static org.opends.server.schema.SchemaConstants.SYNTAX_ATTRIBUTE_TYPE_OID;
+import static org.opends.sdk.schema.SchemaConstants.SYNTAX_ATTRIBUTE_TYPE_OID;
import org.testng.annotations.DataProvider;
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/AttributeTypeTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/AttributeTypeTest.java
index dbc9538..a24fc50 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/AttributeTypeTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/AttributeTypeTest.java
@@ -28,17 +28,12 @@
-import static org.opends.server.schema.SchemaConstants.*;
+import static org.opends.sdk.schema.SchemaConstants.*;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
-import org.opends.messages.Message;
import org.opends.sdk.DecodeException;
-import org.opends.server.types.CommonSchemaElements;
+import org.opends.sdk.LocalizedIllegalArgumentException;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
@@ -87,9 +82,8 @@
"( 1.2.6 NAME ( 'testType' 'testnamealias' 'anothernamealias1' ) "
+ " SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SUP anothernamealias"
+ " USAGE dSAOperation NO-USER-MODIFICATION )", false);
- List<Message> warnings = new LinkedList<Message>();
- schema = builder.toSchema(warnings);
- if (!warnings.isEmpty())
+ schema = builder.toSchema();
+ if (!schema.getWarnings().isEmpty())
{
throw new Exception("Base schema not valid!");
}
@@ -571,6 +565,7 @@
+ @Test
public void testInheritFromNonCollective() throws Exception
{
// Collective can't inherit from non-collective
@@ -583,13 +578,12 @@
+ " SUBSTR caseIgnoreSubstringsMatch"
+ " SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE"
+ " COLLECTIVE USAGE userApplications )", false);
- List<Message> warnings = new LinkedList<Message>();
- builder.toSchema(warnings);
- Assert.assertFalse(warnings.isEmpty());
+ Assert.assertFalse(builder.toSchema().getWarnings().isEmpty());
}
+ @Test
public void testCollectiveOperational() throws Exception
{
// Collective can't be operational
@@ -601,13 +595,12 @@
+ " SUBSTR caseIgnoreSubstringsMatch"
+ " SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE"
+ " COLLECTIVE USAGE directoryOperation )", false);
- List<Message> warnings = new LinkedList<Message>();
- builder.toSchema(warnings);
- Assert.assertFalse(warnings.isEmpty());
+ Assert.assertFalse(builder.toSchema().getWarnings().isEmpty());
}
+ @Test
public void testInheritFromUserAppUsage() throws Exception
{
// directoryOperation can't inherit from userApplications
@@ -621,13 +614,12 @@
+ " SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE"
+ " NO-USER-MODIFICATION USAGE directoryOperation )",
false);
- List<Message> warnings = new LinkedList<Message>();
- builder.toSchema(warnings);
- Assert.assertFalse(warnings.isEmpty());
+ Assert.assertFalse(builder.toSchema().getWarnings().isEmpty());
}
+ @Test
public void testNoUserModNonOperational() throws Exception
{
// NO-USER-MODIFICATION can't have non-operational usage
@@ -640,13 +632,12 @@
+ " SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE"
+ " NO-USER-MODIFICATION USAGE userApplications )",
false);
- List<Message> warnings = new LinkedList<Message>();
- builder.toSchema(warnings);
- Assert.assertFalse(warnings.isEmpty());
+ Assert.assertFalse(builder.toSchema().getWarnings().isEmpty());
}
+ @Test
public void testADSyntax() throws Exception
{
// AD uses single quotes around OIDs
@@ -658,9 +649,24 @@
+ " EQUALITY 'caseIgnoreMatch' "
+ " SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' USAGE dSAOperation )",
false);
- List<Message> warnings = new LinkedList<Message>();
- builder.toSchema(warnings);
- Assert.assertFalse(warnings.isEmpty());
+ Assert.assertTrue(builder.toSchema().getWarnings().isEmpty());
+ }
+
+
+
+ @Test(expectedExceptions = LocalizedIllegalArgumentException.class)
+ public void testADSyntaxQuoteMismatch() throws Exception
+ {
+ // AD uses single quotes around OIDs
+ SchemaBuilder builder = new SchemaBuilder(schema);
+ builder
+ .addAttributeType(
+ "(1.2.8.5 NAME 'testtype' DESC 'full type' "
+ + " SUP '1.2.5 "
+ + " EQUALITY 'caseIgnoreMatch' "
+ + " SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' USAGE dSAOperation )",
+ false);
+ Assert.assertFalse(builder.toSchema().getWarnings().isEmpty());
}
}
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/BitStringEqualityMatchingRuleTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/BitStringEqualityMatchingRuleTest.java
index 5f81133..2afa9ec 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/BitStringEqualityMatchingRuleTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/BitStringEqualityMatchingRuleTest.java
@@ -28,7 +28,7 @@
-import static org.opends.server.schema.SchemaConstants.EMR_BIT_STRING_OID;
+import static org.opends.sdk.schema.SchemaConstants.EMR_BIT_STRING_OID;
import org.opends.sdk.ConditionResult;
import org.testng.annotations.DataProvider;
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/BitStringSyntaxTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/BitStringSyntaxTest.java
index 4ef06b3..1d02df6 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/BitStringSyntaxTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/BitStringSyntaxTest.java
@@ -28,7 +28,7 @@
-import static org.opends.server.schema.SchemaConstants.SYNTAX_BIT_STRING_OID;
+import static org.opends.sdk.schema.SchemaConstants.SYNTAX_BIT_STRING_OID;
import org.testng.annotations.DataProvider;
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/BooleanEqualityMatchingRuleTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/BooleanEqualityMatchingRuleTest.java
index e5d3306..202e3c0 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/BooleanEqualityMatchingRuleTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/BooleanEqualityMatchingRuleTest.java
@@ -28,7 +28,7 @@
-import static org.opends.server.schema.SchemaConstants.EMR_BOOLEAN_OID;
+import static org.opends.sdk.schema.SchemaConstants.EMR_BOOLEAN_OID;
import org.opends.sdk.ConditionResult;
import org.testng.annotations.DataProvider;
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactEqualityMatchingRuleTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactEqualityMatchingRuleTest.java
index b6bfa48..238b655 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactEqualityMatchingRuleTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactEqualityMatchingRuleTest.java
@@ -28,7 +28,7 @@
-import static org.opends.server.schema.SchemaConstants.EMR_CASE_EXACT_OID;
+import static org.opends.sdk.schema.SchemaConstants.EMR_CASE_EXACT_OID;
import org.opends.sdk.ConditionResult;
import org.testng.annotations.DataProvider;
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactIA5EqualityMatchingRuleTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactIA5EqualityMatchingRuleTest.java
index 5d0b89d..e1115c5 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactIA5EqualityMatchingRuleTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactIA5EqualityMatchingRuleTest.java
@@ -28,7 +28,7 @@
-import static org.opends.server.schema.SchemaConstants.EMR_CASE_EXACT_IA5_OID;
+import static org.opends.sdk.schema.SchemaConstants.EMR_CASE_EXACT_IA5_OID;
import org.opends.sdk.ConditionResult;
import org.testng.annotations.DataProvider;
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactIA5SubstringMatchingRuleTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactIA5SubstringMatchingRuleTest.java
index 8e0b902..d1deafc 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactIA5SubstringMatchingRuleTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactIA5SubstringMatchingRuleTest.java
@@ -28,7 +28,7 @@
-import static org.opends.server.schema.SchemaConstants.SMR_CASE_EXACT_IA5_OID;
+import static org.opends.sdk.schema.SchemaConstants.SMR_CASE_EXACT_IA5_OID;
import org.opends.sdk.ConditionResult;
import org.testng.annotations.DataProvider;
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactOrderingMatchingRuleTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactOrderingMatchingRuleTest.java
index a133c75..3cf2507 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactOrderingMatchingRuleTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactOrderingMatchingRuleTest.java
@@ -28,7 +28,7 @@
-import static org.opends.server.schema.SchemaConstants.OMR_CASE_EXACT_OID;
+import static org.opends.sdk.schema.SchemaConstants.OMR_CASE_EXACT_OID;
import org.testng.annotations.DataProvider;
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactSubstringMatchingRuleTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactSubstringMatchingRuleTest.java
index 7313ce7..decbbcc 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactSubstringMatchingRuleTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseExactSubstringMatchingRuleTest.java
@@ -28,7 +28,7 @@
-import static org.opends.server.schema.SchemaConstants.SMR_CASE_EXACT_OID;
+import static org.opends.sdk.schema.SchemaConstants.SMR_CASE_EXACT_OID;
import org.opends.sdk.ConditionResult;
import org.testng.annotations.DataProvider;
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreEqualityMatchingRuleTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreEqualityMatchingRuleTest.java
index 3985194..1fddb88 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreEqualityMatchingRuleTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreEqualityMatchingRuleTest.java
@@ -28,7 +28,7 @@
-import static org.opends.server.schema.SchemaConstants.EMR_CASE_IGNORE_OID;
+import static org.opends.sdk.schema.SchemaConstants.EMR_CASE_IGNORE_OID;
import org.opends.sdk.ConditionResult;
import org.testng.annotations.DataProvider;
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreIA5EqualityMatchingRuleTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreIA5EqualityMatchingRuleTest.java
index 58c44ca..5d99968 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreIA5EqualityMatchingRuleTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreIA5EqualityMatchingRuleTest.java
@@ -28,7 +28,7 @@
-import static org.opends.server.schema.SchemaConstants.EMR_CASE_IGNORE_IA5_OID;
+import static org.opends.sdk.schema.SchemaConstants.EMR_CASE_IGNORE_IA5_OID;
import org.opends.sdk.ConditionResult;
import org.testng.annotations.DataProvider;
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreIA5SubstringMatchingRuleTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreIA5SubstringMatchingRuleTest.java
index 751153b..33a8b6e 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreIA5SubstringMatchingRuleTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreIA5SubstringMatchingRuleTest.java
@@ -28,7 +28,7 @@
-import static org.opends.server.schema.SchemaConstants.SMR_CASE_IGNORE_IA5_OID;
+import static org.opends.sdk.schema.SchemaConstants.SMR_CASE_IGNORE_IA5_OID;
import org.opends.sdk.ConditionResult;
import org.testng.annotations.DataProvider;
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreOrderingMatchingRuleTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreOrderingMatchingRuleTest.java
index e0f8291..3efdef70 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreOrderingMatchingRuleTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreOrderingMatchingRuleTest.java
@@ -28,7 +28,7 @@
-import static org.opends.server.schema.SchemaConstants.OMR_CASE_IGNORE_OID;
+import static org.opends.sdk.schema.SchemaConstants.OMR_CASE_IGNORE_OID;
import org.testng.annotations.DataProvider;
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreSubstringMatchingRuleTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreSubstringMatchingRuleTest.java
index 6a5165e..7826ece 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreSubstringMatchingRuleTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CaseIgnoreSubstringMatchingRuleTest.java
@@ -28,7 +28,7 @@
-import static org.opends.server.schema.SchemaConstants.SMR_CASE_IGNORE_OID;
+import static org.opends.sdk.schema.SchemaConstants.SMR_CASE_IGNORE_OID;
import org.opends.sdk.ConditionResult;
import org.testng.annotations.DataProvider;
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CoreSchemaTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CoreSchemaTest.java
index e581616..12720b8 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CoreSchemaTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/CoreSchemaTest.java
@@ -42,6 +42,6 @@
public final void testCoreSchemaWarnings()
{
// Make sure core schema doesn't have any warnings.
- Assert.assertTrue(CoreSchemaImpl.CORE_SCHEMA_WARNINGS.isEmpty());
+ Assert.assertTrue(Schema.getCoreSchema().getWarnings().isEmpty());
}
}
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/DITContentRuleSyntaxTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/DITContentRuleSyntaxTest.java
index b46fb19..12638a3 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/DITContentRuleSyntaxTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/DITContentRuleSyntaxTest.java
@@ -28,7 +28,7 @@
-import static org.opends.server.schema.SchemaConstants.SYNTAX_DIT_CONTENT_RULE_OID;
+import static org.opends.sdk.schema.SchemaConstants.SYNTAX_DIT_CONTENT_RULE_OID;
import org.testng.annotations.DataProvider;
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/EnumSyntaxTestCase.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/EnumSyntaxTestCase.java
index de96a89..d20c402 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/EnumSyntaxTestCase.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/EnumSyntaxTestCase.java
@@ -28,7 +28,7 @@
-import static org.opends.server.schema.SchemaConstants.OMR_OID_GENERIC_ENUM;
+import static org.opends.sdk.schema.SchemaConstants.OMR_OID_GENERIC_ENUM;
import org.opends.sdk.ConditionResult;
import org.opends.sdk.DecodeException;
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/GeneralizedTimeSyntaxTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/GeneralizedTimeSyntaxTest.java
index 7091724..db991df 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/GeneralizedTimeSyntaxTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/GeneralizedTimeSyntaxTest.java
@@ -28,18 +28,9 @@
-import static org.opends.server.schema.SchemaConstants.SYNTAX_GENERALIZED_TIME_OID;
-import static org.opends.server.util.ServerConstants.TIME_ZONE_UTC;
+import static org.opends.sdk.schema.SchemaConstants.*;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.TimeZone;
-
-import org.opends.server.schema.GeneralizedTimeSyntax;
-import org.testng.Assert;
import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
@@ -83,130 +74,4 @@
{ "2006", false }, };
}
-
-
- /**
- * Create data for format(...) tests.
- *
- * @return Returns test data.
- */
- @DataProvider(name = "createFormatData")
- public Object[][] createFormatData()
- {
- return new Object[][] {
- // Note that Calendar months run from 0-11,
- // and that there was no such year as year 0 (1 BC -> 1 AD).
- { 1, 0, 1, 0, 0, 0, 0, "00010101000000.000Z" },
- { 9, 0, 1, 0, 0, 0, 0, "00090101000000.000Z" },
- { 10, 0, 1, 0, 0, 0, 0, "00100101000000.000Z" },
- { 99, 0, 1, 0, 0, 0, 0, "00990101000000.000Z" },
- { 100, 0, 1, 0, 0, 0, 0, "01000101000000.000Z" },
- { 999, 0, 1, 0, 0, 0, 0, "09990101000000.000Z" },
- { 1000, 0, 1, 0, 0, 0, 0, "10000101000000.000Z" },
- { 2000, 0, 1, 0, 0, 0, 0, "20000101000000.000Z" },
- { 2099, 0, 1, 0, 0, 0, 0, "20990101000000.000Z" },
- { 2000, 8, 1, 0, 0, 0, 0, "20000901000000.000Z" },
- { 2000, 9, 1, 0, 0, 0, 0, "20001001000000.000Z" },
- { 2000, 10, 1, 0, 0, 0, 0, "20001101000000.000Z" },
- { 2000, 11, 1, 0, 0, 0, 0, "20001201000000.000Z" },
- { 2000, 0, 9, 0, 0, 0, 0, "20000109000000.000Z" },
- { 2000, 0, 10, 0, 0, 0, 0, "20000110000000.000Z" },
- { 2000, 0, 19, 0, 0, 0, 0, "20000119000000.000Z" },
- { 2000, 0, 20, 0, 0, 0, 0, "20000120000000.000Z" },
- { 2000, 0, 29, 0, 0, 0, 0, "20000129000000.000Z" },
- { 2000, 0, 30, 0, 0, 0, 0, "20000130000000.000Z" },
- { 2000, 0, 31, 0, 0, 0, 0, "20000131000000.000Z" },
- { 2000, 0, 1, 9, 0, 0, 0, "20000101090000.000Z" },
- { 2000, 0, 1, 10, 0, 0, 0, "20000101100000.000Z" },
- { 2000, 0, 1, 19, 0, 0, 0, "20000101190000.000Z" },
- { 2000, 0, 1, 20, 0, 0, 0, "20000101200000.000Z" },
- { 2000, 0, 1, 23, 0, 0, 0, "20000101230000.000Z" },
- { 2000, 0, 1, 0, 9, 0, 0, "20000101000900.000Z" },
- { 2000, 0, 1, 0, 10, 0, 0, "20000101001000.000Z" },
- { 2000, 0, 1, 0, 59, 0, 0, "20000101005900.000Z" },
- { 2000, 0, 1, 0, 0, 9, 0, "20000101000009.000Z" },
- { 2000, 0, 1, 0, 0, 10, 0, "20000101000010.000Z" },
- { 2000, 0, 1, 0, 0, 59, 0, "20000101000059.000Z" },
- { 2000, 0, 1, 0, 0, 0, 9, "20000101000000.009Z" },
- { 2000, 0, 1, 0, 0, 0, 10, "20000101000000.010Z" },
- { 2000, 0, 1, 0, 0, 0, 99, "20000101000000.099Z" },
- { 2000, 0, 1, 0, 0, 0, 100, "20000101000000.100Z" },
- { 2000, 0, 1, 0, 0, 0, 999, "20000101000000.999Z" }, };
- }
-
-
-
- /**
- * Tests
- * {@link org.opends.server.schema.GeneralizedTimeSyntax#format(long)}
- * .
- *
- * @param yyyy
- * The year.
- * @param MM
- * The month.
- * @param dd
- * The day.
- * @param HH
- * The hour.
- * @param mm
- * The minute.
- * @param ss
- * The second.
- * @param SSS
- * The milli-seconds.
- * @param expected
- * The expected generalized time formatted string.
- * @throws Exception
- * If an unexpected error occurred.
- */
- @Test(dataProvider = "createFormatData")
- public void testFormatLong(int yyyy, int MM, int dd, int HH, int mm,
- int ss, int SSS, String expected) throws Exception
- {
- Calendar calendar =
- new GregorianCalendar(TimeZone.getTimeZone(TIME_ZONE_UTC));
- calendar.set(yyyy, MM, dd, HH, mm, ss);
- calendar.set(Calendar.MILLISECOND, SSS);
- long time = calendar.getTimeInMillis();
- String actual = GeneralizedTimeSyntax.format(time);
- Assert.assertEquals(actual, expected);
- }
-
-
-
- /**
- * Tests {@link GeneralizedTimeSyntax#format(java.util.Date)}.
- *
- * @param yyyy
- * The year.
- * @param MM
- * The month.
- * @param dd
- * The day.
- * @param HH
- * The hour.
- * @param mm
- * The minute.
- * @param ss
- * The second.
- * @param SSS
- * The milli-seconds.
- * @param expected
- * The expected generalized time formatted string.
- * @throws Exception
- * If an unexpected error occurred.
- */
- @Test(dataProvider = "createFormatData")
- public void testFormatDate(int yyyy, int MM, int dd, int HH, int mm,
- int ss, int SSS, String expected) throws Exception
- {
- Calendar calendar =
- new GregorianCalendar(TimeZone.getTimeZone(TIME_ZONE_UTC));
- calendar.set(yyyy, MM, dd, HH, mm, ss);
- calendar.set(Calendar.MILLISECOND, SSS);
- Date time = new Date(calendar.getTimeInMillis());
- String actual = GeneralizedTimeSyntax.format(time);
- Assert.assertEquals(actual, expected);
- }
}
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/GuideSyntaxTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/GuideSyntaxTest.java
index 241c9a1..bb2f4ba 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/GuideSyntaxTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/GuideSyntaxTest.java
@@ -28,7 +28,7 @@
-import static org.opends.server.schema.SchemaConstants.SYNTAX_GUIDE_OID;
+import static org.opends.sdk.schema.SchemaConstants.SYNTAX_GUIDE_OID;
import org.testng.annotations.DataProvider;
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/IA5StringSyntaxTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/IA5StringSyntaxTest.java
index b4c2656..d350d49 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/IA5StringSyntaxTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/IA5StringSyntaxTest.java
@@ -28,7 +28,7 @@
-import static org.opends.server.schema.SchemaConstants.SYNTAX_IA5_STRING_OID;
+import static org.opends.sdk.schema.SchemaConstants.SYNTAX_IA5_STRING_OID;
import org.testng.annotations.DataProvider;
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/LDAPSyntaxTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/LDAPSyntaxTest.java
index dd4c068..6a338e0 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/LDAPSyntaxTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/LDAPSyntaxTest.java
@@ -28,7 +28,7 @@
-import static org.opends.server.schema.SchemaConstants.SYNTAX_LDAP_SYNTAX_OID;
+import static org.opends.sdk.schema.SchemaConstants.SYNTAX_LDAP_SYNTAX_OID;
import org.testng.annotations.DataProvider;
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/MatchingRuleSyntaxTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/MatchingRuleSyntaxTest.java
index 9e93b59..df96f25 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/MatchingRuleSyntaxTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/MatchingRuleSyntaxTest.java
@@ -28,7 +28,7 @@
-import static org.opends.server.schema.SchemaConstants.SYNTAX_MATCHING_RULE_OID;
+import static org.opends.sdk.schema.SchemaConstants.SYNTAX_MATCHING_RULE_OID;
import org.testng.annotations.DataProvider;
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/MatchingRuleUseSyntaxTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/MatchingRuleUseSyntaxTest.java
index 60a1568..54b51e1 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/MatchingRuleUseSyntaxTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/MatchingRuleUseSyntaxTest.java
@@ -28,7 +28,7 @@
-import static org.opends.server.schema.SchemaConstants.SYNTAX_MATCHING_RULE_USE_OID;
+import static org.opends.sdk.schema.SchemaConstants.SYNTAX_MATCHING_RULE_USE_OID;
import org.testng.annotations.DataProvider;
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/OtherMailboxSyntaxTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/OtherMailboxSyntaxTest.java
index 70a0641..94f9cca 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/OtherMailboxSyntaxTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/OtherMailboxSyntaxTest.java
@@ -28,7 +28,7 @@
-import static org.opends.server.schema.SchemaConstants.SYNTAX_OTHER_MAILBOX_OID;
+import static org.opends.sdk.schema.SchemaConstants.SYNTAX_OTHER_MAILBOX_OID;
import org.testng.annotations.DataProvider;
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/RegexSyntaxTestCase.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/RegexSyntaxTestCase.java
index d9b1330..3297e97 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/RegexSyntaxTestCase.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/RegexSyntaxTestCase.java
@@ -28,12 +28,8 @@
-import java.util.LinkedList;
-import java.util.List;
import java.util.regex.Pattern;
-import org.opends.messages.Message;
-import org.opends.sdk.DecodeException;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
@@ -49,7 +45,7 @@
* {@inheritDoc}
*/
@Override
- protected Syntax getRule() throws SchemaException, DecodeException
+ protected Syntax getRule()
{
SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema());
builder.addPatternSyntax("1.1.1",
@@ -73,23 +69,21 @@
- public void testInvalidPattern() throws SchemaException,
- DecodeException
+ @Test
+ public void testInvalidPattern()
{
// This should fail due to invalid pattern.
SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema());
builder.addSyntax(
"( 1.1.1 DESC 'Host and Port in the format of HOST:PORT' "
+ " X-PATTERN '^[a-z-A-Z+:[0-@.]+\\d$' )", true);
- List<Message> warnings = new LinkedList<Message>();
- builder.toSchema(warnings);
- Assert.assertFalse(warnings.isEmpty());
+ Assert.assertFalse(builder.toSchema().getWarnings().isEmpty());
}
@Test
- public void testDecode() throws SchemaException, DecodeException
+ public void testDecode()
{
// This should fail due to invalid pattern.
SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema());
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/SchemaUtilsTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/SchemaUtilsTest.java
new file mode 100644
index 0000000..fe2c1e7
--- /dev/null
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/SchemaUtilsTest.java
@@ -0,0 +1,116 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2009 Sun Microsystems, Inc.
+ */
+package org.opends.sdk.schema;
+
+
+
+import org.opends.sdk.DecodeException;
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+import com.sun.opends.sdk.util.SubstringReader;
+
+
+
+/**
+ * Test schema utilities.
+ */
+public class SchemaUtilsTest extends SchemaTestCase
+{
+
+ @DataProvider(name = "validOIDs")
+ public Object[][] createValidOIDs()
+ {
+ return new Object[][] {
+ // Compliant NOIDs
+ { "0.0" }, { "1.0" }, { "2.0" }, { "3.0" }, { "4.0" },
+ { "5.0" }, { "6.0" }, { "7.0" }, { "8.0" }, { "9.0" },
+ { "0.1" }, { "0.2" }, { "0.3" }, { "0.4" }, { "0.5" },
+ { "0.6" }, { "0.7" }, { "0.8" }, { "0.9" }, { "10.0" },
+ { "100.0" },
+ { "999.0" },
+ { "0.100" },
+ { "0.999" },
+ { "100.100" },
+ { "999.999" },
+ { "111.22.333.44.55555.66.777.88.999" },
+ { "a" },
+ { "a2" },
+ { "a-" },
+ { "one" },
+ { "one1" },
+ { "one-two" },
+ { "one1-two2-three3" },
+ // AD puts quotes around OIDs - not compliant but we need to
+ // handle them.
+ { "'0.0'" }, { "'10.0'" }, { "'999.0'" },
+ { "'111.22.333.44.55555.66.777.88.999'" }, { "'a'" },
+ { "'a2'" }, { "'a-'" }, { "'one'" }, { "'one1'" },
+ { "'one-two'" },
+ { "'one1-two2-three3'" },
+ // Not strictly legal, but we'll be lenient with what we accept.
+ { "0" }, { "1" }, { "2" }, { "3" }, { "4" }, { "5" }, { "6" },
+ { "7" }, { "8" }, { "9" }, { "00" }, { "01" }, { "01.0" },
+ { "0.01" }, { "one.two.three" }, };
+ }
+
+
+
+ @DataProvider(name = "invalidOIDs")
+ public Object[][] createInvalidOIDs()
+ {
+ return new Object[][] { { "" }, { ".0" }, { "0." }, { "100." },
+ { ".999" }, { "1one" }, { "one+two+three" },
+ // AD puts quotes around OIDs - test mismatched quotes.
+ { "'0" }, { "'10" }, { "999'" }, { "0.0'" }, };
+ }
+
+
+
+ @Test(dataProvider = "validOIDs")
+ public void testReadOIDValid(String oid) throws DecodeException
+ {
+ String expected = oid;
+ if (oid.startsWith("'"))
+ {
+ expected = oid.substring(1, oid.length() - 1);
+ }
+
+ SubstringReader reader = new SubstringReader(oid);
+ Assert.assertEquals(SchemaUtils.readOID(reader), expected);
+ }
+
+
+
+ @Test(dataProvider = "invalidOIDs", expectedExceptions = DecodeException.class)
+ public void testReadOIDInvalid(String oid) throws DecodeException
+ {
+ SubstringReader reader = new SubstringReader(oid);
+ SchemaUtils.readOID(reader);
+ }
+}
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/SubstitutionSyntaxTestCase.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/SubstitutionSyntaxTestCase.java
index 2af3329..1af8608 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/SubstitutionSyntaxTestCase.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/SubstitutionSyntaxTestCase.java
@@ -28,13 +28,8 @@
-import static org.opends.server.schema.SchemaConstants.SYNTAX_IA5_STRING_OID;
+import static org.opends.sdk.schema.SchemaConstants.*;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.opends.messages.Message;
-import org.opends.sdk.DecodeException;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
@@ -50,7 +45,7 @@
* {@inheritDoc}
*/
@Override
- protected Syntax getRule() throws SchemaException, DecodeException
+ protected Syntax getRule()
{
// Use IA5String syntax as our substitute.
SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema());
@@ -74,62 +69,78 @@
- public void testSelfSubstitute1() throws SchemaException,
- DecodeException
+ @Test
+ public void testSelfSubstitute1()
{
SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema());
builder.addSyntax("( 1.3.6.1.4.1.1466.115.121.1.15 "
+ " DESC 'Replacing DirectorySyntax' "
+ " X-SUBST '1.3.6.1.4.1.1466.115.121.1.15' )", true);
- List<Message> warnings = new LinkedList<Message>();
- builder.toSchema(warnings);
- Assert.assertFalse(warnings.isEmpty());
+ Assert.assertFalse(builder.toSchema().getWarnings().isEmpty());
}
- public void testSelfSubstitute2() throws SchemaException
+ @Test
+ public void testSelfSubstitute2()
{
SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema());
builder.addSubstitutionSyntax("1.3.6.1.4.1.1466.115.121.1.15",
"Replacing DirectorySyntax", "1.3.6.1.4.1.1466.115.121.1.15",
true);
- List<Message> warnings = new LinkedList<Message>();
- builder.toSchema(warnings);
- Assert.assertFalse(warnings.isEmpty());
+ Assert.assertFalse(builder.toSchema().getWarnings().isEmpty());
}
- public void testUndefinedSubstitute1() throws SchemaException,
- DecodeException
+ @Test
+ public void testUndefinedSubstitute1()
{
SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema());
builder.addSyntax("( 1.3.6.1.4.1.1466.115.121.1.15 "
+ " DESC 'Replacing DirectorySyntax' " + " X-SUBST '1.1.1' )",
true);
- List<Message> warnings = new LinkedList<Message>();
- builder.toSchema(warnings);
- Assert.assertFalse(warnings.isEmpty());
+ Assert.assertFalse(builder.toSchema().getWarnings().isEmpty());
}
- public void testUndefinedSubstitute2() throws SchemaException
+ @Test
+ public void testUndefinedSubstitute2()
{
SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema());
builder.addSubstitutionSyntax("1.3.6.1.4.1.1466.115.121.1.15",
"Replacing DirectorySyntax", "1.1.1", true);
- List<Message> warnings = new LinkedList<Message>();
- builder.toSchema(warnings);
- Assert.assertFalse(warnings.isEmpty());
+ Assert.assertFalse(builder.toSchema().getWarnings().isEmpty());
}
- @Test(expectedExceptions = SchemaException.class)
- public void testSubstituteCore1() throws SchemaException,
- DecodeException
+ @Test(expectedExceptions = ConflictingSchemaElementException.class)
+ public void testSubstituteCore1()
+ throws ConflictingSchemaElementException
+ {
+ SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema());
+ builder.addSyntax("( 1.3.6.1.4.1.1466.115.121.1.26 "
+ + " DESC 'Replacing DirectorySyntax' " + " X-SUBST '9.9.9' )",
+ false);
+ }
+
+
+
+ @Test(expectedExceptions = ConflictingSchemaElementException.class)
+ public void testSubstituteCore2()
+ throws ConflictingSchemaElementException
+ {
+ SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema());
+ builder.addSubstitutionSyntax("1.3.6.1.4.1.1466.115.121.1.26",
+ "Replacing DirectorySyntax", "9.9.9", false);
+ }
+
+
+
+ @Test
+ public void testSubstituteCore1Override()
{
SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema());
builder.addSyntax("( 1.3.6.1.4.1.1466.115.121.1.26 "
@@ -139,8 +150,8 @@
- @Test(expectedExceptions = SchemaException.class)
- public void testSubstituteCore2() throws SchemaException
+ @Test
+ public void testSubstituteCore2Override()
{
SchemaBuilder builder = new SchemaBuilder(Schema.getCoreSchema());
builder.addSubstitutionSyntax("1.3.6.1.4.1.1466.115.121.1.26",
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/SyntaxTestCase.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/SyntaxTestCase.java
index bc69054..78198f0 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/SyntaxTestCase.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/SyntaxTestCase.java
@@ -30,7 +30,7 @@
import static org.testng.Assert.fail;
-import org.opends.messages.MessageBuilder;
+import org.opends.sdk.LocalizableMessageBuilder;
import org.opends.sdk.DecodeException;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
@@ -76,7 +76,7 @@
// Make sure that the specified class can be instantiated as a task.
Syntax syntax = getRule();
- MessageBuilder reason = new MessageBuilder();
+ LocalizableMessageBuilder reason = new LocalizableMessageBuilder();
// test the valueIsAcceptable method
Boolean liveResult =
syntax.valueIsAcceptable(ByteString.valueOf(value), reason);
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/TelexSyntaxTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/TelexSyntaxTest.java
index f1122b1..7c26fec 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/TelexSyntaxTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/TelexSyntaxTest.java
@@ -28,7 +28,7 @@
-import static org.opends.server.schema.SchemaConstants.SYNTAX_TELEX_OID;
+import static org.opends.sdk.schema.SchemaConstants.SYNTAX_TELEX_OID;
import org.testng.annotations.DataProvider;
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/UTCTimeSyntaxTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/UTCTimeSyntaxTest.java
index 0357844..10dc155 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/UTCTimeSyntaxTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/UTCTimeSyntaxTest.java
@@ -28,7 +28,7 @@
-import static org.opends.server.schema.SchemaConstants.SYNTAX_UTC_TIME_OID;
+import static org.opends.sdk.schema.SchemaConstants.SYNTAX_UTC_TIME_OID;
import static org.testng.Assert.assertTrue;
import java.util.Date;
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/UUIDSyntaxTest.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/UUIDSyntaxTest.java
index 5335a90..ee173f8 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/UUIDSyntaxTest.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/schema/UUIDSyntaxTest.java
@@ -28,7 +28,7 @@
-import static org.opends.server.schema.SchemaConstants.SYNTAX_UUID_OID;
+import static org.opends.sdk.schema.SchemaConstants.SYNTAX_UUID_OID;
import org.testng.annotations.DataProvider;
--
Gitblit v1.10.0