diff --git a/tests/common/src/main/java/tech/ydb/test/integration/YdbEnvironment.java b/tests/common/src/main/java/tech/ydb/test/integration/YdbEnvironment.java index 9117c79c2..580a03767 100644 --- a/tests/common/src/main/java/tech/ydb/test/integration/YdbEnvironment.java +++ b/tests/common/src/main/java/tech/ydb/test/integration/YdbEnvironment.java @@ -20,6 +20,7 @@ public class YdbEnvironment { private final Supplier dockerImage = createParam("YDB_DOCKER_IMAGE", YDB_DEFAULT_IMAGE); private final Supplier dockerDatabase = createParam("YDB_DOCKER_DATABASE", "/local"); private final Supplier dockerPemPath = createParam("YDB_DOCKER_PEM_PATH", "/ydb_certs/ca.pem"); + private final Supplier dockerFeatures = createParam("YDB_DOCKER_FEATURE_FLAGS", ""); private final Supplier dockerReuse = createParam("YDB_DOCKER_REUSE", true); private final Supplier cleanUpTests = createParam("YDB_CLEAN_UP", true); @@ -62,6 +63,10 @@ public boolean dockerReuse() { return dockerReuse.get(); } + public String dockerFeatures() { + return dockerFeatures.get(); + } + public boolean cleanUpTests() { return cleanUpTests.get(); } diff --git a/tests/common/src/main/java/tech/ydb/test/integration/docker/YdbDockerContainer.java b/tests/common/src/main/java/tech/ydb/test/integration/docker/YdbDockerContainer.java index de08fdb6a..a4bcc74de 100644 --- a/tests/common/src/main/java/tech/ydb/test/integration/docker/YdbDockerContainer.java +++ b/tests/common/src/main/java/tech/ydb/test/integration/docker/YdbDockerContainer.java @@ -53,6 +53,11 @@ public void init() { } withEnv("YDB_USE_IN_MEMORY_PDISKS", "true"); + + if (env.dockerFeatures() != null && !env.dockerFeatures().isEmpty()) { + withEnv("YDB_FEATURE_FLAGS", env.dockerFeatures()); + } + withReuse(env.dockerReuse()); String id = "ydb-" + UUID.randomUUID(); diff --git a/tests/common/src/test/java/tech/ydb/test/integration/DockerHelperFactoryTest.java b/tests/common/src/test/java/tech/ydb/test/integration/DockerHelperFactoryTest.java index 888cc4add..5b329347e 100644 --- a/tests/common/src/test/java/tech/ydb/test/integration/DockerHelperFactoryTest.java +++ b/tests/common/src/test/java/tech/ydb/test/integration/DockerHelperFactoryTest.java @@ -161,6 +161,7 @@ public void tlsDockerContainerTests() { YdbEnvironmentMock env = new YdbEnvironmentMock() .withUseTLS(true) .withToken("SIMPLE_TOKEN") + .withFeatures("enable_views") .withDockerReuse(false); YdbMockContainer container = new YdbMockContainer(env, ports); diff --git a/tests/common/src/test/java/tech/ydb/test/integration/YdbEnvironmentMock.java b/tests/common/src/test/java/tech/ydb/test/integration/YdbEnvironmentMock.java index 0cc943098..f5ef35d0a 100644 --- a/tests/common/src/test/java/tech/ydb/test/integration/YdbEnvironmentMock.java +++ b/tests/common/src/test/java/tech/ydb/test/integration/YdbEnvironmentMock.java @@ -9,9 +9,11 @@ public class YdbEnvironmentMock extends YdbEnvironment { private String endpoint = null; private String pemCert = null; private String token = null; + private String features = null; private boolean useTLS = false; private boolean dockerReuse = false; private boolean dockerIsolation = false; + private boolean disabledTests = false; public YdbEnvironmentMock withDatabase(String value) { this.database = value; @@ -43,11 +45,21 @@ public YdbEnvironmentMock withDockerReuse(boolean value) { return this; } + public YdbEnvironmentMock withFeatures(String features) { + this.features = features; + return this; + } + public YdbEnvironmentMock withDockerIsolation(boolean value) { this.dockerIsolation = value; return this; } + public YdbEnvironmentMock withTestDisabled(boolean value) { + this.disabledTests = value; + return this; + } + @Override public String ydbDatabase() { return database; @@ -78,6 +90,11 @@ public boolean dockerReuse() { return dockerReuse; } + @Override + public String dockerFeatures() { + return features; + } + @Override public boolean useDockerIsolation() { return dockerIsolation; @@ -85,6 +102,6 @@ public boolean useDockerIsolation() { @Override public boolean disableIntegrationTests() { - return false; + return disabledTests; } } diff --git a/tests/common/src/test/java/tech/ydb/test/integration/YdbEnvironmentTest.java b/tests/common/src/test/java/tech/ydb/test/integration/YdbEnvironmentTest.java index 71b3ee91f..127ea3deb 100644 --- a/tests/common/src/test/java/tech/ydb/test/integration/YdbEnvironmentTest.java +++ b/tests/common/src/test/java/tech/ydb/test/integration/YdbEnvironmentTest.java @@ -92,6 +92,7 @@ public void rewriteAllParams() { params.put("YDB_DOCKER_DATABASE", "/remote"); params.put("YDB_DOCKER_PEM_PATH", "/certs/ca.pem"); params.put("YDB_DOCKER_REUSE", "false"); + params.put("YDB_DOCKER_FEATURE_FLAGS", "enable_views"); params.put("YDB_DOCKER_ISOLATION", "false"); params.put("YDB_DISABLE_INTEGRATION_TESTS", "tru"); @@ -113,6 +114,7 @@ public void rewriteAllParams() { Assert.assertEquals("check YDB_DOCKER_DATABASE", "/remote", env.dockerDatabase()); Assert.assertEquals("check YDB_DOCKER_PEM_PATH", "/certs/ca.pem", env.dockerPemPath()); Assert.assertEquals("check YDB_DOCKER_REUSE", false, env.dockerReuse()); + Assert.assertEquals("check YDB_DOCKER_FEATURE_FLAGS", "enable_views", env.dockerFeatures()); Assert.assertEquals("check YDB_DISABLE_INTEGRATION_TESTS", false, env.disableIntegrationTests()); // ENV has higher priority diff --git a/tests/common/src/test/java/tech/ydb/test/integration/YdbHelperFactoryTest.java b/tests/common/src/test/java/tech/ydb/test/integration/YdbHelperFactoryTest.java index 1d49c9b05..88d61dbec 100644 --- a/tests/common/src/test/java/tech/ydb/test/integration/YdbHelperFactoryTest.java +++ b/tests/common/src/test/java/tech/ydb/test/integration/YdbHelperFactoryTest.java @@ -29,6 +29,18 @@ public void cleanup() { transportMock.close(); } + @Test + public void disabledDockerTest() { + YdbEnvironmentMock env = new YdbEnvironmentMock() + .withTestDisabled(true); + + YdbHelperFactory factory = YdbHelperFactory.createYdbHelper(env); + + Assert.assertNotNull("check disabled factory instance", factory); + Assert.assertFalse("check disabled factory instance", factory.isEnabled()); + Assert.assertNull("check disabled factory instance", factory.createHelper()); + } + @Test public void externalNonTlsInstanceTest() { transportMock.setup("/database");