summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2019-08-20 13:43:20 +0200
committerGitHub <noreply@github.com>2019-08-20 13:43:20 +0200
commite95f9418f8dd5cf163fbbe4b802f8e4480f9a4c7 (patch)
tree50602c4e7339d154c6a55cd25a931c13d79789ac
parent8c68a8a6977a35a8a2dfe5d063daabe3c0217737 (diff)
parent22b9c87669181c71c96809bc2a25934392ebcaef (diff)
Merge pull request #10312 from vespa-engine/jvenstad/test-categories-simplification
Jvenstad/test categories simplification
-rw-r--r--hosted-api/src/main/java/ai/vespa/hosted/api/Authenticator.java32
-rw-r--r--hosted-api/src/main/java/ai/vespa/hosted/api/EndpointAuthenticator.java20
-rw-r--r--hosted-api/src/main/java/ai/vespa/hosted/api/TestConfig.java32
-rw-r--r--hosted-api/src/test/java/ai/vespa/hosted/api/TestConfigTest.java10
-rw-r--r--hosted-api/src/test/resources/clusters-only-config.json6
-rw-r--r--tenant-auth/src/main/java/ai/vespa/hosted/auth/CertificateAndKeyAuthenticator.java (renamed from tenant-auth/src/main/java/ai/vespa/hosted/auth/EndpointAuthenticator.java)11
-rw-r--r--tenant-base/pom.xml58
-rw-r--r--tenant-cd/src/main/java/ai/vespa/hosted/cd/EmptyGroup.java9
-rw-r--r--tenant-cd/src/main/java/ai/vespa/hosted/cd/IntegrationTest.java27
-rw-r--r--tenant-cd/src/main/java/ai/vespa/hosted/cd/ProductionTest.java3
-rw-r--r--tenant-cd/src/main/java/ai/vespa/hosted/cd/StagingTest.java3
-rw-r--r--tenant-cd/src/main/java/ai/vespa/hosted/cd/SystemTest.java3
-rw-r--r--tenant-cd/src/main/java/ai/vespa/hosted/cd/TestRuntime.java12
-rw-r--r--tenant-cd/src/main/java/ai/vespa/hosted/cd/http/HttpDeployment.java4
-rw-r--r--tenant-cd/src/main/java/ai/vespa/hosted/cd/http/HttpEndpoint.java10
-rw-r--r--vespa-testrunner-components/src/main/java/com/yahoo/vespa/hosted/testrunner/PomXmlGenerator.java4
-rw-r--r--vespa-testrunner-components/src/main/java/com/yahoo/vespa/hosted/testrunner/TestProfile.java6
-rw-r--r--vespa-testrunner-components/src/test/java/com/yahoo/vespa/hosted/testrunner/PomXmlGeneratorTest.java1
-rw-r--r--vespa-testrunner-components/src/test/resources/pom.xml_system_tests6
19 files changed, 130 insertions, 127 deletions
diff --git a/hosted-api/src/main/java/ai/vespa/hosted/api/Authenticator.java b/hosted-api/src/main/java/ai/vespa/hosted/api/Authenticator.java
new file mode 100644
index 00000000000..aaff0bfe5e0
--- /dev/null
+++ b/hosted-api/src/main/java/ai/vespa/hosted/api/Authenticator.java
@@ -0,0 +1,32 @@
+package ai.vespa.hosted.api;
+
+import javax.net.ssl.SSLContext;
+import java.net.http.HttpRequest;
+import java.security.NoSuchAlgorithmException;
+import java.util.Optional;
+
+/**
+ * Adds environment dependent authentication to HTTP request against Vespa deployments.
+ *
+ * An implementation typically needs to override either of the methods in this interface.
+ *
+ * @author jonmv
+ */
+public interface Authenticator {
+
+ /** Returns an SSLContext which provides authentication against a Vespa endpoint. */
+ default SSLContext sslContext() {
+ try {
+ return SSLContext.getDefault();
+ }
+ catch (NoSuchAlgorithmException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ /** Adds necessary authentication data to the given HTTP request builder, to pass the data plane of a Vespa endpoint. */
+ default HttpRequest.Builder authenticated(HttpRequest.Builder request) {
+ return request;
+ }
+
+}
diff --git a/hosted-api/src/main/java/ai/vespa/hosted/api/EndpointAuthenticator.java b/hosted-api/src/main/java/ai/vespa/hosted/api/EndpointAuthenticator.java
deleted file mode 100644
index 62b1d2b4c92..00000000000
--- a/hosted-api/src/main/java/ai/vespa/hosted/api/EndpointAuthenticator.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package ai.vespa.hosted.api;
-
-import javax.net.ssl.SSLContext;
-import java.net.http.HttpRequest;
-import java.util.Optional;
-
-/**
- * Adds environment dependent authentication to HTTP request against Vespa deployments.
- *
- * @author jonmv
- */
-public interface EndpointAuthenticator {
-
- /** Returns an SSLContext which provides authentication against a Vespa endpoint. */
- SSLContext sslContext();
-
- /** Adds necessary authentication to the given HTTP request builder, to pass the data plane of a Vespa endpoint. */
- HttpRequest.Builder authenticated(HttpRequest.Builder request);
-
-}
diff --git a/hosted-api/src/main/java/ai/vespa/hosted/api/TestConfig.java b/hosted-api/src/main/java/ai/vespa/hosted/api/TestConfig.java
index 015d5702c59..a845dabf804 100644
--- a/hosted-api/src/main/java/ai/vespa/hosted/api/TestConfig.java
+++ b/hosted-api/src/main/java/ai/vespa/hosted/api/TestConfig.java
@@ -38,20 +38,44 @@ public class TestConfig {
entry -> Map.copyOf(entry.getValue())));
}
+ /**
+ * Parses the given test config JSON and returns a new config instance.
+ *
+ * If the given JSON has a "clusters" element, a config object with default values
+ * is returned, using {@link #fromEndpointsOnly}. Otherwise, all config attributes are parsed.
+ */
public static TestConfig fromJson(byte[] jsonBytes) {
Inspector config = new JsonDecoder().decode(new Slime(), jsonBytes).get();
+ if (config.field("clusters").valid())
+ return TestConfig.fromEndpointsOnly(toClusterMap(config.field("clusters")));
+
ApplicationId application = ApplicationId.fromSerializedForm(config.field("application").asString());
ZoneId zone = ZoneId.from(config.field("zone").asString());
SystemName system = SystemName.from(config.field("system").asString());
Map<ZoneId, Map<String, URI>> deployments = new HashMap<>();
- config.field("zoneEndpoints").traverse((ObjectTraverser) (zoneId, endpointsObject) -> {
- Map<String, URI> endpoints = new HashMap<>();
- endpointsObject.traverse((ObjectTraverser) (cluster, uri) -> endpoints.put(cluster, URI.create(uri.asString())));
- deployments.put(ZoneId.from(zoneId), endpoints);
+ config.field("zoneEndpoints").traverse((ObjectTraverser) (zoneId, clustersObject) -> {
+ deployments.put(ZoneId.from(zoneId), toClusterMap(clustersObject));
});
return new TestConfig(application, zone, system, deployments);
}
+ static Map<String, URI> toClusterMap(Inspector clustersObject) {
+ Map<String, URI> clusters = new HashMap<>();
+ clustersObject.traverse((ObjectTraverser) (cluster, uri) -> clusters.put(cluster, URI.create(uri.asString())));
+ return clusters;
+ }
+
+ /**
+ * Returns a TestConfig with default values for everything except the endpoints.
+ * @param endpoints the endpoint for each of the containers specified in services.xml, by container id
+ */
+ public static TestConfig fromEndpointsOnly(Map<String, URI> endpoints) {
+ return new TestConfig(ApplicationId.defaultId(),
+ ZoneId.defaultId(),
+ SystemName.defaultSystem(),
+ Map.of(ZoneId.defaultId(), endpoints));
+ }
+
/** Returns the full id of the application to test. */
public ApplicationId application() { return application; }
diff --git a/hosted-api/src/test/java/ai/vespa/hosted/api/TestConfigTest.java b/hosted-api/src/test/java/ai/vespa/hosted/api/TestConfigTest.java
index 51fb7a8cf4a..bad838f0579 100644
--- a/hosted-api/src/test/java/ai/vespa/hosted/api/TestConfigTest.java
+++ b/hosted-api/src/test/java/ai/vespa/hosted/api/TestConfigTest.java
@@ -34,4 +34,14 @@ public class TestConfigTest {
config.deployments());
}
+ @Test
+ public void testClustersOnly() throws IOException {
+ TestConfig config = TestConfig.fromJson(Files.readAllBytes(Paths.get("src/test/resources/clusters-only-config.json")));
+ assertEquals(ApplicationId.defaultId(),
+ config.application());
+ assertEquals(Map.of("default", URI.create("https://localhost:8080/"),
+ "container", URI.create("https://localhost:8081/")),
+ config.deployments().get(ZoneId.defaultId()));
+ }
+
}
diff --git a/hosted-api/src/test/resources/clusters-only-config.json b/hosted-api/src/test/resources/clusters-only-config.json
new file mode 100644
index 00000000000..d111c1685d0
--- /dev/null
+++ b/hosted-api/src/test/resources/clusters-only-config.json
@@ -0,0 +1,6 @@
+{
+ "clusters": {
+ "default": "https://localhost:8080/",
+ "container": "https://localhost:8081/"
+ }
+} \ No newline at end of file
diff --git a/tenant-auth/src/main/java/ai/vespa/hosted/auth/EndpointAuthenticator.java b/tenant-auth/src/main/java/ai/vespa/hosted/auth/CertificateAndKeyAuthenticator.java
index abb4197bda1..78c89e840c8 100644
--- a/tenant-auth/src/main/java/ai/vespa/hosted/auth/EndpointAuthenticator.java
+++ b/tenant-auth/src/main/java/ai/vespa/hosted/auth/CertificateAndKeyAuthenticator.java
@@ -1,5 +1,6 @@
package ai.vespa.hosted.auth;
+import ai.vespa.hosted.api.Authenticator;
import com.yahoo.config.provision.SystemName;
import com.yahoo.security.KeyUtils;
import com.yahoo.security.SslContextBuilder;
@@ -8,7 +9,6 @@ import com.yahoo.security.X509CertificateUtils;
import javax.net.ssl.SSLContext;
import java.io.IOException;
import java.io.UncheckedIOException;
-import java.net.http.HttpRequest;
import java.nio.file.Files;
import java.nio.file.Path;
import java.security.NoSuchAlgorithmException;
@@ -24,10 +24,10 @@ import static ai.vespa.hosted.api.Properties.getNonBlankProperty;
*
* @author jonmv
*/
-public class EndpointAuthenticator implements ai.vespa.hosted.api.EndpointAuthenticator {
+public class CertificateAndKeyAuthenticator implements Authenticator {
/** Don't touch. */
- public EndpointAuthenticator(@SuppressWarnings("unused") SystemName __) { }
+ public CertificateAndKeyAuthenticator(@SuppressWarnings("unused") SystemName __) { }
/**
* If {@code System.getProperty("vespa.test.credentials.root")} is set, key and certificate files
@@ -60,9 +60,4 @@ public class EndpointAuthenticator implements ai.vespa.hosted.api.EndpointAuthen
}
}
- @Override
- public HttpRequest.Builder authenticated(HttpRequest.Builder request) {
- return request;
- }
-
}
diff --git a/tenant-base/pom.xml b/tenant-base/pom.xml
index f087a8019da..3710fd738bc 100644
--- a/tenant-base/pom.xml
+++ b/tenant-base/pom.xml
@@ -37,6 +37,7 @@
<compiler_plugin_version>3.8.0</compiler_plugin_version>
<surefire_version>2.22.0</surefire_version>
<endpoint>https://api.vespa-external.aws.oath.cloud:4443</endpoint>
+ <test.categories>!integration</test.categories>
</properties>
<dependencyManagement>
@@ -214,54 +215,6 @@
</plugins>
</build>
</profile>
-
- <profile>
- <id>system-tests</id>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <groups>ai.vespa.hosted.cd.SystemTest</groups>
- <excludedGroups>ai.vespa.hosted.cd.EmptyGroup</excludedGroups>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
-
- <profile>
- <id>staging-tests</id>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <groups>ai.vespa.hosted.cd.StagingTest</groups>
- <excludedGroups>ai.vespa.hosted.cd.EmptyGroup</excludedGroups>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
-
- <profile>
- <id>production-tests</id>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <groups>ai.vespa.hosted.cd.ProductionTest</groups>
- <excludedGroups>ai.vespa.hosted.cd.EmptyGroup</excludedGroups>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
</profiles>
<build>
@@ -273,7 +226,7 @@
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire_version}</version>
<configuration>
- <reportsDirectory>${env.TEST_DIR}</reportsDirectory>
+ <groups>${test.categories}</groups>
<redirectTestOutputToFile>false</redirectTestOutputToFile>
<trimStackTrace>false</trimStackTrace>
<systemPropertyVariables>
@@ -368,13 +321,6 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <excludedGroups>
- ai.vespa.hosted.cd.SystemTest,
- ai.vespa.hosted.cd.StagingTest,
- ai.vespa.hosted.cd.ProductionTest
- </excludedGroups>
- </configuration>
</plugin>
</plugins>
</build>
diff --git a/tenant-cd/src/main/java/ai/vespa/hosted/cd/EmptyGroup.java b/tenant-cd/src/main/java/ai/vespa/hosted/cd/EmptyGroup.java
deleted file mode 100644
index 8deca3cfb11..00000000000
--- a/tenant-cd/src/main/java/ai/vespa/hosted/cd/EmptyGroup.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package ai.vespa.hosted.cd;
-
-/**
- * The Surefire configuration element &lt;excludedGroups&gt; requires a non-empty argument to reset another.
- * This class serves that purpose. Without it, no tests run in the various integration test profiles.
- *
- * @author jonmv
- */
-public interface EmptyGroup { }
diff --git a/tenant-cd/src/main/java/ai/vespa/hosted/cd/IntegrationTest.java b/tenant-cd/src/main/java/ai/vespa/hosted/cd/IntegrationTest.java
new file mode 100644
index 00000000000..a8c8d958cc1
--- /dev/null
+++ b/tenant-cd/src/main/java/ai/vespa/hosted/cd/IntegrationTest.java
@@ -0,0 +1,27 @@
+// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package ai.vespa.hosted.cd;
+
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+/**
+ * Tests which run against a fully operational Vespa deployment to verify its behaviour.
+ *
+ * Examples of integration test types are {@link SystemTest}, {@link StagingTest} and {@link ProductionTest}.
+ *
+ * @author jonmv
+ */
+@Target({TYPE, ANNOTATION_TYPE})
+@Retention(RUNTIME)
+@Tag("integration")
+public @interface IntegrationTest { }
+
diff --git a/tenant-cd/src/main/java/ai/vespa/hosted/cd/ProductionTest.java b/tenant-cd/src/main/java/ai/vespa/hosted/cd/ProductionTest.java
index e9a2be1fb1f..a60a8ea0e14 100644
--- a/tenant-cd/src/main/java/ai/vespa/hosted/cd/ProductionTest.java
+++ b/tenant-cd/src/main/java/ai/vespa/hosted/cd/ProductionTest.java
@@ -26,7 +26,8 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME;
*/
@Target({TYPE, ANNOTATION_TYPE})
@Retention(RUNTIME)
-@Tag("ai.vespa.hosted.cd.ProductionTest")
+@IntegrationTest
+@Tag("production")
public @interface ProductionTest {
// Want to verify metrics (Vespa).
diff --git a/tenant-cd/src/main/java/ai/vespa/hosted/cd/StagingTest.java b/tenant-cd/src/main/java/ai/vespa/hosted/cd/StagingTest.java
index b0325efa8d3..93a5780da25 100644
--- a/tenant-cd/src/main/java/ai/vespa/hosted/cd/StagingTest.java
+++ b/tenant-cd/src/main/java/ai/vespa/hosted/cd/StagingTest.java
@@ -28,7 +28,8 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME;
*/
@Target({TYPE, ANNOTATION_TYPE})
@Retention(RUNTIME)
-@Tag("ai.vespa.hosted.cd.StagingTest")
+@IntegrationTest
+@Tag("staging")
public @interface StagingTest {
// Want to verify documents are not damaged by upgrade.
diff --git a/tenant-cd/src/main/java/ai/vespa/hosted/cd/SystemTest.java b/tenant-cd/src/main/java/ai/vespa/hosted/cd/SystemTest.java
index f27fa01072c..ccaf0765768 100644
--- a/tenant-cd/src/main/java/ai/vespa/hosted/cd/SystemTest.java
+++ b/tenant-cd/src/main/java/ai/vespa/hosted/cd/SystemTest.java
@@ -28,7 +28,8 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME;
*/
@Target({TYPE, ANNOTATION_TYPE})
@Retention(RUNTIME)
-@Tag("ai.vespa.hosted.cd.SystemTest")
+@IntegrationTest
+@Tag("system")
public @interface SystemTest {
// Want to feed some documents.
diff --git a/tenant-cd/src/main/java/ai/vespa/hosted/cd/TestRuntime.java b/tenant-cd/src/main/java/ai/vespa/hosted/cd/TestRuntime.java
index 4ae1c0b7a5e..e10d627808f 100644
--- a/tenant-cd/src/main/java/ai/vespa/hosted/cd/TestRuntime.java
+++ b/tenant-cd/src/main/java/ai/vespa/hosted/cd/TestRuntime.java
@@ -1,10 +1,10 @@
package ai.vespa.hosted.cd;
-import ai.vespa.hosted.api.ApiAuthenticator;
-import ai.vespa.hosted.api.EndpointAuthenticator;
+import ai.vespa.hosted.api.Authenticator;
import ai.vespa.hosted.api.ControllerHttpClient;
import ai.vespa.hosted.api.Properties;
import ai.vespa.hosted.api.TestConfig;
+import ai.vespa.hosted.auth.CertificateAndKeyAuthenticator;
import ai.vespa.hosted.cd.http.HttpDeployment;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.Environment;
@@ -29,7 +29,7 @@ public class TestRuntime {
private final Map<String, Deployment> productionDeployments;
private final Deployment deploymentToTest;
- private TestRuntime(TestConfig config, EndpointAuthenticator authenticator) {
+ private TestRuntime(TestConfig config, Authenticator authenticator) {
this.config = config;
this.productionDeployments = config.deployments().entrySet().stream()
.filter(zoneDeployment -> zoneDeployment.getKey().environment() == Environment.prod)
@@ -41,7 +41,7 @@ public class TestRuntime {
}
/**
- * Returns the config for this test, or null if it has not been provided.
+ * Returns the config and authenticator to use when running integration tests.
*
* If the system property {@code "vespa.test.config"} is set (to a file path), a file at that location
* is attempted read, and config parsed from it.
@@ -55,13 +55,13 @@ public class TestRuntime {
String configPath = System.getProperty("vespa.test.config");
TestConfig config = configPath != null ? fromFile(configPath) : fromController();
theRuntime = new TestRuntime(config,
- new ai.vespa.hosted.auth.EndpointAuthenticator(config.system()));
+ new CertificateAndKeyAuthenticator(config.system()));
}
return theRuntime;
}
/** Returns a copy of this runtime, with the given endpoint authenticator. */
- public TestRuntime with(EndpointAuthenticator authenticator) {
+ public TestRuntime with(Authenticator authenticator) {
return new TestRuntime(config, authenticator);
}
diff --git a/tenant-cd/src/main/java/ai/vespa/hosted/cd/http/HttpDeployment.java b/tenant-cd/src/main/java/ai/vespa/hosted/cd/http/HttpDeployment.java
index 22c622effae..04cebcf50b2 100644
--- a/tenant-cd/src/main/java/ai/vespa/hosted/cd/http/HttpDeployment.java
+++ b/tenant-cd/src/main/java/ai/vespa/hosted/cd/http/HttpDeployment.java
@@ -1,6 +1,6 @@
package ai.vespa.hosted.cd.http;
-import ai.vespa.hosted.api.EndpointAuthenticator;
+import ai.vespa.hosted.api.Authenticator;
import ai.vespa.hosted.cd.TestDeployment;
import ai.vespa.hosted.cd.TestEndpoint;
import com.yahoo.config.provision.Environment;
@@ -22,7 +22,7 @@ public class HttpDeployment implements TestDeployment {
private final Map<String, HttpEndpoint> endpoints;
/** Creates a representation of the given deployment endpoints, using the authenticator for data plane access. */
- public HttpDeployment(Map<String, URI> endpoints, ZoneId zone, EndpointAuthenticator authenticator) {
+ public HttpDeployment(Map<String, URI> endpoints, ZoneId zone, Authenticator authenticator) {
this.zone = zone;
this.endpoints = endpoints.entrySet().stream()
.collect(Collectors.toUnmodifiableMap(entry -> entry.getKey(),
diff --git a/tenant-cd/src/main/java/ai/vespa/hosted/cd/http/HttpEndpoint.java b/tenant-cd/src/main/java/ai/vespa/hosted/cd/http/HttpEndpoint.java
index 17703d8fbab..a9d8f2e7cc5 100644
--- a/tenant-cd/src/main/java/ai/vespa/hosted/cd/http/HttpEndpoint.java
+++ b/tenant-cd/src/main/java/ai/vespa/hosted/cd/http/HttpEndpoint.java
@@ -1,9 +1,6 @@
package ai.vespa.hosted.cd.http;
-import ai.vespa.hosted.api.EndpointAuthenticator;
-import com.yahoo.slime.Inspector;
-import com.yahoo.slime.JsonDecoder;
-import com.yahoo.slime.Slime;
+import ai.vespa.hosted.api.Authenticator;
import ai.vespa.hosted.cd.Digest;
import ai.vespa.hosted.cd.Feed;
import ai.vespa.hosted.cd.Query;
@@ -14,7 +11,6 @@ import ai.vespa.hosted.cd.Visit;
import ai.vespa.hosted.cd.metric.Metrics;
import java.io.IOException;
-import java.io.UncheckedIOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
@@ -37,9 +33,9 @@ public class HttpEndpoint implements TestEndpoint {
private final URI endpoint;
private final HttpClient client;
- private final EndpointAuthenticator authenticator;
+ private final Authenticator authenticator;
- public HttpEndpoint(URI endpoint, EndpointAuthenticator authenticator) {
+ public HttpEndpoint(URI endpoint, Authenticator authenticator) {
this.endpoint = requireNonNull(endpoint);
this.authenticator = requireNonNull(authenticator);
this.client = HttpClient.newBuilder()
diff --git a/vespa-testrunner-components/src/main/java/com/yahoo/vespa/hosted/testrunner/PomXmlGenerator.java b/vespa-testrunner-components/src/main/java/com/yahoo/vespa/hosted/testrunner/PomXmlGenerator.java
index 4ebabe63c1d..0233e4db2bb 100644
--- a/vespa-testrunner-components/src/main/java/com/yahoo/vespa/hosted/testrunner/PomXmlGenerator.java
+++ b/vespa-testrunner-components/src/main/java/com/yahoo/vespa/hosted/testrunner/PomXmlGenerator.java
@@ -68,10 +68,6 @@ public class PomXmlGenerator {
"%DEPENDENCIES_TO_SCAN%" +
" </dependenciesToScan>\n" +
" <groups>%GROUPS%</groups>\n" +
- " <excludedGroups>com.yahoo.vespa.tenant.systemtest.base.impl.EmptyExcludeGroup.class</excludedGroups>\n" +
- " <excludes>\n" +
- " <exclude>%GROUPS%</exclude>\n" +
- " </excludes>\n" +
" <reportsDirectory>${env.TEST_DIR}</reportsDirectory>\n" +
" <redirectTestOutputToFile>false</redirectTestOutputToFile>\n" +
" <trimStackTrace>false</trimStackTrace>\n" +
diff --git a/vespa-testrunner-components/src/main/java/com/yahoo/vespa/hosted/testrunner/TestProfile.java b/vespa-testrunner-components/src/main/java/com/yahoo/vespa/hosted/testrunner/TestProfile.java
index 018acb17387..1507891e69b 100644
--- a/vespa-testrunner-components/src/main/java/com/yahoo/vespa/hosted/testrunner/TestProfile.java
+++ b/vespa-testrunner-components/src/main/java/com/yahoo/vespa/hosted/testrunner/TestProfile.java
@@ -6,9 +6,9 @@ package com.yahoo.vespa.hosted.testrunner;
*/
enum TestProfile {
- SYSTEM_TEST("ai.vespa.hosted.cd.SystemTest, com.yahoo.vespa.tenant.systemtest.base.SystemTest", true),
- STAGING_TEST("ai.vespa.hosted.cd.StagingTest, com.yahoo.vespa.tenant.systemtest.base.StagingTest", true),
- PRODUCTION_TEST("ai.vespa.hosted.cd.ProductionTest, com.yahoo.vespa.tenant.systemtest.base.ProductionTest", false);
+ SYSTEM_TEST("system, com.yahoo.vespa.tenant.systemtest.base.SystemTest", true),
+ STAGING_TEST("staging, com.yahoo.vespa.tenant.systemtest.base.StagingTest", true),
+ PRODUCTION_TEST("production, com.yahoo.vespa.tenant.systemtest.base.ProductionTest", false);
private final String group;
private final boolean failIfNoTests;
diff --git a/vespa-testrunner-components/src/test/java/com/yahoo/vespa/hosted/testrunner/PomXmlGeneratorTest.java b/vespa-testrunner-components/src/test/java/com/yahoo/vespa/hosted/testrunner/PomXmlGeneratorTest.java
index dce02922c63..ef8df2b748b 100644
--- a/vespa-testrunner-components/src/test/java/com/yahoo/vespa/hosted/testrunner/PomXmlGeneratorTest.java
+++ b/vespa-testrunner-components/src/test/java/com/yahoo/vespa/hosted/testrunner/PomXmlGeneratorTest.java
@@ -30,4 +30,5 @@ public class PomXmlGeneratorTest {
String expected = IOUtils.toString(this.getClass().getResourceAsStream(resourceFile));
assertEquals(resourceFile, expected, actual);
}
+
} \ No newline at end of file
diff --git a/vespa-testrunner-components/src/test/resources/pom.xml_system_tests b/vespa-testrunner-components/src/test/resources/pom.xml_system_tests
index 263bd27a4f3..7c986560c17 100644
--- a/vespa-testrunner-components/src/test/resources/pom.xml_system_tests
+++ b/vespa-testrunner-components/src/test/resources/pom.xml_system_tests
@@ -53,11 +53,7 @@
<dependenciesToScan>
<dependency>com.yahoo.vespa.testrunner.test:main.jar</dependency>
</dependenciesToScan>
- <groups>ai.vespa.hosted.cd.SystemTest, com.yahoo.vespa.tenant.systemtest.base.SystemTest</groups>
- <excludedGroups>com.yahoo.vespa.tenant.systemtest.base.impl.EmptyExcludeGroup.class</excludedGroups>
- <excludes>
- <exclude>ai.vespa.hosted.cd.SystemTest, com.yahoo.vespa.tenant.systemtest.base.SystemTest</exclude>
- </excludes>
+ <groups>system, com.yahoo.vespa.tenant.systemtest.base.SystemTest</groups>
<reportsDirectory>${env.TEST_DIR}</reportsDirectory>
<redirectTestOutputToFile>false</redirectTestOutputToFile>
<trimStackTrace>false</trimStackTrace>