Repository: EnMasseProject/enmasse
Pull request #3525 (2019-12-01 15:42:52)

Rerun flaky mqtt tests
### Type of change

<!--

_Select the type of your PR_

-->

- Enhancement / new feature

### Description

<!--

_Please describe your pull request_

-->

Add jupiter ability to rerun flaky tests

### Checklist

<!--

_Please go through this checklist and make sure all applicable tasks have been done_

-->

- [ ] Update/write design documentation in `./documentation/design`
- [x] Write tests and make sure they pass
- [ ] Update documentation
- [ ] Check RBAC rights for Kubernetes / OpenShift roles
- [x] Try your changes from Pod inside your Kubernetes and OpenShift cluster, not just locally
- [ ] Reference relevant issue(s) and close them after merging
- [ ] Update CHANGELOG.md


kornys: @enmasse-ci run tests profile=shared test_only
kornys: @enmasse-ci run tests profile=shared test_only
kornys: @enmasse-ci run tests profile=shared test_only
enmasse-ci: ### :x: Test Summary :x:
**TEST_PROFILE**: shared
**TEST_CASE:** 
**TOTAL:** 140
**PASS:** 127
**FAIL:** 1
**SKIP:** 12
### :heavy_exclamation_mark: Test Failures :heavy_exclamation_mark:
- testBasicMessageWebSocket in io.enmasse.systemtest.shared.standard.clients.rhea.MsgPatternsInternalTest
kornys: @lulf error in test is caused by same issue with finalizers of addresses, I opened PR for fix this issues with finalizers -> #3526 
kornys: @enmasse-ci run tests testcase=standard.mqtt.** profile=shared test_only
enmasse-ci: ### :heavy_check_mark: Test Summary :heavy_check_mark:
**TEST_PROFILE**: shared
**TEST_CASE:** standard.mqtt.**
**TOTAL:** 8
**PASS:** 6
**FAIL:** 0
**SKIP:** 2


Patch:
diff --git a/pom.xml b/pom.xml
index c101a9bb5..8fc98a5c4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -66,6 +66,7 @@
         <junit.jupiter.version>5.5.0</junit.jupiter.version>
         <junit.platform.runner.version>1.5.0</junit.platform.runner.version>
         <junit.platform.launcher.version>1.5.0</junit.platform.launcher.version>
+        <rerunner-jupiter.version>2.1.3</rerunner-jupiter.version>
         <artemis.version>2.10.1</artemis.version>
         <ngwebdriver.version>1.1.4</ngwebdriver.version>
         <paho.version>1.2.1</paho.version>
@@ -615,6 +616,12 @@
                 <version>${junit.platform.runner.version}</version>
             </dependency>
 
+            <dependency>
+                <groupId>io.github.artsok</groupId>
+                <artifactId>rerunner-jupiter</artifactId>
+                <version>${rerunner-jupiter.version}</version>
+            </dependency>
+
             <dependency>
                 <groupId>org.mockito</groupId>
                 <artifactId>mockito-core</artifactId>


Test patch:
diff --git a/systemtests/pom.xml b/systemtests/pom.xml
index 63eb8ce9a..5d427e964 100644
--- a/systemtests/pom.xml
+++ b/systemtests/pom.xml
@@ -108,6 +108,11 @@
             <artifactId>junit-jupiter-params</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>io.github.artsok</groupId>
+            <artifactId>rerunner-jupiter</artifactId>
+            <scope>test</scope>
+        </dependency>
         <dependency>
             <groupId>org.seleniumhq.selenium</groupId>
             <artifactId>selenium-java</artifactId>
