Skip to content

Commit f1dbc8f

Browse files
committed
Prevent FLOAT32 integration tests from running on emulator and production
1 parent 6789155 commit f1dbc8f

File tree

2 files changed

+66
-5
lines changed

2 files changed

+66
-5
lines changed

google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITFloat32Test.java

Lines changed: 41 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,14 @@
1616

1717
package com.google.cloud.spanner.it;
1818

19+
import static com.google.cloud.spanner.testing.EmulatorSpannerHelper.isUsingEmulator;
20+
import static com.google.common.base.Strings.isNullOrEmpty;
1921
import static com.google.common.truth.Truth.assertThat;
2022
import static org.junit.Assert.assertFalse;
2123
import static org.junit.Assert.assertNotNull;
2224
import static org.junit.Assert.assertTrue;
2325
import static org.junit.Assert.fail;
26+
import static org.junit.Assume.assumeFalse;
2427
import static org.junit.Assume.assumeTrue;
2528

2629
import com.google.cloud.Timestamp;
@@ -79,15 +82,15 @@ public static List<DialectTestParameter> data() {
7982
+ " Key STRING(MAX) NOT NULL,"
8083
+ " Float32Value FLOAT32,"
8184
+ " Float32ArrayValue ARRAY<FLOAT32>,"
82-
+ ") PRIMARY KEY (K)"
85+
+ ") PRIMARY KEY (Key)"
8386
};
8487

8588
private static final String[] POSTGRESQL_SCHEMA =
8689
new String[] {
8790
"CREATE TABLE T ("
8891
+ " Key VARCHAR PRIMARY KEY,"
8992
+ " Float32Value REAL,"
90-
+ " Float32ArrayValue REAL[],"
93+
+ " Float32ArrayValue REAL[]"
9194
+ ")"
9295
};
9396

@@ -107,8 +110,18 @@ public static void setUpDatabase()
107110
postgreSQLClient = env.getTestHelper().getDatabaseClient(postgreSQLDatabase);
108111
}
109112

