diff options
author | 2017-10-07 19:44:43 +0200 | |
---|---|---|
committer | 2017-10-09 08:16:06 +0200 | |
commit | b45d5f536048db0e568e16417f4fb1d50f01e1ac (patch) | |
tree | f4fcdf655a25321234f8b19846c75735eb5c1126 | |
parent | 11be883a0aef677799721e60d2c44202cecae6ce (diff) |
Consolidate ObjectCodec<String> creation
Opens the door to swapping in different implementations without needing to
touch a ton of code.
RELNOTES: None
PiperOrigin-RevId: 171412555
17 files changed, 97 insertions, 37 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectories.java b/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectories.java index 7995681706..60071469f5 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectories.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectories.java @@ -18,8 +18,9 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.hash.HashCode; import com.google.devtools.build.lib.actions.Root; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; -import com.google.devtools.build.lib.skyframe.serialization.FastStringCodec; import com.google.devtools.build.lib.skyframe.serialization.PathCodec; +import com.google.devtools.build.lib.skyframe.serialization.SerializationException; +import com.google.devtools.build.lib.skyframe.serialization.strings.StringCodecs; import com.google.devtools.build.lib.util.StringCanonicalizer; import com.google.devtools.build.lib.vfs.FileSystem; import com.google.devtools.build.lib.vfs.Path; @@ -243,17 +244,18 @@ public final class BlazeDirectories { && this.execRoot.equals(that.execRoot); } - void serialize(CodedOutputStream codedOut, PathCodec pathCodec) throws IOException { + void serialize(CodedOutputStream codedOut, PathCodec pathCodec) + throws IOException, SerializationException { serverDirectories.serialize(codedOut, pathCodec); pathCodec.serialize(workspace, codedOut); - FastStringCodec.INSTANCE.serialize(productName, codedOut); + StringCodecs.asciiOptimized().serialize(productName, codedOut); } static BlazeDirectories deserialize(CodedInputStream codedIn, PathCodec pathCodec) - throws IOException { + throws IOException, SerializationException { return new BlazeDirectories( ServerDirectories.deserialize(codedIn, pathCodec), pathCodec.deserialize(codedIn), - FastStringCodec.INSTANCE.deserialize(codedIn)); + StringCodecs.asciiOptimized().deserialize(codedIn)); } } diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectoriesCodec.java b/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectoriesCodec.java index 61c3ff66be..3b62084a68 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectoriesCodec.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectoriesCodec.java @@ -16,6 +16,7 @@ package com.google.devtools.build.lib.analysis; import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec; import com.google.devtools.build.lib.skyframe.serialization.PathCodec; +import com.google.devtools.build.lib.skyframe.serialization.SerializationException; import com.google.protobuf.CodedInputStream; import com.google.protobuf.CodedOutputStream; import java.io.IOException; @@ -37,12 +38,14 @@ public class BlazeDirectoriesCodec implements ObjectCodec<BlazeDirectories> { } @Override - public void serialize(BlazeDirectories obj, CodedOutputStream codedOut) throws IOException { + public void serialize(BlazeDirectories obj, CodedOutputStream codedOut) + throws IOException, SerializationException { obj.serialize(codedOut, pathCodec); } @Override - public BlazeDirectories deserialize(CodedInputStream codedIn) throws IOException { + public BlazeDirectories deserialize(CodedInputStream codedIn) + throws IOException, SerializationException { return BlazeDirectories.deserialize(codedIn, pathCodec); } } diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ServerDirectories.java b/src/main/java/com/google/devtools/build/lib/analysis/ServerDirectories.java index 8c75f583d8..48a05c9a9a 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/ServerDirectories.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/ServerDirectories.java @@ -19,6 +19,7 @@ import com.google.common.hash.HashCode; import com.google.common.hash.Hashing; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.skyframe.serialization.PathCodec; +import com.google.devtools.build.lib.skyframe.serialization.SerializationException; import com.google.devtools.build.lib.util.Preconditions; import com.google.devtools.build.lib.vfs.FileSystem; import com.google.devtools.build.lib.vfs.Path; @@ -125,7 +126,8 @@ public final class ServerDirectories { && this.outputBase.equals(that.outputBase); } - void serialize(CodedOutputStream out, PathCodec pathCodec) throws IOException { + void serialize(CodedOutputStream out, PathCodec pathCodec) + throws IOException, SerializationException { pathCodec.serialize(installBase, out); out.writeBoolNoTag(installMD5 != null); if (installMD5 != null) { @@ -135,7 +137,7 @@ public final class ServerDirectories { } static ServerDirectories deserialize(CodedInputStream in, PathCodec pathCodec) - throws IOException { + throws IOException, SerializationException { Path installBase = pathCodec.deserialize(in); HashCode installMd5 = null; if (in.readBool()) { diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java index f9bc78b799..71c8508f65 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java +++ b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java @@ -29,9 +29,9 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.rules.apple.AppleConfiguration.ConfigurationDistinguisher; import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.skyframe.serialization.EnumCodec; -import com.google.devtools.build.lib.skyframe.serialization.FastStringCodec; import com.google.devtools.build.lib.skyframe.serialization.LabelCodec; import com.google.devtools.build.lib.skyframe.serialization.SerializationException; +import com.google.devtools.build.lib.skyframe.serialization.strings.StringCodecs; import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory; import com.google.devtools.build.lib.skylarkinterface.SkylarkPrinter; @@ -517,7 +517,7 @@ public class AppleCommandLineOptions extends FragmentOptions { void serialize(CodedOutputStream out) throws IOException, SerializationException { out.writeBoolNoTag(mandatoryMinimumVersion); out.writeBoolNoTag(objcProviderFromLinked); - serializeNullable(xcodeVersion, out, FastStringCodec.INSTANCE); + serializeNullable(xcodeVersion, out, StringCodecs.asciiOptimized()); serializeNullable(iosSdkVersion, out, DottedVersion.CODEC); serializeNullable(watchOsSdkVersion, out, DottedVersion.CODEC); serializeNullable(tvOsSdkVersion, out, DottedVersion.CODEC); @@ -526,10 +526,10 @@ public class AppleCommandLineOptions extends FragmentOptions { serializeNullable(watchosMinimumOs, out, DottedVersion.CODEC); serializeNullable(tvosMinimumOs, out, DottedVersion.CODEC); serializeNullable(macosMinimumOs, out, DottedVersion.CODEC); - FastStringCodec.INSTANCE.serialize(iosCpu, out); + StringCodecs.asciiOptimized().serialize(iosCpu, out); LabelCodec.INSTANCE.serialize(appleCrosstoolTop, out); PlatformType.CODEC.serialize(applePlatformType, out); - FastStringCodec.INSTANCE.serialize(appleSplitCpu, out); + StringCodecs.asciiOptimized().serialize(appleSplitCpu, out); ConfigurationDistinguisher.CODEC.serialize(configurationDistinguisher, out); STRING_LIST_CODEC.serialize((ImmutableList<String>) iosMultiCpus, out); STRING_LIST_CODEC.serialize((ImmutableList<String>) watchosCpus, out); @@ -537,7 +537,7 @@ public class AppleCommandLineOptions extends FragmentOptions { STRING_LIST_CODEC.serialize((ImmutableList<String>) macosCpus, out); LabelCodec.INSTANCE.serialize(defaultProvisioningProfile, out); LabelCodec.INSTANCE.serialize(xcodeVersionConfig, out); - serializeNullable(xcodeToolchain, out, FastStringCodec.INSTANCE); + serializeNullable(xcodeToolchain, out, StringCodecs.asciiOptimized()); AppleBitcodeMode.CODEC.serialize(appleBitcodeMode, out); out.writeBoolNoTag(enableAppleCrosstoolTransition); out.writeBoolNoTag(targetUsesAppleCrosstool); @@ -548,7 +548,7 @@ public class AppleCommandLineOptions extends FragmentOptions { AppleCommandLineOptions result = new AppleCommandLineOptions(); result.mandatoryMinimumVersion = in.readBool(); result.objcProviderFromLinked = in.readBool(); - result.xcodeVersion = deserializeNullable(in, FastStringCodec.INSTANCE); + result.xcodeVersion = deserializeNullable(in, StringCodecs.asciiOptimized()); result.iosSdkVersion = deserializeNullable(in, DottedVersion.CODEC); result.watchOsSdkVersion = deserializeNullable(in, DottedVersion.CODEC); result.tvOsSdkVersion = deserializeNullable(in, DottedVersion.CODEC); @@ -557,10 +557,10 @@ public class AppleCommandLineOptions extends FragmentOptions { result.watchosMinimumOs = deserializeNullable(in, DottedVersion.CODEC); result.tvosMinimumOs = deserializeNullable(in, DottedVersion.CODEC); result.macosMinimumOs = deserializeNullable(in, DottedVersion.CODEC); - result.iosCpu = FastStringCodec.INSTANCE.deserialize(in); + result.iosCpu = StringCodecs.asciiOptimized().deserialize(in); result.appleCrosstoolTop = LabelCodec.INSTANCE.deserialize(in); result.applePlatformType = PlatformType.CODEC.deserialize(in); - result.appleSplitCpu = FastStringCodec.INSTANCE.deserialize(in); + result.appleSplitCpu = StringCodecs.asciiOptimized().deserialize(in); result.configurationDistinguisher = ConfigurationDistinguisher.CODEC.deserialize(in); result.iosMultiCpus = STRING_LIST_CODEC.deserialize(in); result.watchosCpus = STRING_LIST_CODEC.deserialize(in); @@ -568,7 +568,7 @@ public class AppleCommandLineOptions extends FragmentOptions { result.macosCpus = STRING_LIST_CODEC.deserialize(in); result.defaultProvisioningProfile = LabelCodec.INSTANCE.deserialize(in); result.xcodeVersionConfig = LabelCodec.INSTANCE.deserialize(in); - result.xcodeToolchain = deserializeNullable(in, FastStringCodec.INSTANCE); + result.xcodeToolchain = deserializeNullable(in, StringCodecs.asciiOptimized()); result.appleBitcodeMode = AppleBitcodeMode.CODEC.deserialize(in); result.enableAppleCrosstoolTransition = in.readBool(); result.targetUsesAppleCrosstool = in.readBool(); diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java index 72b9e9a3bf..442408bede 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java @@ -35,8 +35,8 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.rules.apple.AppleCommandLineOptions.AppleBitcodeMode; import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.skyframe.serialization.EnumCodec; -import com.google.devtools.build.lib.skyframe.serialization.FastStringCodec; import com.google.devtools.build.lib.skyframe.serialization.SerializationException; +import com.google.devtools.build.lib.skyframe.serialization.strings.StringCodecs; import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable; import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory; @@ -740,7 +740,7 @@ public class AppleConfiguration extends BuildConfiguration.Fragment { static AppleConfiguration deserialize(CodedInputStream in) throws IOException, SerializationException { AppleCommandLineOptions options = AppleCommandLineOptions.deserialize(in); - String iosCpu = FastStringCodec.INSTANCE.deserialize(in); + String iosCpu = StringCodecs.asciiOptimized().deserialize(in); DottedVersion xcodeVersion = deserializeNullable(in, DottedVersion.CODEC); return new AppleConfiguration( options, diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/BUILD b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/BUILD index 45e652f460..331278f7a6 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/BUILD +++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/BUILD @@ -9,7 +9,7 @@ filegroup( java_library( name = "serialization", - srcs = glob(["*.java"]), + srcs = glob(["**/*.java"]), deps = [ "//src/main/java/com/google/devtools/build/lib:preconditions", "//src/main/java/com/google/devtools/build/lib/cmdline", diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/LabelCodec.java b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/LabelCodec.java index 6f8881dfef..89978baa67 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/LabelCodec.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/LabelCodec.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.PackageIdentifier; +import com.google.devtools.build.lib.skyframe.serialization.strings.StringCodecs; import com.google.protobuf.CodedInputStream; import com.google.protobuf.CodedOutputStream; import java.io.IOException; @@ -26,7 +27,7 @@ public class LabelCodec implements ObjectCodec<Label> { // TODO(michajlo): Share single instance of package id codec among all the codecs. private final PackageIdentifierCodec packageIdCodec = new PackageIdentifierCodec(); - private final ObjectCodec<String> stringCodec = new FastStringCodec(); + private final ObjectCodec<String> stringCodec = StringCodecs.asciiOptimized(); @Override public Class<Label> getEncodedClass() { diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/PathCodec.java b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/PathCodec.java index 4aca0b07ed..38fb13d7e5 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/PathCodec.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/PathCodec.java @@ -40,7 +40,8 @@ public class PathCodec implements ObjectCodec<Path> { } @Override - public void serialize(Path path, CodedOutputStream codedOut) throws IOException { + public void serialize(Path path, CodedOutputStream codedOut) + throws IOException, SerializationException { Preconditions.checkState( path.getFileSystem() == fileSystem, "Path's FileSystem (%s) did not match the configured FileSystem (%s)", @@ -50,7 +51,8 @@ public class PathCodec implements ObjectCodec<Path> { } @Override - public Path deserialize(CodedInputStream codedIn) throws IOException { + public Path deserialize(CodedInputStream codedIn) + throws IOException, SerializationException { PathFragment pathFragment = pathFragmentCodec.deserialize(codedIn); return fileSystem.getPath(pathFragment); } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/PathFragmentCodec.java b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/PathFragmentCodec.java index 8cd06f2249..a2f9e25955 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/PathFragmentCodec.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/PathFragmentCodec.java @@ -14,6 +14,7 @@ package com.google.devtools.build.lib.skyframe.serialization; +import com.google.devtools.build.lib.skyframe.serialization.strings.StringCodecs; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.protobuf.CodedInputStream; import com.google.protobuf.CodedOutputStream; @@ -22,7 +23,7 @@ import java.io.IOException; /** Custom serialization for {@link PathFragment}s. */ class PathFragmentCodec implements ObjectCodec<PathFragment> { - private final FastStringCodec stringCodec = new FastStringCodec(); + private final ObjectCodec<String> stringCodec = StringCodecs.asciiOptimized(); @Override public Class<PathFragment> getEncodedClass() { @@ -30,7 +31,8 @@ class PathFragmentCodec implements ObjectCodec<PathFragment> { } @Override - public void serialize(PathFragment pathFragment, CodedOutputStream codedOut) throws IOException { + public void serialize(PathFragment pathFragment, CodedOutputStream codedOut) + throws IOException, SerializationException { codedOut.writeInt32NoTag(pathFragment.getDriveLetter()); codedOut.writeBoolNoTag(pathFragment.isAbsolute()); codedOut.writeInt32NoTag(pathFragment.segmentCount()); @@ -40,7 +42,8 @@ class PathFragmentCodec implements ObjectCodec<PathFragment> { } @Override - public PathFragment deserialize(CodedInputStream codedIn) throws IOException { + public PathFragment deserialize(CodedInputStream codedIn) + throws IOException, SerializationException { char driveLetter = (char) codedIn.readInt32(); boolean isAbsolute = codedIn.readBool(); int segmentCount = codedIn.readInt32(); diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/SerializationCommonUtils.java b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/SerializationCommonUtils.java index 5efea4b5cd..85abc95e17 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/SerializationCommonUtils.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/SerializationCommonUtils.java @@ -16,6 +16,7 @@ package com.google.devtools.build.lib.skyframe.serialization; import com.google.devtools.build.lib.cmdline.LabelSyntaxException; import com.google.devtools.build.lib.cmdline.RepositoryName; +import com.google.devtools.build.lib.skyframe.serialization.strings.StringCodecs; import com.google.protobuf.ByteString; import com.google.protobuf.CodedInputStream; import com.google.protobuf.CodedOutputStream; @@ -24,7 +25,7 @@ import java.io.IOException; /** Common utilities for serialization. */ public class SerializationCommonUtils { public static final ImmutableListCodec<String> STRING_LIST_CODEC = - new ImmutableListCodec<>(FastStringCodec.INSTANCE); + new ImmutableListCodec<>(StringCodecs.asciiOptimized()); private static final ByteString DEFAULT_REPOSITORY = ByteString.copyFromUtf8(RepositoryName.DEFAULT.getName()); private static final ByteString MAIN_REPOSITORY = diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/FastStringCodec.java b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/strings/FastStringCodec.java index 23bf38baae..e763f70b50 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/FastStringCodec.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/strings/FastStringCodec.java @@ -12,8 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. -package com.google.devtools.build.lib.skyframe.serialization; +package com.google.devtools.build.lib.skyframe.serialization.strings; +import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec; import com.google.protobuf.CodedInputStream; import com.google.protobuf.CodedOutputStream; import java.io.IOException; @@ -29,8 +30,7 @@ import sun.misc.Unsafe; * still handle UTF-8, though less efficiently than {@link StringCodec}. Should be used when the * majority of the data passing through will be ascii. */ -public class FastStringCodec implements ObjectCodec<String> { - public static final FastStringCodec INSTANCE = new FastStringCodec(); +class FastStringCodec implements ObjectCodec<String> { private static final Unsafe theUnsafe; private static final long STRING_VALUE_OFFSET; diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/StringCodec.java b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/strings/StringCodec.java index 4b1bc70b7b..8aaba608cc 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/StringCodec.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/strings/StringCodec.java @@ -12,14 +12,15 @@ // See the License for the specific language governing permissions and // limitations under the License. -package com.google.devtools.build.lib.skyframe.serialization; +package com.google.devtools.build.lib.skyframe.serialization.strings; +import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec; import com.google.protobuf.CodedInputStream; import com.google.protobuf.CodedOutputStream; import java.io.IOException; /** Dead-simple serialization for {@link String}s. */ -public class StringCodec implements ObjectCodec<String> { +class StringCodec implements ObjectCodec<String> { @Override public Class<String> getEncodedClass() { diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/strings/StringCodecs.java b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/strings/StringCodecs.java new file mode 100644 index 0000000000..24f36ecb07 --- /dev/null +++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/strings/StringCodecs.java @@ -0,0 +1,43 @@ +// 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.strings; + +import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec; + +/** Utility for accessing (potentially platform-specific) {@link String} {@link ObjectCodec}s. */ +public final class StringCodecs { + + private static final FastStringCodec fastStringCodec = new FastStringCodec(); + private static final StringCodec stringCodec = new StringCodec(); + + private StringCodecs() {} + + /** + * Returns singleton instance optimized for almost-always ASCII data. This instance can still + * serialize/deserialize UTF-8 data, but with potentially worse performance than + * {@link #simple()}. + */ + public static ObjectCodec<String> asciiOptimized() { + return fastStringCodec; + } + + /** + * Returns singleton instance of basic implementation. Should be preferred over + * {@link #asciiOptimized()} when a sufficient amount of UTF-8 data is expected. + */ + public static ObjectCodec<String> simple() { + return stringCodec; + } +} 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 50481dcba0..6591beec6a 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.strings.StringCodecs; import com.google.devtools.build.lib.skyframe.serialization.testutils.AbstractObjectCodecTest; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -26,7 +27,7 @@ public class ImmutableListCodecTest extends AbstractObjectCodecTest<ImmutableLis @SuppressWarnings("unchecked") public ImmutableListCodecTest() { super( - new ImmutableListCodec<>(new StringCodec()), + new ImmutableListCodec<>(StringCodecs.simple()), ImmutableList.of(), ImmutableList.of("foo"), ImmutableList.of("bar", "baz")); 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 051667daf3..f1f08cdd82 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.strings.StringCodecs; import com.google.devtools.build.lib.skyframe.serialization.testutils.AbstractObjectCodecTest; import com.google.devtools.build.lib.vfs.PathFragment; import org.junit.runner.RunWith; @@ -32,7 +33,7 @@ public class PrecomputedValueCodecTest extends AbstractObjectCodecTest<Precomput ObjectCodecs.newBuilder() .asClassKeyedBuilder() // Note no PathFragmentCodec. - .add(String.class, new FastStringCodec()) + .add(String.class, StringCodecs.asciiOptimized()) .add(Label.class, LabelCodec.INSTANCE) .build()), new PrecomputedValue(PathFragment.create("java serializable 1")), 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/strings/FastStringCodecTest.java index bad3e6d13c..b472f54b49 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/strings/FastStringCodecTest.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package com.google.devtools.build.lib.skyframe.serialization; +package com.google.devtools.build.lib.skyframe.serialization.strings; import com.google.common.testing.EqualsTester; import com.google.devtools.build.lib.skyframe.serialization.testutils.AbstractObjectCodecTest; 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/strings/StringCodecTest.java index b33c54c4c7..c1b6f5dbe3 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/strings/StringCodecTest.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package com.google.devtools.build.lib.skyframe.serialization; +package com.google.devtools.build.lib.skyframe.serialization.strings; import com.google.devtools.build.lib.skyframe.serialization.testutils.AbstractObjectCodecTest; import org.junit.runner.RunWith; |