diff --git a/systemtests/src/main/java/io/enmasse/systemtest/info/TestInfo.java b/systemtests/src/main/java/io/enmasse/systemtest/info/TestInfo.java
index 4620cc593..830539dfa 100644
--- a/systemtests/src/main/java/io/enmasse/systemtest/info/TestInfo.java
+++ b/systemtests/src/main/java/io/enmasse/systemtest/info/TestInfo.java
@@ -57,41 +57,41 @@ public class TestInfo {
                 .toArray(new TestIdentifier[0])[0]).toArray(new TestIdentifier[0]));
         testClasses.forEach(testIdentifier -> {
             testPlan.getChildren(testIdentifier)
-            .forEach(test -> {
-                if (test.getSource().isPresent() && test.getSource().get() instanceof MethodSource) {
-                    MethodSource testSource = (MethodSource) test.getSource().get();
-                    try {
-                        Optional<Method> testMethod = ReflectionUtils.findMethod(Class.forName(testSource.getClassName()), testSource.getMethodName(), testSource.getMethodParameterTypes());
-                        if (testMethod.isPresent()) {
-                            MethodBasedExtensionContext extensionContext = new MethodBasedExtensionContext(testMethod);
-                            ExecutionCondition[] conditions = new ExecutionCondition[] {this::disabledCondition, new SupportedInstallTypeCondition(), new AssumeKubernetesCondition(), new AssumeOpenshiftCondition()};
-                            if (evaluateTestDisabled(extensionContext, conditions)) {
-                                LOGGER.debug("Test {}.{} is disabled", testSource.getClassName(), testSource.getMethodName());
-                            } else {
-                                tests.add(test);
+                    .forEach(test -> {
+                        if (test.getSource().isPresent() && test.getSource().get() instanceof MethodSource) {
+                            MethodSource testSource = (MethodSource) test.getSource().get();
+                            try {
+                                Optional<Method> testMethod = ReflectionUtils.findMethod(Class.forName(testSource.getClassName()), testSource.getMethodName(), testSource.getMethodParameterTypes());
+                                if (testMethod.isPresent()) {
+                                    MethodBasedExtensionContext extensionContext = new MethodBasedExtensionContext(testMethod);
+                                    ExecutionCondition[] conditions = new ExecutionCondition[]{this::disabledCondition, new SupportedInstallTypeCondition(), new AssumeKubernetesCondition(), new AssumeOpenshiftCondition()};
+                                    if (evaluateTestDisabled(extensionContext, conditions)) {
+                                        LOGGER.debug("Test {}.{} is disabled", testSource.getClassName(), testSource.getMethodName());
+                                    } else {
+                                        tests.add(test);
+                                    }
+                                }
+                            } catch (ClassNotFoundException e) {
+                                throw new IllegalArgumentException(e);
                             }
+                        } else {
+                            LOGGER.warn("Test {} doesn't have MethodSource", test.getUniqueId());
                         }
-                    } catch ( ClassNotFoundException e ) {
-                        throw new IllegalArgumentException(e);
-                    }
-                } else {
-                    LOGGER.warn("Test {} doesn't have MethodSource", test.getUniqueId());
-                }
-            });
+                    });
         });
         LOGGER.debug("Final tests are {}", tests);
     }
 
     private ConditionEvaluationResult disabledCondition(ExtensionContext ctx) {
         return AnnotationSupport.findAnnotation(ctx.getElement().get(), Disabled.class)
-            .map(a -> ConditionEvaluationResult.disabled("Disabled annotation"))
-            .orElseGet(() -> ConditionEvaluationResult.enabled("No disabled annotation"));
+                .map(a -> ConditionEvaluationResult.disabled("Disabled annotation"))
+                .orElseGet(() -> ConditionEvaluationResult.enabled("No disabled annotation"));
     }
 
     private boolean evaluateTestDisabled(ExtensionContext context, ExecutionCondition... conditions) {
-        for(ExecutionCondition condition : conditions) {
+        for (ExecutionCondition condition : conditions) {
             if (condition.evaluateExecutionCondition(context).isDisabled()) {
-               return true;
+                return true;
             }
         }
         return false;
@@ -153,13 +153,13 @@ public class TestInfo {
     }
 
     public boolean isClassIoT() {
-        return currentTestClass.getTags().stream().anyMatch(tag -> TestTag.IOT_TAGS.contains(tag));
+        return currentTestClass.getTags().stream().anyMatch(TestTag.IOT_TAGS::contains);
     }
 
     public boolean isEndOfIotTests() {
         int currentTestIndex = getCurrentTestIndex();
         if (currentTestIndex + 1 < tests.size()) {
-            return getTags(tests.get(currentTestIndex + 1)).stream().noneMatch(tag -> TestTag.IOT_TAGS.contains(tag));
+            return getTags(tests.get(currentTestIndex + 1)).stream().noneMatch(TestTag.IOT_TAGS::contains);
         }
         return true;
     }
@@ -170,8 +170,8 @@ public class TestInfo {
 
     public boolean isOLMTest() {
         return AnnotationSupport.findAnnotation(currentTestClass.getElement(), SupportedInstallType.class)
-            .map(a -> a.value() == EnmasseInstallType.OLM)
-            .orElse(false);
+                .map(a -> a.value() == EnmasseInstallType.OLM)
+                .orElse(false);
     }
 
     public OLMInstallationType getOLMInstallationType() {
@@ -230,7 +230,8 @@ public class TestInfo {
     }
 
     private boolean isSameTestMethod(TestIdentifier test1, ExtensionContext test2) {
-        return test1 != null && test2 != null && test1.getDisplayName().equals(test2.getDisplayName());
+        return test1 != null && test2 != null && test1.getDisplayName().replace("()", "").replaceAll("\\s+", "")
+                .equals(test2.getDisplayName().replace("()", "").replaceAll("\\s+", ""));
     }
 
 }
diff --git a/systemtests/src/main/java/io/enmasse/systemtest/messagingclients/ClientType.java b/systemtests/src/main/java/io/enmasse/systemtest/messagingclients/ClientType.java
index 570f2ba3c..4c8dbd34e 100644
--- a/systemtests/src/main/java/io/enmasse/systemtest/messagingclients/ClientType.java
+++ b/systemtests/src/main/java/io/enmasse/systemtest/messagingclients/ClientType.java
@@ -68,22 +68,22 @@ public enum ClientType {
             case CLI_RHEA_SENDER:
             case CLI_RHEA_RECEIVER:
             case CLI_RHEA_CONNECTOR:
-                return "cli_rhea";
+                return "cli-rhea";
             case CLI_PROTON_PYTHON_SENDER:
             case CLI_PROTON_PYTHON_RECEIVER:
-                return "cli_python";
+                return "cli-python";
             case CLI_JAVA_PROTON_JMS_SENDER:
             case CLI_JAVA_PROTON_JMS_RECEIVER:
-                return "cli_jms";
+                return "cli-jms";
             case CLI_JAVA_ARTEMIS_JMS_SENDER:
             case CLI_JAVA_ARTEMIS_JMS_RECEIVER:
-                return "cli_artemis";
+                return "cli-artemis";
             case CLI_JAVA_OPENWIRE_JMS_SENDER:
             case CLI_JAVA_OPENWIRE_JMS_RECEIVER:
-                return "cli_openwire";
+                return "cli-openwire";
             case CLI_STOMP_SENDER:
             case CLI_STOMP_RECEIVER:
-                return "cli_stomp";
+                return "cli-stomp";
             default:
                 return "";
         }
diff --git a/systemtests/src/test/java/io/enmasse/systemtest/bases/clients/ClientTestBase.java b/systemtests/src/test/java/io/enmasse/systemtest/bases/clients/ClientTestBase.java
index 580f3b3e4..07936f060 100644
--- a/systemtests/src/test/java/io/enmasse/systemtest/bases/clients/ClientTestBase.java
+++ b/systemtests/src/test/java/io/enmasse/systemtest/bases/clients/ClientTestBase.java
@@ -103,7 +103,7 @@ public abstract class ClientTestBase extends TestBase implements ITestBaseShared
         Address dest = new AddressBuilder()
                 .withNewMetadata()
                 .withNamespace(getSharedAddressSpace().getMetadata().getNamespace())
-                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "message-basic"))
+                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "message-basic" + ClientType.getAddressName(sender)))
                 .endMetadata()
                 .withNewSpec()
                 .withType("queue")
