Skip to content

Commit 29ff1ad

Browse files
authored
Merge pull request #328 from alex268/add_feature_flag_support
Added support of YDB_FEATURE_FLAGS
2 parents 871ddc1 + 5381b4d commit 29ff1ad

File tree

6 files changed

+43
-1
lines changed

6 files changed

+43
-1
lines changed

tests/common/src/main/java/tech/ydb/test/integration/YdbEnvironment.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public class YdbEnvironment {
2020
private final Supplier<String> dockerImage = createParam("YDB_DOCKER_IMAGE", YDB_DEFAULT_IMAGE);
2121
private final Supplier<String> dockerDatabase = createParam("YDB_DOCKER_DATABASE", "/local");
2222
private final Supplier<String> dockerPemPath = createParam("YDB_DOCKER_PEM_PATH", "/ydb_certs/ca.pem");
23+
private final Supplier<String> dockerFeatures = createParam("YDB_DOCKER_FEATURE_FLAGS", "");
2324
private final Supplier<Boolean> dockerReuse = createParam("YDB_DOCKER_REUSE", true);
2425

2526
private final Supplier<Boolean> cleanUpTests = createParam("YDB_CLEAN_UP", true);
@@ -62,6 +63,10 @@ public boolean dockerReuse() {
6263
return dockerReuse.get();
6364
}
6465

66+
public String dockerFeatures() {
67+
return dockerFeatures.get();
68+
}
69+
6570
public boolean cleanUpTests() {
6671
return cleanUpTests.get();
6772
}

tests/common/src/main/java/tech/ydb/test/integration/docker/YdbDockerContainer.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,11 @@ public void init() {
5353
}
5454

5555
withEnv("YDB_USE_IN_MEMORY_PDISKS", "true");
56+
57+
if (env.dockerFeatures() != null && !env.dockerFeatures().isEmpty()) {
58+
withEnv("YDB_FEATURE_FLAGS", env.dockerFeatures());
59+
}
60+
5661
withReuse(env.dockerReuse());
5762

5863
String id = "ydb-" + UUID.randomUUID();

tests/common/src/test/java/tech/ydb/test/integration/DockerHelperFactoryTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,7 @@ public void tlsDockerContainerTests() {
161161
YdbEnvironmentMock env = new YdbEnvironmentMock()
162162
.withUseTLS(true)
163163
.withToken("SIMPLE_TOKEN")
164+
.withFeatures("enable_views")
164165
.withDockerReuse(false);
165166

166167
YdbMockContainer container = new YdbMockContainer(env, ports);

tests/common/src/test/java/tech/ydb/test/integration/YdbEnvironmentMock.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,11 @@ public class YdbEnvironmentMock extends YdbEnvironment {
99
private String endpoint = null;
1010
private String pemCert = null;
1111
private String token = null;
12+
private String features = null;
1213
private boolean useTLS = false;
1314
private boolean dockerReuse = false;
1415
private boolean dockerIsolation = false;
16+
private boolean disabledTests = false;
1517

1618
public YdbEnvironmentMock withDatabase(String value) {
1719
this.database = value;
@@ -43,11 +45,21 @@ public YdbEnvironmentMock withDockerReuse(boolean value) {
4345
return this;
4446
}
4547

48+
public YdbEnvironmentMock withFeatures(String features) {
49+
this.features = features;
50+
return this;
51+
}
52+
4653
public YdbEnvironmentMock withDockerIsolation(boolean value) {
4754
this.dockerIsolation = value;
4855
return this;
4956
}
5057

58+
public YdbEnvironmentMock withTestDisabled(boolean value) {
59+
this.disabledTests = value;
60+
return this;
61+
}
62+
5163
@Override
5264
public String ydbDatabase() {
5365
return database;
@@ -78,13 +90,18 @@ public boolean dockerReuse() {
7890
return dockerReuse;
7991
}
8092

93+
@Override
94+
public String dockerFeatures() {
95+
return features;
96+
}
97+
8198
@Override
8299
public boolean useDockerIsolation() {
83100
return dockerIsolation;
84101
}
85102

86103
@Override
87104
public boolean disableIntegrationTests() {
88-
return false;
105+
return disabledTests;
89106
}
90107
}

tests/common/src/test/java/tech/ydb/test/integration/YdbEnvironmentTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ public void rewriteAllParams() {
9292
params.put("YDB_DOCKER_DATABASE", "/remote");
9393
params.put("YDB_DOCKER_PEM_PATH", "/certs/ca.pem");
9494
params.put("YDB_DOCKER_REUSE", "false");
95+
params.put("YDB_DOCKER_FEATURE_FLAGS", "enable_views");
9596

9697
params.put("YDB_DOCKER_ISOLATION", "false");
9798
params.put("YDB_DISABLE_INTEGRATION_TESTS", "tru");
@@ -113,6 +114,7 @@ public void rewriteAllParams() {
113114
Assert.assertEquals("check YDB_DOCKER_DATABASE", "/remote", env.dockerDatabase());
114115
Assert.assertEquals("check YDB_DOCKER_PEM_PATH", "/certs/ca.pem", env.dockerPemPath());
115116
Assert.assertEquals("check YDB_DOCKER_REUSE", false, env.dockerReuse());
117+
Assert.assertEquals("check YDB_DOCKER_FEATURE_FLAGS", "enable_views", env.dockerFeatures());
116118

117119
Assert.assertEquals("check YDB_DISABLE_INTEGRATION_TESTS", false, env.disableIntegrationTests());
118120
// ENV has higher priority

tests/common/src/test/java/tech/ydb/test/integration/YdbHelperFactoryTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,18 @@ public void cleanup() {
2929
transportMock.close();
3030
}
3131

32+
@Test
33+
public void disabledDockerTest() {
34+
YdbEnvironmentMock env = new YdbEnvironmentMock()
35+
.withTestDisabled(true);
36+
37+
YdbHelperFactory factory = YdbHelperFactory.createYdbHelper(env);
38+
39+
Assert.assertNotNull("check disabled factory instance", factory);
40+
Assert.assertFalse("check disabled factory instance", factory.isEnabled());
41+
Assert.assertNull("check disabled factory instance", factory.createHelper());
42+
}
43+
3244
@Test
3345
public void externalNonTlsInstanceTest() {
3446
transportMock.setup("/database");

0 commit comments

Comments
 (0)