aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools
diff options
context:
space:
mode:
authorGravatar brandjon <brandjon@google.com>2017-09-28 21:04:17 -0400
committerGravatar John Cater <jcater@google.com>2017-09-29 12:14:31 -0400
commite087d317d24094e674cf7fae0284c81d6ff8bd02 (patch)
tree6acc238fff3d86ed4ed774d6a2b46239423a0875 /src/test/java/com/google/devtools
parent5afd9ee197e0c9a7ef8d040cc2c2e68cc16aa8eb (diff)
Move serialization test utilities from test/ to main/
This is so other packages can depend on them without violating our style guide. (Dependencies on test/ packages should be limited to aggregating test suites.) The target is also renamed from ".../serialization:serialization-test-base" to a new subpackage, ".../serialization/testutils:testutils". RELNOTES: None PiperOrigin-RevId: 170426906
Diffstat (limited to 'src/test/java/com/google/devtools')
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/apple/AppleConfigurationSerializationTest.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/apple/BUILD2
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/serialization/AbstractObjectCodecTest.java108
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/serialization/BUILD35
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/serialization/BlazeDirectoriesCodecTest.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/serialization/EnumCodecTest.java1
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/serialization/FastStringCodecTest.java1
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/serialization/FsUtils.java38
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableListCodecTest.java1
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/serialization/JavaSerializableCodecTest.java1
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/serialization/LabelCodecTest.java1
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/serialization/PackageIdentifierCodecTest.java1
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/serialization/PathCodecTest.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/serialization/PathFragmentCodecTest.java1
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/serialization/PrecomputedValueCodecTest.java1
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/serialization/RepositoryNameCodecTest.java1
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/serialization/StringCodecTest.java1
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/serialization/TestUtils.java63
18 files changed, 18 insertions, 244 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/apple/AppleConfigurationSerializationTest.java b/src/test/java/com/google/devtools/build/lib/rules/apple/AppleConfigurationSerializationTest.java
index e302ee18c9..79d566af0e 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/apple/AppleConfigurationSerializationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/apple/AppleConfigurationSerializationTest.java
@@ -18,9 +18,9 @@ import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.skyframe.serialization.AbstractObjectCodecTest;
import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
import com.google.devtools.build.lib.skyframe.serialization.SerializationException;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.AbstractObjectCodecTest;
import com.google.devtools.common.options.OptionsParsingException;
import com.google.protobuf.CodedInputStream;
import com.google.protobuf.CodedOutputStream;
diff --git a/src/test/java/com/google/devtools/build/lib/rules/apple/BUILD b/src/test/java/com/google/devtools/build/lib/rules/apple/BUILD
index 3265ba636a..1753c230b7 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/apple/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/rules/apple/BUILD
@@ -21,8 +21,8 @@ java_library(
"//src/main/java/com/google/devtools/build/lib/cmdline",
"//src/main/java/com/google/devtools/build/lib/rules/apple",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization",
+ "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/testutils",
"//src/main/java/com/google/devtools/common/options",
- "//src/test/java/com/google/devtools/build/lib/skyframe/serialization:serialization-test-base",
"//third_party:guava",
"//third_party:junit4",
"//third_party/protobuf:protobuf_java",
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/AbstractObjectCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/AbstractObjectCodecTest.java
deleted file mode 100644
index 93bcb11b4c..0000000000
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/AbstractObjectCodecTest.java
+++ /dev/null
@@ -1,108 +0,0 @@
-// Copyright 2017 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.devtools.build.lib.skyframe.serialization;
-
-import static com.google.common.truth.Truth.assertThat;
-import static org.junit.Assert.fail;
-
-import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableList;
-import com.google.protobuf.CodedInputStream;
-import java.io.IOException;
-import java.nio.charset.StandardCharsets;
-import javax.annotation.Nullable;
-import org.junit.Before;
-import org.junit.Test;
-
-/** Common ObjectCodec tests. */
-public abstract class AbstractObjectCodecTest<T> {
-
- @Nullable protected ObjectCodec<T> underTest;
- @Nullable protected ImmutableList<T> subjects;
-
- /**
- * Override to false to skip testDeserializeBadDataThrowsSerializationException(). Codecs that
- * cannot distinguish good and bad data should do this.
- */
- protected boolean shouldTestDeserializeBadData = true;
-
- /** Construct with the given codec and subjects. */
- @SafeVarargs
- protected AbstractObjectCodecTest(
- ObjectCodec<T> underTest, T... subjects) {
- this.underTest = underTest;
- this.subjects = ImmutableList.copyOf(subjects);
- }
-
- /**
- * Construct without a codec and subjects. They must be set in the subclass's constructor instead.
- *
- * <p>This is useful if the logic for creating the codec and/or subjects is non-trivial. Using
- * this super constructor, the logic can be placed in the subclass's constructor; whereas if using
- * the above super constructor, the logic must be factored into a static method.
- */
- protected AbstractObjectCodecTest() {}
-
- @Before
- public void checkInitialized() {
- Preconditions.checkNotNull(underTest);
- Preconditions.checkNotNull(subjects);
- }
-
- @Test
- public void testSuccessfulSerializationDeserialization() throws Exception {
- for (T subject : subjects) {
- byte[] serialized = toBytes(subject);
- Object deserialized = fromBytes(serialized);
- verifyDeserialization(deserialized, subject);
- }
- }
-
- @Test
- public void testSerializationRoundTripBytes() throws Exception {
- for (T subject : subjects) {
- byte[] serialized = toBytes(subject);
- T deserialized = fromBytes(serialized);
- byte[] reserialized = toBytes(deserialized);
- assertThat(reserialized).isEqualTo(serialized);
- }
- }
-
- @Test
- public void testDeserializeBadDataThrowsSerializationException() {
- if (!shouldTestDeserializeBadData) {
- return;
- }
- try {
- underTest.deserialize(CodedInputStream.newInstance("junk".getBytes(StandardCharsets.UTF_8)));
- fail("Expected exception");
- } catch (SerializationException | IOException e) {
- // Expected.
- }
- }
-
- protected T fromBytes(byte[] bytes) throws SerializationException, IOException {
- return TestUtils.fromBytes(underTest, bytes);
- }
-
- /** Serialize subject using the {@link ObjectCodec} under test. */
- protected byte[] toBytes(T subject) throws IOException, SerializationException {
- return TestUtils.toBytes(underTest, subject);
- }
-
- protected void verifyDeserialization(Object deserialized, T subject) {
- assertThat(deserialized).isEqualTo(subject);
- }
-}
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/BUILD b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/BUILD
index 21fa4c5795..bd3b55bfc7 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/BUILD
@@ -10,47 +10,16 @@ filegroup(
visibility = ["//src/test/java/com/google/devtools/build/lib:__pkg__"],
)
-TEST_BASE_FILES = [
- "AbstractObjectCodecTest.java",
- "FsUtils.java",
- "TestUtils.java",
-]
-
-java_library(
- name = "serialization-test-base",
- testonly = 1,
- srcs = TEST_BASE_FILES,
- visibility = [
- "//src/test/java/com/google/devtools/build/lib:__subpackages__",
- ],
- deps = [
- "//src/main/java/com/google/devtools/build/lib:syntax",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization",
- "//src/main/java/com/google/devtools/build/lib/vfs",
- "//src/main/java/com/google/devtools/build/lib/vfs/inmemoryfs",
- "//third_party:guava",
- "//third_party:jsr305",
- "//third_party:junit4",
- "//third_party:truth",
- "//third_party/protobuf:protobuf_java",
- ],
-)
-
java_library(
name = "serialization-tests",
testonly = 1,
- srcs = glob(
- [
- "*.java",
- ],
- exclude = TEST_BASE_FILES,
- ),
+ srcs = glob(["*.java"]),
deps = [
- ":serialization-test-base",
"//src/main/java/com/google/devtools/build/lib:build-base",
"//src/main/java/com/google/devtools/build/lib:packages-internal",
"//src/main/java/com/google/devtools/build/lib:util",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization",
+ "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/testutils",
"//src/main/java/com/google/devtools/build/lib/vfs",
"//third_party:guava",
"//third_party:guava-testlib",
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/BlazeDirectoriesCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/BlazeDirectoriesCodecTest.java
index ef7916d295..cd82c39e42 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/BlazeDirectoriesCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/BlazeDirectoriesCodecTest.java
@@ -17,6 +17,8 @@ package com.google.devtools.build.lib.skyframe.serialization;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.BlazeDirectoriesCodec;
import com.google.devtools.build.lib.analysis.ServerDirectories;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.AbstractObjectCodecTest;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.FsUtils;
/** Tests for {@link BlazeDirectoriesCodec}. */
public class BlazeDirectoriesCodecTest extends AbstractObjectCodecTest<BlazeDirectories> {
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/EnumCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/EnumCodecTest.java
index c71d554b5b..3e335cb0ed 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/EnumCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/EnumCodecTest.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.skyframe.serialization;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.AbstractObjectCodecTest;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/FastStringCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/FastStringCodecTest.java
index 6aef73edd6..bad3e6d13c 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/FastStringCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/FastStringCodecTest.java
@@ -15,6 +15,7 @@
package com.google.devtools.build.lib.skyframe.serialization;
import com.google.common.testing.EqualsTester;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.AbstractObjectCodecTest;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/FsUtils.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/FsUtils.java
deleted file mode 100644
index d38aab03fe..0000000000
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/FsUtils.java
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright 2017 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.devtools.build.lib.skyframe.serialization;
-
-import com.google.devtools.build.lib.vfs.FileSystem;
-import com.google.devtools.build.lib.vfs.PathFragment;
-import com.google.devtools.build.lib.vfs.RootedPath;
-import com.google.devtools.build.lib.vfs.inmemoryfs.InMemoryFileSystem;
-
-/** Common FileSystem related items for serialization tests. */
-class FsUtils {
-
- static final FileSystem TEST_FILESYSTEM = new InMemoryFileSystem();
-
- static final RootedPath TEST_ROOT =
- RootedPath.toRootedPath(
- TEST_FILESYSTEM.getPath(PathFragment.create("/anywhere/at/all")),
- PathFragment.create("all/at/anywhere"));
-
- private FsUtils() {}
-
- /** Returns path relative to {@link #TEST_ROOT}. */
- static PathFragment rootPathRelative(String path) {
- return TEST_ROOT.getRelativePath().getRelative(path);
- }
-}
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableListCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableListCodecTest.java
index 23f38557e2..50481dcba0 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableListCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableListCodecTest.java
@@ -15,6 +15,7 @@
package com.google.devtools.build.lib.skyframe.serialization;
import com.google.common.collect.ImmutableList;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.AbstractObjectCodecTest;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/JavaSerializableCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/JavaSerializableCodecTest.java
index db200a377c..8717074587 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/JavaSerializableCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/JavaSerializableCodecTest.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.skyframe.serialization;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.AbstractObjectCodecTest;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/LabelCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/LabelCodecTest.java
index 4dc1b14bf2..7427e92255 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/LabelCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/LabelCodecTest.java
@@ -16,6 +16,7 @@ package com.google.devtools.build.lib.skyframe.serialization;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.cmdline.LabelSyntaxException;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.AbstractObjectCodecTest;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PackageIdentifierCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PackageIdentifierCodecTest.java
index 9bc860af02..55d3d11a67 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PackageIdentifierCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PackageIdentifierCodecTest.java
@@ -15,6 +15,7 @@
package com.google.devtools.build.lib.skyframe.serialization;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.AbstractObjectCodecTest;
import com.google.devtools.build.lib.vfs.PathFragment;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PathCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PathCodecTest.java
index 3b6493608e..38c2a4285e 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PathCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PathCodecTest.java
@@ -14,6 +14,8 @@
package com.google.devtools.build.lib.skyframe.serialization;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.AbstractObjectCodecTest;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.FsUtils;
import com.google.devtools.build.lib.vfs.Path;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PathFragmentCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PathFragmentCodecTest.java
index 4ce91f849c..8bf52760af 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PathFragmentCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PathFragmentCodecTest.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.skyframe.serialization;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.AbstractObjectCodecTest;
import com.google.devtools.build.lib.vfs.PathFragment;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PrecomputedValueCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PrecomputedValueCodecTest.java
index 48b3d3d6d3..fcfeb3c1eb 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PrecomputedValueCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/PrecomputedValueCodecTest.java
@@ -17,6 +17,7 @@ package com.google.devtools.build.lib.skyframe.serialization;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.skyframe.PrecomputedValue;
import com.google.devtools.build.lib.skyframe.PrecomputedValueCodec;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.AbstractObjectCodecTest;
import com.google.devtools.build.lib.vfs.PathFragment;
/** Tests for {@link PrecomputedValueCodec}. */
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/RepositoryNameCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/RepositoryNameCodecTest.java
index 97e38edc1c..3bbd29a44e 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/RepositoryNameCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/RepositoryNameCodecTest.java
@@ -18,6 +18,7 @@ import static org.junit.Assert.fail;
import com.google.devtools.build.lib.cmdline.LabelSyntaxException;
import com.google.devtools.build.lib.cmdline.RepositoryName;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.AbstractObjectCodecTest;
import java.io.IOException;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/StringCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/StringCodecTest.java
index 423ffdca3d..b33c54c4c7 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/StringCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/StringCodecTest.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.skyframe.serialization;
+import com.google.devtools.build.lib.skyframe.serialization.testutils.AbstractObjectCodecTest;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/TestUtils.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/TestUtils.java
deleted file mode 100644
index 9b263badcb..0000000000
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/TestUtils.java
+++ /dev/null
@@ -1,63 +0,0 @@
-// Copyright 2017 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.devtools.build.lib.skyframe.serialization;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import com.google.devtools.build.lib.syntax.Environment.Frame;
-import com.google.protobuf.CodedInputStream;
-import com.google.protobuf.CodedOutputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-
-/** Helpers for serialization tests. */
-class TestUtils {
-
- private TestUtils() {}
-
- /** Serialize a value to a new byte array. */
- static <T> byte[] toBytes(ObjectCodec<T> codec, T value)
- throws IOException, SerializationException {
- ByteArrayOutputStream bytes = new ByteArrayOutputStream();
- CodedOutputStream codedOut = CodedOutputStream.newInstance(bytes);
- codec.serialize(value, codedOut);
- codedOut.flush();
- return bytes.toByteArray();
- }
-
- /** Deserialize a value from a byte array. */
- static <T> T fromBytes(ObjectCodec<T> codec, byte[] bytes)
- throws SerializationException, IOException {
- return codec.deserialize(CodedInputStream.newInstance(bytes));
- }
-
- /**
- * Asserts that two {@link Frame}s have the same structure. Needed because {@link Frame} doesn't
- * override {@link Object#equals}.
- */
- static void assertFramesEqual(Frame frame1, Frame frame2) {
- assertThat(frame1.mutability().getAnnotation())
- .isEqualTo(frame2.mutability().getAnnotation());
- assertThat(frame1.getLabel()).isEqualTo(frame2.getLabel());
- assertThat(frame1.getTransitiveBindings())
- .containsExactlyEntriesIn(frame2.getTransitiveBindings()).inOrder();
- if (frame1.getParent() == null || frame2.getParent() == null) {
- assertThat(frame1.getParent()).isNull();
- assertThat(frame2.getParent()).isNull();
- } else {
- assertFramesEqual(frame1.getParent(), frame2.getParent());
- }
- }
-}