@@ -146,7 +146,7 @@ public abstract class ClientTestBase extends TestBase implements ITestBaseShared
         Address dest = new AddressBuilder()
                 .withNewMetadata()
                 .withNamespace(getSharedAddressSpace().getMetadata().getNamespace())
-                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "round-robin"))
+                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "round-robin" + ClientType.getAddressName(sender)))
                 .endMetadata()
                 .withNewSpec()
                 .withType("queue")
@@ -201,7 +201,7 @@ public abstract class ClientTestBase extends TestBase implements ITestBaseShared
         Address dest = new AddressBuilder()
                 .withNewMetadata()
                 .withNamespace(getSharedAddressSpace().getMetadata().getNamespace())
-                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "topic-sub"))
+                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "topic-sub" + ClientType.getAddressName(sender)))
                 .endMetadata()
                 .withNewSpec()
                 .withType("topic")
@@ -252,7 +252,7 @@ public abstract class ClientTestBase extends TestBase implements ITestBaseShared
         Address dest = new AddressBuilder()
                 .withNewMetadata()
                 .withNamespace(getSharedAddressSpace().getMetadata().getNamespace())
-                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "browse"))
+                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "browse" + ClientType.getAddressName(sender)))
                 .endMetadata()
                 .withNewSpec()
                 .withType("queue")