113+
private static boolean isUsingCloudDevel() {
114+
String jobType = System.getenv("JOB_TYPE");
115+
116+
// Assumes that the jobType contains the string "cloud-devel" to signal that
117+
// the environment is cloud-devel.
118+
return !isNullOrEmpty(jobType) && jobType.contains("cloud-devel");
119+
}
120+
110121
@Before
111122
public void before() {
123+
assumeFalse("Emulator does not support FLOAT32 yet", isUsingEmulator());
124+
112125
client =
113126
dialect.dialect == Dialect.GOOGLE_STANDARD_SQL ? googleStandardSQLClient : postgreSQLClient;
114127
}
@@ -147,6 +160,8 @@ private Struct readLastRow(String... columns) {
147160

148161
@Test
149162
public void writeFloat32() {
163+
assumeTrue("FLOAT32 is currently only supported in cloud-devel", isUsingCloudDevel());
164+
150165
write(baseInsert().set("Float32Value").to(2.0f).build());
151166
Struct row = readLastRow("Float32Value");
152167
assertThat(row.isNull(0)).isFalse();
@@ -155,6 +170,8 @@ public void writeFloat32() {
155170

156171
@Test
157172
public void writeFloat32NonNumbers() {
173+
assumeTrue("FLOAT32 is currently only supported in cloud-devel", isUsingCloudDevel());
174+
158175
write(baseInsert().set("Float32Value").to(Float.NEGATIVE_INFINITY).build());
159176
Struct row = readLastRow("Float32Value");
160177
assertThat(row.isNull(0)).isFalse();
@@ -173,20 +190,26 @@ public void writeFloat32NonNumbers() {
173190

174191
@Test
175192
public void writeFloat32Null() {
193+
assumeTrue("FLOAT32 is currently only supported in cloud-devel", isUsingCloudDevel());
194+
176195
write(baseInsert().set("Float32Value").to((Float) null).build());
177196
Struct row = readLastRow("Float32Value");
178197
assertThat(row.isNull(0)).isTrue();
179198
}
180199

181200
@Test
182201
public void writeFloat32ArrayNull() {
202+
assumeTrue("FLOAT32 is currently only supported in cloud-devel", isUsingCloudDevel());
203+
183204
write(baseInsert().set("Float32ArrayValue").toFloat32Array((float[]) null).build());
184205
Struct row = readLastRow("Float32ArrayValue");
185206
assertThat(row.isNull(0)).isTrue();
186207
}
187208

188209
@Test
189210
public void writeFloat32ArrayEmpty() {
211+
assumeTrue("FLOAT32 is currently only supported in cloud-devel", isUsingCloudDevel());
212+
190213
write(baseInsert().set("Float32ArrayValue").toFloat32Array(new float[] {}).build());
191214
Struct row = readLastRow("Float32ArrayValue");
192215
assertThat(row.isNull(0)).isFalse();
@@ -195,6 +218,8 @@ public void writeFloat32ArrayEmpty() {
195218

196219
@Test
197220
public void writeFloat32Array() {
221+
assumeTrue("FLOAT32 is currently only supported in cloud-devel", isUsingCloudDevel());
222+
198223
write(
199224
baseInsert()
200225
.set("Float32ArrayValue")
@@ -213,10 +238,12 @@ public void writeFloat32Array() {
213238

214239
@Test
215240
public void writeFloat32ArrayNoNulls() {
241+
assumeTrue("FLOAT32 is currently only supported in cloud-devel", isUsingCloudDevel());
242+
216243
write(baseInsert().set("Float32ArrayValue").toFloat32Array(Arrays.asList(1.0f, 2.0f)).build());
217244
Struct row = readLastRow("Float32ArrayValue");
218245
assertThat(row.isNull(0)).isFalse();
219-
assertThat(row.getFloatArray(0).length).isEqualTo(2f);
246+
assertThat(row.getFloatArray(0).length).isEqualTo(2);
220247
assertThat(row.getFloatArray(0)[0]).isWithin(0.0f).of(1.0f);
221248
assertThat(row.getFloatArray(0)[1]).isWithin(0.0f).of(2.0f);
222249
}
@@ -244,6 +271,8 @@ private String getInsertStatementWithLiterals() {
244271

245272
@Test
246273
public void float32Literals() {
274+
assumeTrue("FLOAT32 is currently only supported in cloud-devel", isUsingCloudDevel());
275+
247276
client
248277
.readWriteTransaction()
249278
.run(
@@ -269,6 +298,8 @@ private String getInsertStatementWithParameters() {
269298

270299
@Test
271300
public void float32Parameter() {
301+
assumeTrue("FLOAT32 is currently only supported in cloud-devel", isUsingCloudDevel());
302+
272303
client
273304
.readWriteTransaction()
274305
.run(
@@ -311,9 +342,12 @@ public void float32Parameter() {
311342
@Ignore("This will be supported before submission")
312343
@Test
313344
public void float32UntypedParameter() {
345+
assumeTrue("FLOAT32 is currently only supported in cloud-devel", isUsingCloudDevel());
346+
314347
// TODO: Verify before submitting.
315348
assumeTrue(
316-
"This is only supported in GoogleSQL??", dialect.dialect == Dialect.GOOGLE_STANDARD_SQL);
349+
"This is currently only supported in GoogleSQL??",
350+
dialect.dialect == Dialect.GOOGLE_STANDARD_SQL);
317351

318352
client
319353
.readWriteTransaction()
@@ -342,11 +376,13 @@ public void float32UntypedParameter() {
342376
.build());
343377
return null;
344378
});
379+
380+
// TODO: add verifier.
345381
}
346382

347383
private void verifyContents() {
348384
try (ResultSet resultSet =
349-
client.singleUse().executeQuery(Statement.of("SELECT * FROM T ORDER BY id"))) {
385+
client.singleUse().executeQuery(Statement.of("SELECT * FROM T ORDER BY Key"))) {
350386

351387
assertTrue(resultSet.next());
352388

google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITQueryTest.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package com.google.cloud.spanner.it;
1818

1919
import static com.google.cloud.spanner.testing.EmulatorSpannerHelper.isUsingEmulator;
20+
import static com.google.common.base.Strings.isNullOrEmpty;
2021
import static com.google.common.truth.Truth.assertThat;
2122
import static java.util.Arrays.asList;
2223
import static org.junit.Assert.assertEquals;
@@ -254,8 +255,20 @@ public void bindInt64Null() {
254255
assertThat(row.isNull(0)).isTrue();
255256
}
256257

258+
// TODO: Remove once FLOAT32 is supported in production.
259+
private static boolean isUsingCloudDevel() {
260+
String jobType = System.getenv("JOB_TYPE");
261+
262+
// Assumes that the jobType contains the string "cloud-devel" to signal that
263+
// the environment is cloud-devel.
264+
return !isNullOrEmpty(jobType) && jobType.contains("cloud-devel");
265+
}
266+
257267
@Test
258268
public void bindFloat32() {
269+
assumeFalse("Emulator does not support FLOAT32 yet", isUsingEmulator());
270+
assumeTrue("FLOAT32 is currently only supported in cloud-devel", isUsingCloudDevel());
271+
259272
Struct row =
260273
execute(Statement.newBuilder(selectValueQuery).bind("p1").to(2.0f), Type.float32());
261274
assertThat(row.isNull(0)).isFalse();
@@ -264,6 +277,9 @@ public void bindFloat32() {
264277

265278
@Test
266279
public void bindFloat32Null() {
280+
assumeFalse("Emulator does not support FLOAT32 yet", isUsingEmulator());
281+
assumeTrue("FLOAT32 is currently only supported in cloud-devel", isUsingCloudDevel());
282+
267283
Struct row =
268284
execute(Statement.newBuilder(selectValueQuery).bind("p1").to((Float) null), Type.float32());
269285
assertThat(row.isNull(0)).isTrue();
@@ -516,6 +532,9 @@ public void bindInt64ArrayNull() {
516532
@Ignore
517533
// Fails due to backend issues. Should be resolved soon.
518534
public void bindFloat32Array() {
535+
assumeFalse("Emulator does not support FLOAT32 yet", isUsingEmulator());
536+
assumeTrue("FLOAT32 is currently only supported in cloud-devel", isUsingCloudDevel());
537+
519538
Struct row =
520539
execute(
521540
Statement.newBuilder(selectValueQuery)
@@ -538,6 +557,9 @@ public void bindFloat32Array() {
538557

539558
@Test
540559
public void bindFloat32ArrayEmpty() {
560+
assumeFalse("Emulator does not support FLOAT32 yet", isUsingEmulator());
561+
assumeTrue("FLOAT32 is currently only supported in cloud-devel", isUsingCloudDevel());
562+
541563
Struct row =
542564
execute(
543565
Statement.newBuilder(selectValueQuery)
@@ -550,6 +572,9 @@ public void bindFloat32ArrayEmpty() {
550572

551573
@Test
552574
public void bindFloat32ArrayNull() {
575+
assumeFalse("Emulator does not support FLOAT32 yet", isUsingEmulator());
576+
assumeTrue("FLOAT32 is currently only supported in cloud-devel", isUsingCloudDevel());
577+
553578
Struct row =
554579
execute(
555580
Statement.newBuilder(selectValueQuery).bind("p1").toFloat32Array((float[]) null),

0 commit comments

Comments
 (0)