From 1a7e224edaa615ca964abb1cc6051d8212d7316f Mon Sep 17 00:00:00 2001
From: Ludovic Poitou <ludovic.poitou@forgerock.com>
Date: Mon, 27 Jun 2011 11:51:35 +0000
Subject: [PATCH] Break tests in smaller units, in order to avoid test failures to hide other issues
---
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java | 200 ++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 162 insertions(+), 38 deletions(-)
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java
index 1ad181d..aa98b59 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java
@@ -207,11 +207,15 @@
* Launcher.
*/
@Test(enabled=true)
- public void ECLReplicationServerTest() throws Exception
+ public void ECLReplicationServerPreTest() throws Exception
{
// No RSDomain created yet => RS only case => ECL is not a supported
ECLIsNotASupportedSuffix();
+ }
+ @Test(enabled=true, dependsOnMethods = { "ECLReplicationServerPreTest"})
+ public void ECLReplicationServerTest() throws Exception
+ {
// Following test does not create RSDomain (only broker) but want to test
// ECL .. so let's enable ECl manually
// Now that we tested that ECl is not available
@@ -232,37 +236,69 @@
// Test all types of ops.
ECLAllOps(); // Do not clean the db for the next test
- // Test that ECL Operational, virtual attributes are not visible
- // outside rootDSE. Next test will test access in RootDSE.
- // This one checks in data.
- ECLOperationalAttributesFailTest();
-
// First and last should be ok whenever a request has been done or not
// in compat mode.
- ECLCompatTestLimits(1,4,true);replicationServer.clearDb();
+ ECLCompatTestLimits(1,4,true);
+ replicationServer.clearDb();
+ }
+
+ @Test(enabled=true, dependsOnMethods = { "ECLReplicationServerTest"})
+ public void ECLReplicationServerTest1()
+ {
// Test with a mix of domains, a mix of DSes
- ECLTwoDomains(); replicationServer.clearDb();
+ ECLTwoDomains();
+ replicationServer.clearDb();
+ }
+
+ @Test(enabled=true, dependsOnMethods = { "ECLReplicationServerTest"})
+ public void ECLReplicationServerTest2()
+ {
// Test ECL after changelog triming
- ECLAfterChangelogTrim();replicationServer.clearDb();
+ ECLAfterChangelogTrim();
+ replicationServer.clearDb();
+ }
+ @Test(enabled=true, dependsOnMethods = { "ECLReplicationServerTest"})
+ public void ECLReplicationServerTest3()
+ {
// Write changes and read ECL from start
- sleep(500); // Wait for draftCNDb to be purged also
int ts = ECLCompatWriteReadAllOps(1);
ECLCompatNoControl(1);
// Write additional changes and read ECL from a provided draft change number
- ts = ECLCompatWriteReadAllOps(5);replicationServer.clearDb();
+ ts = ECLCompatWriteReadAllOps(5);
+ replicationServer.clearDb();
+ }
- ECLIncludeAttributes();replicationServer.clearDb();
+ @Test(enabled=true, dependsOnMethods = { "ECLReplicationServerTest"})
+ public void ECLReplicationServerTest4()
+ {
+ ECLIncludeAttributes();
+ replicationServer.clearDb();
+ }
- ChangeTimeHeartbeatTest();replicationServer.clearDb();
+ @Test(enabled=true, dependsOnMethods = { "ECLReplicationServerTest"})
+ public void ECLReplicationServerTest5()
+ {
+
+ ChangeTimeHeartbeatTest();
+ replicationServer.clearDb();
}
- @Test(enabled=true, groups="slow", dependsOnMethods = { "ECLReplicationServerTest"})
+ @Test(enabled=true, dependsOnMethods = { "ECLReplicationServerTest"})
+ public void ECLReplicationServerTest6()
+ {
+ // Test that ECL Operational, virtual attributes are not visible
+ // outside rootDSE. Next test will test access in RootDSE.
+ // This one checks in data.
+ ECLOperationalAttributesFailTest();
+ }
+
+ @Test(enabled=true, dependsOnMethods = { "ECLReplicationServerTest"})
public void ECLReplicationServerFullTest()
{
// ***********************************************
@@ -270,14 +306,29 @@
// ***********************************************
// Test that private backend is excluded from ECL
- ECLOnPrivateBackend();replicationServer.clearDb();
+ ECLOnPrivateBackend();
+ replicationServer.clearDb();
+ }
+ @Test(enabled=true, groups="slow", dependsOnMethods = { "ECLReplicationServerTest"})
+ public void ECLReplicationServerFullTest1()
+ {
// Test remote API (ECL through replication protocol) with empty ECL
- ECLRemoteEmpty();replicationServer.clearDb();
+ ECLRemoteEmpty();
+ replicationServer.clearDb();
+ }
+ @Test(enabled=true, groups="slow", dependsOnMethods = { "ECLReplicationServerTest"})
+ public void ECLReplicationServerFullTest2()
+ {
// Test with empty changelog
- ECLEmpty();replicationServer.clearDb();
+ ECLEmpty();
+ replicationServer.clearDb();
+ }
+ @Test(enabled=true, groups="slow", dependsOnMethods = { "ECLReplicationServerTest"})
+ public void ECLReplicationServerFullTest3()
+ {
// Test all types of ops.
ECLAllOps(); // Do not clean the db for the next test
@@ -288,52 +339,112 @@
// First and last should be ok whenever a request has been done or not
// in compat mode.
- ECLCompatTestLimits(1,4, true);replicationServer.clearDb();
+ ECLCompatTestLimits(1,4, true);
+ replicationServer.clearDb();
+ }
+ @Test(enabled=true, groups="slow", dependsOnMethods = { "ECLReplicationServerTest"})
+ public void ECLReplicationServerFullTest4()
+ {
// Test remote API (ECL through replication protocol) with NON empty ECL
- ECLRemoteNonEmpty();replicationServer.clearDb();
+ ECLRemoteNonEmpty();
+ replicationServer.clearDb();
+ }
+ @Test(enabled=true, groups="slow", dependsOnMethods = { "ECLReplicationServerTest"})
+ public void ECLReplicationServerFullTest5()
+ {
// Test with a mix of domains, a mix of DSes
- ECLTwoDomains();replicationServer.clearDb();
+ ECLTwoDomains();
+ replicationServer.clearDb();
+ }
+ @Test(enabled=true, groups="slow", dependsOnMethods = { "ECLReplicationServerTest"})
+ public void ECLReplicationServerFullTest6()
+ {
// Test ECL after changelog triming
- ECLAfterChangelogTrim();replicationServer.clearDb();
+ ECLAfterChangelogTrim();
+ replicationServer.clearDb();
+ }
+ @Test(enabled=true, groups="slow", dependsOnMethods = { "ECLReplicationServerTest"})
+ public void ECLReplicationServerFullTest7()
+ {
// Persistent search with changesOnly request
- ECLPsearch(true, false);replicationServer.clearDb();
+ ECLPsearch(true, false);
+ replicationServer.clearDb();
+ }
+ @Test(enabled=true, groups="slow", dependsOnMethods = { "ECLReplicationServerTest"})
+ public void ECLReplicationServerFullTest8()
+ {
// Persistent search with init values request
- ECLPsearch(false, false);replicationServer.clearDb();
+ ECLPsearch(false, false);
+ replicationServer.clearDb();
+ }
+ @Test(enabled=true, groups="slow", dependsOnMethods = { "ECLReplicationServerTest"})
+ public void ECLReplicationServerFullTest9()
+ {
// Simultaneous psearches
- ECLSimultaneousPsearches();replicationServer.clearDb();
+ ECLSimultaneousPsearches();
+ replicationServer.clearDb();
+ }
+ @Test(enabled=true, groups="slow", dependsOnMethods = { "ECLReplicationServerTest"})
+ public void ECLReplicationServerFullTest10()
+ {
// Test eligible count method.
- ECLGetEligibleCountTest();replicationServer.clearDb();
+ ECLGetEligibleCountTest();
+ replicationServer.clearDb();
+ }
- // TODO:ECL Test SEARCH abandon and check everything shutdown and cleaned
- // TODO:ECL Test PSEARCH abandon and check everything shutdown and cleaned
- // TODO:ECL Test invalid DN in cookie returns UNWILLING + message
- // TODO:ECL Test the attributes list and values returned in ECL entries
- // TODO:ECL Test search -s base, -s one
+ // TODO:ECL Test SEARCH abandon and check everything shutdown and cleaned
+ // TODO:ECL Test PSEARCH abandon and check everything shutdown and cleaned
+ // TODO:ECL Test invalid DN in cookie returns UNWILLING + message
+ // TODO:ECL Test the attributes list and values returned in ECL entries
+ // TODO:ECL Test search -s base, -s one
+ @Test(enabled=true, groups="slow", dependsOnMethods = { "ECLReplicationServerTest"})
+ public void ECLReplicationServerFullTest11()
+ {
// Test directly from the java obect that the changeTimeHeartbeatState
// stored are ok.
- ChangeTimeHeartbeatTest();replicationServer.clearDb();
+ ChangeTimeHeartbeatTest();
+ replicationServer.clearDb();
+ }
+
+ @Test(enabled=true, groups="slow", dependsOnMethods = { "ECLReplicationServerTest"})
+ public void ECLReplicationServerFullTest12()
+ {
// Test the different forms of filter that are parsed in order to
// optimize the request.
ECLFilterTest();
+ }
+ @Test(enabled=true, groups="slow", dependsOnMethods = { "ECLReplicationServerTest"})
+ public void ECLReplicationServerFullTest13()
+ {
// ***********************************************
// Second set of test are in the draft compat mode
// ***********************************************
// Empty replication changelog
ECLCompatEmpty();
+ }
+
+ @Test(enabled=true, groups="slow", dependsOnMethods = { "ECLReplicationServerTest"})
+ public void ECLReplicationServerFullTest14()
+ {
// Request from an invalid draft change number
ECLCompatBadSeqnum();
+ }
+
+ @Test(enabled=true, groups="slow", dependsOnMethods = { "ECLReplicationServerTest"})
+ public void ECLReplicationServerFullTest15()
+ {
// Write 4 changes and read ECL from start
int ts = ECLCompatWriteReadAllOps(1);
@@ -343,10 +454,6 @@
// Test request from a provided change number - read 6
ECLCompatReadFrom(6);
- // Test request from change number 1, just check that Cookie controls
- // are not returned with entries, when not requested.
- ECLCompatNoControl(1);
-
// Test request from a provided change number interval - read 5-7
ECLCompatReadFromTo(5,7);
@@ -364,15 +471,24 @@
ECLCompatTestLimits(0,0, true);
// Persistent search in changesOnly mode
- ECLPsearch(true, true);replicationServer.clearDb();
+ ECLPsearch(true, true);
+ replicationServer.clearDb();
+ }
+ @Test(enabled=true, groups="slow", dependsOnMethods = { "ECLReplicationServerTest"})
+ public void ECLReplicationServerFullTest16()
+ {
// Persistent search in init + changes mode
ECLPsearch(false, true);
// Test Filter on replication csn
// TODO: test with optimization when code done.
ECLFilterOnReplicationCsn();replicationServer.clearDb();
+ }
+ @Test(enabled=true, groups="slow", dependsOnMethods = { "ECLReplicationServerTest"})
+ public void ECLReplicationServerFullTest17()
+ {
// Test simultaneous persistent searches in draft compat mode.
ECLSimultaneousPsearches();replicationServer.clearDb();
@@ -3966,7 +4082,7 @@
* Test ECl entry attributes, and there configuration.
*
*/
- private void ECLIncludeAttributes() throws Exception
+ private void ECLIncludeAttributes()
{
String tn = "ECLIncludeAttributes";
debugInfo(tn, "Starting test\n\n");
@@ -4205,6 +4321,11 @@
}
assertEquals(entries.size(),8, "Entries number returned by search" + s);
}
+ catch(Exception e)
+ {
+ fail("End test "+tn+" with exception:\n" +
+ stackTraceToSingleLineString(e));
+ }
finally
{
try
@@ -4241,7 +4362,10 @@
removeTestBackend2(backend3);
}
- catch(Exception e) {}
+ catch(Exception e) {
+ fail("Ending test "+tn+" with exception in test cleanup:\n" +
+ stackTraceToSingleLineString(e));
+ }
}
debugInfo(tn, "Ending test with success");
}
--
Gitblit v1.10.0