@@ -293,7 +293,7 @@ public abstract class ClientTestBase extends TestBase implements ITestBaseShared
         Address dest = new AddressBuilder()
                 .withNewMetadata()
                 .withNamespace(getSharedAddressSpace().getMetadata().getNamespace())
-                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "drain"))
+                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "drain" + ClientType.getAddressName(sender)))
                 .endMetadata()
                 .withNewSpec()
                 .withType("queue")
@@ -334,7 +334,7 @@ public abstract class ClientTestBase extends TestBase implements ITestBaseShared
         Address queue = new AddressBuilder()
                 .withNewMetadata()
                 .withNamespace(getSharedAddressSpace().getMetadata().getNamespace())
-                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "selector-queue"))
+                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "selector-queue" + ClientType.getAddressName(sender)))
                 .endMetadata()
                 .withNewSpec()
                 .withType("queue")
@@ -407,7 +407,7 @@ public abstract class ClientTestBase extends TestBase implements ITestBaseShared
         Address topic = new AddressBuilder()
                 .withNewMetadata()
                 .withNamespace(getSharedAddressSpace().getMetadata().getNamespace())
-                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "selector-topic"))
+                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "selector-topic" + ClientType.getAddressName(sender)))
                 .endMetadata()
                 .withNewSpec()
                 .withType("topic")
@@ -480,7 +480,7 @@ public abstract class ClientTestBase extends TestBase implements ITestBaseShared
         Address dest = new AddressBuilder()
                 .withNewMetadata()
                 .withNamespace(getSharedAddressSpace().getMetadata().getNamespace())
-                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "message-basic"))
+                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "message-basic" + ClientType.getAddressName(sender)))
                 .endMetadata()
                 .withNewSpec()
                 .withType("queue")
diff --git a/systemtests/src/test/java/io/enmasse/systemtest/bases/clients/ClusterClientTestBase.java b/systemtests/src/test/java/io/enmasse/systemtest/bases/clients/ClusterClientTestBase.java
index d2adb5080..b43d44bca 100644
--- a/systemtests/src/test/java/io/enmasse/systemtest/bases/clients/ClusterClientTestBase.java
+++ b/systemtests/src/test/java/io/enmasse/systemtest/bases/clients/ClusterClientTestBase.java
@@ -64,11 +64,11 @@ public abstract class ClusterClientTestBase extends TestBase implements ITestBas
         Address dest = new AddressBuilder()
                 .withNewMetadata()
                 .withNamespace(getSharedAddressSpace().getMetadata().getNamespace())
-                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "message-basic"))
+                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "message-basic-" + ClientType.getAddressName(sender) + (websocket ? "-ws" : "")))
                 .endMetadata()
                 .withNewSpec()
                 .withType("queue")
-                .withAddress("round-robin" + ClientType.getAddressName(sender))
+                .withAddress("message-basic-" + ClientType.getAddressName(sender) + "-" + (websocket ? "ws" : ""))
                 .withPlan(getDefaultPlan(AddressType.QUEUE))
                 .endSpec()
                 .build();
@@ -107,11 +107,11 @@ public abstract class ClusterClientTestBase extends TestBase implements ITestBas
         Address dest = new AddressBuilder()
                 .withNewMetadata()
                 .withNamespace(getSharedAddressSpace().getMetadata().getNamespace())
-                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "basic-mqtt"))
+                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "basic-mqtt-" + ClientType.getAddressName(sender)))
                 .endMetadata()
                 .withNewSpec()
                 .withType("topic")
-                .withAddress("basic-mqtt" + ClientType.getAddressName(sender))
+                .withAddress("basic-mqtt-" + ClientType.getAddressName(sender))
                 .withPlan(getSharedAddressSpace().getSpec().getType().equals(AddressSpaceType.STANDARD.toString()) ? DestinationPlan.STANDARD_LARGE_TOPIC : getDefaultPlan(AddressType.TOPIC))
                 .endSpec()
                 .build();
diff --git a/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/QueueTest.java b/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/QueueTest.java
index cbcc970ca..8edcc0601 100644
--- a/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/QueueTest.java
+++ b/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/QueueTest.java
@@ -187,22 +187,22 @@ public class QueueTest extends TestBase implements ITestSharedStandard {
         Address q1 = new AddressBuilder()
                 .withNewMetadata()
                 .withNamespace(getSharedAddressSpace().getMetadata().getNamespace())
-                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "queue1"))
+                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "rest-api-queue1"))
                 .endMetadata()
                 .withNewSpec()
                 .withType("queue")
-                .withAddress("queue1")
+                .withAddress("rest-api-queue1")
                 .withPlan(getDefaultPlan(AddressType.QUEUE))
                 .endSpec()
                 .build();
         Address q2 = new AddressBuilder()
                 .withNewMetadata()
                 .withNamespace(getSharedAddressSpace().getMetadata().getNamespace())
-                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "queue2"))
+                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "rest-api-queue2"))
                 .endMetadata()
                 .withNewSpec()
                 .withType("queue")
-                .withAddress("queue2")
+                .withAddress("rest-api-queue2")
                 .withPlan(getDefaultPlan(AddressType.QUEUE))
                 .endSpec()
                 .build();
diff --git a/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/TopicTest.java b/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/TopicTest.java
index 129dd1b38..04034be23 100644
--- a/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/TopicTest.java
+++ b/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/TopicTest.java
@@ -74,33 +74,33 @@ public class TopicTest extends TestBase implements ITestSharedStandard {
         Address t1 = new AddressBuilder()
                 .withNewMetadata()
                 .withNamespace(getSharedAddressSpace().getMetadata().getNamespace())
-                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "test-topic1"))
+                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "test-topic1-pooled"))
                 .endMetadata()
                 .withNewSpec()
                 .withType("topic")
-                .withAddress("test-topic1")
+                .withAddress("test-topic1-pooled")
                 .withPlan(DestinationPlan.STANDARD_SMALL_TOPIC)
                 .endSpec()
                 .build();
         Address t2 = new AddressBuilder()
                 .withNewMetadata()
                 .withNamespace(getSharedAddressSpace().getMetadata().getNamespace())
-                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "test-topic2"))
+                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "test-topic2-pooled"))
                 .endMetadata()
                 .withNewSpec()
                 .withType("topic")
-                .withAddress("test-topic2")
+                .withAddress("test-topic2-pooled")
                 .withPlan(DestinationPlan.STANDARD_SMALL_TOPIC)
                 .endSpec()
                 .build();
         Address t3 = new AddressBuilder()
                 .withNewMetadata()
                 .withNamespace(getSharedAddressSpace().getMetadata().getNamespace())
-                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "test-topic3"))
+                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "test-topic3-pooled"))
                 .endMetadata()
                 .withNewSpec()
                 .withType("topic")
-                .withAddress("test-topic3")
+                .withAddress("test-topic3-pooled")
                 .withPlan(DestinationPlan.STANDARD_SMALL_TOPIC)
                 .endSpec()
                 .build();
@@ -117,22 +117,22 @@ public class TopicTest extends TestBase implements ITestSharedStandard {
         Address t1 = new AddressBuilder()
                 .withNewMetadata()
                 .withNamespace(getSharedAddressSpace().getMetadata().getNamespace())
-                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "test-topic1"))
+                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "test-topic1-sharded"))
                 .endMetadata()
                 .withNewSpec()
                 .withType("topic")
-                .withAddress("test-topic1")
+                .withAddress("test-topic1-sharded")
                 .withPlan(DestinationPlan.STANDARD_LARGE_TOPIC)
                 .endSpec()
                 .build();
         Address t2 = new AddressBuilder()
                 .withNewMetadata()
                 .withNamespace(getSharedAddressSpace().getMetadata().getNamespace())
-                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "test-topic2"))
+                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "test-topic2-sharded"))
                 .endMetadata()
                 .withNewSpec()
                 .withType("topic")
-                .withAddress("test-topic2")
+                .withAddress("test-topic2-sharded")
                 .withPlan(DestinationPlan.STANDARD_LARGE_TOPIC)
                 .endSpec()
                 .build();
@@ -152,22 +152,22 @@ public class TopicTest extends TestBase implements ITestSharedStandard {
         Address t1 = new AddressBuilder()
                 .withNewMetadata()
                 .withNamespace(getSharedAddressSpace().getMetadata().getNamespace())
-                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "test-topic1"))
+                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "test-topic1-small"))
                 .endMetadata()
                 .withNewSpec()
                 .withType("topic")
-                .withAddress("test-topic1")
+                .withAddress("test-topic1-small")
                 .withPlan(DestinationPlan.STANDARD_SMALL_TOPIC)
                 .endSpec()
                 .build();
         Address t2 = new AddressBuilder()
                 .withNewMetadata()
                 .withNamespace(getSharedAddressSpace().getMetadata().getNamespace())
-                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "test-topic2"))
+                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "test-topic2-small"))
                 .endMetadata()
                 .withNewSpec()
                 .withType("topic")
-                .withAddress("test-topic2")
+                .withAddress("test-topic2-small")
                 .withPlan(DestinationPlan.STANDARD_SMALL_TOPIC)
                 .endSpec()
                 .build();
@@ -181,11 +181,11 @@ public class TopicTest extends TestBase implements ITestSharedStandard {
         Address selTopic = new AddressBuilder()
                 .withNewMetadata()
                 .withNamespace(getSharedAddressSpace().getMetadata().getNamespace())
-                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "selector-topic"))
+                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "selector-topic-large"))
                 .endMetadata()
                 .withNewSpec()
                 .withType("topic")
-                .withAddress("selector-topic")
+                .withAddress("selector-topic-large")
                 .withPlan(DestinationPlan.STANDARD_LARGE_TOPIC)
                 .endSpec()
                 .build();
@@ -355,12 +355,12 @@ public class TopicTest extends TestBase implements ITestSharedStandard {
         Address subscription = new AddressBuilder()
                 .withNewMetadata()
                 .withNamespace(getSharedAddressSpace().getMetadata().getNamespace())
-                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "mysub"))
+                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "mysub-pooled"))
                 .endMetadata()
                 .withNewSpec()
                 .withType("subscription")
                 .withTopic(topic.getSpec().getAddress())
-                .withAddress("mysub")
+                .withAddress("mysub-pooled")
                 .withPlan(DestinationPlan.STANDARD_SMALL_SUBSCRIPTION)
                 .endSpec()
                 .build();
@@ -459,23 +459,23 @@ public class TopicTest extends TestBase implements ITestSharedStandard {
         Address topic = new AddressBuilder()
                 .withNewMetadata()
                 .withNamespace(getSharedAddressSpace().getMetadata().getNamespace())
-                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "test-topic1"))
+                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "test-topic-durable-sharded"))
                 .endMetadata()
                 .withNewSpec()
                 .withType("topic")
-                .withAddress("test-topic1")
+                .withAddress("test-topic-durable-sharded")
                 .withPlan(DestinationPlan.STANDARD_LARGE_TOPIC)
                 .endSpec()
                 .build();
         Address subscription1 = new AddressBuilder()
                 .withNewMetadata()
                 .withNamespace(getSharedAddressSpace().getMetadata().getNamespace())
-                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "mysub"))
+                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "mysub2"))
                 .endMetadata()
                 .withNewSpec()
                 .withType("subscription")
                 .withTopic(topic.getSpec().getAddress())
-                .withAddress("mysub")
+                .withAddress("mysub2")
                 .withPlan(DestinationPlan.STANDARD_SMALL_SUBSCRIPTION)
                 .endSpec()
                 .build();
@@ -536,11 +536,11 @@ public class TopicTest extends TestBase implements ITestSharedStandard {
         Address t0 = new AddressBuilder()
                 .withNewMetadata()
                 .withNamespace(getSharedAddressSpace().getMetadata().getNamespace())
-                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "topic"))
+                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "topic-wild"))
                 .endMetadata()
                 .withNewSpec()
                 .withType("topic")
-                .withAddress("topic")
+                .withAddress("topic-wild")
                 .withPlan(plan)
                 .endSpec()
                 .build();
@@ -550,7 +550,7 @@ public class TopicTest extends TestBase implements ITestSharedStandard {
 
         List<String> msgs = Arrays.asList("foo", "bar", "baz", "qux");
 
-        Future<List<Message>> recvResults = amqpClient.recvMessages("topic/#", msgs.size() * 3);
+        Future<List<Message>> recvResults = amqpClient.recvMessages("topic-wild/#", msgs.size() * 3);
 
         amqpClient.sendMessages(t0.getSpec().getAddress() + "/foo", msgs);
         amqpClient.sendMessages(t0.getSpec().getAddress() + "/bar", msgs);
@@ -559,7 +559,7 @@ public class TopicTest extends TestBase implements ITestSharedStandard {
         assertThat("Wrong count of messages received",
                 recvResults.get(1, TimeUnit.MINUTES).size(), is(msgs.size() * 3));
 
-        recvResults = amqpClient.recvMessages("topic/world/+", msgs.size() * 2);
+        recvResults = amqpClient.recvMessages("topic-wild/world/+", msgs.size() * 2);
 
         amqpClient.sendMessages(t0.getSpec().getAddress() + "/world/africa", msgs);
         amqpClient.sendMessages(t0.getSpec().getAddress() + "/world/europe", msgs);
diff --git a/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/api/UserApiTest.java b/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/api/UserApiTest.java
index 964803166..b257e74d5 100644
--- a/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/api/UserApiTest.java
+++ b/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/api/UserApiTest.java
@@ -113,11 +113,11 @@ public class UserApiTest extends TestBase implements ITestSharedStandard {
         Address queue = new AddressBuilder()
                 .withNewMetadata()
                 .withNamespace(getSharedAddressSpace().getMetadata().getNamespace())
-                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "test-queue"))
+                .withName(AddressUtils.generateAddressMetadataName(getSharedAddressSpace(), "test-queue2"))
                 .endMetadata()
                 .withNewSpec()
                 .withType("queue")
-                .withAddress("test-queue")
+                .withAddress("test-queue2")
                 .withPlan(DestinationPlan.STANDARD_LARGE_QUEUE)
                 .endSpec()
                 .build();
diff --git a/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/mqtt/ConnectionTest.java b/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/mqtt/ConnectionTest.java
index 55a61150b..dd8b11735 100644
--- a/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/mqtt/ConnectionTest.java
+++ b/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/mqtt/ConnectionTest.java
@@ -13,8 +13,10 @@ import io.enmasse.systemtest.model.addressplan.DestinationPlan;
 import io.enmasse.systemtest.mqtt.MqttConnectionLostCallback;
 import io.enmasse.systemtest.mqtt.MqttDeliveryCompleteCallback;
 import io.enmasse.systemtest.utils.AddressUtils;
+import io.github.artsok.RepeatedIfExceptionsTest;
 import org.eclipse.paho.client.mqttv3.IMqttClient;
 import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
+import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Test;
 
 import java.util.concurrent.CompletableFuture;
@@ -32,7 +34,8 @@ public class ConnectionTest extends TestBase implements ITestSharedWithMqtt {
      * MQTT-3.1.4-2 If the ClientId represents a Client already connected to the Server then the Server MUST
      * disconnect the existing Client [].
      */
-    @Test
+    @DisplayName("newSessionDisconnectsExisting")
+    @RepeatedIfExceptionsTest(repeats = 2, name = "")
     public void newSessionDisconnectsExisting() throws Exception {
         Address dest = new AddressBuilder()
                 .withNewMetadata()
diff --git a/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/mqtt/InteroperabilityTest.java b/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/mqtt/InteroperabilityTest.java
index 28f1cb98a..0fd9d7813 100644
--- a/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/mqtt/InteroperabilityTest.java
+++ b/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/mqtt/InteroperabilityTest.java
@@ -13,12 +13,14 @@ import io.enmasse.systemtest.bases.shared.ITestSharedWithMqtt;
 import io.enmasse.systemtest.model.addressplan.DestinationPlan;
 import io.enmasse.systemtest.mqtt.MqttUtils;
 import io.enmasse.systemtest.utils.AddressUtils;
+import io.github.artsok.RepeatedIfExceptionsTest;
 import org.apache.qpid.proton.amqp.Binary;
 import org.apache.qpid.proton.amqp.messaging.AmqpValue;
 import org.apache.qpid.proton.amqp.messaging.Data;
 import org.apache.qpid.proton.message.Message;
 import org.eclipse.paho.client.mqttv3.IMqttClient;
 import org.eclipse.paho.client.mqttv3.MqttMessage;
+import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Test;
 
 import java.nio.charset.StandardCharsets;
@@ -39,7 +41,8 @@ class InteroperabilityTest extends TestBase implements ITestSharedWithMqtt {
     private static final String MQTT_AMQP_TOPIC = "mqtt-amqp-topic";
     private static final String AMQP_MQTT_TOPIC = "amqp-mqtt-topic";
 
-    @Test
+    @DisplayName("testSendMqttReceiveAmqp")
+    @RepeatedIfExceptionsTest(repeats = 2, name = "")
     void testSendMqttReceiveAmqp() throws Exception {
         Address mqttTopic = new AddressBuilder()
                 .withNewMetadata()
@@ -79,7 +82,8 @@ class InteroperabilityTest extends TestBase implements ITestSharedWithMqtt {
         mqttClient.close();
     }
 
-    @Test
+    @DisplayName("testSendAmqpReceiveMqtt")
+    @RepeatedIfExceptionsTest(repeats = 2, name = "")
     void testSendAmqpReceiveMqtt() throws Exception {
         Address mqttTopic = new AddressBuilder()
                 .withNewMetadata()
diff --git a/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/mqtt/PublishTest.java b/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/mqtt/PublishTest.java
index 535b93a15..b3071a080 100644
--- a/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/mqtt/PublishTest.java
+++ b/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/mqtt/PublishTest.java
@@ -8,7 +8,9 @@ package io.enmasse.systemtest.shared.standard.mqtt;
 import io.enmasse.systemtest.bases.mqtt.MqttPublishTestBase;
 import io.enmasse.systemtest.bases.shared.ITestSharedWithMqtt;
 import io.enmasse.systemtest.model.addressplan.DestinationPlan;
+import io.github.artsok.RepeatedIfExceptionsTest;
 import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Test;
 
 /**
@@ -16,27 +18,31 @@ import org.junit.jupiter.api.Test;
  */
 public class PublishTest extends MqttPublishTestBase implements ITestSharedWithMqtt {
 
-    @Test
+    @DisplayName("testPublishQoS0")
+    @RepeatedIfExceptionsTest(repeats = 2, name = "")
     @Override
     public void testPublishQoS0() throws Exception {
         super.testPublishQoS0();
     }
 
-    @Test
+    @DisplayName("testPublishQoS1")
+    @RepeatedIfExceptionsTest(repeats = 2, name = "")
     @Override
     public void testPublishQoS1() throws Exception {
         super.testPublishQoS1();
     }
 
     @Override
-    @Test
+    @DisplayName("testPublishQoS2")
+    @RepeatedIfExceptionsTest(repeats = 2, name = "")
     @Disabled
     public void testPublishQoS2() throws Exception {
         super.testPublishQoS2();
     }
 
     @Override
-    @Test
+    @DisplayName("testRetainedMessages")
+    @RepeatedIfExceptionsTest(repeats = 2, name = "")
     @Disabled("related issue: #1529")
     public void testRetainedMessages() throws Exception {
         super.testRetainedMessages();
diff --git a/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/mqtt/SessionTest.java b/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/mqtt/SessionTest.java
index b9289a0b4..b4357747a 100644
--- a/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/mqtt/SessionTest.java
+++ b/systemtests/src/test/java/io/enmasse/systemtest/shared/standard/mqtt/SessionTest.java
@@ -13,8 +13,10 @@ import io.enmasse.systemtest.model.addressplan.DestinationPlan;
 import io.enmasse.systemtest.mqtt.MqttDeliveryCompleteCallback;
 import io.enmasse.systemtest.mqtt.MqttMessageArrivedCallback;
 import io.enmasse.systemtest.utils.AddressUtils;
+import io.github.artsok.RepeatedIfExceptionsTest;
 import org.eclipse.paho.client.mqttv3.IMqttClient;
 import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
+import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Test;
 
 import java.util.concurrent.CompletableFuture;
@@ -37,7 +39,8 @@ public class SessionTest extends TestBase implements ITestSharedWithMqtt {
      * [MQTT-3.1.2-4] If CleanSession is set to 1, the Client and Server MUST discard any previous Session and start a
      * new one.
      */
-    @Test
+    @DisplayName("previousPersistentSessionDiscarded")
+    @RepeatedIfExceptionsTest(repeats = 2, name = "")
     public void previousPersistentSessionDiscarded() throws Exception {
         Address dest = new AddressBuilder()
                 .withNewMetadata()