diff options
220 files changed, 1244 insertions, 1179 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ActionCacheChecker.java b/src/main/java/com/google/devtools/build/lib/actions/ActionCacheChecker.java index 16f926a2fc..b5d6c1ce62 100644 --- a/src/main/java/com/google/devtools/build/lib/actions/ActionCacheChecker.java +++ b/src/main/java/com/google/devtools/build/lib/actions/ActionCacheChecker.java @@ -340,7 +340,7 @@ public class ActionCacheChecker { } List<PathFragment> inputExecPaths = new ArrayList<>(); for (String path : entry.getPaths()) { - PathFragment execPath = new PathFragment(path); + PathFragment execPath = PathFragment.create(path); // Code assumes that action has only 1-2 outputs and ArrayList.contains() will be // most efficient. if (!outputs.contains(execPath)) { diff --git a/src/main/java/com/google/devtools/build/lib/actions/ActionInputHelper.java b/src/main/java/com/google/devtools/build/lib/actions/ActionInputHelper.java index c63fd5b93a..c4567d8ce4 100644 --- a/src/main/java/com/google/devtools/build/lib/actions/ActionInputHelper.java +++ b/src/main/java/com/google/devtools/build/lib/actions/ActionInputHelper.java @@ -81,7 +81,7 @@ public final class ActionInputHelper { @Override public PathFragment getExecPath() { - return new PathFragment(path); + return PathFragment.create(path); } @Override @@ -170,7 +170,7 @@ public final class ActionInputHelper { * relative to that Artifact. */ public static TreeFileArtifact treeFileArtifact(Artifact parent, String relativePath) { - return treeFileArtifact(parent, new PathFragment(relativePath)); + return treeFileArtifact(parent, PathFragment.create(relativePath)); } /** Returns an Iterable of TreeFileArtifacts with the given parent and parent relative paths. */ diff --git a/src/main/java/com/google/devtools/build/lib/actions/Artifact.java b/src/main/java/com/google/devtools/build/lib/actions/Artifact.java index a5b865f023..7c6a87087b 100644 --- a/src/main/java/com/google/devtools/build/lib/actions/Artifact.java +++ b/src/main/java/com/google/devtools/build/lib/actions/Artifact.java @@ -547,7 +547,7 @@ public class Artifact && relativePath.getSegment(0).equals(Label.EXTERNAL_PATH_PREFIX)) { // Turn external/repo/foo into ../repo/foo. relativePath = relativePath.relativeTo(Label.EXTERNAL_PATH_PREFIX); - relativePath = new PathFragment("..").getRelative(relativePath); + relativePath = PathFragment.create("..").getRelative(relativePath); } return relativePath; } diff --git a/src/main/java/com/google/devtools/build/lib/actions/ArtifactFactory.java b/src/main/java/com/google/devtools/build/lib/actions/ArtifactFactory.java index 3f2f360259..ddeb001339 100644 --- a/src/main/java/com/google/devtools/build/lib/actions/ArtifactFactory.java +++ b/src/main/java/com/google/devtools/build/lib/actions/ArtifactFactory.java @@ -127,7 +127,7 @@ public class ArtifactFactory implements ArtifactResolver, ArtifactSerializer, Ar */ public ArtifactFactory(Path execRootParent, String derivedPathPrefix) { this.execRootParent = execRootParent; - this.derivedPathPrefix = new PathFragment(derivedPathPrefix); + this.derivedPathPrefix = PathFragment.create(derivedPathPrefix); } /** diff --git a/src/main/java/com/google/devtools/build/lib/actions/MiddlemanFactory.java b/src/main/java/com/google/devtools/build/lib/actions/MiddlemanFactory.java index 404b0de10d..2a19d03a37 100644 --- a/src/main/java/com/google/devtools/build/lib/actions/MiddlemanFactory.java +++ b/src/main/java/com/google/devtools/build/lib/actions/MiddlemanFactory.java @@ -175,8 +175,8 @@ public final class MiddlemanFactory { PathFragment packageDirectory, String purpose, Iterable<Artifact> inputs, Root middlemanDir) { String escapedPackageDirectory = Actions.escapedPath(packageDirectory.getPathString()); PathFragment stampName = - new PathFragment("_middlemen/" + (purpose.startsWith(escapedPackageDirectory) - ? purpose : (escapedPackageDirectory + purpose))); + PathFragment.create("_middlemen/" + (purpose.startsWith(escapedPackageDirectory) + ? purpose : (escapedPackageDirectory + purpose))); Artifact stampFile = artifactFactory.getDerivedArtifact(stampName, middlemanDir, actionRegistry.getOwner()); MiddlemanAction.create( @@ -186,7 +186,7 @@ public final class MiddlemanFactory { private Artifact getStampFileArtifact(String middlemanName, String purpose, Root middlemanDir) { String escapedFilename = Actions.escapedPath(middlemanName); - PathFragment stampName = new PathFragment("_middlemen/" + escapedFilename + "-" + purpose); + PathFragment stampName = PathFragment.create("_middlemen/" + escapedFilename + "-" + purpose); Artifact stampFile = artifactFactory.getDerivedArtifact(stampName, middlemanDir, actionRegistry.getOwner()); return stampFile; diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java index 7c18968f6b..036e7473b1 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java @@ -478,7 +478,7 @@ public class BuildView { String bzlFileLoadLikeString = aspect.substring(0, delimiterPosition); if (!bzlFileLoadLikeString.startsWith("//") && !bzlFileLoadLikeString.startsWith("@")) { // "Legacy" behavior of '--aspects' parameter. - bzlFileLoadLikeString = new PathFragment("/" + bzlFileLoadLikeString).toString(); + bzlFileLoadLikeString = PathFragment.create("/" + bzlFileLoadLikeString).toString(); if (bzlFileLoadLikeString.endsWith(".bzl")) { bzlFileLoadLikeString = bzlFileLoadLikeString.substring(0, bzlFileLoadLikeString.length() - ".bzl".length()); diff --git a/src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java b/src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java index e38c3d9cc8..ae8736cdc9 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java @@ -298,6 +298,6 @@ public final class CommandHelper { private PathFragment shellPath(Map<String, String> executionInfo) { // Use vanilla /bin/bash for actions running on mac machines. return executionInfo.containsKey(ExecutionRequirements.REQUIRES_DARWIN) - ? new PathFragment("/bin/bash") : ruleContext.getConfiguration().getShellExecutable(); + ? PathFragment.create("/bin/bash") : ruleContext.getConfiguration().getShellExecutable(); } } diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java index a54befb9e3..3ebdd78f76 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java @@ -554,7 +554,7 @@ public final class RuleContext extends TargetContext * thus guaranteeing that it never clashes with artifacts created by rules in other packages. */ public Artifact getPackageRelativeArtifact(String relative, Root root) { - return getPackageRelativeArtifact(new PathFragment(relative), root); + return getPackageRelativeArtifact(PathFragment.create(relative), root); } /** @@ -562,7 +562,7 @@ public final class RuleContext extends TargetContext * guaranteeing that it never clashes with artifacts created by rules in other packages. */ public Artifact getBinArtifact(String relative) { - return getBinArtifact(new PathFragment(relative)); + return getBinArtifact(PathFragment.create(relative)); } public Artifact getBinArtifact(PathFragment relative) { @@ -575,7 +575,7 @@ public final class RuleContext extends TargetContext * guaranteeing that it never clashes with artifacts created by rules in other packages. */ public Artifact getGenfilesArtifact(String relative) { - return getGenfilesArtifact(new PathFragment(relative)); + return getGenfilesArtifact(PathFragment.create(relative)); } public Artifact getGenfilesArtifact(PathFragment relative) { @@ -664,7 +664,7 @@ public final class RuleContext extends TargetContext */ public Artifact getUniqueDirectoryArtifact( String uniqueDirectory, String relative, Root root) { - return getUniqueDirectoryArtifact(uniqueDirectory, new PathFragment(relative), root); + return getUniqueDirectoryArtifact(uniqueDirectory, PathFragment.create(relative), root); } /** @@ -1235,7 +1235,7 @@ public final class RuleContext extends TargetContext * <p>For example "pkg/dir/name" -> "pkg/<fragment>/rule/dir/name. */ public final PathFragment getUniqueDirectory(String fragment) { - return AnalysisUtils.getUniqueDirectory(getLabel(), new PathFragment(fragment)); + return AnalysisUtils.getUniqueDirectory(getLabel(), PathFragment.create(fragment)); } /** diff --git a/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java b/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java index 2ef4c2ca33..33c5d0aab2 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java @@ -785,7 +785,7 @@ public final class Runfiles { * created. */ public Builder(String workspace, boolean legacyExternalRunfiles) { - this(new PathFragment(workspace), legacyExternalRunfiles); + this(PathFragment.create(workspace), legacyExternalRunfiles); } /** diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactAction.java index 67dae4d2ba..26eeadc3ff 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactAction.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactAction.java @@ -267,7 +267,7 @@ public final class PopulateTreeArtifactAction extends AbstractAction { for (String line : FileSystemUtils.iterateLinesAsLatin1(archiveManifest.getPath())) { if (!line.isEmpty()) { - PathFragment path = new PathFragment(line); + PathFragment path = PathFragment.create(line); if (!path.isNormalized() || path.isAbsolute()) { throw new IllegalManifestFileException( diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java index ce1316f56d..664429ed00 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java @@ -999,7 +999,7 @@ public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifie * commands to be executed. */ public Builder setShellCommand(Iterable<String> command) { - this.executable = new PathFragment(Iterables.getFirst(command, null)); + this.executable = PathFragment.create(Iterables.getFirst(command, null)); // The first item of the commands is the shell executable that should be used. this.executableArgs = ImmutableList.copyOf(Iterables.skip(command, 1)); this.isShellCommand = true; diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BinTools.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BinTools.java index 73cc667034..2dd779f011 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/config/BinTools.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BinTools.java @@ -139,7 +139,7 @@ public final class BinTools { if (!embeddedTools.contains(embedPath)) { return null; } - return new PathFragment("_bin").getRelative(new PathFragment(embedPath).getBaseName()); + return PathFragment.create("_bin").getRelative(PathFragment.create(embedPath).getBaseName()); } public Artifact getEmbeddedArtifact(String embedPath, ArtifactFactory artifactFactory) { @@ -174,7 +174,7 @@ public final class BinTools { private void setupTool(String embeddedPath) throws ExecException { Path sourcePath = directories.getEmbeddedBinariesRoot().getRelative(embeddedPath); - Path linkPath = binDir.getRelative(new PathFragment(embeddedPath).getBaseName()); + Path linkPath = binDir.getRelative(PathFragment.create(embeddedPath).getBaseName()); linkTool(sourcePath, linkPath); } diff --git a/src/main/java/com/google/devtools/build/lib/bazel/BazelWorkspaceStatusModule.java b/src/main/java/com/google/devtools/build/lib/bazel/BazelWorkspaceStatusModule.java index 2f21d85387..2dbc2282a0 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/BazelWorkspaceStatusModule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/BazelWorkspaceStatusModule.java @@ -300,9 +300,9 @@ public class BazelWorkspaceStatusModule extends BlazeModule { Root root = env.getDirectories().getBuildDataDirectory(workspaceName); Artifact stableArtifact = factory.getDerivedArtifact( - new PathFragment("stable-status.txt"), root, artifactOwner); + PathFragment.create("stable-status.txt"), root, artifactOwner); Artifact volatileArtifact = factory.getConstantMetadataArtifact( - new PathFragment("volatile-status.txt"), root, artifactOwner); + PathFragment.create("volatile-status.txt"), root, artifactOwner); return new BazelWorkspaceStatusAction(options, env.getClientEnv(), env.getDirectories().getWorkspace(), stableArtifact, volatileArtifact, getHostname()); diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/CompressedTarFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/CompressedTarFunction.java index 55cd813d47..2e245b42f8 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/CompressedTarFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/CompressedTarFunction.java @@ -59,7 +59,7 @@ public abstract class CompressedTarFunction implements Decompressor { FileSystemUtils.createDirectoryAndParents(filename); } else { if (entry.isSymbolicLink() || entry.isLink()) { - PathFragment linkName = new PathFragment(entry.getLinkName()); + PathFragment linkName = PathFragment.create(entry.getLinkName()); boolean wasAbsolute = linkName.isAbsolute(); // Strip the prefix from the link path if set. linkName = diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/MavenServerFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/MavenServerFunction.java index a25bc2cf89..76dc213e22 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/MavenServerFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/MavenServerFunction.java @@ -98,8 +98,8 @@ public class MavenServerFunction implements SkyFunction { if (!mapper.isAttributeValueExplicitlySpecified("settings_file")) { settingsFiles = getDefaultSettingsFile(directories, env); } else { - PathFragment settingsFilePath = new PathFragment( - mapper.get("settings_file", Type.STRING)); + PathFragment settingsFilePath = + PathFragment.create(mapper.get("settings_file", Type.STRING)); RootedPath settingsPath = RootedPath.toRootedPath( directories.getWorkspace().getRelative(settingsFilePath), PathFragment.EMPTY_FRAGMENT); @@ -183,7 +183,8 @@ public class MavenServerFunction implements SkyFunction { ImmutableList.Builder<SkyKey> settingsFilesBuilder = ImmutableList.builder(); SkyKey systemKey = null; if (m2Home != null) { - PathFragment mavenInstallSettings = new PathFragment(m2Home).getRelative("conf/settings.xml"); + PathFragment mavenInstallSettings = + PathFragment.create(m2Home).getRelative("conf/settings.xml"); systemKey = FileValue.key( RootedPath.toRootedPath(directories.getWorkspace().getRelative(mavenInstallSettings), PathFragment.EMPTY_FRAGMENT)); @@ -194,7 +195,7 @@ public class MavenServerFunction implements SkyFunction { String userHome = System.getenv("HOME"); SkyKey userKey = null; if (userHome != null) { - PathFragment userSettings = new PathFragment(userHome).getRelative(".m2/settings.xml"); + PathFragment userSettings = PathFragment.create(userHome).getRelative(".m2/settings.xml"); userKey = FileValue.key(RootedPath.toRootedPath( directories.getWorkspace().getRelative(userSettings), PathFragment.EMPTY_FRAGMENT)); diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/StripPrefixedPath.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/StripPrefixedPath.java index 46650d6150..d26cd993bf 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/StripPrefixedPath.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/StripPrefixedPath.java @@ -64,9 +64,9 @@ public final class StripPrefixedPath { * Normalize the path and, if it is absolute, make it relative (e.g., /foo/bar becomes foo/bar). */ private static PathFragment relativize(String path) { - PathFragment entryPath = new PathFragment(path).normalize(); + PathFragment entryPath = PathFragment.create(path).normalize(); if (entryPath.isAbsolute()) { - entryPath = new PathFragment(entryPath.getSafePathString().substring( + entryPath = PathFragment.create(entryPath.getSafePathString().substring( entryPath.windowsVolume().length() + 1)); } return entryPath; diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/ZipDecompressor.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/ZipDecompressor.java index d43a11772d..244e8597c9 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/ZipDecompressor.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/ZipDecompressor.java @@ -124,7 +124,7 @@ public class ZipDecompressor implements Decompressor { // For symlinks, the "compressed data" is actually the target name. int read = reader.getInputStream(entry).read(buffer); Preconditions.checkState(read == buffer.length); - PathFragment target = new PathFragment(new String(buffer, Charset.defaultCharset())) + PathFragment target = PathFragment.create(new String(buffer, Charset.defaultCharset())) .normalize(); if (!target.isNormalized()) { throw new IOException("Zip entries cannot refer to files outside of their directory: " diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/downloader/HttpDownloader.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/downloader/HttpDownloader.java index 0af26ec596..c35db986a5 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/downloader/HttpDownloader.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/downloader/HttpDownloader.java @@ -222,7 +222,7 @@ public class HttpDownloader { } String basename = MoreObjects.firstNonNull( - Strings.emptyToNull(new PathFragment(url.getPath()).getBaseName()), + Strings.emptyToNull(PathFragment.create(url.getPath()).getBaseName()), "temp"); if (!type.get().isEmpty()) { String suffix = "." + type.get(); diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContext.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContext.java index deff590162..7e382b2c0a 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContext.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContext.java @@ -152,7 +152,7 @@ public class SkylarkRepositoryContext { private SkylarkPath getPath(String method, Object path) throws EvalException, InterruptedException { if (path instanceof String) { - PathFragment pathFragment = new PathFragment(path.toString()); + PathFragment pathFragment = PathFragment.create(path.toString()); return new SkylarkPath(pathFragment.isAbsolute() ? outputDirectory.getFileSystem().getPath(path.toString()) : outputDirectory.getRelative(pathFragment)); @@ -426,7 +426,7 @@ public class SkylarkRepositoryContext { "Program argument of which() may not contains a / or a \\ ('" + program + "' given)"); } for (String p : getPathEnvironment()) { - PathFragment fragment = new PathFragment(p); + PathFragment fragment = PathFragment.create(p); if (fragment.isAbsolute()) { // We ignore relative path as they don't mean much here (relative to where? the workspace // root?). diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java index 49656875e0..54eccb7065 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java @@ -61,20 +61,20 @@ public class BazelConfiguration extends Fragment { if (OS.getCurrent() == OS.WINDOWS) { String path = System.getenv("BAZEL_SH"); if (path != null) { - return new PathFragment(path); + return PathFragment.create(path); } else { - return new PathFragment("c:/tools/msys64/usr/bin/bash.exe"); + return PathFragment.create("c:/tools/msys64/usr/bin/bash.exe"); } } if (OS.getCurrent() == OS.FREEBSD) { String path = System.getenv("BAZEL_SH"); if (path != null) { - return new PathFragment(path); + return PathFragment.create(path); } else { - return new PathFragment("/usr/local/bin/bash"); + return PathFragment.create("/usr/local/bin/bash"); } } - return new PathFragment("/bin/bash"); + return PathFragment.create("/bin/bash"); } @Override @@ -101,10 +101,10 @@ public class BazelConfiguration extends Fragment { String newPath = ""; if (sh != null && sh.getParentDirectory() != null) { newPath = sh.getParentDirectory().getPathString(); - if (sh.getParentDirectory().endsWith(new PathFragment("usr/bin"))) { + if (sh.getParentDirectory().endsWith(PathFragment.create("usr/bin"))) { newPath += ";" + sh.getParentDirectory().getParentDirectory().replaceName("bin").getPathString(); - } else if (sh.getParentDirectory().endsWith(new PathFragment("bin"))) { + } else if (sh.getParentDirectory().endsWith(PathFragment.create("bin"))) { newPath += ";" + sh.getParentDirectory().replaceName("usr").getRelative("bin").getPathString(); } diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java index 6373eb66ce..acf6f788e9 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java @@ -61,7 +61,7 @@ public class AndroidNdkRepositoryFunction extends RepositoryFunction { private static final String TOOLCHAIN_NAME_PREFIX = "toolchain-"; private static final String PATH_ENV_VAR = "ANDROID_NDK_HOME"; - private static final PathFragment PLATFORMS_DIR = new PathFragment("platforms"); + private static final PathFragment PLATFORMS_DIR = PathFragment.create("platforms"); private static final Iterable<String> PATH_ENV_VAR_AS_LIST = ImmutableList.of(PATH_ENV_VAR); @@ -229,7 +229,7 @@ public class AndroidNdkRepositoryFunction extends RepositoryFunction { private static PathFragment getAndroidNdkHomeEnvironmentVar( Path workspace, Map<String, String> env) { - return workspace.getRelative(new PathFragment(env.get(PATH_ENV_VAR))).asFragment(); + return workspace.getRelative(PathFragment.create(env.get(PATH_ENV_VAR))).asFragment(); } private static String createBuildFile(String ruleName, List<CrosstoolStlPair> crosstools) { diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryFunction.java index 0c98f90ab5..14b05372df 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryFunction.java @@ -56,9 +56,9 @@ import javax.annotation.Nullable; * Implementation of the {@code android_sdk_repository} rule. */ public class AndroidSdkRepositoryFunction extends RepositoryFunction { - private static final PathFragment BUILD_TOOLS_DIR = new PathFragment("build-tools"); - private static final PathFragment PLATFORMS_DIR = new PathFragment("platforms"); - private static final PathFragment SYSTEM_IMAGES_DIR = new PathFragment("system-images"); + private static final PathFragment BUILD_TOOLS_DIR = PathFragment.create("build-tools"); + private static final PathFragment PLATFORMS_DIR = PathFragment.create("platforms"); + private static final PathFragment SYSTEM_IMAGES_DIR = PathFragment.create("system-images"); private static final Revision MIN_BUILD_TOOLS_REVISION = new Revision(24, 0, 3); private static final String PATH_ENV_VAR = "ANDROID_HOME"; private static final ImmutableList<String> PATH_ENV_VAR_AS_LIST = ImmutableList.of(PATH_ENV_VAR); @@ -250,7 +250,7 @@ public class AndroidSdkRepositoryFunction extends RepositoryFunction { private static PathFragment getAndroidHomeEnvironmentVar( Path workspace, Map<String, String> env) { - return workspace.getRelative(new PathFragment(env.get(PATH_ENV_VAR))).asFragment(); + return workspace.getRelative(PathFragment.create(env.get(PATH_ENV_VAR))).asFragment(); } private static String getStringResource(String name) { diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java index 5f398560d5..293091f6fa 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java @@ -226,7 +226,7 @@ public class BazelJavaSemantics implements JavaSemantics { if (!isRunfilesEnabled) { buffer.append("$(rlocation "); PathFragment runfilePath = - new PathFragment(new PathFragment(workspacePrefix), artifact.getRunfilesPath()); + PathFragment.create(PathFragment.create(workspacePrefix), artifact.getRunfilesPath()); buffer.append(runfilePath.normalize().getPathString()); buffer.append(")"); } else { diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java index a913927f8f..e4b02626b4 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java @@ -55,7 +55,7 @@ public class BazelPythonSemantics implements PythonSemantics { FileTypeSet.of(BazelPyRuleClasses.PYTHON_SOURCE), "srcs", "deps", "data"); - public static final PathFragment ZIP_RUNFILES_DIRECTORY_NAME = new PathFragment("runfiles"); + public static final PathFragment ZIP_RUNFILES_DIRECTORY_NAME = PathFragment.create("runfiles"); @Override public void validate(RuleContext ruleContext, PyCommon common) { @@ -86,7 +86,7 @@ public class BazelPythonSemantics implements PythonSemantics { PathFragment packageFragment = ruleContext.getLabel().getPackageIdentifier().getRunfilesPath(); // Python scripts start with x.runfiles/ as the module space, so everything must be manually // adjusted to be relative to the workspace name. - packageFragment = new PathFragment(ruleContext.getWorkspaceName()) + packageFragment = PathFragment.create(ruleContext.getWorkspaceName()) .getRelative(packageFragment); for (String importsAttr : ruleContext.attributes().get("imports", Type.STRING_LIST)) { importsAttr = ruleContext.expandMakeVariables("includes", importsAttr); @@ -201,7 +201,7 @@ public class BazelPythonSemantics implements PythonSemantics { } private static boolean isUnderWorkspace(PathFragment path) { - return !path.startsWith(Label.EXTERNAL_PACKAGE_NAME); + return !path.startsWith(PathFragment.create(Label.EXTERNAL_PATH_PREFIX)); } private static String getZipRunfilesPath(PathFragment path, PathFragment workspaceName) { @@ -220,7 +220,7 @@ public class BazelPythonSemantics implements PythonSemantics { } private static String getZipRunfilesPath(String path, PathFragment workspaceName) { - return getZipRunfilesPath(new PathFragment(path), workspaceName); + return getZipRunfilesPath(PathFragment.create(path), workspaceName); } private static void createPythonZipAction( diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/OutputDirectoryLinksUtils.java b/src/main/java/com/google/devtools/build/lib/buildtool/OutputDirectoryLinksUtils.java index 0ae420a20c..40d8d0fb80 100644 --- a/src/main/java/com/google/devtools/build/lib/buildtool/OutputDirectoryLinksUtils.java +++ b/src/main/java/com/google/devtools/build/lib/buildtool/OutputDirectoryLinksUtils.java @@ -132,7 +132,7 @@ public class OutputDirectoryLinksUtils { // Helper to getPrettyPath. Returns file, relativized w.r.t. the referent of // "linkname", or null if it was a not a child. private static PathFragment relativize(Path file, Path workspaceDirectory, String linkname) { - PathFragment link = new PathFragment(linkname); + PathFragment link = PathFragment.create(linkname); try { Path dir = workspaceDirectory.getRelative(link); PathFragment levelOneLinkTarget = dir.readSymbolicLink(); @@ -171,7 +171,7 @@ public class OutputDirectoryLinksUtils { removeLink(workspace, symlinkPrefix + "bin", failures); removeLink(workspace, symlinkPrefix + "testlogs", failures); removeLink(workspace, symlinkPrefix + "genfiles", failures); - FileSystemUtils.removeDirectoryAndParents(workspace, new PathFragment(symlinkPrefix)); + FileSystemUtils.removeDirectoryAndParents(workspace, PathFragment.create(symlinkPrefix)); if (!failures.isEmpty()) { eventHandler.handle(Event.warn(String.format( "failed to remove one or more convenience symlinks for prefix '%s':\n %s", symlinkPrefix, diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/Label.java b/src/main/java/com/google/devtools/build/lib/cmdline/Label.java index 1d31f2edc2..4bc5a4caae 100644 --- a/src/main/java/com/google/devtools/build/lib/cmdline/Label.java +++ b/src/main/java/com/google/devtools/build/lib/cmdline/Label.java @@ -51,8 +51,8 @@ import javax.annotation.Nullable; @Immutable @ThreadSafe public final class Label implements Comparable<Label>, Serializable, SkylarkPrintableValue { - public static final PathFragment EXTERNAL_PACKAGE_NAME = new PathFragment("external"); - public static final PathFragment EXTERNAL_PACKAGE_FILE_NAME = new PathFragment("WORKSPACE"); + public static final PathFragment EXTERNAL_PACKAGE_NAME = PathFragment.create("external"); + public static final PathFragment EXTERNAL_PACKAGE_FILE_NAME = PathFragment.create("WORKSPACE"); public static final String DEFAULT_REPOSITORY_DIRECTORY = "__main__"; /** @@ -61,11 +61,11 @@ public final class Label implements Comparable<Label>, Serializable, SkylarkPrin */ public static final ImmutableSet<PathFragment> ABSOLUTE_PACKAGE_NAMES = ImmutableSet.of( // Used for select - new PathFragment("conditions"), + PathFragment.create("conditions"), // dependencies that are a function of the configuration - new PathFragment("tools/defaults"), + PathFragment.create("tools/defaults"), // Visibility is labels aren't actually targets - new PathFragment("visibility"), + PathFragment.create("visibility"), // There is only one //external package Label.EXTERNAL_PACKAGE_NAME); diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java b/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java index 5688a3184f..3c82f6c2f6 100644 --- a/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java +++ b/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java @@ -49,7 +49,7 @@ public final class PackageIdentifier implements Comparable<PackageIdentifier>, S PathFragment.EMPTY_FRAGMENT); public static PackageIdentifier createInMainRepo(String name) { - return createInMainRepo(new PathFragment(name)); + return createInMainRepo(PathFragment.create(name)); } public static PackageIdentifier createInMainRepo(PathFragment name) { @@ -79,7 +79,7 @@ public final class PackageIdentifier implements Comparable<PackageIdentifier>, S ? Preconditions.checkNotNull( execPath.getParentDirectory(), "Must pass in files, not root directory") : execPath; - if (tofind.startsWith(new PathFragment(Label.EXTERNAL_PATH_PREFIX))) { + if (tofind.startsWith(PathFragment.create(Label.EXTERNAL_PATH_PREFIX))) { // TODO(ulfjack): Remove this when kchodorow@'s exec root rearrangement has been rolled out. RepositoryName repository = RepositoryName.create("@" + tofind.getSegment(1)); return PackageIdentifier.create(repository, tofind.subFragment(2, tofind.segmentCount())); @@ -137,7 +137,7 @@ public final class PackageIdentifier implements Comparable<PackageIdentifier>, S throw new LabelSyntaxException(error); } - return create(repo, new PathFragment(packageName)); + return create(repo, PathFragment.create(packageName)); } public RepositoryName getRepository() { diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java b/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java index ae1fe70270..b9564e79c5 100644 --- a/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java +++ b/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java @@ -232,7 +232,7 @@ public final class RepositoryName implements Serializable { public PathFragment getPathUnderExecRoot() { return isDefault() || isMain() ? PathFragment.EMPTY_FRAGMENT - : new PathFragment(Label.EXTERNAL_PATH_PREFIX).getRelative(strippedName()); + : PathFragment.create(Label.EXTERNAL_PATH_PREFIX).getRelative(strippedName()); } /** @@ -241,7 +241,7 @@ public final class RepositoryName implements Serializable { // TODO(kchodorow): remove once execroot is reorg-ed. public PathFragment getRunfilesPath() { return isDefault() || isMain() - ? PathFragment.EMPTY_FRAGMENT : new PathFragment("..").getRelative(strippedName()); + ? PathFragment.EMPTY_FRAGMENT : PathFragment.create("..").getRelative(strippedName()); } /** diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/TargetPattern.java b/src/main/java/com/google/devtools/build/lib/cmdline/TargetPattern.java index f599ef3519..be3bcaa55f 100644 --- a/src/main/java/com/google/devtools/build/lib/cmdline/TargetPattern.java +++ b/src/main/java/com/google/devtools/build/lib/cmdline/TargetPattern.java @@ -779,7 +779,7 @@ public abstract class TargetPattern implements Serializable { try { PackageAndTarget packageAndTarget = LabelValidator.validateAbsoluteLabel(fullLabel); packageIdentifier = PackageIdentifier.create(repository, - new PathFragment(packageAndTarget.getPackageName())); + PathFragment.create(packageAndTarget.getPackageName())); } catch (BadLabelException e) { String error = "invalid target format '" + originalPattern + "': " + e.getMessage(); throw new TargetParsingException(error); diff --git a/src/main/java/com/google/devtools/build/lib/exec/SingleBuildFileCache.java b/src/main/java/com/google/devtools/build/lib/exec/SingleBuildFileCache.java index 4099a8ad54..ec93068c1d 100644 --- a/src/main/java/com/google/devtools/build/lib/exec/SingleBuildFileCache.java +++ b/src/main/java/com/google/devtools/build/lib/exec/SingleBuildFileCache.java @@ -130,7 +130,7 @@ public class SingleBuildFileCache implements ActionInputFileCache { */ private String fullPath(ActionInput input) { String relPath = input.getExecPathString(); - return new PathFragment(relPath).isAbsolute() ? relPath : new File(cwd, relPath).getPath(); + return PathFragment.create(relPath).isAbsolute() ? relPath : new File(cwd, relPath).getPath(); } /** Container class for caching I/O around ActionInputs. */ diff --git a/src/main/java/com/google/devtools/build/lib/exec/SpawnInputExpander.java b/src/main/java/com/google/devtools/build/lib/exec/SpawnInputExpander.java index f32d238243..351f8c7e10 100644 --- a/src/main/java/com/google/devtools/build/lib/exec/SpawnInputExpander.java +++ b/src/main/java/com/google/devtools/build/lib/exec/SpawnInputExpander.java @@ -147,7 +147,7 @@ public class SpawnInputExpander { PathFragment location; int pos = line.indexOf(' '); if (pos == -1) { - location = new PathFragment(line); + location = PathFragment.create(line); artifact = EMPTY_FILE; } else { String targetPath = line.substring(pos + 1); @@ -156,7 +156,7 @@ public class SpawnInputExpander { } artifact = targetPath.isEmpty() ? EMPTY_FILE : ActionInputHelper.fromPath(targetPath); - location = new PathFragment(line.substring(0, pos)); + location = PathFragment.create(line.substring(0, pos)); if (!workspaceName.isEmpty()) { if (!location.getSegment(0).equals(workspaceName)) { throw new IOException( diff --git a/src/main/java/com/google/devtools/build/lib/exec/TestStrategy.java b/src/main/java/com/google/devtools/build/lib/exec/TestStrategy.java index 9a99031dd8..0a29b9f89d 100644 --- a/src/main/java/com/google/devtools/build/lib/exec/TestStrategy.java +++ b/src/main/java/com/google/devtools/build/lib/exec/TestStrategy.java @@ -127,7 +127,7 @@ public abstract class TestStrategy implements TestActionContext { } } - public static final PathFragment TEST_TMP_ROOT = new PathFragment("_tmp"); + public static final PathFragment TEST_TMP_ROOT = PathFragment.create("_tmp"); // Used for generating unique temporary directory names. Contains the next numeric index for every // executable base name. diff --git a/src/main/java/com/google/devtools/build/lib/packages/FilesetEntry.java b/src/main/java/com/google/devtools/build/lib/packages/FilesetEntry.java index e55a4ed307..d52db41ad3 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/FilesetEntry.java +++ b/src/main/java/com/google/devtools/build/lib/packages/FilesetEntry.java @@ -140,7 +140,7 @@ public final class FilesetEntry implements SkylarkValue { this.srcLabel = Preconditions.checkNotNull(srcLabel); this.files = files == null ? null : ImmutableList.copyOf(files); this.excludes = (excludes == null || excludes.isEmpty()) ? null : ImmutableSet.copyOf(excludes); - this.destDir = new PathFragment((destDir == null) ? "" : destDir); + this.destDir = PathFragment.create((destDir == null) ? "" : destDir); this.symlinkBehavior = symlinkBehavior == null ? DEFAULT_SYMLINK_BEHAVIOR : symlinkBehavior; this.stripPrefix = stripPrefix == null ? DEFAULT_STRIP_PREFIX : stripPrefix; } @@ -225,7 +225,7 @@ public final class FilesetEntry implements SkylarkValue { } else if (stripPrefix.startsWith("/")) { return "Cannot specify absolute strip prefix; perhaps you need to use \"" + STRIP_PREFIX_WORKSPACE + "\""; - } else if (new PathFragment(stripPrefix).containsUplevelReferences()) { + } else if (PathFragment.create(stripPrefix).containsUplevelReferences()) { return "Strip prefix must not contain uplevel references"; } else if (stripPrefix.startsWith("%") && !stripPrefix.startsWith(STRIP_PREFIX_WORKSPACE)) { return "If the strip_prefix starts with \"%\" then it must start with \"" diff --git a/src/main/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunction.java b/src/main/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunction.java index 9de8f76d71..8d7ed337ad 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunction.java +++ b/src/main/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunction.java @@ -301,10 +301,10 @@ public abstract class ImplicitOutputsFunction { if (attrName.equals("name")) { return singleton(rule.getName()); } else if (attrName.equals("dirname")) { - PathFragment dir = new PathFragment(rule.getName()).getParentDirectory(); + PathFragment dir = PathFragment.create(rule.getName()).getParentDirectory(); return (dir.segmentCount() == 0) ? singleton("") : singleton(dir.getPathString() + "/"); } else if (attrName.equals("basename")) { - return singleton(new PathFragment(rule.getName()).getBaseName()); + return singleton(PathFragment.create(rule.getName()).getBaseName()); } Type<?> attrType = rule.getAttributeType(attrName); diff --git a/src/main/java/com/google/devtools/build/lib/packages/Package.java b/src/main/java/com/google/devtools/build/lib/packages/Package.java index e4f726104f..1556dcb141 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/Package.java +++ b/src/main/java/com/google/devtools/build/lib/packages/Package.java @@ -526,7 +526,7 @@ public class Package { // stat(2) is executed. Path filename = getPackageDirectory().getRelative(targetName); String suffix; - if (!new PathFragment(targetName).isNormalized()) { + if (!PathFragment.create(targetName).isNormalized()) { // Don't check for file existence in this case because the error message // would be confusing and wrong. If the targetName is "foo/bar/.", and // there is a directory "foo/bar", it doesn't mean that "//pkg:foo/bar/." @@ -1242,7 +1242,7 @@ public class Package { // Now, modify the package: for (OutputFile outputFile : rule.getOutputFiles()) { targets.put(outputFile.getName(), outputFile); - PathFragment outputFileFragment = new PathFragment(outputFile.getName()); + PathFragment outputFileFragment = PathFragment.create(outputFile.getName()); for (int i = 1; i < outputFileFragment.segmentCount(); i++) { String prefix = outputFileFragment.subFragment(0, i).toString(); if (!outputFilePrefixes.containsKey(prefix)) { @@ -1430,7 +1430,7 @@ public class Package { } // Check if a prefix of this output file matches an already existing one - PathFragment outputFileFragment = new PathFragment(outputFileName); + PathFragment outputFileFragment = PathFragment.create(outputFileName); for (int i = 1; i < outputFileFragment.segmentCount(); i++) { String prefix = outputFileFragment.subFragment(0, i).toString(); if (outputFiles.containsKey(prefix)) { diff --git a/src/main/java/com/google/devtools/build/lib/packages/RelativePackageNameResolver.java b/src/main/java/com/google/devtools/build/lib/packages/RelativePackageNameResolver.java index 144dc8903f..b9be5a0713 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/RelativePackageNameResolver.java +++ b/src/main/java/com/google/devtools/build/lib/packages/RelativePackageNameResolver.java @@ -65,7 +65,7 @@ public class RelativePackageNameResolver { relativePkg = pkg; } - PathFragment relative = new PathFragment(relativePkg); + PathFragment relative = PathFragment.create(relativePkg); if (discardBuild && relative.getBaseName().equals("BUILD")) { relative = relative.getParentDirectory(); diff --git a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java index 37bc246916..1324cce3a2 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java +++ b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java @@ -107,7 +107,7 @@ public class RuleClass { static final Function<? super Rule, Map<String, Label>> NO_EXTERNAL_BINDINGS = Functions.<Map<String, Label>>constant(ImmutableMap.<String, Label>of()); - public static final PathFragment THIRD_PARTY_PREFIX = new PathFragment("third_party"); + public static final PathFragment THIRD_PARTY_PREFIX = PathFragment.create("third_party"); /** * A constraint for the package name of the Rule instances. diff --git a/src/main/java/com/google/devtools/build/lib/pkgcache/PathPackageLocator.java b/src/main/java/com/google/devtools/build/lib/pkgcache/PathPackageLocator.java index 3ccbc1db99..30609168f3 100644 --- a/src/main/java/com/google/devtools/build/lib/pkgcache/PathPackageLocator.java +++ b/src/main/java/com/google/devtools/build/lib/pkgcache/PathPackageLocator.java @@ -163,7 +163,7 @@ public class PathPackageLocator implements Serializable { // Replace "%workspace%" with the path of the enclosing workspace directory. pathElement = pathElement.replace(workspaceWildcard, workspace.getPathString()); - PathFragment pathElementFragment = new PathFragment(pathElement); + PathFragment pathElementFragment = PathFragment.create(pathElement); // If the path string started with "%workspace%" or "/", it is already absolute, // so the following line is a no-op. @@ -218,7 +218,7 @@ public class PathPackageLocator implements Serializable { AtomicReference<? extends UnixGlob.FilesystemCalls> cache = UnixGlob.DEFAULT_SYSCALLS_REF; // TODO(bazel-team): correctness in the presence of changes to the location of the WORKSPACE // file. - return getFilePath(new PathFragment("WORKSPACE"), cache); + return getFilePath(PathFragment.create("WORKSPACE"), cache); } private Path getFilePath(PathFragment suffix, diff --git a/src/main/java/com/google/devtools/build/lib/pkgcache/TargetPatternResolverUtil.java b/src/main/java/com/google/devtools/build/lib/pkgcache/TargetPatternResolverUtil.java index d8534caf52..d12b3ac5b5 100644 --- a/src/main/java/com/google/devtools/build/lib/pkgcache/TargetPatternResolverUtil.java +++ b/src/main/java/com/google/devtools/build/lib/pkgcache/TargetPatternResolverUtil.java @@ -69,7 +69,7 @@ public final class TargetPatternResolverUtil { } public static PathFragment getPathFragment(String pathPrefix) throws TargetParsingException { - PathFragment directory = new PathFragment(pathPrefix); + PathFragment directory = PathFragment.create(pathPrefix); if (directory.containsUplevelReferences()) { throw new TargetParsingException("up-level references are not permitted: '" + directory.getPathString() + "'"); diff --git a/src/main/java/com/google/devtools/build/lib/query2/RBuildFilesFunction.java b/src/main/java/com/google/devtools/build/lib/query2/RBuildFilesFunction.java index e2fb0e4dfd..23a9560b15 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/RBuildFilesFunction.java +++ b/src/main/java/com/google/devtools/build/lib/query2/RBuildFilesFunction.java @@ -61,7 +61,7 @@ public class RBuildFilesFunction implements QueryFunction { new Function<Argument, PathFragment>() { @Override public PathFragment apply(Argument argument) { - return new PathFragment(argument.getWord()); + return PathFragment.create(argument.getWord()); } }; diff --git a/src/main/java/com/google/devtools/build/lib/remote/TreeNodeRepository.java b/src/main/java/com/google/devtools/build/lib/remote/TreeNodeRepository.java index 89c61c26e3..0850fec75a 100644 --- a/src/main/java/com/google/devtools/build/lib/remote/TreeNodeRepository.java +++ b/src/main/java/com/google/devtools/build/lib/remote/TreeNodeRepository.java @@ -227,7 +227,7 @@ public final class TreeNodeRepository extends TreeTraverser<TreeNodeRepository.T public TreeNode buildFromActionInputs(Iterable<? extends ActionInput> inputs) { TreeMap<PathFragment, ActionInput> sortedMap = new TreeMap<>(); for (ActionInput input : inputs) { - sortedMap.put(new PathFragment(input.getExecPathString()), input); + sortedMap.put(PathFragment.create(input.getExecPathString()), input); } return buildFromActionInputs(sortedMap); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java index 445716a7ff..435217403e 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java +++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java @@ -914,7 +914,7 @@ public final class SkylarkRuleContext implements SkylarkValue { public Artifact newDirectory(String name, Object siblingArtifactUnchecked) throws EvalException { checkMutable("experimental_new_directory"); if (siblingArtifactUnchecked == Runtime.NONE) { - return ruleContext.getPackageRelativeTreeArtifact(new PathFragment(name), newFileRoot()); + return ruleContext.getPackageRelativeTreeArtifact(PathFragment.create(name), newFileRoot()); } Artifact siblingArtifact = (Artifact) siblingArtifactUnchecked; PathFragment original = siblingArtifact.getRootRelativePath(); diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleImplementationFunctions.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleImplementationFunctions.java index cd6182a7f9..9f5500f062 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleImplementationFunctions.java +++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleImplementationFunctions.java @@ -636,14 +636,14 @@ public class SkylarkRuleImplementationFunctions { checkConflicts = true; for (Map.Entry<String, Artifact> entry : symlinks.getContents( String.class, Artifact.class, "symlinks").entrySet()) { - builder.addSymlink(new PathFragment(entry.getKey()), entry.getValue()); + builder.addSymlink(PathFragment.create(entry.getKey()), entry.getValue()); } } if (!rootSymlinks.isEmpty()) { checkConflicts = true; for (Map.Entry<String, Artifact> entry : rootSymlinks.getContents( String.class, Artifact.class, "root_symlinks").entrySet()) { - builder.addRootSymlink(new PathFragment(entry.getKey()), entry.getValue()); + builder.addRootSymlink(PathFragment.create(entry.getKey()), entry.getValue()); } } Runfiles runfiles = builder.build(); diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidAaptActionHelper.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidAaptActionHelper.java index 55253a0296..d3e325827a 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidAaptActionHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidAaptActionHelper.java @@ -90,7 +90,7 @@ public final class AndroidAaptActionHelper { public void createGenerateResourceSymbolsAction(Artifact javaSourcesJar, Artifact rTxt, String javaPackage, boolean inlineConstants) { // java path from the provided package for the resources - PathFragment javaPath = new PathFragment(javaPackage.replace('.', '/')); + PathFragment javaPath = PathFragment.create(javaPackage.replace('.', '/')); PathFragment javaResourcesRoot = javaSourcesJar.getRoot().getExecPath().getRelative( ruleContext.getUniqueDirectory("_java_resources")); diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java index c917b5dd06..91a43c0171 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java @@ -772,7 +772,7 @@ public class AndroidCommon { } public static PathFragment getAssetDir(RuleContext ruleContext) { - return new PathFragment(ruleContext.attributes().get( + return PathFragment.create(ruleContext.attributes().get( ResourceType.ASSETS.getAttribute() + "_dir", Type.STRING)); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlHelper.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlHelper.java index 1f8b0b64b3..7326e171a6 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlHelper.java @@ -256,7 +256,7 @@ public class AndroidIdlHelper { // Reconstruct the package tree under <rule>_aidl to avoid a name conflict // if the same AIDL files are used in multiple targets. PathFragment javaOutputPath = FileSystemUtils.replaceExtension( - new PathFragment(ruleName + "_aidl").getRelative(idl.getRootRelativePath()), + PathFragment.create(ruleName + "_aidl").getRelative(idl.getRootRelativePath()), ".java"); Artifact output = ruleContext.getGenfilesArtifact(javaOutputPath.getPathString()); outputJavaSources.put(idl, output); diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java b/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java index d690366140..1821c4b4b4 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java @@ -154,7 +154,7 @@ public final class ApplicationManifest { */ public static ApplicationManifest generatedManifest(RuleContext ruleContext) { Artifact generatedManifest = ruleContext.getUniqueDirectoryArtifact( - ruleContext.getRule().getName() + "_generated", new PathFragment("AndroidManifest.xml"), + ruleContext.getRule().getName() + "_generated", PathFragment.create("AndroidManifest.xml"), ruleContext.getBinOrGenfilesDirectory()); String manifestPackage = AndroidCommon.getJavaPackage(ruleContext); diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/NativeLibs.java b/src/main/java/com/google/devtools/build/lib/rules/android/NativeLibs.java index b5a8c5f6c6..48783e68a7 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/NativeLibs.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/NativeLibs.java @@ -139,7 +139,7 @@ public final class NativeLibs { for (Map.Entry<String, Iterable<Artifact>> entry : nativeLibs.entrySet()) { String arch = entry.getKey(); for (Artifact lib : entry.getValue()) { - symlinks.put(new PathFragment(arch + "/" + lib.getExecPath().getBaseName()), lib); + symlinks.put(PathFragment.create(arch + "/" + lib.getExecPath().getBaseName()), lib); } } diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java index 950c800dd2..9b9ae3118f 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java @@ -220,9 +220,9 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { // linkopt "-shared", which causes the result of linking to be a shared // library. In this case, the name of the executable target should end // in ".so" or "dylib" or ".dll". - PathFragment binaryPath = new PathFragment(ruleContext.getTarget().getName()); + PathFragment binaryPath = PathFragment.create(ruleContext.getTarget().getName()); if (!isLinkShared(ruleContext)) { - binaryPath = new PathFragment(binaryPath.getPathString() + OsUtils.executableExtension()); + binaryPath = PathFragment.create(binaryPath.getPathString() + OsUtils.executableExtension()); } Artifact binary = ruleContext.getBinArtifact(binaryPath); @@ -676,7 +676,7 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { PathFragment intermediatePath = FileSystemUtils.appendWithoutExtension(outputPath, "-" + orderNumber); return ruleContext.getPackageRelativeArtifact( - new PathFragment(INTERMEDIATE_DWP_DIR + "/" + intermediatePath.getPathString()), + PathFragment.create(INTERMEDIATE_DWP_DIR + "/" + intermediatePath.getPathString()), dwpOutput.getRoot()); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcIncLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcIncLibrary.java index e2288523a7..e3b9b85354 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcIncLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcIncLibrary.java @@ -81,7 +81,7 @@ public abstract class CcIncLibrary implements RuleConfiguredTargetFactory { // versions. Previous Blaze versions created a directory symlink; the new version does not // detect that the output directory isn't a directory, and tries to put the symlinks into what // is actually a symlink into the source tree. - PathFragment includeDirectory = new PathFragment("_") + PathFragment includeDirectory = PathFragment.create("_") .getRelative(ruleContext.getTarget().getName()); Root configIncludeDirectory = ruleContext.getConfiguration().getIncludeDirectory(ruleContext.getRule().getRepository()); diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java index e2c04b7608..3d727aefa1 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java @@ -156,7 +156,7 @@ public abstract class CcLibrary implements RuleConfiguredTargetFactory { if (outs.size() > 1) { ruleContext.attributeError("outs", "must be a singleton list"); } else if (outs.size() == 1) { - PathFragment soImplFilename = new PathFragment(ruleContext.getLabel().getName()); + PathFragment soImplFilename = PathFragment.create(ruleContext.getLabel().getName()); soImplFilename = soImplFilename.replaceName(outs.get(0)); if (!soImplFilename.getPathString().endsWith(".so")) { // Sanity check. ruleContext.attributeError("outs", "file name must end in '.so'"); diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java index 248bcfd23f..83eb0ff321 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java @@ -1197,13 +1197,13 @@ public final class CcLibraryHelper { PathFragment prefix = ruleContext.attributes().isAttributeValueExplicitlySpecified("include_prefix") - ? new PathFragment(ruleContext.attributes().get("include_prefix", Type.STRING)) + ? PathFragment.create(ruleContext.attributes().get("include_prefix", Type.STRING)) : null; PathFragment stripPrefix; if (ruleContext.attributes().isAttributeValueExplicitlySpecified("strip_include_prefix")) { - stripPrefix = new PathFragment( - ruleContext.attributes().get("strip_include_prefix", Type.STRING)); + stripPrefix = + PathFragment.create(ruleContext.attributes().get("strip_include_prefix", Type.STRING)); if (stripPrefix.isAbsolute()) { stripPrefix = ruleContext.getLabel().getPackageIdentifier().getRepository().getSourceRoot() .getRelative(stripPrefix.toRelative()); diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java index 73060ef00f..9cb154f3db 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java @@ -61,7 +61,7 @@ public class CcToolchain implements RuleConfiguredTargetFactory { * This file (found under the sysroot) may be unconditionally included in every C/C++ compilation. */ private static final PathFragment BUILTIN_INCLUDE_FILE_SUFFIX = - new PathFragment("include/stdc-predef.h"); + PathFragment.create("include/stdc-predef.h"); @Override public ConfiguredTarget create(RuleContext ruleContext) diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java index b5b1183547..d63b01d785 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeatures.java @@ -2072,7 +2072,7 @@ public class CcToolchainFeatures implements Serializable { */ String getArtifactNameForCategory(ArtifactCategory artifactCategory, String outputName) throws ExpansionException { - PathFragment output = new PathFragment(outputName); + PathFragment output = PathFragment.create(outputName); ArtifactNamePattern patternForCategory = null; for (ArtifactNamePattern artifactNamePattern : artifactNamePatterns) { diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppBuildInfo.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppBuildInfo.java index 30a5515b3e..8e49f99c75 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppBuildInfo.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppBuildInfo.java @@ -34,13 +34,13 @@ public final class CppBuildInfo implements BuildInfoFactory { public static final BuildInfoKey KEY = new BuildInfoKey("C++"); private static final PathFragment BUILD_INFO_NONVOLATILE_HEADER_NAME = - new PathFragment("build-info-nonvolatile.h"); + PathFragment.create("build-info-nonvolatile.h"); private static final PathFragment BUILD_INFO_VOLATILE_HEADER_NAME = - new PathFragment("build-info-volatile.h"); + PathFragment.create("build-info-volatile.h"); // TODO(bazel-team): (2011) Get rid of the redacted build info. We should try to make // the linkstamping process handle the case where those values are undefined. private static final PathFragment BUILD_INFO_REDACTED_HEADER_NAME = - new PathFragment("build-info-redacted.h"); + PathFragment.create("build-info-redacted.h"); @Override public BuildInfoCollection create(BuildInfoContext buildInfoContext, BuildConfiguration config, diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java index 84b3c85a93..741ca596c8 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java @@ -614,7 +614,7 @@ public class CppCompileAction extends AbstractAction for (String opt : cppCompileCommandLine.copts) { if (opt.startsWith("-I") && opt.length() > 2) { // We insist on the combined form "-Idir". - result.add(new PathFragment(opt.substring(2))); + result.add(PathFragment.create(opt.substring(2))); } } return result.build(); @@ -634,10 +634,10 @@ public class CppCompileAction extends AbstractAction String opt = compilerOptions.get(i); if (opt.startsWith("-isystem")) { if (opt.length() > 8) { - result.add(new PathFragment(opt.substring(8).trim())); + result.add(PathFragment.create(opt.substring(8).trim())); } else if (i + 1 < compilerOptions.size()) { i++; - result.add(new PathFragment(compilerOptions.get(i))); + result.add(PathFragment.create(compilerOptions.get(i))); } else { System.err.println("WARNING: dangling -isystem flag in options for " + prettyPrint()); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java index 2646692bfe..2b7669f17b 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java @@ -474,7 +474,7 @@ public class CppCompileActionBuilder { continue; } // One starting ../ is okay for getting to a sibling repository. - if (include.startsWith(new PathFragment(Label.EXTERNAL_PATH_PREFIX))) { + if (include.startsWith(PathFragment.create(Label.EXTERNAL_PATH_PREFIX))) { include = include.relativeTo(Label.EXTERNAL_PATH_PREFIX); } if (include.isAbsolute() diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionTemplate.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionTemplate.java index 8b80179a44..ea0697cd67 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionTemplate.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionTemplate.java @@ -79,7 +79,7 @@ public final class CppCompileActionTemplate implements ActionTemplate<CppCompile String outputName = outputTreeFileArtifactName(inputTreeFileArtifact); TreeFileArtifact outputTreeFileArtifact = ActionInputHelper.treeFileArtifact( outputTreeArtifact, - new PathFragment(outputName), + PathFragment.create(outputName), artifactOwner); expandedActions.add(createAction(inputTreeFileArtifact, outputTreeFileArtifact)); diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java index f658f6732e..843a72c932 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java @@ -190,7 +190,7 @@ public class CppConfiguration extends BuildConfiguration.Fragment { PathFragment defaultSysroot = toolchain.getBuiltinSysroot().length() == 0 ? null - : new PathFragment(toolchain.getBuiltinSysroot()); + : PathFragment.create(toolchain.getBuiltinSysroot()); if ((defaultSysroot != null) && !defaultSysroot.isNormalized()) { throw new InvalidConfigurationException( "The built-in sysroot '" + defaultSysroot + "' is not normalized."); @@ -502,7 +502,7 @@ public class CppConfiguration extends BuildConfiguration.Fragment { this.toolPaths = Maps.newHashMap(); for (CrosstoolConfig.ToolPath tool : toolchain.getToolPathList()) { - PathFragment path = new PathFragment(tool.getPath()); + PathFragment path = PathFragment.create(tool.getPath()); if (!path.isNormalized()) { throw new IllegalArgumentException("The include path '" + tool.getPath() + "' is not normalized."); @@ -604,7 +604,7 @@ public class CppConfiguration extends BuildConfiguration.Fragment { // The default value for optional string attributes is the empty string. PathFragment defaultSysroot = toolchain.getBuiltinSysroot().length() == 0 ? null - : new PathFragment(toolchain.getBuiltinSysroot()); + : PathFragment.create(toolchain.getBuiltinSysroot()); if ((defaultSysroot != null) && !defaultSysroot.isNormalized()) { throw new IllegalArgumentException("The built-in sysroot '" + defaultSysroot + "' is not normalized."); @@ -791,7 +791,7 @@ public class CppConfiguration extends BuildConfiguration.Fragment { gccToolPath = tool.getPath(); linkerToolPath = crosstoolTopPathFragment - .getRelative(new PathFragment(tool.getPath())) + .getRelative(PathFragment.create(tool.getPath())) .getPathString(); } } @@ -1181,7 +1181,7 @@ public class CppConfiguration extends BuildConfiguration.Fragment { } } - PathFragment path = new PathFragment(pathString); + PathFragment path = PathFragment.create(pathString); if (!path.isNormalized()) { throw new InvalidConfigurationException("The include path '" + s + "' is not normalized."); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java index a94d10ea6d..41afb816ff 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java @@ -283,7 +283,7 @@ public class CppHelper { * Returns the directory where object files are created. */ public static PathFragment getObjDirectory(Label ruleLabel) { - return AnalysisUtils.getUniqueDirectory(ruleLabel, new PathFragment("_objs")); + return AnalysisUtils.getUniqueDirectory(ruleLabel, PathFragment.create("_objs")); } /** @@ -360,7 +360,7 @@ public class CppHelper { BuildConfiguration config, LinkTargetType linkType, String linkedArtifactNameSuffix) { - PathFragment name = new PathFragment(ruleContext.getLabel().getName()); + PathFragment name = PathFragment.create(ruleContext.getLabel().getName()); if (linkType != LinkTargetType.EXECUTABLE) { name = name.replaceName( "lib" + name.getBaseName() + linkedArtifactNameSuffix + linkType.getExtension()); diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java index bca504c0cf..1acc9b4909 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java @@ -919,7 +919,7 @@ public final class CppModel { builder .setPicMode(usePic) .setOutputs(ruleContext, outputCategory, outputNameBase, generateDotd) - .setTempOutputFile(new PathFragment(tempOutputName)); + .setTempOutputFile(PathFragment.create(tempOutputName)); setupCompileBuildVariables( builder, @@ -969,7 +969,7 @@ public final class CppModel { } String linkedName = CppHelper.getArtifactNameForCategory( ruleContext, ccToolchain, linkTargetType.getLinkerOutput(), maybePicName); - PathFragment artifactFragment = new PathFragment(ruleContext.getLabel().getName()) + PathFragment artifactFragment = PathFragment.create(ruleContext.getLabel().getName()) .getParentDirectory().getRelative(linkedName); result = ruleContext.getPackageRelativeArtifact( @@ -1042,7 +1042,7 @@ public final class CppModel { // If the crosstool is configured to select an output artifact, we use that selection. // Otherwise, we use linux defaults. Artifact linkedArtifact = getLinkedArtifact(linkType); - PathFragment labelName = new PathFragment(ruleContext.getLabel().getName()); + PathFragment labelName = PathFragment.create(ruleContext.getLabel().getName()); String libraryIdentifier = ruleContext.getPackageDirectory().getRelative( labelName.replaceName("lib" + labelName.getBaseName())).getPathString(); CppLinkAction maybePicAction = diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoSupport.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoSupport.java index 77e653c4d9..9930e35dd9 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoSupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoSupport.java @@ -127,7 +127,7 @@ public class FdoSupport { * Path within profile data .zip files that is considered the root of the * profile information directory tree. */ - private static final PathFragment ZIP_ROOT = new PathFragment("/"); + private static final PathFragment ZIP_ROOT = PathFragment.create("/"); /** * Returns true if the given fdoFile represents an AutoFdo profile. @@ -220,7 +220,7 @@ public class FdoSupport { this.fdoRootExecPath = fdoRootExecPath; this.fdoPath = fdoProfile == null ? null - : FileSystemUtils.removeExtension(new PathFragment("_fdo").getChild( + : FileSystemUtils.removeExtension(PathFragment.create("_fdo").getChild( fdoProfile.getBaseName())); this.lipoMode = lipoMode; this.fdoMode = fdoMode; @@ -264,7 +264,7 @@ public class FdoSupport { PathFragment fdoRootExecPath = fdoProfile == null ? null : fdoRoot.getExecPath().getRelative(FileSystemUtils.removeExtension( - new PathFragment("_fdo").getChild(fdoProfile.getBaseName()))); + PathFragment.create("_fdo").getChild(fdoProfile.getBaseName()))); if (fdoProfile != null) { if (lipoMode != LipoMode.OFF) { @@ -413,12 +413,12 @@ public class FdoSupport { if (!line.isEmpty()) { // We can't yet fully check the validity of a line. this is done later // when we actually parse the contained paths. - PathFragment execPath = new PathFragment(line); + PathFragment execPath = PathFragment.create(line); if (execPath.isAbsolute()) { throw new FdoException("Absolute paths not allowed in gcda imports file " + importsFile + ": " + execPath); } - importsBuilder.put(key, new PathFragment(line)); + importsBuilder.put(key, PathFragment.create(line)); } } } @@ -440,7 +440,7 @@ public class FdoSupport { if (colonIndex < 0) { continue; } - PathFragment key = new PathFragment(line.substring(0, colonIndex)); + PathFragment key = PathFragment.create(line.substring(0, colonIndex)); if (key.isAbsolute()) { throw new FdoException("Absolute paths not allowed in afdo imports file " + importsFile + ": " + key); @@ -450,7 +450,7 @@ public class FdoSupport { continue; } - importBuilder.put(key, new PathFragment(auxFile)); + importBuilder.put(key, PathFragment.create(auxFile)); } } return importBuilder.build(); @@ -665,7 +665,7 @@ public class FdoSupport { } private static PathFragment getAutoProfileRootRelativePath(Path fdoProfile) { - return new PathFragment(fdoProfile.getBaseName()); + return PathFragment.create(fdoProfile.getBaseName()); } @@ -674,7 +674,7 @@ public class FdoSupport { } private static PathFragment getLLVMProfileRootRelativePath(Path fdoProfile) { - return new PathFragment(fdoProfile.getBaseName()); + return PathFragment.create(fdoProfile.getBaseName()); } /** diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/LTOBackendAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/LTOBackendAction.java index 9af100ffd8..4fa0a82a10 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/LTOBackendAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/LTOBackendAction.java @@ -117,14 +117,14 @@ public final class LTOBackendAction extends SpawnAction { try { for (String line : FileSystemUtils.iterateLinesAsLatin1(imports.getPath())) { if (!line.isEmpty()) { - PathFragment execPath = new PathFragment(line); + PathFragment execPath = PathFragment.create(line); if (execPath.isAbsolute()) { throw new ActionExecutionException( "Absolute paths not allowed in imports file " + imports.getPath() + ": " + execPath, this, false); } - importSet.add(new PathFragment(line)); + importSet.add(PathFragment.create(line)); } } } catch (IOException e) { diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/SolibSymlinkAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/SolibSymlinkAction.java index c2bca35809..e524b1e12c 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/SolibSymlinkAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/SolibSymlinkAction.java @@ -139,7 +139,7 @@ public final class SolibSymlinkAction extends AbstractAction { */ public static Artifact getCppRuntimeSymlink(RuleContext ruleContext, Artifact library, String solibDirOverride, BuildConfiguration configuration) { - PathFragment solibDir = new PathFragment(solibDirOverride != null + PathFragment solibDir = PathFragment.create(solibDirOverride != null ? solibDirOverride : configuration.getFragment(CppConfiguration.class).getSolibDirectory()); PathFragment symlinkName = solibDir.getRelative(library.getRootRelativePath().getBaseName()); @@ -181,7 +181,7 @@ public final class SolibSymlinkAction extends AbstractAction { String escapedRulePath = Actions.escapedPath( "_" + ruleContext.getLabel()); String soname = getDynamicLibrarySoname(libraryPath, preserveName); - PathFragment solibDir = new PathFragment(cppConfiguration.getSolibDirectory()); + PathFragment solibDir = PathFragment.create(cppConfiguration.getSolibDirectory()); if (preserveName) { String escapedLibraryPath = Actions.escapedPath("_" + libraryPath.getParentDirectory().getPathString()); diff --git a/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionSpec.java b/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionSpec.java index db3569a370..90de182573 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionSpec.java +++ b/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionSpec.java @@ -204,7 +204,7 @@ public final class ExtraActionSpec implements TransitiveInfoProvider { private Artifact getRootRelativePath(String template, RuleContext ruleContext) { PathFragment extraActionPackageFragment = label.getPackageIdentifier().getSourceRoot(); PathFragment extraActionPrefix = extraActionPackageFragment.getRelative(label.getName()); - PathFragment rootRelativePath = new PathFragment("extra_actions") + PathFragment rootRelativePath = PathFragment.create("extra_actions") .getRelative(extraActionPrefix) .getRelative(ruleContext.getPackageDirectory()) .getRelative(template); diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java index e6bc5587d7..60aa02855c 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java @@ -58,7 +58,7 @@ import javax.annotation.Nullable; * An implementation of java_binary. */ public class JavaBinary implements RuleConfiguredTargetFactory { - private static final PathFragment CPP_RUNTIMES = new PathFragment("_cpp_runtimes"); + private static final PathFragment CPP_RUNTIMES = PathFragment.create("_cpp_runtimes"); private final JavaSemantics semantics; diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaBuildInfoFactory.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaBuildInfoFactory.java index 95e1cc5a5d..7adaea6372 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaBuildInfoFactory.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaBuildInfoFactory.java @@ -39,11 +39,11 @@ public abstract class JavaBuildInfoFactory implements BuildInfoFactory { public static final BuildInfoKey KEY = new BuildInfoKey("Java"); static final PathFragment BUILD_INFO_NONVOLATILE_PROPERTIES_NAME = - new PathFragment("build-info-nonvolatile.properties"); + PathFragment.create("build-info-nonvolatile.properties"); static final PathFragment BUILD_INFO_VOLATILE_PROPERTIES_NAME = - new PathFragment("build-info-volatile.properties"); + PathFragment.create("build-info-volatile.properties"); static final PathFragment BUILD_INFO_REDACTED_PROPERTIES_NAME = - new PathFragment("build-info-redacted.properties"); + PathFragment.create("build-info-redacted.properties"); private static final DateTimeFormatter DEFAULT_TIME_FORMAT = DateTimeFormat.forPattern("EEE MMM d HH:mm:ss yyyy"); diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java index b5ab681d1f..1712d028b4 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java @@ -502,7 +502,7 @@ public class JavaCommon { if (!javaExecutable.isAbsolute()) { javaExecutable = - new PathFragment(new PathFragment(ruleContext.getWorkspaceName()), javaExecutable); + PathFragment.create(PathFragment.create(ruleContext.getWorkspaceName()), javaExecutable); } javaExecutable = javaExecutable.normalize(); diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaHelper.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaHelper.java index b115dee4c9..fc44f09b70 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaHelper.java @@ -116,7 +116,7 @@ public abstract class JavaHelper { PathFragment rootRelativePath = resource.getRootRelativePath(); if (!resource.getOwner().getWorkspaceRoot().isEmpty()) { - PathFragment workspace = new PathFragment(resource.getOwner().getWorkspaceRoot()); + PathFragment workspace = PathFragment.create(resource.getOwner().getWorkspaceRoot()); rootRelativePath = rootRelativePath.relativeTo(workspace); } @@ -125,8 +125,8 @@ public abstract class JavaHelper { return semantics.getDefaultJavaResourcePath(rootRelativePath); } - PathFragment prefix = new PathFragment( - ruleContext.attributes().get("resource_strip_prefix", Type.STRING)); + PathFragment prefix = + PathFragment.create(ruleContext.attributes().get("resource_strip_prefix", Type.STRING)); if (!rootRelativePath.startsWith(prefix)) { ruleContext.attributeError("resource_strip_prefix", String.format( diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JvmConfigurationLoader.java b/src/main/java/com/google/devtools/build/lib/rules/java/JvmConfigurationLoader.java index 6501b31aac..4006bc872f 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JvmConfigurationLoader.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JvmConfigurationLoader.java @@ -153,7 +153,7 @@ public final class JvmConfigurationLoader implements ConfigurationFragmentFactor } private static Jvm createLegacy(String javaHome) throws InvalidConfigurationException { - PathFragment javaHomePathFrag = new PathFragment(javaHome); + PathFragment javaHomePathFrag = PathFragment.create(javaHome); if (!javaHomePathFrag.isAbsolute()) { throw new InvalidConfigurationException( "Illegal javabase value '" + javaHome + "', javabase must be an absolute path or label"); diff --git a/src/main/java/com/google/devtools/build/lib/rules/nativedeps/NativeDepsHelper.java b/src/main/java/com/google/devtools/build/lib/rules/nativedeps/NativeDepsHelper.java index 6ec5120849..dc9e9e8ca7 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/nativedeps/NativeDepsHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/nativedeps/NativeDepsHelper.java @@ -107,7 +107,7 @@ public abstract class NativeDepsHelper { return null; } - PathFragment labelName = new PathFragment(ruleContext.getLabel().getName()); + PathFragment labelName = PathFragment.create(ruleContext.getLabel().getName()); String libraryIdentifier = ruleContext.getUniqueDirectory(ANDROID_UNIQUE_DIR) .getRelative(labelName.replaceName("lib" + labelName.getBaseName())) .getPathString(); @@ -260,11 +260,11 @@ public abstract class NativeDepsHelper { * symlink for the native library for the specified rule. */ private static PathFragment getRuntimeLibraryPath(RuleContext ruleContext, Artifact lib) { - PathFragment relativePath = new PathFragment(ruleContext.getLabel().getName()); + PathFragment relativePath = PathFragment.create(ruleContext.getLabel().getName()); PathFragment libParentDir = relativePath.replaceName(lib.getExecPath().getParentDirectory().getBaseName()); String libName = lib.getExecPath().getBaseName(); - return new PathFragment(libParentDir, new PathFragment(libName)); + return PathFragment.create(libParentDir, PathFragment.create(libName)); } /** @@ -305,6 +305,6 @@ public abstract class NativeDepsHelper { for (String feature : features) { fp.addString(feature); } - return new PathFragment("_nativedeps/" + fp.hexDigestAndReset()); + return PathFragment.create("_nativedeps/" + fp.hexDigestAndReset()); } } diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/BundleSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/BundleSupport.java index ab2bc95fa0..9d0e3c27c4 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/BundleSupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/BundleSupport.java @@ -345,7 +345,7 @@ final class BundleSupport { ruleContext.registerAction( ObjcRuleClasses.spawnAppleEnvActionBuilder(appleConfiguration, platform) .setMnemonic("ConvertStringsPlist") - .setExecutable(new PathFragment("/usr/bin/plutil")) + .setExecutable(PathFragment.create("/usr/bin/plutil")) .setCommandLine(CustomCommandLine.builder() .add("-convert").add("binary1") .addExecPath("-o", bundled) diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/Bundling.java b/src/main/java/com/google/devtools/build/lib/rules/objc/Bundling.java index 13bc0d97dd..39b05cbb3f 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/Bundling.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/Bundling.java @@ -590,7 +590,7 @@ final class Bundling { public Map<String, String> variableSubstitutions() { return ImmutableMap.of( "EXECUTABLE_NAME", Strings.nullToEmpty(executableName), - "BUNDLE_NAME", new PathFragment(getBundleDir()).getBaseName(), + "BUNDLE_NAME", PathFragment.create(getBundleDir()).getBaseName(), "PRODUCT_NAME", name); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java index c0859047de..6532052044 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java @@ -663,7 +663,7 @@ public abstract class CompilationSupport { ImmutableList.Builder<PathFragment> nonPropagatedHeaderSearchPaths = new ImmutableList.Builder<>(); for (String includeDirOption : includeDirOptions) { - nonPropagatedHeaderSearchPaths.add(new PathFragment(includeDirOption.substring(2))); + nonPropagatedHeaderSearchPaths.add(PathFragment.create(includeDirOption.substring(2))); } // We also need to add the -isystem directories from the CC header providers. ObjCommon diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java index f001f95115..b2642f1e33 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java @@ -190,7 +190,7 @@ public class CrosstoolCompilationSupport extends CompilationSupport { throws InterruptedException { Preconditions.checkNotNull(ccToolchain); Preconditions.checkNotNull(fdoSupport); - PathFragment labelName = new PathFragment(ruleContext.getLabel().getName()); + PathFragment labelName = PathFragment.create(ruleContext.getLabel().getName()); String libraryIdentifier = ruleContext .getPackageDirectory() diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/HeaderThinning.java b/src/main/java/com/google/devtools/build/lib/rules/objc/HeaderThinning.java index ad528645db..dcd8bca663 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/HeaderThinning.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/HeaderThinning.java @@ -104,7 +104,7 @@ public class HeaderThinning implements IncludeProcessing { continue; } - PathFragment headerPath = new PathFragment(line); + PathFragment headerPath = PathFragment.create(line); Artifact header = inputArtifactsMap.get(headerPath); if (header == null) { missing.add(headerPath); diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/IntermediateArtifacts.java b/src/main/java/com/google/devtools/build/lib/rules/objc/IntermediateArtifacts.java index 620010edd4..337ee963c6 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/IntermediateArtifacts.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/IntermediateArtifacts.java @@ -117,7 +117,7 @@ public final class IntermediateArtifacts { * of the {@link PathFragment} corresponding to the owner {@link Label}. */ private Artifact appendExtension(String extension) { - PathFragment name = new PathFragment(ruleContext.getLabel().getName()); + PathFragment name = PathFragment.create(ruleContext.getLabel().getName()); return scopedArtifact(name.replaceName(addOutputPrefix(name.getBaseName(), extension))); } @@ -135,7 +135,7 @@ public final class IntermediateArtifacts { * the end of the {@link PathFragment} corresponding to the owner {@link Label}. */ private Artifact appendExtensionInGenfiles(String extension) { - PathFragment name = new PathFragment(ruleContext.getLabel().getName()); + PathFragment name = PathFragment.create(ruleContext.getLabel().getName()); return scopedArtifact( name.replaceName(addOutputPrefix(name.getBaseName(), extension)), /* inGenfiles = */ true); } @@ -252,14 +252,14 @@ public final class IntermediateArtifacts { */ public Artifact archive() { // The path will be {RULE_PACKAGE}/lib{RULEBASENAME}{SUFFIX}.a - String basename = new PathFragment(ruleContext.getLabel().getName()).getBaseName(); - return scopedArtifact(new PathFragment(String.format( + String basename = PathFragment.create(ruleContext.getLabel().getName()).getBaseName(); + return scopedArtifact(PathFragment.create(String.format( "lib%s%s.a", basename, archiveFileNameSuffix))); } private Artifact inUniqueObjsDir(Artifact source, String extension) { PathFragment uniqueDir = - new PathFragment("_objs").getRelative(ruleContext.getLabel().getName()); + PathFragment.create("_objs").getRelative(ruleContext.getLabel().getName()); PathFragment sourceFile = uniqueDir.getRelative(source.getRootRelativePath()); PathFragment scopeRelativePath = FileSystemUtils.replaceExtension(sourceFile, extension); return scopedArtifact(scopeRelativePath); diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/IosFramework.java b/src/main/java/com/google/devtools/build/lib/rules/objc/IosFramework.java index ee9b83b8bd..60bfec11ba 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/IosFramework.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/IosFramework.java @@ -94,13 +94,13 @@ public class IosFramework extends ReleaseBundlingTargetFactory { // Create framework binary Artifact frameworkBinary = - outputArtifact(ruleContext, new PathFragment(bundleName(ruleContext))); + outputArtifact(ruleContext, PathFragment.create(bundleName(ruleContext))); builder.put(intermediateArtifacts.combinedArchitectureBinary(), frameworkBinary); // Create framework headers for (Pair<Artifact, Label> header : headers) { Artifact frameworkHeader = - outputArtifact(ruleContext, new PathFragment("Headers/" + header.first.getFilename())); + outputArtifact(ruleContext, PathFragment.create("Headers/" + header.first.getFilename())); builder.put(header.first, frameworkHeader); } @@ -160,9 +160,9 @@ public class IosFramework extends ReleaseBundlingTargetFactory { */ private Artifact outputArtifact(RuleContext ruleContext, PathFragment path) { PathFragment frameworkRoot = - new PathFragment( - new PathFragment("_frameworks"), - new PathFragment(bundleName(ruleContext) + ".framework"), + PathFragment.create( + PathFragment.create("_frameworks"), + PathFragment.create(bundleName(ruleContext) + ".framework"), path); return ruleContext.getPackageRelativeArtifact( diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibrary.java index 451af68adf..2b14cca296 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibrary.java @@ -111,7 +111,7 @@ public class J2ObjcLibrary implements RuleConfiguredTargetFactory { // We add another header search path with gen root if we have generated sources to translate. for (Artifact sourceToTranslate : sourcesToTranslate) { if (!sourceToTranslate.isSourceArtifact()) { - headerSearchPaths.add(new PathFragment(objcFileRootExecPath, genRoot)); + headerSearchPaths.add(PathFragment.create(objcFileRootExecPath, genRoot)); return headerSearchPaths.build(); } } diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java index ad677f6a89..3480cfcdef 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java @@ -686,7 +686,7 @@ public final class ObjcCommon { static ImmutableSet<PathFragment> userHeaderSearchPaths( ObjcProvider provider, BuildConfiguration config) { return ImmutableSet.<PathFragment>builder() - .add(new PathFragment(".")) + .add(PathFragment.create(".")) .add(config.getGenfilesFragment()) .addAll(provider.get(IQUOTE)) .build(); diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProviderSkylarkConverters.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProviderSkylarkConverters.java index 46665908ee..03c2ae243f 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProviderSkylarkConverters.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProviderSkylarkConverters.java @@ -119,7 +119,7 @@ public class ObjcProviderSkylarkConverters { validateTypes(skylarkValue, String.class, javaKey.getSkylarkKeyName()); NestedSetBuilder<PathFragment> result = NestedSetBuilder.stableOrder(); for (String path : ((SkylarkNestedSet) skylarkValue).toCollection(String.class)) { - result.add(new PathFragment(path)); + result.add(PathFragment.create(path)); } return result.build(); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ProtobufSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ProtobufSupport.java index 455ee70391..2505835104 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ProtobufSupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ProtobufSupport.java @@ -551,7 +551,7 @@ final class ProtobufSupport { // of dependers. PathFragment rootRelativeOutputDir = ruleContext.getUniqueDirectory(UNIQUE_DIRECTORY_NAME); - return new PathFragment( + return PathFragment.create( buildConfiguration.getBinDirectory().getExecPath(), rootRelativeOutputDir); } @@ -562,10 +562,9 @@ final class ProtobufSupport { String protoFileName = FileSystemUtils.removeExtension(protoFile.getFilename()); String generatedOutputName = attributes.getGeneratedProtoFilename(protoFileName, true); - PathFragment generatedFilePath = - new PathFragment( - protoFile.getRootRelativePath().getParentDirectory(), - new PathFragment(generatedOutputName)); + PathFragment generatedFilePath = PathFragment.create( + protoFile.getRootRelativePath().getParentDirectory(), + PathFragment.create(generatedOutputName)); PathFragment outputFile = FileSystemUtils.appendExtension(generatedFilePath, extension); diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ProtocolBuffers2Support.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ProtocolBuffers2Support.java index 54d8904492..0a19cb18ca 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ProtocolBuffers2Support.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ProtocolBuffers2Support.java @@ -86,7 +86,7 @@ final class ProtocolBuffers2Support { .addInputs(attributes.getOptionsFile().asSet()) .addOutputs(getGeneratedProtoOutputs(getHeaderExtension())) .addOutputs(getGeneratedProtoOutputs(getSourceExtension())) - .setExecutable(new PathFragment("/usr/bin/python")) + .setExecutable(PathFragment.create("/usr/bin/python")) .setCommandLine(getGenerationCommandLine()) .build(ruleContext)); return this; @@ -203,9 +203,8 @@ final class ProtocolBuffers2Support { new ImmutableSet.Builder<PathFragment>().add(getWorkspaceRelativeOutputDir()); if (attributes.needsPerProtoIncludes()) { - PathFragment generatedProtoDir = - new PathFragment( - getWorkspaceRelativeOutputDir(), ruleContext.getLabel().getPackageFragment()); + PathFragment generatedProtoDir = PathFragment.create( + getWorkspaceRelativeOutputDir(), ruleContext.getLabel().getPackageFragment()); searchPathEntriesBuilder .add(generatedProtoDir) @@ -223,7 +222,7 @@ final class ProtocolBuffers2Support { // of dependers. PathFragment rootRelativeOutputDir = ruleContext.getUniqueDirectory(UNIQUE_DIRECTORY_NAME); - return new PathFragment( + return PathFragment.create( ruleContext.getBinOrGenfilesDirectory().getExecPath(), rootRelativeOutputDir); } @@ -233,10 +232,9 @@ final class ProtocolBuffers2Support { String protoFileName = FileSystemUtils.removeExtension(protoFile.getFilename()); String generatedOutputName = attributes.getGeneratedProtoFilename(protoFileName, false); - PathFragment generatedFilePath = - new PathFragment( - protoFile.getRootRelativePath().getParentDirectory(), - new PathFragment(generatedOutputName)); + PathFragment generatedFilePath = PathFragment.create( + protoFile.getRootRelativePath().getParentDirectory(), + PathFragment.create(generatedOutputName)); PathFragment outputFile = FileSystemUtils.appendExtension(generatedFilePath, extension); diff --git a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoSourceFileBlacklist.java b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoSourceFileBlacklist.java index 6ba951753d..7f38142785 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoSourceFileBlacklist.java +++ b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoSourceFileBlacklist.java @@ -41,7 +41,8 @@ import java.util.List; * to identify these proto files and avoid linking in their associated generated files. */ public class ProtoSourceFileBlacklist { - private static final PathFragment BAZEL_TOOLS_PREFIX = new PathFragment("external/bazel_tools/"); + private static final PathFragment BAZEL_TOOLS_PREFIX = + PathFragment.create("external/bazel_tools/"); private final RuleContext ruleContext; private final ImmutableSet<PathFragment> blacklistProtoFilePaths; diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java b/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java index a343883816..2036401394 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java @@ -410,7 +410,7 @@ public final class PyCommon { } mainSourceName = ruleName + ".py"; } - PathFragment mainSourcePath = new PathFragment(mainSourceName); + PathFragment mainSourcePath = PathFragment.create(mainSourceName); Artifact mainArtifact = null; for (Artifact outItem : ruleContext.getPrerequisiteArtifacts("srcs", Mode.TARGET).list()) { @@ -433,8 +433,8 @@ public final class PyCommon { if (!withWorkspaceName) { return mainArtifact.getRunfilesPath().getPathString(); } - PathFragment workspaceName = new PathFragment( - ruleContext.getRule().getPackage().getWorkspaceName()); + PathFragment workspaceName = + PathFragment.create(ruleContext.getRule().getPackage().getWorkspaceName()); return workspaceName.getRelative(mainArtifact.getRunfilesPath()).getPathString(); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PythonUtils.java b/src/main/java/com/google/devtools/build/lib/rules/python/PythonUtils.java index c2508c2f94..ebe030fa41 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/python/PythonUtils.java +++ b/src/main/java/com/google/devtools/build/lib/rules/python/PythonUtils.java @@ -35,8 +35,8 @@ import java.util.Set; * Various utility methods for Python support. */ public final class PythonUtils { - public static final PathFragment INIT_PY = new PathFragment("__init__.py"); - public static final PathFragment INIT_PYC = new PathFragment("__init__.pyc"); + public static final PathFragment INIT_PY = PathFragment.create("__init__.py"); + public static final PathFragment INIT_PYC = PathFragment.create("__init__.pyc"); private static final FileType REQUIRES_INIT_PY = FileType.of(".py", ".so", ".pyc"); @@ -86,7 +86,7 @@ public final class PythonUtils { private static Artifact get2to3OutputArtifact(RuleContext ruleContext, Artifact input) { Root root = ruleContext.getConfiguration().getGenfilesDirectory( ruleContext.getRule().getRepository()); - PathFragment path = new PathFragment("python3").getRelative(input.getRootRelativePath()); + PathFragment path = PathFragment.create("python3").getRelative(input.getRootRelativePath()); return ruleContext.getShareableArtifact(path, root); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/NewRepositoryFileHandler.java b/src/main/java/com/google/devtools/build/lib/rules/repository/NewRepositoryFileHandler.java index 29efc78faa..64c4502b71 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/repository/NewRepositoryFileHandler.java +++ b/src/main/java/com/google/devtools/build/lib/rules/repository/NewRepositoryFileHandler.java @@ -195,7 +195,7 @@ public class NewRepositoryFileHandler { } } else { // TODO(dmarting): deprecate using a path for the workspace_file attribute. - PathFragment file = new PathFragment(fileAttribute); + PathFragment file = PathFragment.create(fileAttribute); Path fileTarget = workspacePath.getRelative(file); if (!fileTarget.exists()) { throw new RepositoryFunctionException( @@ -211,7 +211,7 @@ public class NewRepositoryFileHandler { if (file.isAbsolute()) { rootedFile = RootedPath.toRootedPath( - fileTarget.getParentDirectory(), new PathFragment(fileTarget.getBaseName())); + fileTarget.getParentDirectory(), PathFragment.create(fileTarget.getBaseName())); } else { rootedFile = RootedPath.toRootedPath(workspacePath, file); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryFunction.java index 0b92f0ac7a..51486eda50 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryFunction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryFunction.java @@ -298,7 +298,7 @@ public abstract class RepositoryFunction { } catch (EvalException e) { throw new RepositoryFunctionException(e, Transience.PERSISTENT); } - PathFragment pathFragment = new PathFragment(path); + PathFragment pathFragment = PathFragment.create(path); return workspace.getRelative(pathFragment).asFragment(); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryLoaderFunction.java b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryLoaderFunction.java index 19af038d62..c6040de671 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryLoaderFunction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryLoaderFunction.java @@ -52,7 +52,7 @@ public class RepositoryLoaderFunction implements SkyFunction { SkyKey workspaceKey = WorkspaceFileValue.key( - RootedPath.toRootedPath(repository.getPath(), new PathFragment("WORKSPACE"))); + RootedPath.toRootedPath(repository.getPath(), PathFragment.create("WORKSPACE"))); WorkspaceFileValue workspacePackage = (WorkspaceFileValue) env.getValue(workspaceKey); if (workspacePackage == null) { return null; diff --git a/src/main/java/com/google/devtools/build/lib/rules/test/BaselineCoverageAction.java b/src/main/java/com/google/devtools/build/lib/rules/test/BaselineCoverageAction.java index 8b7dea8469..7f42c03889 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/test/BaselineCoverageAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/test/BaselineCoverageAction.java @@ -116,7 +116,7 @@ public final class BaselineCoverageAction extends AbstractFileWriteAction RuleContext ruleContext, NestedSet<Artifact> instrumentedFiles) { // Baseline coverage artifacts will still go into "testlogs" directory. Artifact coverageData = ruleContext.getPackageRelativeArtifact( - new PathFragment(ruleContext.getTarget().getName()).getChild("baseline_coverage.dat"), + PathFragment.create(ruleContext.getTarget().getName()).getChild("baseline_coverage.dat"), ruleContext.getConfiguration().getTestLogsDirectory( ruleContext.getRule().getRepository())); ruleContext.registerAction(new BaselineCoverageAction( diff --git a/src/main/java/com/google/devtools/build/lib/rules/test/TestActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/test/TestActionBuilder.java index da7963576e..5624b2bddb 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/test/TestActionBuilder.java +++ b/src/main/java/com/google/devtools/build/lib/rules/test/TestActionBuilder.java @@ -88,7 +88,7 @@ public final class TestActionBuilder { // heuristically sharding is currently experimental. Also, we do detect // false-positive cases and return an error. return runfilesSupport.getRunfilesSymlinkNames().contains( - new PathFragment("tools/test_sharding_compliant")); + PathFragment.create("tools/test_sharding_compliant")); } /** @@ -180,7 +180,7 @@ public final class TestActionBuilder { * TestResultAnalyzer to keep track of completed and pending test runs. */ private TestParams createTestAction(int shards) { - PathFragment targetName = new PathFragment(ruleContext.getLabel().getName()); + PathFragment targetName = PathFragment.create(ruleContext.getLabel().getName()); BuildConfiguration config = ruleContext.getConfiguration(); AnalysisEnvironment env = ruleContext.getAnalysisEnvironment(); Root root = config.getTestLogsDirectory(ruleContext.getRule().getRepository()); diff --git a/src/main/java/com/google/devtools/build/lib/rules/test/TestRunnerAction.java b/src/main/java/com/google/devtools/build/lib/rules/test/TestRunnerAction.java index 01ea45134a..d6c4d45c6d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/test/TestRunnerAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/test/TestRunnerAction.java @@ -58,7 +58,7 @@ import javax.annotation.Nullable; */ // Not final so that we can mock it in tests. public class TestRunnerAction extends AbstractAction implements NotifyOnActionCacheHit { - public static final PathFragment COVERAGE_TMP_ROOT = new PathFragment("_coverage"); + public static final PathFragment COVERAGE_TMP_ROOT = PathFragment.create("_coverage"); // Used for selecting subset of testcase / testmethods. private static final String TEST_BRIDGE_TEST_FILTER_ENV = "TESTBRIDGE_TEST_ONLY"; @@ -134,7 +134,7 @@ public class TestRunnerAction extends AbstractAction implements NotifyOnActionCa boolean useTestRunner) { super(owner, inputs, // Note that this action only cares about the runfiles, not the mapping. - new RunfilesSupplierImpl(new PathFragment("runfiles"), executionSettings.getRunfiles()), + new RunfilesSupplierImpl(PathFragment.create("runfiles"), executionSettings.getRunfiles()), list(testLog, cacheStatus, coverageArtifact, microCoverageArtifact)); this.runtime = runtime; this.configuration = Preconditions.checkNotNull(configuration); diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/CoverageCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/CoverageCommand.java index 2e9e9de4df..833e01145d 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/commands/CoverageCommand.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/CoverageCommand.java @@ -289,7 +289,7 @@ public class CoverageCommand extends TestCommand { // filter value much more user-friendly - especially in case of /my/package/... wildcards. Set<String> parentFilters = Sets.newTreeSet(); String filterString = iterator.next(); - PathFragment parent = new PathFragment(filterString).getParentDirectory(); + PathFragment parent = PathFragment.create(filterString).getParentDirectory(); while (iterator.hasNext()) { String current = iterator.next(); if (parent != null && parent.getPathString().length() > 0 @@ -297,7 +297,7 @@ public class CoverageCommand extends TestCommand { parentFilters.add(parent.getPathString()); } else { filterString = current; - parent = new PathFragment(filterString).getParentDirectory(); + parent = PathFragment.create(filterString).getParentDirectory(); } } packageFilters.addAll(parentFilters); diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/ProjectFileSupport.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/ProjectFileSupport.java index 3d3a9b0066..4f738c7a46 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/commands/ProjectFileSupport.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/ProjectFileSupport.java @@ -58,7 +58,7 @@ public final class ProjectFileSupport { // TODO(bazel-team): This is currently treated as a path relative to the workspace - if the // cwd is a subdirectory of the workspace, that will be surprising, and we should interpret it // relative to the cwd instead. - PathFragment projectFilePath = new PathFragment(targets.get(0).substring(1)); + PathFragment projectFilePath = PathFragment.create(targets.get(0).substring(1)); List<Path> packagePath = PathPackageLocator.create( env.getOutputBase(), optionsParser.getOptions(PackageCacheOptions.class).packagePath, diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedStrategy.java b/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedStrategy.java index 2eff7c45cc..0a649e93e6 100644 --- a/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedStrategy.java +++ b/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedStrategy.java @@ -324,7 +324,7 @@ public class DarwinSandboxedStrategy extends SandboxStrategy { TestRunnerAction testRunnerAction = ((TestRunnerAction) spawn.getResourceOwner()); RunUnder runUnder = testRunnerAction.getExecutionSettings().getRunUnder(); if (runUnder != null && runUnder.getCommand() != null) { - PathFragment sourceFragment = new PathFragment(runUnder.getCommand()); + PathFragment sourceFragment = PathFragment.create(runUnder.getCommand()); Path mount; if (sourceFragment.isAbsolute()) { mount = blazeDirs.getFileSystem().getPath(sourceFragment); diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/SandboxHelpers.java b/src/main/java/com/google/devtools/build/lib/sandbox/SandboxHelpers.java index e30008e3ae..26fd236adf 100644 --- a/src/main/java/com/google/devtools/build/lib/sandbox/SandboxHelpers.java +++ b/src/main/java/com/google/devtools/build/lib/sandbox/SandboxHelpers.java @@ -51,7 +51,7 @@ public final class SandboxHelpers { public static ImmutableSet<PathFragment> getOutputFiles(Spawn spawn) { Builder<PathFragment> outputFiles = ImmutableSet.builder(); for (ActionInput output : spawn.getOutputFiles()) { - outputFiles.add(new PathFragment(output.getExecPathString())); + outputFiles.add(PathFragment.create(output.getExecPathString())); } return outputFiles.build(); } diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/SpawnHelpers.java b/src/main/java/com/google/devtools/build/lib/sandbox/SpawnHelpers.java index d8bb0a7f58..b6bd3c017e 100644 --- a/src/main/java/com/google/devtools/build/lib/sandbox/SpawnHelpers.java +++ b/src/main/java/com/google/devtools/build/lib/sandbox/SpawnHelpers.java @@ -108,7 +108,7 @@ public final class SpawnHelpers { // symlink referring to "source" has to be created (see below). PathFragment targetPath; if (isFilesetManifest) { - PathFragment targetPathFragment = new PathFragment(fields[0]); + PathFragment targetPathFragment = PathFragment.create(fields[0]); if (!workspaceName.isEmpty()) { Preconditions.checkState( targetPathFragment.getSegment(0).equals(workspaceName), @@ -176,7 +176,7 @@ public final class SpawnHelpers { // Attempting to mount a non-empty directory results in ERR_DIRECTORY_NOT_EMPTY, so we only // mount empty TreeArtifacts as directories. if (containedArtifacts.isEmpty()) { - PathFragment mount = new PathFragment(input.getExecPathString()); + PathFragment mount = PathFragment.create(input.getExecPathString()); mounts.put(mount, execRoot.getRelative(mount)); } } @@ -186,7 +186,7 @@ public final class SpawnHelpers { if (input.getExecPathString().contains("internal/_middlemen/")) { continue; } - PathFragment mount = new PathFragment(input.getExecPathString()); + PathFragment mount = PathFragment.create(input.getExecPathString()); mounts.put(mount, execRoot.getRelative(mount)); } } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/BlacklistedPackagePrefixesFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/BlacklistedPackagePrefixesFunction.java index 11c78aefc8..a3c6768c96 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/BlacklistedPackagePrefixesFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/BlacklistedPackagePrefixesFunction.java @@ -85,7 +85,7 @@ public class BlacklistedPackagePrefixesFunction implements SkyFunction { @Override public boolean processLine(String line) throws IOException { if (!line.isEmpty()) { - fragments.add(new PathFragment(line)); + fragments.add(PathFragment.create(line)); } return true; } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/FileFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/FileFunction.java index f06be6bad2..aa91104394 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/FileFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/FileFunction.java @@ -128,7 +128,7 @@ public class FileFunction implements SkyFunction { if (parentFileValue == null) { return null; } - PathFragment baseName = new PathFragment(relativePath.getBaseName()); + PathFragment baseName = PathFragment.create(relativePath.getBaseName()); RootedPath parentRealRootedPath = parentFileValue.realRootedPath(); realRootedPath = RootedPath.toRootedPath(parentRealRootedPath.getRoot(), parentRealRootedPath.getRelativePath().getRelative(baseName)); diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/FilesetEntryFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/FilesetEntryFunction.java index f95274c648..fe23f379b4 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/FilesetEntryFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/FilesetEntryFunction.java @@ -217,7 +217,7 @@ public final class FilesetEntryFunction implements SkyFunction { public boolean apply(String e) { // Keep the top-level exclusions only. Do not look for "/" but count the path segments // instead, in anticipation of future Windows support. - return new PathFragment(e).segmentCount() == 1; + return PathFragment.create(e).segmentCount() == 1; } }); } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/LocalDiffAwareness.java b/src/main/java/com/google/devtools/build/lib/skyframe/LocalDiffAwareness.java index 753f920cab..4874d89d5c 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/LocalDiffAwareness.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/LocalDiffAwareness.java @@ -79,7 +79,7 @@ public abstract class LocalDiffAwareness implements DiffAwareness { // There's no good way to automatically detect network file systems. We rely on a blacklist // for now (and maybe add a command-line option in the future?). for (String prefix : prefixBlacklist) { - if (resolvedPathEntryFragment.startsWith(new PathFragment(prefix))) { + if (resolvedPathEntryFragment.startsWith(PathFragment.create(prefix))) { return null; } } @@ -188,7 +188,7 @@ public abstract class LocalDiffAwareness implements DiffAwareness { public PathFragment apply(Path input) { Preconditions.checkArgument( input.startsWith(watchRootPath), "%s %s", input, watchRootPath); - return new PathFragment(watchRootPath.relativize(input).toString()); + return PathFragment.create(watchRootPath.relativize(input).toString()); } }; } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunction.java index e134350061..ae4b250971 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunction.java @@ -208,7 +208,7 @@ public class LocalRepositoryLookupFunction implements SkyFunction { @Override public boolean apply(@Nullable Rule rule) { AggregatingAttributeMapper mapper = AggregatingAttributeMapper.of(rule); - PathFragment pathAttr = new PathFragment(mapper.get("path", Type.STRING)); + PathFragment pathAttr = PathFragment.create(mapper.get("path", Type.STRING)); return directory.getRelativePath().equals(pathAttr); } }, diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java index 1941489a77..23ecccec99 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java @@ -101,7 +101,7 @@ public class PackageFunction implements SkyFunction { // Not final only for testing. @Nullable private SkylarkImportLookupFunction skylarkImportLookupFunctionForInlining; - static final PathFragment DEFAULTS_PACKAGE_NAME = new PathFragment("tools/defaults"); + static final PathFragment DEFAULTS_PACKAGE_NAME = PathFragment.create("tools/defaults"); public PackageFunction( PackageFactory packageFactory, @@ -819,7 +819,7 @@ public class PackageFunction implements SkyFunction { // exceptions), it reaches here, and we tolerate it. return false; } - PathFragment labelNameFragment = new PathFragment(label.getName()); + PathFragment labelNameFragment = PathFragment.create(label.getName()); String message = String.format("Label '%s' crosses boundary of subpackage '%s'", label, containingPkg); Path containingRoot = containingPkgLookupValue.getContainingPackageRoot(); diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupValue.java index 32d1e9007f..7db3a2abdd 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupValue.java @@ -43,7 +43,7 @@ public abstract class PackageLookupValue implements SkyValue { WORKSPACE("WORKSPACE") { @Override public PathFragment getBuildFileFragment(PackageIdentifier packageIdentifier) { - return new PathFragment(BuildFileName.WORKSPACE.getFilename()); + return PathFragment.create(BuildFileName.WORKSPACE.getFilename()); } }, BUILD("BUILD") { diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceASTFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceASTFunction.java index 8cc2d812c5..41602146ad 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceASTFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceASTFunction.java @@ -56,7 +56,7 @@ public class WorkspaceASTFunction implements SkyFunction { try { BuildFileAST ast = BuildFileAST.parseBuildFile( ParserInputSource.create(ruleClassProvider.getDefaultWorkspacePrefix(), - new PathFragment("/DEFAULT.WORKSPACE")), + PathFragment.create("/DEFAULT.WORKSPACE")), env.getListener()); if (ast.containsErrors()) { throw new WorkspaceASTFunctionException( @@ -76,7 +76,7 @@ public class WorkspaceASTFunction implements SkyFunction { } ast = BuildFileAST.parseBuildFile( ParserInputSource.create(ruleClassProvider.getDefaultWorkspaceSuffix(), - new PathFragment("/DEFAULT.WORKSPACE.SUFFIX")), + PathFragment.create("/DEFAULT.WORKSPACE.SUFFIX")), ast.getStatements(), env.getListener()); if (ast.containsErrors()) { diff --git a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkImports.java b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkImports.java index 44d4a9b616..9d28ee8b19 100644 --- a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkImports.java +++ b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkImports.java @@ -119,7 +119,7 @@ public class SkylarkImports { @Override public PathFragment asPathFragment() { - return new PathFragment(importFile); + return PathFragment.create(importFile); } @Override @@ -128,7 +128,7 @@ public class SkylarkImports { // a subdirectory of the package that contains it. We need to construct a Label with // the imported file in the same subdirectory of the package. PathFragment containingDirInPkg = - (new PathFragment(containingFileLabel.getName())).getParentDirectory(); + PathFragment.create(containingFileLabel.getName()).getParentDirectory(); String targetNameForImport = containingDirInPkg.getRelative(importFile).toString(); try { return containingFileLabel.getRelative(targetNameForImport); @@ -151,7 +151,7 @@ public class SkylarkImports { @Override public PathFragment asPathFragment() { - return new PathFragment(PathFragment.ROOT_DIR).getRelative(importLabel.toPathFragment()); + return PathFragment.create(PathFragment.ROOT_DIR).getRelative(importLabel.toPathFragment()); } @Override @@ -173,7 +173,7 @@ public class SkylarkImports { @Override public PathFragment asPathFragment() { - return new PathFragment(importTarget); + return PathFragment.create(importTarget); } @Override @@ -253,7 +253,7 @@ public class SkylarkImports { if (importString.endsWith(".bzl")) { throw new SkylarkImportSyntaxException(INVALID_PATH_SYNTAX); } - PathFragment importPath = new PathFragment(importString + ".bzl"); + PathFragment importPath = PathFragment.create(importString + ".bzl"); return new AbsolutePathImport(importString, importPath); } else if (importString.startsWith(":")) { // Relative label. We require that relative labels use an explicit ':' prefix to distinguish diff --git a/src/main/java/com/google/devtools/build/lib/unix/UnixFileSystem.java b/src/main/java/com/google/devtools/build/lib/unix/UnixFileSystem.java index c21848a9f7..c70420ba7d 100644 --- a/src/main/java/com/google/devtools/build/lib/unix/UnixFileSystem.java +++ b/src/main/java/com/google/devtools/build/lib/unix/UnixFileSystem.java @@ -334,7 +334,7 @@ public class UnixFileSystem extends AbstractFileSystemWithCustomStat { String name = path.toString(); long startTime = Profiler.nanoTimeMaybe(); try { - return new PathFragment(NativePosixFiles.readlink(name)); + return PathFragment.create(NativePosixFiles.readlink(name)); } catch (IOException e) { // EINVAL => not a symbolic link. Anything else is a real error. throw e.getMessage().endsWith("(Invalid argument)") ? new NotASymlinkException(path) : e; diff --git a/src/main/java/com/google/devtools/build/lib/util/OptionsUtils.java b/src/main/java/com/google/devtools/build/lib/util/OptionsUtils.java index 5ad34d7a34..3013f3e23e 100644 --- a/src/main/java/com/google/devtools/build/lib/util/OptionsUtils.java +++ b/src/main/java/com/google/devtools/build/lib/util/OptionsUtils.java @@ -135,7 +135,7 @@ public final class OptionsUtils { @Override public PathFragment convert(String input) { - return new PathFragment(input); + return PathFragment.create(input); } @Override @@ -155,7 +155,7 @@ public final class OptionsUtils { List<PathFragment> list = new ArrayList<>(); for (String piece : input.split(":")) { if (!piece.isEmpty()) { - list.add(new PathFragment(piece)); + list.add(PathFragment.create(piece)); } } return Collections.unmodifiableList(list); diff --git a/src/main/java/com/google/devtools/build/lib/util/PathFragmentFilter.java b/src/main/java/com/google/devtools/build/lib/util/PathFragmentFilter.java index d4eb7d7474..8262c75a16 100644 --- a/src/main/java/com/google/devtools/build/lib/util/PathFragmentFilter.java +++ b/src/main/java/com/google/devtools/build/lib/util/PathFragmentFilter.java @@ -51,9 +51,9 @@ public class PathFragmentFilter implements Serializable { for (String piece : Splitter.on(',').split(input)) { if (piece.length() > 1 && piece.startsWith("-")) { - exclusionList.add(new PathFragment(piece.substring(1))); + exclusionList.add(PathFragment.create(piece.substring(1))); } else if (piece.length() > 0) { - inclusionList.add(new PathFragment(piece)); + inclusionList.add(PathFragment.create(piece)); } } diff --git a/src/main/java/com/google/devtools/build/lib/vfs/FileSystem.java b/src/main/java/com/google/devtools/build/lib/vfs/FileSystem.java index bce290eaf4..d77c1d7a3b 100644 --- a/src/main/java/com/google/devtools/build/lib/vfs/FileSystem.java +++ b/src/main/java/com/google/devtools/build/lib/vfs/FileSystem.java @@ -131,7 +131,7 @@ public abstract class FileSystem { * file system. */ public Path getPath(String pathName) { - return getPath(new PathFragment(pathName)); + return getPath(PathFragment.create(pathName)); } /** diff --git a/src/main/java/com/google/devtools/build/lib/vfs/FileSystemUtils.java b/src/main/java/com/google/devtools/build/lib/vfs/FileSystemUtils.java index 9cc3dc78d8..5b3bc1e717 100644 --- a/src/main/java/com/google/devtools/build/lib/vfs/FileSystemUtils.java +++ b/src/main/java/com/google/devtools/build/lib/vfs/FileSystemUtils.java @@ -109,7 +109,7 @@ public class FileSystemUtils { */ public static PathFragment relativePath(PathFragment fromDir, PathFragment to) { if (to.equals(fromDir)) { - return new PathFragment("."); // same dir, just return '.' + return PathFragment.create("."); // same dir, just return '.' } if (to.startsWith(fromDir)) { return to.relativeTo(fromDir); // easy case--it's a descendant @@ -123,7 +123,7 @@ public class FileSystemUtils { for (int i = 0; i < levels; i++) { dotdots.append("../"); } - return new PathFragment(dotdots.toString()).getRelative(to.relativeTo(ancestor)); + return PathFragment.create(dotdots.toString()).getRelative(to.relativeTo(ancestor)); } /** @@ -229,9 +229,10 @@ public class FileSystemUtils { int count = path.segmentCount(); for (int i = 0; i < count; i++) { if (path.getSegment(i).equals(oldSegment)) { - path = new PathFragment(path.subFragment(0, i), - new PathFragment(newSegment), - path.subFragment(i+1, count)); + path = PathFragment.create( + path.subFragment(0, i), + PathFragment.create(newSegment), + path.subFragment(i+1, count)); if (!replaceAll) { return path; } @@ -287,7 +288,7 @@ public class FileSystemUtils { * 'user.dir'. This version does not require a {@link FileSystem}. */ public static PathFragment getWorkingDirectory() { - return new PathFragment(System.getProperty("user.dir", "/")); + return PathFragment.create(System.getProperty("user.dir", "/")); } /**************************************************************************** @@ -356,7 +357,7 @@ public class FileSystemUtils { */ @ThreadSafe // but not atomic public static void ensureSymbolicLink(Path link, String target) throws IOException { - ensureSymbolicLink(link, new PathFragment(target)); + ensureSymbolicLink(link, PathFragment.create(target)); } /** diff --git a/src/main/java/com/google/devtools/build/lib/vfs/JavaIoFileSystem.java b/src/main/java/com/google/devtools/build/lib/vfs/JavaIoFileSystem.java index e4099693a6..2512308808 100644 --- a/src/main/java/com/google/devtools/build/lib/vfs/JavaIoFileSystem.java +++ b/src/main/java/com/google/devtools/build/lib/vfs/JavaIoFileSystem.java @@ -279,7 +279,7 @@ public class JavaIoFileSystem extends AbstractFileSystemWithCustomStat { long startTime = Profiler.nanoTimeMaybe(); try { String link = Files.readSymbolicLink(file.toPath()).toString(); - return new PathFragment(link); + return PathFragment.create(link); } catch (java.nio.file.NotLinkException e) { throw new NotASymlinkException(path); } catch (java.nio.file.NoSuchFileException e) { diff --git a/src/main/java/com/google/devtools/build/lib/vfs/Path.java b/src/main/java/com/google/devtools/build/lib/vfs/Path.java index e4088416cc..ac8b756696 100644 --- a/src/main/java/com/google/devtools/build/lib/vfs/Path.java +++ b/src/main/java/com/google/devtools/build/lib/vfs/Path.java @@ -223,7 +223,7 @@ public class Path implements Comparable<Path>, Serializable { private void readObject(ObjectInputStream in) throws IOException { fileSystem = fileSystemForSerialization; String p = in.readUTF(); - PathFragment pf = new PathFragment(p); + PathFragment pf = PathFragment.create(p); PathFragment parentDir = pf.getParentDirectory(); if (parentDir == null) { this.name = "/"; @@ -725,9 +725,9 @@ public class Path implements Comparable<Path>, Serializable { } else if (path.equals("..")) { return isTopLevelDirectory() ? this : parent; } else if (path.indexOf('/') != -1) { - return getRelative(new PathFragment(path)); + return getRelative(PathFragment.create(path)); } else if (path.indexOf(PathFragment.EXTRA_SEPARATOR_CHAR) != -1) { - return getRelative(new PathFragment(path)); + return getRelative(PathFragment.create(path)); } else { return getCachedChildPath(path); } @@ -745,7 +745,7 @@ public class Path implements Comparable<Path>, Serializable { /** Returns an absolute PathFragment representing this path. */ public PathFragment asFragment() { - return new PathFragment('\0', true, getSegments()); + return PathFragment.createNoClone('\0', true, getSegments()); } /** @@ -777,7 +777,7 @@ public class Path implements Comparable<Path>, Serializable { currentPath = currentPath.getParentDirectory(); } if (ancestorPath.equals(currentPath)) { - return new PathFragment('\0', false, resultSegments); + return PathFragment.createNoClone('\0', false, resultSegments); } } } diff --git a/src/main/java/com/google/devtools/build/lib/vfs/PathFragment.java b/src/main/java/com/google/devtools/build/lib/vfs/PathFragment.java index b466fc9629..5a324bec60 100644 --- a/src/main/java/com/google/devtools/build/lib/vfs/PathFragment.java +++ b/src/main/java/com/google/devtools/build/lib/vfs/PathFragment.java @@ -57,13 +57,13 @@ public final class PathFragment implements Comparable<PathFragment>, Serializabl public static final String ROOT_DIR = "/"; /** An empty path fragment. */ - public static final PathFragment EMPTY_FRAGMENT = new PathFragment(""); + public static final PathFragment EMPTY_FRAGMENT = create(""); public static final Function<String, PathFragment> TO_PATH_FRAGMENT = new Function<String, PathFragment>() { @Override public PathFragment apply(String str) { - return new PathFragment(str); + return create(str); } }; @@ -89,7 +89,7 @@ public final class PathFragment implements Comparable<PathFragment>, Serializabl for (int i = 0; i < segments.length; i++) { internedSegments[i] = StringCanonicalizer.intern(segments[i]); } - return new PathFragment(driveLetter, isAbsolute, internedSegments); + return createNoClone(driveLetter, isAbsolute, internedSegments); } /** Same as {@link #create(char, boolean, String[])}, except for {@link List}s of segments. */ @@ -98,7 +98,40 @@ public final class PathFragment implements Comparable<PathFragment>, Serializabl for (int i = 0; i < segments.size(); i++) { internedSegments[i] = StringCanonicalizer.intern(segments.get(i)); } - return new PathFragment(driveLetter, isAbsolute, internedSegments); + return createNoClone(driveLetter, isAbsolute, internedSegments); + } + + /** + * Construct a PathFragment from a java.io.File, which is an absolute or + * relative UNIX path. Does not support Windows-style Files. + */ + public static PathFragment create(File path) { + return new PathFragment(path); + } + + /** + * Construct a PathFragment from a string, which is an absolute or relative UNIX or Windows path. + */ + public static PathFragment create(String path) { + return new PathFragment(path); + } + + /** + * Constructs a PathFragment, taking ownership of segments. Package-private, + * because it does not perform a defensive clone of the segments array. Used + * here in PathFragment, and by Path.asFragment() and Path.relativeTo(). + */ + static PathFragment createNoClone( + char driveLetter, boolean isAbsolute, String[] segments) { + return new PathFragment(driveLetter, isAbsolute, segments); + } + + /** + * Construct a PathFragment from a sequence of other PathFragments. The new + * fragment will be absolute iff the first fragment was absolute. + */ + public static PathFragment create(PathFragment first, PathFragment second, PathFragment... more) { + return new PathFragment(first, second, more); } // We have 3 word-sized fields (segments, hashCode and path), and 2 @@ -121,9 +154,8 @@ public final class PathFragment implements Comparable<PathFragment>, Serializabl private int hashCode; private String path; - /** - * Construct a PathFragment from a string, which is an absolute or relative UNIX or Windows path. - */ + /** Don't call this ctor; use {@link #create(String)} instead. */ + @Deprecated public PathFragment(String path) { this.driveLetter = (OS.getCurrent() == OS.WINDOWS @@ -145,20 +177,11 @@ public final class PathFragment implements Comparable<PathFragment>, Serializabl return c == SEPARATOR_CHAR || c == EXTRA_SEPARATOR_CHAR; } - /** - * Construct a PathFragment from a java.io.File, which is an absolute or - * relative UNIX path. Does not support Windows-style Files. - */ - public PathFragment(File path) { + private PathFragment(File path) { this(path.getPath()); } - /** - * Constructs a PathFragment, taking ownership of segments. Package-private, - * because it does not perform a defensive clone of the segments array. Used - * here in PathFragment, and by Path.asFragment() and Path.relativeTo(). - */ - PathFragment(char driveLetter, boolean isAbsolute, String[] segments) { + private PathFragment(char driveLetter, boolean isAbsolute, String[] segments) { driveLetter = Character.toUpperCase(driveLetter); if (OS.getCurrent() == OS.WINDOWS && segments.length > 0 @@ -175,11 +198,7 @@ public final class PathFragment implements Comparable<PathFragment>, Serializabl this.segments = segments; } - /** - * Construct a PathFragment from a sequence of other PathFragments. The new - * fragment will be absolute iff the first fragment was absolute. - */ - public PathFragment(PathFragment first, PathFragment second, PathFragment... more) { + private PathFragment(PathFragment first, PathFragment second, PathFragment... more) { // TODO(bazel-team): The handling of absolute path fragments in this constructor is unexpected. this.segments = new String[sumLengths(first, second, more)]; int offset = 0; @@ -420,8 +439,7 @@ public final class PathFragment implements Comparable<PathFragment>, Serializabl return this; } - return new PathFragment(driveLetter, isAbsolute, - subarray(scratchSegments, 0, segmentCount)); + return createNoClone(driveLetter, isAbsolute, subarray(scratchSegments, 0, segmentCount)); } /** @@ -440,9 +458,9 @@ public final class PathFragment implements Comparable<PathFragment>, Serializabl if (otherFragment.isAbsolute()) { return this.driveLetter == '\0' || otherFragment.driveLetter != '\0' ? otherFragment - : new PathFragment(this.driveLetter, true, otherFragment.segments); + : createNoClone(this.driveLetter, true, otherFragment.segments); } else { - return new PathFragment(this, otherFragment); + return create(this, otherFragment); } } @@ -455,7 +473,7 @@ public final class PathFragment implements Comparable<PathFragment>, Serializabl * with no path normalization or I/O performed. */ public PathFragment getRelative(String path) { - return getRelative(new PathFragment(path)); + return getRelative(create(path)); } /** @@ -474,7 +492,7 @@ public final class PathFragment implements Comparable<PathFragment>, Serializabl baseName = StringCanonicalizer.intern(baseName); String[] newSegments = Arrays.copyOf(segments, segments.length + 1); newSegments[newSegments.length - 1] = baseName; - return new PathFragment(driveLetter, isAbsolute, newSegments); + return createNoClone(driveLetter, isAbsolute, newSegments); } /** @@ -525,14 +543,14 @@ public final class PathFragment implements Comparable<PathFragment>, Serializabl int length = segments.length - ancestorLength; String[] resultSegments = subarray(segments, ancestorLength, length); - return new PathFragment('\0', false, resultSegments); + return createNoClone('\0', false, resultSegments); } /** * Returns a relative path fragment to this path, relative to {@code path}. */ public PathFragment relativeTo(String path) { - return relativeTo(new PathFragment(path)); + return relativeTo(create(path)); } /** @@ -619,8 +637,11 @@ public final class PathFragment implements Comparable<PathFragment>, Serializabl toString(), beginIndex, endIndex)); } boolean isAbsolute = (beginIndex == 0) && this.isAbsolute; - return ((beginIndex == 0) && (endIndex == count)) ? this : - new PathFragment(driveLetter, isAbsolute, + return ((beginIndex == 0) && (endIndex == count)) + ? this + : createNoClone( + driveLetter, + isAbsolute, subarray(segments, beginIndex, endIndex - beginIndex)); } @@ -698,7 +719,7 @@ public final class PathFragment implements Comparable<PathFragment>, Serializabl */ public PathFragment toRelative() { Preconditions.checkArgument(isAbsolute); - return new PathFragment(driveLetter, false, segments); + return createNoClone(driveLetter, false, segments); } private boolean isEmpty() { diff --git a/src/main/java/com/google/devtools/build/lib/vfs/PathFragmentSerializationProxy.java b/src/main/java/com/google/devtools/build/lib/vfs/PathFragmentSerializationProxy.java index 7e4a1f036f..39aefd1318 100644 --- a/src/main/java/com/google/devtools/build/lib/vfs/PathFragmentSerializationProxy.java +++ b/src/main/java/com/google/devtools/build/lib/vfs/PathFragmentSerializationProxy.java @@ -44,7 +44,7 @@ public final class PathFragmentSerializationProxy implements Externalizable { } private Object readResolve() { - return new PathFragment(pathFragmentString); + return PathFragment.create(pathFragmentString); } } diff --git a/src/main/java/com/google/devtools/build/lib/vfs/SearchPath.java b/src/main/java/com/google/devtools/build/lib/vfs/SearchPath.java index 7f7d8c7ed2..764ed0ddfd 100644 --- a/src/main/java/com/google/devtools/build/lib/vfs/SearchPath.java +++ b/src/main/java/com/google/devtools/build/lib/vfs/SearchPath.java @@ -37,7 +37,7 @@ public class SearchPath { return paths; } for (String p : SEPARATOR.split(searchPath)) { - PathFragment pf = new PathFragment(p); + PathFragment pf = PathFragment.create(p); if (pf.isAbsolute()) { paths.add(fs.getPath(pf)); @@ -53,7 +53,7 @@ public class SearchPath { */ @Nullable public static Path which(List<Path> searchPath, String exe) { - PathFragment fragment = new PathFragment(exe); + PathFragment fragment = PathFragment.create(exe); if (fragment.segmentCount() != 1 || fragment.isAbsolute()) { return null; } diff --git a/src/main/java/com/google/devtools/build/lib/vfs/ZipFileSystem.java b/src/main/java/com/google/devtools/build/lib/vfs/ZipFileSystem.java index d7ad308728..353a684a82 100644 --- a/src/main/java/com/google/devtools/build/lib/vfs/ZipFileSystem.java +++ b/src/main/java/com/google/devtools/build/lib/vfs/ZipFileSystem.java @@ -160,7 +160,7 @@ public class ZipFileSystem extends ReadonlyFileSystem implements Closeable { private Collection<Path> populatePathTree() { Collection<Path> paths = new ArrayList<>(); for (ZipEntry entry : Collections.list(zipFile.entries())) { - PathFragment frag = new PathFragment(entry.getName()); + PathFragment frag = PathFragment.create(entry.getName()); Path path = rootPath.getRelative(frag); paths.add(path); ((ZipPath) path).setZipEntry(entry); diff --git a/src/main/java/com/google/devtools/build/lib/windows/WindowsFileSystem.java b/src/main/java/com/google/devtools/build/lib/windows/WindowsFileSystem.java index 710319f58e..77197d7c41 100644 --- a/src/main/java/com/google/devtools/build/lib/windows/WindowsFileSystem.java +++ b/src/main/java/com/google/devtools/build/lib/windows/WindowsFileSystem.java @@ -80,7 +80,7 @@ public class WindowsFileSystem extends JavaIoFileSystem { // the path, except the last one, is already canonicalized, so we can return just that. // Plus the returned value is passed to Path.getChild so we must not return a full // path here. - return new PathFragment(WindowsFileOperations.getLongPath(path)).getBaseName(); + return PathFragment.create(WindowsFileOperations.getLongPath(path)).getBaseName(); } catch (IOException e) { return null; } @@ -523,7 +523,7 @@ public class WindowsFileSystem extends JavaIoFileSystem { } path = path.trim(); - PathFragment result = new PathFragment(path); + PathFragment result = PathFragment.create(path); if (path.isEmpty() || result.getDriveLetter() == '\0' || !result.isAbsolute()) { return null; } else { diff --git a/src/main/java/com/google/devtools/build/lib/windows/WindowsSubprocessFactory.java b/src/main/java/com/google/devtools/build/lib/windows/WindowsSubprocessFactory.java index 0632baca01..e85325dcaa 100644 --- a/src/main/java/com/google/devtools/build/lib/windows/WindowsSubprocessFactory.java +++ b/src/main/java/com/google/devtools/build/lib/windows/WindowsSubprocessFactory.java @@ -76,7 +76,7 @@ public class WindowsSubprocessFactory implements Subprocess.Factory { // Therefore if it's absolute, then normalize it also. // If it's not absolute, then it cannot be longer than MAX_PATH, since MAX_PATH also limits the // length of file names. - PathFragment argv0fragment = new PathFragment(argv0); + PathFragment argv0fragment = PathFragment.create(argv0); return (argv0fragment.isAbsolute()) ? argv0fragment.normalize().getPathString().replace('/', '\\') : argv0; diff --git a/src/test/java/com/google/devtools/build/lib/actions/ArtifactFactoryTest.java b/src/test/java/com/google/devtools/build/lib/actions/ArtifactFactoryTest.java index c0bec56609..40c0f94771 100644 --- a/src/test/java/com/google/devtools/build/lib/actions/ArtifactFactoryTest.java +++ b/src/test/java/com/google/devtools/build/lib/actions/ArtifactFactoryTest.java @@ -83,15 +83,15 @@ public class ArtifactFactoryTest { alienRoot = Root.asSourceRoot(scratch.dir("/client/workspace")); outRoot = Root.asDerivedRoot(execRoot, execRoot.getRelative("out-root/x/bin")); - fooPath = new PathFragment("foo"); + fooPath = PathFragment.create("foo"); fooPackage = PackageIdentifier.createInMainRepo(fooPath); fooRelative = fooPath.getRelative("foosource.txt"); - barPath = new PathFragment("foo/bar"); + barPath = PathFragment.create("foo/bar"); barPackage = PackageIdentifier.createInMainRepo(barPath); barRelative = barPath.getRelative("barsource.txt"); - alienPath = new PathFragment("external/alien"); + alienPath = PathFragment.create("external/alien"); alienPackage = PackageIdentifier.create("@alien", alienPath); alienRelative = alienPath.getRelative("alien.txt"); @@ -116,7 +116,7 @@ public class ArtifactFactoryTest { @Test public void testGetSourceArtifactUnnormalized() throws Exception { assertSame(artifactFactory.getSourceArtifact(fooRelative, clientRoot), - artifactFactory.getSourceArtifact(new PathFragment("foo/./foosource.txt"), + artifactFactory.getSourceArtifact(PathFragment.create("foo/./foosource.txt"), clientRoot)); } @@ -156,11 +156,11 @@ public class ArtifactFactoryTest { // We need a package in the root directory to make every exec path (even one with up-level // references) be in a package. Map<PackageIdentifier, Root> packageRoots = ImmutableMap.of( - PackageIdentifier.createInMainRepo(new PathFragment("")), clientRoot); + PackageIdentifier.createInMainRepo(PathFragment.create("")), clientRoot); artifactFactory.setPackageRoots(packageRoots); - PathFragment outsideWorkspace = new PathFragment("../foo"); + PathFragment outsideWorkspace = PathFragment.create("../foo"); PathFragment insideWorkspace = - new PathFragment("../" + clientRoot.getPath().getBaseName() + "/foo"); + PathFragment.create("../" + clientRoot.getPath().getBaseName() + "/foo"); assertNull(artifactFactory.resolveSourceArtifact(outsideWorkspace, MAIN)); assertNull("Up-level-containing paths that descend into the right workspace aren't allowed", artifactFactory.resolveSourceArtifact(insideWorkspace, MAIN)); @@ -186,7 +186,7 @@ public class ArtifactFactoryTest { public void testFindDerivedRoot() throws Exception { assertThat(artifactFactory.isDerivedArtifact(fooRelative)).isFalse(); assertThat(artifactFactory.isDerivedArtifact( - new PathFragment("bazel-out/local-fastbuild/bin/foo"))).isTrue(); + PathFragment.create("bazel-out/local-fastbuild/bin/foo"))).isTrue(); } @Test @@ -210,7 +210,7 @@ public class ArtifactFactoryTest { @Test public void testGetDerivedArtifact() throws Exception { - PathFragment toolPath = new PathFragment("_bin/tool"); + PathFragment toolPath = PathFragment.create("_bin/tool"); Artifact artifact = artifactFactory.getDerivedArtifact(toolPath, execRoot); assertEquals(toolPath, artifact.getExecPath()); assertEquals(Root.asDerivedRoot(execRoot), artifact.getRoot()); @@ -221,7 +221,7 @@ public class ArtifactFactoryTest { @Test public void testGetDerivedArtifactFailsForAbsolutePath() throws Exception { try { - artifactFactory.getDerivedArtifact(new PathFragment("/_bin/b"), execRoot); + artifactFactory.getDerivedArtifact(PathFragment.create("/_bin/b"), execRoot); fail(); } catch (IllegalArgumentException e) { // Expected exception diff --git a/src/test/java/com/google/devtools/build/lib/actions/ArtifactTest.java b/src/test/java/com/google/devtools/build/lib/actions/ArtifactTest.java index 81b64b2b40..b7bb9d1ae8 100644 --- a/src/test/java/com/google/devtools/build/lib/actions/ArtifactTest.java +++ b/src/test/java/com/google/devtools/build/lib/actions/ArtifactTest.java @@ -66,8 +66,8 @@ public class ArtifactTest { @Test public void testEquivalenceRelation() throws Exception { - PathFragment aPath = new PathFragment("src/a"); - PathFragment bPath = new PathFragment("src/b"); + PathFragment aPath = PathFragment.create("src/a"); + PathFragment bPath = PathFragment.create("src/b"); assertEquals(new Artifact(aPath, rootDir), new Artifact(aPath, rootDir)); assertEquals(new Artifact(bPath, rootDir), @@ -78,14 +78,14 @@ public class ArtifactTest { @Test public void testEmptyLabelIsNone() throws Exception { - Artifact artifact = new Artifact(new PathFragment("src/a"), rootDir); + Artifact artifact = new Artifact(PathFragment.create("src/a"), rootDir); assertThat(artifact.getOwnerLabel()).isNull(); } @Test public void testComparison() throws Exception { - PathFragment aPath = new PathFragment("src/a"); - PathFragment bPath = new PathFragment("src/b"); + PathFragment aPath = PathFragment.create("src/a"); + PathFragment bPath = PathFragment.create("src/b"); Artifact aArtifact = new Artifact(aPath, rootDir); Artifact bArtifact = new Artifact(bPath, rootDir); assertEquals(-1, Artifact.EXEC_PATH_COMPARATOR.compare(aArtifact, bArtifact)); @@ -165,7 +165,7 @@ public class ArtifactTest { Artifact aHeader1 = new Artifact(scratch.file("/foo/bar1.h"), root); Artifact aHeader2 = new Artifact(scratch.file("/foo/bar2.h"), root); Artifact aHeader3 = new Artifact(scratch.file("/foo/bar3.h"), root); - Artifact middleman = new Artifact(new PathFragment("middleman"), + Artifact middleman = new Artifact(PathFragment.create("middleman"), Root.middlemanRoot(scratch.dir("/foo"), scratch.dir("/foo/out"))); actionGraph.registerAction(new MiddlemanAction(ActionsTestUtil.NULL_ACTION_OWNER, ImmutableList.of(aHeader1, aHeader2, aHeader3), middleman, "desc", @@ -198,10 +198,10 @@ public class ArtifactTest { Artifact.addExpandedExecPaths(getFooBarArtifacts(actionGraph, true), paths, ActionInputHelper.actionGraphArtifactExpander(actionGraph)); assertThat(paths).containsExactly( - new PathFragment("bar1.h"), - new PathFragment("bar1.h"), - new PathFragment("bar2.h"), - new PathFragment("bar3.h")); + PathFragment.create("bar1.h"), + PathFragment.create("bar1.h"), + PathFragment.create("bar2.h"), + PathFragment.create("bar3.h")); } @Test @@ -248,10 +248,10 @@ public class ArtifactTest { Artifact.addExpandedExecPaths(getFooBarArtifacts(actionGraph, true), paths, ActionInputHelper.actionGraphArtifactExpander(actionGraph)); assertThat(paths).containsExactly( - new PathFragment("bar1.h"), - new PathFragment("bar1.h"), - new PathFragment("bar2.h"), - new PathFragment("bar3.h")); + PathFragment.create("bar1.h"), + PathFragment.create("bar1.h"), + PathFragment.create("bar2.h"), + PathFragment.create("bar3.h")); } // TODO consider tests for the future @@ -285,7 +285,7 @@ public class ArtifactTest { @Test public void testToDetailString() throws Exception { Artifact a = new Artifact(scratch.file("/a/b/c"), Root.asDerivedRoot(scratch.dir("/a/b")), - new PathFragment("b/c")); + PathFragment.create("b/c")); assertEquals("[[/a]b]c", a.toDetailString()); } @@ -293,7 +293,7 @@ public class ArtifactTest { public void testWeirdArtifact() throws Exception { try { new Artifact(scratch.file("/a/b/c"), Root.asDerivedRoot(scratch.dir("/a")), - new PathFragment("c")); + PathFragment.create("c")); fail(); } catch (IllegalArgumentException e) { assertThat(e).hasMessage( @@ -312,7 +312,7 @@ public class ArtifactTest { public void testSerializeToStringWithExecPath() throws Exception { Path path = scratch.file("/aaa/bbb/ccc"); Root root = Root.asDerivedRoot(scratch.dir("/aaa/bbb")); - PathFragment execPath = new PathFragment("bbb/ccc"); + PathFragment execPath = PathFragment.create("bbb/ccc"); assertEquals("bbb/ccc /3", new Artifact(path, root, execPath).serializeToString()); } @@ -321,7 +321,7 @@ public class ArtifactTest { public void testSerializeToStringWithOwner() throws Exception { assertEquals("b/c /3 //foo:bar", new Artifact(scratch.file("/aa/b/c"), Root.asDerivedRoot(scratch.dir("/aa")), - new PathFragment("b/c"), + PathFragment.create("b/c"), new LabelArtifactOwner(Label.parseAbsoluteUnchecked("//foo:bar"))).serializeToString()); } @@ -353,7 +353,7 @@ public class ArtifactTest { public void testIsSourceArtifact() throws Exception { assertThat( new Artifact(scratch.file("/src/foo.cc"), Root.asSourceRoot(scratch.dir("/")), - new PathFragment("src/foo.cc")) + PathFragment.create("src/foo.cc")) .isSourceArtifact()) .isTrue(); assertThat( diff --git a/src/test/java/com/google/devtools/build/lib/actions/BaseSpawnTest.java b/src/test/java/com/google/devtools/build/lib/actions/BaseSpawnTest.java index 7f339dcb56..0c1b0f5fc1 100644 --- a/src/test/java/com/google/devtools/build/lib/actions/BaseSpawnTest.java +++ b/src/test/java/com/google/devtools/build/lib/actions/BaseSpawnTest.java @@ -44,7 +44,7 @@ public class BaseSpawnTest { final String runfilesDir = "runfilesdir"; BaseSpawn underTest = minimalBaseSpawn( baseEnviron, - new RunfilesSupplierImpl(new PathFragment(runfilesDir), Runfiles.EMPTY)); + new RunfilesSupplierImpl(PathFragment.create(runfilesDir), Runfiles.EMPTY)); Map<String, String> expected = ImmutableMap.<String, String>builder() .putAll(baseEnviron) @@ -60,8 +60,8 @@ public class BaseSpawnTest { Map<String, String> baseEnviron = ImmutableMap.of("HELLO", "world"); BaseSpawn underTest = minimalBaseSpawn(baseEnviron, new CompositeRunfilesSupplier( - new RunfilesSupplierImpl(new PathFragment("rfdir1"), Runfiles.EMPTY), - new RunfilesSupplierImpl(new PathFragment("rfdir2"), Runfiles.EMPTY))); + new RunfilesSupplierImpl(PathFragment.create("rfdir1"), Runfiles.EMPTY), + new RunfilesSupplierImpl(PathFragment.create("rfdir2"), Runfiles.EMPTY))); assertThat(underTest.getEnvironment()).isEqualTo(baseEnviron); } diff --git a/src/test/java/com/google/devtools/build/lib/actions/CompositeRunfilesSupplierTest.java b/src/test/java/com/google/devtools/build/lib/actions/CompositeRunfilesSupplierTest.java index 507fc8bcac..559deb12ef 100644 --- a/src/test/java/com/google/devtools/build/lib/actions/CompositeRunfilesSupplierTest.java +++ b/src/test/java/com/google/devtools/build/lib/actions/CompositeRunfilesSupplierTest.java @@ -61,9 +61,9 @@ public class CompositeRunfilesSupplierTest { @Test public void testGetRunfilesDirsReturnsCombinedPaths() { - PathFragment first = new PathFragment("first"); - PathFragment second = new PathFragment("second"); - PathFragment shared = new PathFragment("shared"); + PathFragment first = PathFragment.create("first"); + PathFragment second = PathFragment.create("second"); + PathFragment shared = PathFragment.create("shared"); when(mockFirst.getRunfilesDirs()).thenReturn(ImmutableSet.of(first, shared)); when(mockSecond.getRunfilesDirs()).thenReturn(ImmutableSet.of(second, shared)); @@ -75,13 +75,13 @@ public class CompositeRunfilesSupplierTest { @Test public void testGetMappingsReturnsMappingsWithFirstPrecedenceOverSecond() throws IOException { - PathFragment first = new PathFragment("first"); + PathFragment first = PathFragment.create("first"); Map<PathFragment, Artifact> firstMappings = mkMappings(rootDir, "first1", "first2"); - PathFragment second = new PathFragment("second"); + PathFragment second = PathFragment.create("second"); Map<PathFragment, Artifact> secondMappings = mkMappings(rootDir, "second1", "second2"); - PathFragment shared = new PathFragment("shared"); + PathFragment shared = PathFragment.create("shared"); Map<PathFragment, Artifact> firstSharedMappings = mkMappings(rootDir, "shared1", "shared2"); Map<PathFragment, Artifact> secondSharedMappings = mkMappings(rootDir, "lost1", "lost2"); @@ -103,13 +103,13 @@ public class CompositeRunfilesSupplierTest { @Test public void testGetMappingsViaListConstructorReturnsMappingsWithFirstPrecedenceOverSecond() throws IOException { - PathFragment first = new PathFragment("first"); + PathFragment first = PathFragment.create("first"); Map<PathFragment, Artifact> firstMappings = mkMappings(rootDir, "first1", "first2"); - PathFragment second = new PathFragment("second"); + PathFragment second = PathFragment.create("second"); Map<PathFragment, Artifact> secondMappings = mkMappings(rootDir, "second1", "second2"); - PathFragment shared = new PathFragment("shared"); + PathFragment shared = PathFragment.create("shared"); Map<PathFragment, Artifact> firstSharedMappings = mkMappings(rootDir, "shared1", "shared2"); Map<PathFragment, Artifact> secondSharedMappings = mkMappings(rootDir, "lost1", "lost2"); @@ -132,13 +132,13 @@ public class CompositeRunfilesSupplierTest { private static Map<PathFragment, Artifact> mkMappings(Root rootDir, String... paths) { ImmutableMap.Builder<PathFragment, Artifact> builder = ImmutableMap.builder(); for (String path : paths) { - builder.put(new PathFragment(path), mkArtifact(rootDir, path)); + builder.put(PathFragment.create(path), mkArtifact(rootDir, path)); } return builder.build(); } private static Artifact mkArtifact(Root rootDir, String path) { - return new Artifact(new PathFragment(path), rootDir); + return new Artifact(PathFragment.create(path), rootDir); } private static List<Artifact> mkArtifacts(Root rootDir, String... paths) { diff --git a/src/test/java/com/google/devtools/build/lib/actions/CustomCommandLineTest.java b/src/test/java/com/google/devtools/build/lib/actions/CustomCommandLineTest.java index 21b4b30f45..c0a808e921 100644 --- a/src/test/java/com/google/devtools/build/lib/actions/CustomCommandLineTest.java +++ b/src/test/java/com/google/devtools/build/lib/actions/CustomCommandLineTest.java @@ -273,7 +273,7 @@ public class CustomCommandLineTest { } private Artifact createTreeArtifact(String rootRelativePath) { - PathFragment relpath = new PathFragment(rootRelativePath); + PathFragment relpath = PathFragment.create(rootRelativePath); return new SpecialArtifact( rootDir.getPath().getRelative(relpath), rootDir, @@ -286,6 +286,6 @@ public class CustomCommandLineTest { Artifact inputTreeArtifact, String parentRelativePath) { return ActionInputHelper.treeFileArtifact( inputTreeArtifact, - new PathFragment(parentRelativePath)); + PathFragment.create(parentRelativePath)); } } diff --git a/src/test/java/com/google/devtools/build/lib/actions/RootTest.java b/src/test/java/com/google/devtools/build/lib/actions/RootTest.java index 26f0ef0c99..92b0567699 100644 --- a/src/test/java/com/google/devtools/build/lib/actions/RootTest.java +++ b/src/test/java/com/google/devtools/build/lib/actions/RootTest.java @@ -62,7 +62,7 @@ public class RootTest { Path rootDir = scratch.dir("/exec/root"); Root root = Root.asDerivedRoot(execRoot, rootDir); assertFalse(root.isSourceRoot()); - assertEquals(new PathFragment("root"), root.getExecPath()); + assertEquals(PathFragment.create("root"), root.getExecPath()); assertEquals(rootDir, root.getPath()); assertEquals("/exec/root[derived]", root.toString()); } diff --git a/src/test/java/com/google/devtools/build/lib/actions/cache/CompactPersistentActionCacheTest.java b/src/test/java/com/google/devtools/build/lib/actions/cache/CompactPersistentActionCacheTest.java index 479e152c17..b731f6f69d 100644 --- a/src/test/java/com/google/devtools/build/lib/actions/cache/CompactPersistentActionCacheTest.java +++ b/src/test/java/com/google/devtools/build/lib/actions/cache/CompactPersistentActionCacheTest.java @@ -167,7 +167,7 @@ public class CompactPersistentActionCacheTest { ActionCache.Entry entry = new ActionCache.Entry("actionKey", ImmutableMap.<String, String>of(), false); entry.toString(); - entry.addFile(new PathFragment("foo/bar"), Metadata.CONSTANT_METADATA); + entry.addFile(PathFragment.create("foo/bar"), Metadata.CONSTANT_METADATA); entry.toString(); entry.getFileDigest(); entry.toString(); diff --git a/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java b/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java index 24d321c182..cbf98e12ea 100644 --- a/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java +++ b/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java @@ -192,7 +192,7 @@ public final class ActionsTestUtil { } public static final Artifact DUMMY_ARTIFACT = new Artifact( - new PathFragment("dummy"), + PathFragment.create("dummy"), Root.asSourceRoot(new InMemoryFileSystem().getRootDirectory())); public static final ActionOwner NULL_ACTION_OWNER = @@ -549,7 +549,7 @@ public final class ActionsTestUtil { Artifact inputTreeArtifact, Artifact outputTreeArtifact) { return new SpawnActionTemplate.Builder(inputTreeArtifact, outputTreeArtifact) .setCommandLineTemplate(CustomCommandLine.builder().build()) - .setExecutable(new PathFragment("bin/executable")) + .setExecutable(PathFragment.create("bin/executable")) .setOutputPathMapper(new OutputPathMapper() { @Override public PathFragment parentRelativeOutputPath(TreeFileArtifact inputTreeFileArtifact) { diff --git a/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java b/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java index 3bf92ec39d..106ccd119c 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java @@ -162,7 +162,7 @@ public class BuildViewTest extends BuildViewTestBase { outputArtifact.getRoot()); assertEquals(outputCT.getConfiguration().getBinFragment().getRelative("pkg/a.out"), outputArtifact.getExecPath()); - assertEquals(new PathFragment("pkg/a.out"), outputArtifact.getRootRelativePath()); + assertEquals(PathFragment.create("pkg/a.out"), outputArtifact.getRootRelativePath()); Action action = getGeneratingAction(outputArtifact); assertSame(FailAction.class, action.getClass()); @@ -775,9 +775,9 @@ public class BuildViewTest extends BuildViewTestBase { Path cycles2BuildFilePath = scratch.file("cycles2/BUILD", "sh_library(name = 'cycles2', srcs = glob(['*.sh']))"); cycles1BuildFilePath.getParentDirectory().getRelative("cycles1.sh").createSymbolicLink( - new PathFragment("cycles1.sh")); + PathFragment.create("cycles1.sh")); cycles2BuildFilePath.getParentDirectory().getRelative("cycles2.sh").createSymbolicLink( - new PathFragment("cycles2.sh")); + PathFragment.create("cycles2.sh")); reporter.removeHandler(failFastHandler); EventBus eventBus = new EventBus(); LoadingFailureRecorder recorder = new LoadingFailureRecorder(); diff --git a/src/test/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImplTest.java b/src/test/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImplTest.java index 0234699c28..e54ddc3e25 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImplTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImplTest.java @@ -52,7 +52,7 @@ public class RunfilesSupplierImplTest { List<Artifact> artifacts = mkArtifacts(rootDir, "thing1", "thing2"); RunfilesSupplierImpl underTest = - new RunfilesSupplierImpl(new PathFragment("notimportant"), mkRunfiles(artifacts)); + new RunfilesSupplierImpl(PathFragment.create("notimportant"), mkRunfiles(artifacts)); assertThat(underTest.getArtifacts()).containsExactlyElementsIn(artifacts); } @@ -60,11 +60,11 @@ public class RunfilesSupplierImplTest { @Test public void testGetArtifactsFilterMiddlemen() { List<Artifact> artifacts = mkArtifacts(rootDir, "thing1", "thing2"); - Artifact middleman = new Artifact(new PathFragment("middleman"), middlemanRoot); + Artifact middleman = new Artifact(PathFragment.create("middleman"), middlemanRoot); Runfiles runfiles = mkRunfiles(Iterables.concat(artifacts, ImmutableList.of(middleman))); RunfilesSupplier underTest = - new RunfilesSupplierImpl(new PathFragment("notimportant"), runfiles); + new RunfilesSupplierImpl(PathFragment.create("notimportant"), runfiles); assertThat(underTest.getArtifacts()).containsExactlyElementsIn(artifacts); } @@ -72,15 +72,15 @@ public class RunfilesSupplierImplTest { @Test public void testGetManifestsWhenNone() { RunfilesSupplier underTest = - new RunfilesSupplierImpl(new PathFragment("ignored"), Runfiles.EMPTY, null); + new RunfilesSupplierImpl(PathFragment.create("ignored"), Runfiles.EMPTY, null); assertThat(underTest.getManifests()).isEmpty(); } @Test public void testGetManifestsWhenSupplied() { - Artifact manifest = new Artifact(new PathFragment("manifest"), rootDir); + Artifact manifest = new Artifact(PathFragment.create("manifest"), rootDir); RunfilesSupplier underTest = - new RunfilesSupplierImpl(new PathFragment("ignored"), Runfiles.EMPTY, manifest); + new RunfilesSupplierImpl(PathFragment.create("ignored"), Runfiles.EMPTY, manifest); assertThat(underTest.getManifests()).containsExactly(manifest); } @@ -91,7 +91,7 @@ public class RunfilesSupplierImplTest { private static List<Artifact> mkArtifacts(Root rootDir, String... paths) { ImmutableList.Builder<Artifact> builder = ImmutableList.builder(); for (String path : paths) { - builder.add(new Artifact(new PathFragment(path), rootDir)); + builder.add(new Artifact(PathFragment.create(path), rootDir)); } return builder.build(); } diff --git a/src/test/java/com/google/devtools/build/lib/analysis/RunfilesTest.java b/src/test/java/com/google/devtools/build/lib/analysis/RunfilesTest.java index f6d1509bb1..41f543642b 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/RunfilesTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/RunfilesTest.java @@ -50,11 +50,11 @@ public class RunfilesTest extends FoundationTestCase { @Test public void testFilterListForObscuringSymlinksCatchesBadObscurer() throws Exception { Map<PathFragment, Artifact> obscuringMap = new HashMap<>(); - PathFragment pathA = new PathFragment("a"); + PathFragment pathA = PathFragment.create("a"); Root root = Root.asSourceRoot(scratch.resolve("/workspace")); - Artifact artifactA = new Artifact(new PathFragment("a"), root); + Artifact artifactA = new Artifact(PathFragment.create("a"), root); obscuringMap.put(pathA, artifactA); - obscuringMap.put(new PathFragment("a/b"), new Artifact(new PathFragment("c/b"), + obscuringMap.put(PathFragment.create("a/b"), new Artifact(PathFragment.create("c/b"), root)); assertThat(Runfiles.filterListForObscuringSymlinks(reporter, null, obscuringMap).entrySet()) .containsExactly(Maps.immutableEntry(pathA, artifactA)).inOrder(); @@ -64,12 +64,12 @@ public class RunfilesTest extends FoundationTestCase { @Test public void testFilterListForObscuringSymlinksCatchesBadGrandParentObscurer() throws Exception { Map<PathFragment, Artifact> obscuringMap = new HashMap<>(); - PathFragment pathA = new PathFragment("a"); + PathFragment pathA = PathFragment.create("a"); Root root = Root.asSourceRoot(scratch.resolve("/workspace")); - Artifact artifactA = new Artifact(new PathFragment("a"), + Artifact artifactA = new Artifact(PathFragment.create("a"), root); obscuringMap.put(pathA, artifactA); - obscuringMap.put(new PathFragment("a/b/c"), new Artifact(new PathFragment("b/c"), + obscuringMap.put(PathFragment.create("a/b/c"), new Artifact(PathFragment.create("b/c"), root)); assertThat(Runfiles.filterListForObscuringSymlinks(reporter, null, obscuringMap).entrySet()) .containsExactly(Maps.immutableEntry(pathA, artifactA)).inOrder(); @@ -79,12 +79,12 @@ public class RunfilesTest extends FoundationTestCase { @Test public void testFilterListForObscuringSymlinksCatchesBadObscurerNoListener() throws Exception { Map<PathFragment, Artifact> obscuringMap = new HashMap<>(); - PathFragment pathA = new PathFragment("a"); + PathFragment pathA = PathFragment.create("a"); Root root = Root.asSourceRoot(scratch.resolve("/workspace")); - Artifact artifactA = new Artifact(new PathFragment("a"), + Artifact artifactA = new Artifact(PathFragment.create("a"), root); obscuringMap.put(pathA, artifactA); - obscuringMap.put(new PathFragment("a/b"), new Artifact(new PathFragment("c/b"), + obscuringMap.put(PathFragment.create("a/b"), new Artifact(PathFragment.create("c/b"), root)); assertThat(Runfiles.filterListForObscuringSymlinks(null, null, obscuringMap).entrySet()) .containsExactly(Maps.immutableEntry(pathA, artifactA)).inOrder(); @@ -93,12 +93,12 @@ public class RunfilesTest extends FoundationTestCase { @Test public void testFilterListForObscuringSymlinksIgnoresOkObscurer() throws Exception { Map<PathFragment, Artifact> obscuringMap = new HashMap<>(); - PathFragment pathA = new PathFragment("a"); + PathFragment pathA = PathFragment.create("a"); Root root = Root.asSourceRoot(scratch.resolve("/workspace")); - Artifact artifactA = new Artifact(new PathFragment("a"), + Artifact artifactA = new Artifact(PathFragment.create("a"), root); obscuringMap.put(pathA, artifactA); - obscuringMap.put(new PathFragment("a/b"), new Artifact(new PathFragment("a/b"), + obscuringMap.put(PathFragment.create("a/b"), new Artifact(PathFragment.create("a/b"), root)); assertThat(Runfiles.filterListForObscuringSymlinks(reporter, null, obscuringMap).entrySet()) @@ -109,13 +109,13 @@ public class RunfilesTest extends FoundationTestCase { @Test public void testFilterListForObscuringSymlinksNoObscurers() throws Exception { Map<PathFragment, Artifact> obscuringMap = new HashMap<>(); - PathFragment pathA = new PathFragment("a"); + PathFragment pathA = PathFragment.create("a"); Root root = Root.asSourceRoot(scratch.resolve("/workspace")); - Artifact artifactA = new Artifact(new PathFragment("a"), + Artifact artifactA = new Artifact(PathFragment.create("a"), root); obscuringMap.put(pathA, artifactA); - PathFragment pathBC = new PathFragment("b/c"); - Artifact artifactBC = new Artifact(new PathFragment("a/b"), + PathFragment pathBC = PathFragment.create("b/c"); + Artifact artifactBC = new Artifact(PathFragment.create("a/b"), root); obscuringMap.put(pathBC, artifactBC); assertThat(Runfiles.filterListForObscuringSymlinks(reporter, null, obscuringMap) @@ -139,9 +139,9 @@ public class RunfilesTest extends FoundationTestCase { @Test public void testPutCatchesConflict() { Root root = Root.asSourceRoot(scratch.resolve("/workspace")); - PathFragment pathA = new PathFragment("a"); - Artifact artifactB = new Artifact(new PathFragment("b"), root); - Artifact artifactC = new Artifact(new PathFragment("c"), root); + PathFragment pathA = PathFragment.create("a"); + Artifact artifactB = new Artifact(PathFragment.create("b"), root); + Artifact artifactC = new Artifact(PathFragment.create("c"), root); Map<PathFragment, Artifact> map = new LinkedHashMap<>(); Runfiles.ConflictChecker checker = @@ -156,9 +156,9 @@ public class RunfilesTest extends FoundationTestCase { @Test public void testPutReportsError() { Root root = Root.asSourceRoot(scratch.resolve("/workspace")); - PathFragment pathA = new PathFragment("a"); - Artifact artifactB = new Artifact(new PathFragment("b"), root); - Artifact artifactC = new Artifact(new PathFragment("c"), root); + PathFragment pathA = PathFragment.create("a"); + Artifact artifactB = new Artifact(PathFragment.create("b"), root); + Artifact artifactC = new Artifact(PathFragment.create("c"), root); Map<PathFragment, Artifact> map = new LinkedHashMap<>(); // Same as above but with ERROR not WARNING @@ -174,8 +174,8 @@ public class RunfilesTest extends FoundationTestCase { @Test public void testPutCatchesConflictBetweenNullAndNotNull() { Root root = Root.asSourceRoot(scratch.resolve("/workspace")); - PathFragment pathA = new PathFragment("a"); - Artifact artifactB = new Artifact(new PathFragment("b"), root); + PathFragment pathA = PathFragment.create("a"); + Artifact artifactB = new Artifact(PathFragment.create("b"), root); Map<PathFragment, Artifact> map = new LinkedHashMap<>(); Runfiles.ConflictChecker checker = @@ -189,8 +189,8 @@ public class RunfilesTest extends FoundationTestCase { @Test public void testPutCatchesConflictBetweenNotNullAndNull() { Root root = Root.asSourceRoot(scratch.resolve("/workspace")); - PathFragment pathA = new PathFragment("a"); - Artifact artifactB = new Artifact(new PathFragment("b"), root); + PathFragment pathA = PathFragment.create("a"); + Artifact artifactB = new Artifact(PathFragment.create("b"), root); Map<PathFragment, Artifact> map = new LinkedHashMap<>(); // Same as above but opposite order @@ -205,9 +205,9 @@ public class RunfilesTest extends FoundationTestCase { @Test public void testPutIgnoresConflict() { Root root = Root.asSourceRoot(scratch.resolve("/workspace")); - PathFragment pathA = new PathFragment("a"); - Artifact artifactB = new Artifact(new PathFragment("b"), root); - Artifact artifactC = new Artifact(new PathFragment("c"), root); + PathFragment pathA = PathFragment.create("a"); + Artifact artifactB = new Artifact(PathFragment.create("b"), root); + Artifact artifactC = new Artifact(PathFragment.create("c"), root); Map<PathFragment, Artifact> map = new LinkedHashMap<>(); Runfiles.ConflictChecker checker = @@ -221,9 +221,9 @@ public class RunfilesTest extends FoundationTestCase { @Test public void testPutIgnoresConflictNoListener() { Root root = Root.asSourceRoot(scratch.resolve("/workspace")); - PathFragment pathA = new PathFragment("a"); - Artifact artifactB = new Artifact(new PathFragment("b"), root); - Artifact artifactC = new Artifact(new PathFragment("c"), root); + PathFragment pathA = PathFragment.create("a"); + Artifact artifactB = new Artifact(PathFragment.create("b"), root); + Artifact artifactC = new Artifact(PathFragment.create("c"), root); Map<PathFragment, Artifact> map = new LinkedHashMap<>(); Runfiles.ConflictChecker checker = @@ -237,9 +237,9 @@ public class RunfilesTest extends FoundationTestCase { @Test public void testPutIgnoresSameArtifact() { Root root = Root.asSourceRoot(scratch.resolve("/workspace")); - PathFragment pathA = new PathFragment("a"); - Artifact artifactB = new Artifact(new PathFragment("b"), root); - Artifact artifactB2 = new Artifact(new PathFragment("b"), root); + PathFragment pathA = PathFragment.create("a"); + Artifact artifactB = new Artifact(PathFragment.create("b"), root); + Artifact artifactB2 = new Artifact(PathFragment.create("b"), root); assertEquals(artifactB, artifactB2); Map<PathFragment, Artifact> map = new LinkedHashMap<>(); @@ -253,7 +253,7 @@ public class RunfilesTest extends FoundationTestCase { @Test public void testPutIgnoresNullAndNull() { - PathFragment pathA = new PathFragment("a"); + PathFragment pathA = PathFragment.create("a"); Map<PathFragment, Artifact> map = new LinkedHashMap<>(); Runfiles.ConflictChecker checker = @@ -268,11 +268,11 @@ public class RunfilesTest extends FoundationTestCase { @Test public void testPutNoConflicts() { Root root = Root.asSourceRoot(scratch.resolve("/workspace")); - PathFragment pathA = new PathFragment("a"); - PathFragment pathB = new PathFragment("b"); - PathFragment pathC = new PathFragment("c"); - Artifact artifactA = new Artifact(new PathFragment("a"), root); - Artifact artifactB = new Artifact(new PathFragment("b"), root); + PathFragment pathA = PathFragment.create("a"); + PathFragment pathB = PathFragment.create("b"); + PathFragment pathC = PathFragment.create("c"); + Artifact artifactA = new Artifact(PathFragment.create("a"), root); + Artifact artifactB = new Artifact(PathFragment.create("b"), root); Map<PathFragment, Artifact> map = new LinkedHashMap<>(); Runfiles.ConflictChecker checker = @@ -322,8 +322,8 @@ public class RunfilesTest extends FoundationTestCase { @Test public void testLegacyRunfilesStructure() { Root root = Root.asSourceRoot(scratch.resolve("/workspace")); - PathFragment workspaceName = new PathFragment("wsname"); - PathFragment pathB = new PathFragment("external/repo/b"); + PathFragment workspaceName = PathFragment.create("wsname"); + PathFragment pathB = PathFragment.create("external/repo/b"); Artifact artifactB = new Artifact(pathB, root); Runfiles.ManifestBuilder builder = new Runfiles.ManifestBuilder(workspaceName, true); @@ -336,15 +336,15 @@ public class RunfilesTest extends FoundationTestCase { assertThat(builder.build().entrySet()).containsExactly( Maps.immutableEntry(workspaceName.getRelative(pathB), artifactB), - Maps.immutableEntry(new PathFragment("repo/b"), artifactB)); + Maps.immutableEntry(PathFragment.create("repo/b"), artifactB)); assertNoEvents(); } @Test public void testRunfileAdded() { Root root = Root.asSourceRoot(scratch.resolve("/workspace")); - PathFragment workspaceName = new PathFragment("wsname"); - PathFragment pathB = new PathFragment("external/repo/b"); + PathFragment workspaceName = PathFragment.create("wsname"); + PathFragment pathB = PathFragment.create("external/repo/b"); Artifact artifactB = new Artifact(pathB, root); Runfiles.ManifestBuilder builder = new Runfiles.ManifestBuilder(workspaceName, false); @@ -358,7 +358,7 @@ public class RunfilesTest extends FoundationTestCase { assertThat(builder.build().entrySet()).containsExactly( Maps.immutableEntry(workspaceName.getRelative(".runfile"), null), - Maps.immutableEntry(new PathFragment("repo/b"), artifactB)); + Maps.immutableEntry(PathFragment.create("repo/b"), artifactB)); assertNoEvents(); } @@ -366,7 +366,7 @@ public class RunfilesTest extends FoundationTestCase { @Test public void testConflictWithExternal() { Root root = Root.asSourceRoot(scratch.resolve("/workspace")); - PathFragment pathB = new PathFragment("repo/b"); + PathFragment pathB = PathFragment.create("repo/b"); PathFragment externalPathB = Label.EXTERNAL_PACKAGE_NAME.getRelative(pathB); Artifact artifactB = new Artifact(pathB, root); Artifact artifactExternalB = new Artifact(externalPathB, root); @@ -383,17 +383,17 @@ public class RunfilesTest extends FoundationTestCase { builder.addUnderWorkspace(inputManifest, checker); assertThat(builder.build().entrySet()).containsExactly( - Maps.immutableEntry(new PathFragment("repo/b"), artifactExternalB)); + Maps.immutableEntry(PathFragment.create("repo/b"), artifactExternalB)); checkConflictWarning(); } @Test public void testMergeWithSymlinks() { Root root = Root.asSourceRoot(scratch.resolve("/workspace")); - Artifact artifactA = new Artifact(new PathFragment("a/target"), root); - Artifact artifactB = new Artifact(new PathFragment("b/target"), root); - PathFragment sympathA = new PathFragment("a/symlink"); - PathFragment sympathB = new PathFragment("b/symlink"); + Artifact artifactA = new Artifact(PathFragment.create("a/target"), root); + Artifact artifactB = new Artifact(PathFragment.create("b/target"), root); + PathFragment sympathA = PathFragment.create("a/symlink"); + PathFragment sympathB = PathFragment.create("b/symlink"); Runfiles runfilesA = new Runfiles.Builder("TESTING") .addSymlink(sympathA, artifactA) .build(); diff --git a/src/test/java/com/google/devtools/build/lib/analysis/UtilTest.java b/src/test/java/com/google/devtools/build/lib/analysis/UtilTest.java index 1bc67df998..9024942379 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/UtilTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/UtilTest.java @@ -30,7 +30,7 @@ public class UtilTest { @Test public void testContainsHyphen() throws Exception { - assertTrue(Util.containsHyphen(new PathFragment("foo/bar/with-hyphen"))); - assertFalse(Util.containsHyphen(new PathFragment("foo/bar/no/hyphen"))); + assertTrue(Util.containsHyphen(PathFragment.create("foo/bar/with-hyphen"))); + assertFalse(Util.containsHyphen(PathFragment.create("foo/bar/no/hyphen"))); } } diff --git a/src/test/java/com/google/devtools/build/lib/analysis/actions/CustomCommandLineTest.java b/src/test/java/com/google/devtools/build/lib/analysis/actions/CustomCommandLineTest.java index f065df9508..fb28f70d6e 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/actions/CustomCommandLineTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/actions/CustomCommandLineTest.java @@ -32,7 +32,7 @@ public class CustomCommandLineTest extends BuildViewTestCase { CustomCommandLine commandLine = new CustomCommandLine.Builder() .add("foo") .addBeforeEachPath( - "-I", ImmutableList.of(new PathFragment("/path1"), new PathFragment("/path2"))) + "-I", ImmutableList.of(PathFragment.create("/path1"), PathFragment.create("/path2"))) .add("bar") .addBeforeEachPath("-I", ImmutableList.<PathFragment>of()) .add("baz") diff --git a/src/test/java/com/google/devtools/build/lib/analysis/actions/ParamFileWriteActionTest.java b/src/test/java/com/google/devtools/build/lib/analysis/actions/ParamFileWriteActionTest.java index d35f103900..dbf57aedb8 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/actions/ParamFileWriteActionTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/actions/ParamFileWriteActionTest.java @@ -102,7 +102,7 @@ public class ParamFileWriteActionTest extends BuildViewTestCase { } private Artifact createTreeArtifact(String rootRelativePath) { - PathFragment relpath = new PathFragment(rootRelativePath); + PathFragment relpath = PathFragment.create(rootRelativePath); return new SpecialArtifact( rootDir.getPath().getRelative(relpath), rootDir, @@ -115,7 +115,7 @@ public class ParamFileWriteActionTest extends BuildViewTestCase { Artifact inputTreeArtifact, String parentRelativePath) { return ActionInputHelper.treeFileArtifact( inputTreeArtifact, - new PathFragment(parentRelativePath)); + PathFragment.create(parentRelativePath)); } private ParameterFileWriteAction createParameterFileWriteAction( diff --git a/src/test/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactActionTest.java b/src/test/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactActionTest.java index a221496dab..19261f2b52 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactActionTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactActionTest.java @@ -325,7 +325,7 @@ public class PopulateTreeArtifactActionTest extends BuildViewTestCase { } private Artifact createTreeArtifact(String rootRelativePath) { - PathFragment relpath = new PathFragment(rootRelativePath); + PathFragment relpath = PathFragment.create(rootRelativePath); return new SpecialArtifact( root.getPath().getRelative(relpath), root, diff --git a/src/test/java/com/google/devtools/build/lib/analysis/actions/SpawnActionTemplateTest.java b/src/test/java/com/google/devtools/build/lib/analysis/actions/SpawnActionTemplateTest.java index 5d45da697a..09c6b0d701 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/actions/SpawnActionTemplateTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/actions/SpawnActionTemplateTest.java @@ -92,7 +92,7 @@ public class SpawnActionTemplateTest { Artifact outputTreeArtifact = createOutputTreeArtifact(); SpawnActionTemplate.Builder builder = builder(inputTreeArtifact, outputTreeArtifact) .setExecutionInfo(ImmutableMap.<String, String>of("local", "")) - .setExecutable(new PathFragment("/bin/cp")) + .setExecutable(PathFragment.create("/bin/cp")) .setCommandLineTemplate( createSimpleCommandLineTemplate(inputTreeArtifact, outputTreeArtifact)) .setMnemonics("ActionTemplate", "ExpandedAction"); @@ -127,7 +127,7 @@ public class SpawnActionTemplateTest { SpawnActionTemplate.Builder builder = builder(inputTreeArtifact, outputTreeArtifact) .setExecutionInfo(ImmutableMap.<String, String>of("local", "")) .setOutputPathMapper(IDENTITY_MAPPER) - .setExecutable(new PathFragment("/bin/cp")) + .setExecutable(PathFragment.create("/bin/cp")) .setMnemonics("ActionTemplate", "ExpandedAction"); try { @@ -155,10 +155,10 @@ public class SpawnActionTemplateTest { String baseName = String.format("child%d", i); assertThat(expandedActions.get(i).getInputs()).containsExactly( ActionInputHelper.treeFileArtifact( - inputTreeArtifact, new PathFragment("children/" + baseName))); + inputTreeArtifact, PathFragment.create("children/" + baseName))); assertThat(expandedActions.get(i).getOutputs()).containsExactly( ActionInputHelper.treeFileArtifact( - outputTreeArtifact, new PathFragment("children/" + baseName))); + outputTreeArtifact, PathFragment.create("children/" + baseName))); } } @@ -247,14 +247,14 @@ public class SpawnActionTemplateTest { createInputTreeFileArtifacts(inputTreeArtifact); SpawnActionTemplate.Builder builder = builder(inputTreeArtifact, outputTreeArtifact) - .setExecutable(new PathFragment("/bin/cp")) + .setExecutable(PathFragment.create("/bin/cp")) .setCommandLineTemplate( createSimpleCommandLineTemplate(inputTreeArtifact, outputTreeArtifact)); OutputPathMapper mapper = new OutputPathMapper() { @Override public PathFragment parentRelativeOutputPath(TreeFileArtifact inputTreeFileArtifact) { - return new PathFragment("//absolute/" + inputTreeFileArtifact.getParentRelativePath()); + return PathFragment.create("//absolute/" + inputTreeFileArtifact.getParentRelativePath()); } }; @@ -272,7 +272,7 @@ public class SpawnActionTemplateTest { mapper = new OutputPathMapper() { @Override public PathFragment parentRelativeOutputPath(TreeFileArtifact inputTreeFileArtifact) { - return new PathFragment("../" + inputTreeFileArtifact.getParentRelativePath()); + return PathFragment.create("../" + inputTreeFileArtifact.getParentRelativePath()); } }; @@ -300,7 +300,7 @@ public class SpawnActionTemplateTest { return builder(inputTreeArtifact, outputTreeArtifact) .setExecutionInfo(ImmutableMap.<String, String>of("local", "")) .setEnvironment(ImmutableMap.<String, String>of("env", "value")) - .setExecutable(new PathFragment("/bin/cp")) + .setExecutable(PathFragment.create("/bin/cp")) .setCommandLineTemplate( createSimpleCommandLineTemplate(inputTreeArtifact, outputTreeArtifact)) .setOutputPathMapper(IDENTITY_MAPPER) @@ -317,7 +317,7 @@ public class SpawnActionTemplateTest { } private Artifact createTreeArtifact(String rootRelativePath) { - PathFragment relpath = new PathFragment(rootRelativePath); + PathFragment relpath = PathFragment.create(rootRelativePath); return new SpecialArtifact( root.getPath().getRelative(relpath), root, @@ -327,7 +327,7 @@ public class SpawnActionTemplateTest { } private Artifact createDerivedArtifact(String rootRelativePath) { - return new Artifact(new PathFragment(rootRelativePath), root); + return new Artifact(PathFragment.create(rootRelativePath), root); } private CustomCommandLine createSimpleCommandLineTemplate( @@ -342,8 +342,8 @@ public class SpawnActionTemplateTest { return ActionInputHelper.asTreeFileArtifacts( inputTreeArtifact, ImmutableList.of( - new PathFragment("children/child0"), - new PathFragment("children/child1"), - new PathFragment("children/child2"))); + PathFragment.create("children/child0"), + PathFragment.create("children/child1"), + PathFragment.create("children/child2"))); } } diff --git a/src/test/java/com/google/devtools/build/lib/analysis/actions/SpawnActionTest.java b/src/test/java/com/google/devtools/build/lib/analysis/actions/SpawnActionTest.java index 8aef0e6bed..8629684b75 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/actions/SpawnActionTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/actions/SpawnActionTest.java @@ -77,7 +77,7 @@ public class SpawnActionTest extends BuildViewTestCase { } private SpawnAction createCopyFromWelcomeToDestination(Map<String, String> environmentVariables) { - PathFragment cp = new PathFragment("/bin/cp"); + PathFragment cp = PathFragment.create("/bin/cp"); List<String> arguments = asList(welcomeArtifact.getExecPath().getPathString(), destinationArtifact.getExecPath().getPathString()); @@ -275,7 +275,7 @@ public class SpawnActionTest extends BuildViewTestCase { Artifact output1 = getBinArtifactWithNoOwner("output1"); Artifact output2 = getBinArtifactWithNoOwner("output2"); Artifact paramFile = getBinArtifactWithNoOwner("output1-2.params"); - PathFragment executable = new PathFragment("/bin/executable"); + PathFragment executable = PathFragment.create("/bin/executable"); useConfiguration("--min_param_file_size=500"); @@ -353,7 +353,7 @@ public class SpawnActionTest extends BuildViewTestCase { Action[] actions = builder() .addInput(manifest) .addRunfilesSupplier( - new RunfilesSupplierImpl(new PathFragment("destination"), Runfiles.EMPTY, manifest)) + new RunfilesSupplierImpl(PathFragment.create("destination"), Runfiles.EMPTY, manifest)) .addOutput(getBinArtifactWithNoOwner("output")) .setExecutable(scratch.file("/bin/xxx").asFragment()) .setProgressMessage("Test") @@ -385,15 +385,15 @@ public class SpawnActionTest extends BuildViewTestCase { builder.setMnemonic((i & 4) == 0 ? "a" : "b"); if ((i & 8) == 0) { - builder.addRunfilesSupplier(runfilesSupplier(artifactA, new PathFragment("a"))); + builder.addRunfilesSupplier(runfilesSupplier(artifactA, PathFragment.create("a"))); } else { - builder.addRunfilesSupplier(runfilesSupplier(artifactB, new PathFragment("a"))); + builder.addRunfilesSupplier(runfilesSupplier(artifactB, PathFragment.create("a"))); } if ((i & 16) == 0) { - builder.addRunfilesSupplier(runfilesSupplier(artifactA, new PathFragment("aa"))); + builder.addRunfilesSupplier(runfilesSupplier(artifactA, PathFragment.create("aa"))); } else { - builder.addRunfilesSupplier(runfilesSupplier(artifactA, new PathFragment("ab"))); + builder.addRunfilesSupplier(runfilesSupplier(artifactA, PathFragment.create("ab"))); } Map<String, String> env = new HashMap<>(); diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestUtil.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestUtil.java index f821e467a7..eb25ec3318 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestUtil.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestUtil.java @@ -277,10 +277,10 @@ public final class AnalysisTestUtil { ArtifactFactory artifactFactory, ArtifactOwner artifactOwner, Supplier<UUID> buildId, String workspaceName) { Artifact stableStatus = artifactFactory.getDerivedArtifact( - new PathFragment("build-info.txt"), + PathFragment.create("build-info.txt"), directories.getBuildDataDirectory(workspaceName), artifactOwner); Artifact volatileStatus = artifactFactory.getConstantMetadataArtifact( - new PathFragment("build-changelist.txt"), + PathFragment.create("build-changelist.txt"), directories.getBuildDataDirectory(workspaceName), artifactOwner); return new DummyWorkspaceStatusAction(key, stableStatus, volatileStatus); } diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestBase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestBase.java index d8acbcffc9..184ba7d6fc 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestBase.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestBase.java @@ -107,7 +107,7 @@ public abstract class BuildViewTestBase extends AnalysisTestCase { Path symlinkcycleBuildFile = scratch.file("symlinkcycle/BUILD", "sh_library(name = 'cycle', srcs = glob(['*.sh']))"); Path dirPath = symlinkcycleBuildFile.getParentDirectory(); - dirPath.getRelative("foo.sh").createSymbolicLink(new PathFragment("foo.sh")); + dirPath.getRelative("foo.sh").createSymbolicLink(PathFragment.create("foo.sh")); scratch.file("okaypkg/BUILD", "sh_library(name = 'transitively-a-cycle',", " srcs = ['//symlinkcycle:cycle'])"); diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java index 576a312c85..47a59a4d86 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java @@ -773,7 +773,7 @@ public abstract class BuildViewTestCase extends FoundationTestCase { } skyframeExecutor.invalidateFilesUnderPathForTesting( reporter, - new ModifiedFileSet.Builder().modify(new PathFragment(buildFilePathString)).build(), + new ModifiedFileSet.Builder().modify(PathFragment.create(buildFilePathString)).build(), rootDirectory); return (Rule) getTarget("//" + packageName + ":" + ruleName); } @@ -924,7 +924,7 @@ public abstract class BuildViewTestCase extends FoundationTestCase { } protected Artifact getSourceArtifact(String name) { - return getSourceArtifact(new PathFragment(name), Root.asSourceRoot(rootDirectory)); + return getSourceArtifact(PathFragment.create(name), Root.asSourceRoot(rootDirectory)); } /** @@ -959,7 +959,7 @@ public abstract class BuildViewTestCase extends FoundationTestCase { * used instead. */ protected Artifact getBinArtifactWithNoOwner(String rootRelativePath) { - return getDerivedArtifact(new PathFragment(rootRelativePath), + return getDerivedArtifact(PathFragment.create(rootRelativePath), targetConfig.getBinDirectory(RepositoryName.MAIN), ActionsTestUtil.NULL_ARTIFACT_OWNER); } @@ -1037,7 +1037,7 @@ public abstract class BuildViewTestCase extends FoundationTestCase { * #getGenfilesArtifact(String, ArtifactOwner)} or its convenience methods should be used instead. */ protected Artifact getGenfilesArtifactWithNoOwner(String rootRelativePath) { - return getDerivedArtifact(new PathFragment(rootRelativePath), + return getDerivedArtifact(PathFragment.create(rootRelativePath), targetConfig.getGenfilesDirectory(RepositoryName.MAIN), ActionsTestUtil.NULL_ARTIFACT_OWNER); } @@ -1150,7 +1150,7 @@ public abstract class BuildViewTestCase extends FoundationTestCase { * @param owner the artifact's owner. */ protected Artifact getSharedArtifact(String rootRelativePath, ConfiguredTarget owner) { - return getDerivedArtifact(new PathFragment(rootRelativePath), + return getDerivedArtifact(PathFragment.create(rootRelativePath), targetConfig.getBinDirectory(RepositoryName.MAIN), new ConfiguredTargetKey(owner)); } diff --git a/src/test/java/com/google/devtools/build/lib/bazel/repository/StripPrefixedPathTest.java b/src/test/java/com/google/devtools/build/lib/bazel/repository/StripPrefixedPathTest.java index f3ab3f1b8d..d2ca3ac072 100644 --- a/src/test/java/com/google/devtools/build/lib/bazel/repository/StripPrefixedPathTest.java +++ b/src/test/java/com/google/devtools/build/lib/bazel/repository/StripPrefixedPathTest.java @@ -35,7 +35,7 @@ public class StripPrefixedPathTest { @Test public void testStrip() { StripPrefixedPath result = StripPrefixedPath.maybeDeprefix("foo/bar", Optional.of("foo")); - assertEquals(result.getPathFragment(), new PathFragment("bar")); + assertEquals(result.getPathFragment(), PathFragment.create("bar")); assertTrue(result.foundPrefix()); assertFalse(result.skip()); @@ -53,13 +53,13 @@ public class StripPrefixedPathTest { public void testAbsolute() { StripPrefixedPath result = StripPrefixedPath.maybeDeprefix( "/foo/bar", Optional.<String>absent()); - assertThat(result.getPathFragment()).isEqualTo(new PathFragment("foo/bar")); + assertThat(result.getPathFragment()).isEqualTo(PathFragment.create("foo/bar")); result = StripPrefixedPath.maybeDeprefix("///foo/bar/baz", Optional.<String>absent()); - assertThat(result.getPathFragment()).isEqualTo(new PathFragment("foo/bar/baz")); + assertThat(result.getPathFragment()).isEqualTo(PathFragment.create("foo/bar/baz")); result = StripPrefixedPath.maybeDeprefix("/foo/bar/baz", Optional.of("/foo")); - assertThat(result.getPathFragment()).isEqualTo(new PathFragment("bar/baz")); + assertThat(result.getPathFragment()).isEqualTo(PathFragment.create("bar/baz")); } @Test @@ -69,19 +69,19 @@ public class StripPrefixedPathTest { } StripPrefixedPath result = StripPrefixedPath.maybeDeprefix( "c:/foo/bar", Optional.<String>absent()); - assertThat(result.getPathFragment()).isEqualTo(new PathFragment("foo/bar")); + assertThat(result.getPathFragment()).isEqualTo(PathFragment.create("foo/bar")); } @Test public void testNormalize() { StripPrefixedPath result = StripPrefixedPath.maybeDeprefix( "../bar", Optional.<String>absent()); - assertThat(result.getPathFragment()).isEqualTo(new PathFragment("../bar")); + assertThat(result.getPathFragment()).isEqualTo(PathFragment.create("../bar")); result = StripPrefixedPath.maybeDeprefix("foo/../baz", Optional.<String>absent()); - assertThat(result.getPathFragment()).isEqualTo(new PathFragment("baz")); + assertThat(result.getPathFragment()).isEqualTo(PathFragment.create("baz")); result = StripPrefixedPath.maybeDeprefix("foo/../baz", Optional.of("foo")); - assertThat(result.getPathFragment()).isEqualTo(new PathFragment("baz")); + assertThat(result.getPathFragment()).isEqualTo(PathFragment.create("baz")); } } diff --git a/src/test/java/com/google/devtools/build/lib/bazel/rules/genrule/GenRuleConfiguredTargetTest.java b/src/test/java/com/google/devtools/build/lib/bazel/rules/genrule/GenRuleConfiguredTargetTest.java index b5f18a79d7..7d323807d4 100644 --- a/src/test/java/com/google/devtools/build/lib/bazel/rules/genrule/GenRuleConfiguredTargetTest.java +++ b/src/test/java/com/google/devtools/build/lib/bazel/rules/genrule/GenRuleConfiguredTargetTest.java @@ -106,7 +106,7 @@ public class GenRuleConfiguredTargetTest extends BuildViewTestCase { createFiles(); ConfiguredTarget z = getConfiguredTarget("//hello:z"); Artifact y = getOnlyElement(getFilesToBuild(z)); - assertEquals(new PathFragment("hello/x/y"), y.getRootRelativePath()); + assertEquals(PathFragment.create("hello/x/y"), y.getRootRelativePath()); } @Test @@ -115,8 +115,8 @@ public class GenRuleConfiguredTargetTest extends BuildViewTestCase { ConfiguredTarget z = getConfiguredTarget("//hello:w"); List<Artifact> files = getFilesToBuild(z).toList(); assertThat(files).hasSize(2); - assertEquals(new PathFragment("hello/a/b"), files.get(0).getRootRelativePath()); - assertEquals(new PathFragment("hello/c/d"), files.get(1).getRootRelativePath()); + assertEquals(PathFragment.create("hello/a/b"), files.get(0).getRootRelativePath()); + assertEquals(PathFragment.create("hello/c/d"), files.get(1).getRootRelativePath()); } @Test @@ -236,10 +236,10 @@ public class GenRuleConfiguredTargetTest extends BuildViewTestCase { FileConfiguredTarget bazOutTarget = getFileConfiguredTarget("//foo:baz_out.txt"); Action bazAction = getGeneratingAction(bazOutTarget.getArtifact()); Artifact barOut = bazAction.getInputs().iterator().next(); - assertTrue(barOut.getExecPath().endsWith(new PathFragment("foo/bar_out.txt"))); + assertTrue(barOut.getExecPath().endsWith(PathFragment.create("foo/bar_out.txt"))); Action barAction = getGeneratingAction(barOut); Artifact barIn = barAction.getInputs().iterator().next(); - assertTrue(barIn.getExecPath().endsWith(new PathFragment("foo/bar_in.txt"))); + assertTrue(barIn.getExecPath().endsWith(PathFragment.create("foo/bar_in.txt"))); } /** Ensure that variable $(@D) gets expanded correctly in the genrule cmd. */ @@ -279,7 +279,7 @@ public class GenRuleConfiguredTargetTest extends BuildViewTestCase { getConfiguredTarget("//foo:bar"); Artifact barOut = bazAction.getInputs().iterator().next(); - assertTrue(barOut.getExecPath().endsWith(new PathFragment("foo/bar/bar_out.txt"))); + assertTrue(barOut.getExecPath().endsWith(PathFragment.create("foo/bar/bar_out.txt"))); SpawnAction barAction = (SpawnAction) getGeneratingAction(barOut); String barExpected = "touch " + barOut.getExecPath().getParentDirectory().getPathString(); assertCommandEquals(barExpected, barAction.getArguments().get(2)); diff --git a/src/test/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemanticsTest.java b/src/test/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemanticsTest.java index 529053b42e..6758e80089 100644 --- a/src/test/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemanticsTest.java +++ b/src/test/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemanticsTest.java @@ -30,15 +30,21 @@ public class BazelJavaSemanticsTest { @Test public void testFindingResources() { BazelJavaSemantics semantics = BazelJavaSemantics.INSTANCE; - assertEquals(PathFragment.EMPTY_FRAGMENT, - semantics.getDefaultJavaResourcePath(new PathFragment("x/y/src/main/resources"))); - assertEquals(new PathFragment("foo"), - semantics.getDefaultJavaResourcePath(new PathFragment("x/y/src/main/resources/foo"))); - assertEquals(new PathFragment("foo"), - semantics.getDefaultJavaResourcePath(new PathFragment("java/x/y/src/main/resources/foo"))); - assertEquals(new PathFragment("foo/java/bar"), - semantics.getDefaultJavaResourcePath(new PathFragment("java/foo/java/bar"))); - assertEquals(new PathFragment("foo/java/bar"), - semantics.getDefaultJavaResourcePath(new PathFragment("javatests/foo/java/bar"))); + assertEquals( + PathFragment.EMPTY_FRAGMENT, + semantics.getDefaultJavaResourcePath(PathFragment.create("x/y/src/main/resources"))); + assertEquals( + PathFragment.create("foo"), + semantics.getDefaultJavaResourcePath(PathFragment.create("x/y/src/main/resources/foo"))); + assertEquals( + PathFragment.create("foo"), + semantics.getDefaultJavaResourcePath( + PathFragment.create("java/x/y/src/main/resources/foo"))); + assertEquals( + PathFragment.create("foo/java/bar"), + semantics.getDefaultJavaResourcePath(PathFragment.create("java/foo/java/bar"))); + assertEquals( + PathFragment.create("foo/java/bar"), + semantics.getDefaultJavaResourcePath(PathFragment.create("javatests/foo/java/bar"))); } } diff --git a/src/test/java/com/google/devtools/build/lib/buildtool/SymlinkForestTest.java b/src/test/java/com/google/devtools/build/lib/buildtool/SymlinkForestTest.java index 3c93edcb42..31ba09065f 100644 --- a/src/test/java/com/google/devtools/build/lib/buildtool/SymlinkForestTest.java +++ b/src/test/java/com/google/devtools/build/lib/buildtool/SymlinkForestTest.java @@ -113,7 +113,7 @@ public class SymlinkForestTest { @Test public void testLongestPathPrefix() { - PathFragment a = new PathFragment("A"); + PathFragment a = PathFragment.create("A"); assertEquals(a, longestPathPrefix("A/b", "A", "B")); // simple parent assertEquals(a, longestPathPrefix("A", "A", "B")); // self assertEquals(a.getRelative("B"), longestPathPrefix("A/B/c", "A", "A/B")); // want longest @@ -151,7 +151,7 @@ public class SymlinkForestTest { createDirectoryAndParents(repoRoot.getRelative(pkg)); FileSystemUtils.createEmptyFile(repoRoot.getRelative(pkg).getChild("file")); } - return PackageIdentifier.create(RepositoryName.create("@" + repo), new PathFragment(pkg)); + return PackageIdentifier.create(RepositoryName.create("@" + repo), PathFragment.create(pkg)); } private void assertLinksTo(Path fromRoot, Path toRoot, String relpart) throws IOException { diff --git a/src/test/java/com/google/devtools/build/lib/cmdline/LabelTest.java b/src/test/java/com/google/devtools/build/lib/cmdline/LabelTest.java index b98d61877f..74e1248723 100644 --- a/src/test/java/com/google/devtools/build/lib/cmdline/LabelTest.java +++ b/src/test/java/com/google/devtools/build/lib/cmdline/LabelTest.java @@ -62,7 +62,7 @@ public class LabelTest { } private static String parseCommandLine(String label, String prefix) throws LabelSyntaxException { - return Label.parseCommandLineLabel(label, new PathFragment(prefix)).toString(); + return Label.parseCommandLineLabel(label, PathFragment.create(prefix)).toString(); } @Test @@ -144,43 +144,43 @@ public class LabelTest { @Test public void testGetRelativeWithDifferentRepo() throws Exception { - PackageIdentifier packageId = PackageIdentifier.create("@repo", new PathFragment("foo")); + PackageIdentifier packageId = PackageIdentifier.create("@repo", PathFragment.create("foo")); Label base = Label.create(packageId, "bar"); Label relative = base.getRelative("@remote//x:y"); assertEquals(RepositoryName.create("@remote"), relative.getPackageIdentifier().getRepository()); - assertEquals(new PathFragment("x"), relative.getPackageFragment()); + assertEquals(PathFragment.create("x"), relative.getPackageFragment()); assertEquals("y", relative.getName()); } @Test public void testGetRelativeWithRepoLocalAbsoluteLabel() throws Exception { - PackageIdentifier packageId = PackageIdentifier.create("@repo", new PathFragment("foo")); + PackageIdentifier packageId = PackageIdentifier.create("@repo", PathFragment.create("foo")); Label base = Label.create(packageId, "bar"); Label relative = base.getRelative("//x:y"); assertEquals(packageId.getRepository(), relative.getPackageIdentifier().getRepository()); - assertEquals(new PathFragment("x"), relative.getPackageFragment()); + assertEquals(PathFragment.create("x"), relative.getPackageFragment()); assertEquals("y", relative.getName()); } @Test public void testGetRelativeWithLocalRepoRelativeLabel() throws Exception { - PackageIdentifier packageId = PackageIdentifier.create("@repo", new PathFragment("foo")); + PackageIdentifier packageId = PackageIdentifier.create("@repo", PathFragment.create("foo")); Label base = Label.create(packageId, "bar"); Label relative = base.getRelative(":y"); assertEquals(packageId.getRepository(), relative.getPackageIdentifier().getRepository()); - assertEquals(new PathFragment("foo"), relative.getPackageFragment()); + assertEquals(PathFragment.create("foo"), relative.getPackageFragment()); assertEquals("y", relative.getName()); } @Test public void testGetRelativeWithRepoAndReservedPackage() throws Exception { - PackageIdentifier packageId = PackageIdentifier.create("@repo", new PathFragment("foo")); + PackageIdentifier packageId = PackageIdentifier.create("@repo", PathFragment.create("foo")); Label base = Label.create(packageId, "bar"); Label relative = base.getRelative("//conditions:default"); @@ -193,13 +193,13 @@ public class LabelTest { @Test public void testGetRelativeWithRemoteRepoToDefaultRepo() throws Exception { - PackageIdentifier packageId = PackageIdentifier.create("@repo", new PathFragment("foo")); + PackageIdentifier packageId = PackageIdentifier.create("@repo", PathFragment.create("foo")); Label base = Label.create(packageId, "bar"); Label relative = base.getRelative("@//x:y"); assertEquals(RepositoryName.create("@"), relative.getPackageIdentifier().getRepository()); - assertEquals(new PathFragment("x"), relative.getPackageFragment()); + assertEquals(PathFragment.create("x"), relative.getPackageFragment()); assertEquals("y", relative.getName()); } diff --git a/src/test/java/com/google/devtools/build/lib/cmdline/PackageIdentifierTest.java b/src/test/java/com/google/devtools/build/lib/cmdline/PackageIdentifierTest.java index a19ef4b7a3..f01a48c1a1 100644 --- a/src/test/java/com/google/devtools/build/lib/cmdline/PackageIdentifierTest.java +++ b/src/test/java/com/google/devtools/build/lib/cmdline/PackageIdentifierTest.java @@ -40,7 +40,7 @@ public class PackageIdentifierTest { assertThat(fooA.getRepository().strippedName()).isEqualTo("foo"); assertThat(fooA.getPackageFragment().getPathString()).isEqualTo("a"); assertThat(fooA.getRepository().getSourceRoot()).isEqualTo( - new PathFragment("external/foo")); + PathFragment.create("external/foo")); PackageIdentifier absoluteA = PackageIdentifier.parse("//a"); assertThat(absoluteA.getRepository().strippedName()).isEqualTo(""); @@ -58,18 +58,18 @@ public class PackageIdentifierTest { @Test public void testToString() throws Exception { - PackageIdentifier local = PackageIdentifier.create("", new PathFragment("bar/baz")); + PackageIdentifier local = PackageIdentifier.create("", PathFragment.create("bar/baz")); assertEquals("bar/baz", local.toString()); - PackageIdentifier external = PackageIdentifier.create("@foo", new PathFragment("bar/baz")); + PackageIdentifier external = PackageIdentifier.create("@foo", PathFragment.create("bar/baz")); assertEquals("@foo//bar/baz", external.toString()); } @Test public void testCompareTo() throws Exception { - PackageIdentifier foo1 = PackageIdentifier.create("@foo", new PathFragment("bar/baz")); - PackageIdentifier foo2 = PackageIdentifier.create("@foo", new PathFragment("bar/baz")); - PackageIdentifier foo3 = PackageIdentifier.create("@foo", new PathFragment("bar/bz")); - PackageIdentifier bar = PackageIdentifier.create("@bar", new PathFragment("bar/baz")); + PackageIdentifier foo1 = PackageIdentifier.create("@foo", PathFragment.create("bar/baz")); + PackageIdentifier foo2 = PackageIdentifier.create("@foo", PathFragment.create("bar/baz")); + PackageIdentifier foo3 = PackageIdentifier.create("@foo", PathFragment.create("bar/bz")); + PackageIdentifier bar = PackageIdentifier.create("@bar", PathFragment.create("bar/baz")); assertEquals(0, foo1.compareTo(foo2)); assertThat(foo1.compareTo(foo3)).isLessThan(0); assertThat(foo1.compareTo(bar)).isGreaterThan(0); @@ -78,12 +78,12 @@ public class PackageIdentifierTest { @Test public void testInvalidPackageName() throws Exception { // This shouldn't throw an exception, package names aren't validated. - PackageIdentifier.create("@foo", new PathFragment("bar.baz")); + PackageIdentifier.create("@foo", PathFragment.create("bar.baz")); } @Test public void testSerialization() throws Exception { - PackageIdentifier inId = PackageIdentifier.create("@foo", new PathFragment("bar/baz")); + PackageIdentifier inId = PackageIdentifier.create("@foo", PathFragment.create("bar/baz")); ByteArrayOutputStream data = new ByteArrayOutputStream(); ObjectOutputStream out = new ObjectOutputStream(data); out.writeObject(inId); @@ -95,16 +95,16 @@ public class PackageIdentifierTest { @Test public void testPackageFragmentEquality() throws Exception { // Make sure package fragments are canonicalized. - PackageIdentifier p1 = PackageIdentifier.create("@whatever", new PathFragment("foo/bar")); - PackageIdentifier p2 = PackageIdentifier.create("@whatever", new PathFragment("foo/bar")); + PackageIdentifier p1 = PackageIdentifier.create("@whatever", PathFragment.create("foo/bar")); + PackageIdentifier p2 = PackageIdentifier.create("@whatever", PathFragment.create("foo/bar")); assertSame(p2.getPackageFragment(), p1.getPackageFragment()); } @Test public void testRunfilesDir() throws Exception { - assertThat(PackageIdentifier.create("@foo", new PathFragment("bar/baz")).getRunfilesPath()) - .isEqualTo(new PathFragment("../foo/bar/baz")); - assertThat(PackageIdentifier.create("@", new PathFragment("bar/baz")).getRunfilesPath()) - .isEqualTo(new PathFragment("bar/baz")); + assertThat(PackageIdentifier.create("@foo", PathFragment.create("bar/baz")).getRunfilesPath()) + .isEqualTo(PathFragment.create("../foo/bar/baz")); + assertThat(PackageIdentifier.create("@", PathFragment.create("bar/baz")).getRunfilesPath()) + .isEqualTo(PathFragment.create("bar/baz")); } } diff --git a/src/test/java/com/google/devtools/build/lib/cmdline/RepositoryNameTest.java b/src/test/java/com/google/devtools/build/lib/cmdline/RepositoryNameTest.java index 9a39bbfda1..6970b5e23b 100644 --- a/src/test/java/com/google/devtools/build/lib/cmdline/RepositoryNameTest.java +++ b/src/test/java/com/google/devtools/build/lib/cmdline/RepositoryNameTest.java @@ -60,7 +60,7 @@ public class RepositoryNameTest { @Test public void testRunfilesDir() throws Exception { assertThat(RepositoryName.create("@foo").getRunfilesPath()) - .isEqualTo(new PathFragment("../foo")); + .isEqualTo(PathFragment.create("../foo")); assertThat(RepositoryName.create("@").getRunfilesPath()) .isEqualTo(PathFragment.EMPTY_FRAGMENT); assertThat(RepositoryName.create("").getRunfilesPath()) diff --git a/src/test/java/com/google/devtools/build/lib/events/EventTestTemplate.java b/src/test/java/com/google/devtools/build/lib/events/EventTestTemplate.java index e505586449..136c7b96ef 100644 --- a/src/test/java/com/google/devtools/build/lib/events/EventTestTemplate.java +++ b/src/test/java/com/google/devtools/build/lib/events/EventTestTemplate.java @@ -29,7 +29,7 @@ public abstract class EventTestTemplate { @Before public final void createLocations() throws Exception { String message = "This is not an error message."; - path = new PathFragment("/path/to/workspace/my/sample/path.txt"); + path = PathFragment.create("/path/to/workspace/my/sample/path.txt"); location = Location.fromPathAndStartColumn(path, 21, 31, new LineAndColumn(3, 4)); diff --git a/src/test/java/com/google/devtools/build/lib/events/LocationTest.java b/src/test/java/com/google/devtools/build/lib/events/LocationTest.java index 23ed25e733..5c1c8875ac 100644 --- a/src/test/java/com/google/devtools/build/lib/events/LocationTest.java +++ b/src/test/java/com/google/devtools/build/lib/events/LocationTest.java @@ -39,13 +39,20 @@ public class LocationTest extends EventTestTemplate { @Test public void testPrintRelative() throws Exception { Location location = Location.fromPathFragment(path); - assertEquals("/path/to/workspace/my/sample/path.txt:1", - location.print(new PathFragment("/some/other/path"), new PathFragment("baz"))); - assertEquals("new/sample/path.txt:1", - location.print(new PathFragment("/path/to/workspace/my"), new PathFragment("new"))); - assertEquals("new/path.txt:1", - location.print(new PathFragment("/path/to/workspace/my/sample"), new PathFragment("new"))); - assertEquals("new:1", location.print(new PathFragment("/path/to/workspace/my/sample/path.txt"), - new PathFragment("new"))); + assertEquals( + "/path/to/workspace/my/sample/path.txt:1", + location.print(PathFragment.create("/some/other/path"), PathFragment.create("baz"))); + assertEquals( + "new/sample/path.txt:1", + location.print(PathFragment.create("/path/to/workspace/my"), PathFragment.create("new"))); + assertEquals( + "new/path.txt:1", + location.print( + PathFragment.create("/path/to/workspace/my/sample"), PathFragment.create("new"))); + assertEquals( + "new:1", + location.print( + PathFragment.create("/path/to/workspace/my/sample/path.txt"), + PathFragment.create("new"))); } } diff --git a/src/test/java/com/google/devtools/build/lib/exec/ParameterFileTest.java b/src/test/java/com/google/devtools/build/lib/exec/ParameterFileTest.java index 491cf097ac..5c97c2a2a6 100644 --- a/src/test/java/com/google/devtools/build/lib/exec/ParameterFileTest.java +++ b/src/test/java/com/google/devtools/build/lib/exec/ParameterFileTest.java @@ -34,8 +34,11 @@ public class ParameterFileTest extends FoundationTestCase { @Test public void testDerive() { - assertEquals(new PathFragment("a/b-2.params"), - ParameterFile.derivePath(new PathFragment("a/b"))); - assertEquals(new PathFragment("b-2.params"), ParameterFile.derivePath(new PathFragment("b"))); + assertEquals( + PathFragment.create("a/b-2.params"), + ParameterFile.derivePath(PathFragment.create("a/b"))); + assertEquals( + PathFragment.create("b-2.params"), + ParameterFile.derivePath(PathFragment.create("b"))); } } diff --git a/src/test/java/com/google/devtools/build/lib/exec/SpawnInputExpanderTest.java b/src/test/java/com/google/devtools/build/lib/exec/SpawnInputExpanderTest.java index fdfa655371..5b6db72c27 100644 --- a/src/test/java/com/google/devtools/build/lib/exec/SpawnInputExpanderTest.java +++ b/src/test/java/com/google/devtools/build/lib/exec/SpawnInputExpanderTest.java @@ -74,14 +74,14 @@ public class SpawnInputExpanderTest { Artifact artifact = new Artifact(fs.getPath("/root/dir/file"), Root.asSourceRoot(fs.getPath("/root"))); Runfiles runfiles = new Runfiles.Builder("workspace").addArtifact(artifact).build(); - RunfilesSupplier supplier = new RunfilesSupplierImpl(new PathFragment("runfiles"), runfiles); + RunfilesSupplier supplier = new RunfilesSupplierImpl(PathFragment.create("runfiles"), runfiles); ActionInputFileCache mockCache = Mockito.mock(ActionInputFileCache.class); Mockito.when(mockCache.isFile(artifact)).thenReturn(true); expander.addRunfilesToInputs(inputMappings, supplier, mockCache); assertThat(inputMappings).hasSize(1); assertThat(inputMappings) - .containsEntry(new PathFragment("runfiles/workspace/dir/file"), artifact); + .containsEntry(PathFragment.create("runfiles/workspace/dir/file"), artifact); } @Test @@ -89,7 +89,7 @@ public class SpawnInputExpanderTest { Artifact artifact = new Artifact(fs.getPath("/root/dir/file"), Root.asSourceRoot(fs.getPath("/root"))); Runfiles runfiles = new Runfiles.Builder("workspace").addArtifact(artifact).build(); - RunfilesSupplier supplier = new RunfilesSupplierImpl(new PathFragment("runfiles"), runfiles); + RunfilesSupplier supplier = new RunfilesSupplierImpl(PathFragment.create("runfiles"), runfiles); ActionInputFileCache mockCache = Mockito.mock(ActionInputFileCache.class); Mockito.when(mockCache.isFile(artifact)).thenReturn(false); @@ -106,7 +106,7 @@ public class SpawnInputExpanderTest { Artifact artifact = new Artifact(fs.getPath("/root/dir/file"), Root.asSourceRoot(fs.getPath("/root"))); Runfiles runfiles = new Runfiles.Builder("workspace").addArtifact(artifact).build(); - RunfilesSupplier supplier = new RunfilesSupplierImpl(new PathFragment("runfiles"), runfiles); + RunfilesSupplier supplier = new RunfilesSupplierImpl(PathFragment.create("runfiles"), runfiles); ActionInputFileCache mockCache = Mockito.mock(ActionInputFileCache.class); Mockito.when(mockCache.isFile(artifact)).thenReturn(false); @@ -114,7 +114,7 @@ public class SpawnInputExpanderTest { expander.addRunfilesToInputs(inputMappings, supplier, mockCache); assertThat(inputMappings).hasSize(1); assertThat(inputMappings) - .containsEntry(new PathFragment("runfiles/workspace/dir/file"), artifact); + .containsEntry(PathFragment.create("runfiles/workspace/dir/file"), artifact); } @Test @@ -127,7 +127,7 @@ public class SpawnInputExpanderTest { .addArtifact(artifact1) .addArtifact(artifact2) .build(); - RunfilesSupplier supplier = new RunfilesSupplierImpl(new PathFragment("runfiles"), runfiles); + RunfilesSupplier supplier = new RunfilesSupplierImpl(PathFragment.create("runfiles"), runfiles); ActionInputFileCache mockCache = Mockito.mock(ActionInputFileCache.class); Mockito.when(mockCache.isFile(artifact1)).thenReturn(true); Mockito.when(mockCache.isFile(artifact2)).thenReturn(true); @@ -135,9 +135,9 @@ public class SpawnInputExpanderTest { expander.addRunfilesToInputs(inputMappings, supplier, mockCache); assertThat(inputMappings).hasSize(2); assertThat(inputMappings) - .containsEntry(new PathFragment("runfiles/workspace/dir/file"), artifact1); + .containsEntry(PathFragment.create("runfiles/workspace/dir/file"), artifact1); assertThat(inputMappings) - .containsEntry(new PathFragment("runfiles/workspace/dir/baz"), artifact2); + .containsEntry(PathFragment.create("runfiles/workspace/dir/baz"), artifact2); } @Test @@ -145,15 +145,15 @@ public class SpawnInputExpanderTest { Artifact artifact = new Artifact(fs.getPath("/root/dir/file"), Root.asSourceRoot(fs.getPath("/root"))); Runfiles runfiles = new Runfiles.Builder("workspace") - .addSymlink(new PathFragment("symlink"), artifact).build(); - RunfilesSupplier supplier = new RunfilesSupplierImpl(new PathFragment("runfiles"), runfiles); + .addSymlink(PathFragment.create("symlink"), artifact).build(); + RunfilesSupplier supplier = new RunfilesSupplierImpl(PathFragment.create("runfiles"), runfiles); ActionInputFileCache mockCache = Mockito.mock(ActionInputFileCache.class); Mockito.when(mockCache.isFile(artifact)).thenReturn(true); expander.addRunfilesToInputs(inputMappings, supplier, mockCache); assertThat(inputMappings).hasSize(1); assertThat(inputMappings) - .containsEntry(new PathFragment("runfiles/workspace/symlink"), artifact); + .containsEntry(PathFragment.create("runfiles/workspace/symlink"), artifact); } @Test @@ -161,19 +161,19 @@ public class SpawnInputExpanderTest { Artifact artifact = new Artifact(fs.getPath("/root/dir/file"), Root.asSourceRoot(fs.getPath("/root"))); Runfiles runfiles = new Runfiles.Builder("workspace") - .addRootSymlink(new PathFragment("symlink"), artifact).build(); - RunfilesSupplier supplier = new RunfilesSupplierImpl(new PathFragment("runfiles"), runfiles); + .addRootSymlink(PathFragment.create("symlink"), artifact).build(); + RunfilesSupplier supplier = new RunfilesSupplierImpl(PathFragment.create("runfiles"), runfiles); ActionInputFileCache mockCache = Mockito.mock(ActionInputFileCache.class); Mockito.when(mockCache.isFile(artifact)).thenReturn(true); expander.addRunfilesToInputs(inputMappings, supplier, mockCache); assertThat(inputMappings).hasSize(2); - assertThat(inputMappings).containsEntry(new PathFragment("runfiles/symlink"), artifact); + assertThat(inputMappings).containsEntry(PathFragment.create("runfiles/symlink"), artifact); // If there's no other entry, Runfiles adds an empty file in the workspace to make sure the // directory gets created. assertThat(inputMappings) .containsEntry( - new PathFragment("runfiles/workspace/.runfile"), SpawnInputExpander.EMPTY_FILE); + PathFragment.create("runfiles/workspace/.runfile"), SpawnInputExpander.EMPTY_FILE); } @Test @@ -200,7 +200,7 @@ public class SpawnInputExpanderTest { expander.parseFilesetManifest(inputMappings, artifact, "workspace"); assertThat(inputMappings).hasSize(1); assertThat(inputMappings) - .containsEntry(new PathFragment("foo/bar"), ActionInputHelper.fromPath("/dir/file")); + .containsEntry(PathFragment.create("foo/bar"), ActionInputHelper.fromPath("/dir/file")); } @Test @@ -218,9 +218,9 @@ public class SpawnInputExpanderTest { expander.parseFilesetManifest(inputMappings, artifact, "workspace"); assertThat(inputMappings).hasSize(2); assertThat(inputMappings) - .containsEntry(new PathFragment("foo/bar"), ActionInputHelper.fromPath("/dir/file")); + .containsEntry(PathFragment.create("foo/bar"), ActionInputHelper.fromPath("/dir/file")); assertThat(inputMappings) - .containsEntry(new PathFragment("foo/baz"), ActionInputHelper.fromPath("/dir/file")); + .containsEntry(PathFragment.create("foo/baz"), ActionInputHelper.fromPath("/dir/file")); } @Test @@ -237,6 +237,6 @@ public class SpawnInputExpanderTest { assertThat(inputMappings).hasSize(1); assertThat(inputMappings) .containsEntry( - new PathFragment("foo/bar"), ActionInputHelper.fromPath("/some")); + PathFragment.create("foo/bar"), ActionInputHelper.fromPath("/some")); } } diff --git a/src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java b/src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java index 3573827c81..7ab592eccf 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java +++ b/src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java @@ -259,7 +259,7 @@ public class PackageFactoryTest extends PackageFactoryTestBase { "genrule(name='c', srcs=[], outs=['ao'], cmd=REPOSITORY_NAME + ' ' + PACKAGE_NAME)"); Package pkg = packages.createPackage( - PackageIdentifier.create("@a", new PathFragment("b")), buildFile, events.reporter()); + PackageIdentifier.create("@a", PathFragment.create("b")), buildFile, events.reporter()); Rule c = pkg.getRule("c"); assertThat(AggregatingAttributeMapper.of(c).get("cmd", Type.STRING)).isEqualTo("@a b"); } diff --git a/src/test/java/com/google/devtools/build/lib/packages/PackageGroupStaticInitializationTest.java b/src/test/java/com/google/devtools/build/lib/packages/PackageGroupStaticInitializationTest.java index 404b7aa6fd..f05709d4e4 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/PackageGroupStaticInitializationTest.java +++ b/src/test/java/com/google/devtools/build/lib/packages/PackageGroupStaticInitializationTest.java @@ -88,7 +88,7 @@ public class PackageGroupStaticInitializationTest { } private Package getPackage(String packageName) throws Exception { - PathFragment buildFileFragment = new PathFragment(packageName).getRelative("BUILD"); + PathFragment buildFileFragment = PathFragment.create(packageName).getRelative("BUILD"); Path buildFile = scratch.resolve(buildFileFragment.getPathString()); return packages.createPackage(packageName, buildFile); } diff --git a/src/test/java/com/google/devtools/build/lib/packages/PackageGroupTest.java b/src/test/java/com/google/devtools/build/lib/packages/PackageGroupTest.java index 50ca2682c8..55e8da9c21 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/PackageGroupTest.java +++ b/src/test/java/com/google/devtools/build/lib/packages/PackageGroupTest.java @@ -154,7 +154,7 @@ public class PackageGroupTest { } private Package getPackage(String packageName) throws Exception { - PathFragment buildFileFragment = new PathFragment(packageName).getRelative("BUILD"); + PathFragment buildFileFragment = PathFragment.create(packageName).getRelative("BUILD"); Path buildFile = scratch.resolve(buildFileFragment.getPathString()); return packages.createPackage(packageName, buildFile); diff --git a/src/test/java/com/google/devtools/build/lib/packages/RelativePackageNameResolverTest.java b/src/test/java/com/google/devtools/build/lib/packages/RelativePackageNameResolverTest.java index 9f2f9b6931..fee2a7c3d2 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/RelativePackageNameResolverTest.java +++ b/src/test/java/com/google/devtools/build/lib/packages/RelativePackageNameResolverTest.java @@ -112,7 +112,7 @@ public class RelativePackageNameResolverTest { } private void createResolver(String offset, boolean discardBuild) { - resolver = new RelativePackageNameResolver(new PathFragment(offset), discardBuild); + resolver = new RelativePackageNameResolver(PathFragment.create(offset), discardBuild); } private void assertResolvesTo(String relative, String expectedAbsolute) throws Exception { diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/MockCcSupport.java b/src/test/java/com/google/devtools/build/lib/packages/util/MockCcSupport.java index e2d13a00ac..ea92b1704a 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/util/MockCcSupport.java +++ b/src/test/java/com/google/devtools/build/lib/packages/util/MockCcSupport.java @@ -603,7 +603,7 @@ public abstract class MockCcSupport { try { return PackageIdentifier.create( RepositoryName.create(TestConstants.TOOLS_REPOSITORY), - new PathFragment(TestConstants.TOOLS_REPOSITORY_PATH)); + PathFragment.create(TestConstants.TOOLS_REPOSITORY_PATH)); } catch (LabelSyntaxException e) { Verify.verify(false); throw new AssertionError(); diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/SubincludePreprocessor.java b/src/test/java/com/google/devtools/build/lib/packages/util/SubincludePreprocessor.java index dd161a2933..e9b4a9bc56 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/util/SubincludePreprocessor.java +++ b/src/test/java/com/google/devtools/build/lib/packages/util/SubincludePreprocessor.java @@ -95,7 +95,8 @@ public class SubincludePreprocessor implements Preprocessor { return ""; } - Path subinclude = buildFile.getParentDirectory().getRelative(new PathFragment(label.getName())); + Path subinclude = + buildFile.getParentDirectory().getRelative(PathFragment.create(label.getName())); return subinclude.getPathString(); } diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/IOExceptionsTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/IOExceptionsTest.java index 9f5edaf8ef..6472f01279 100644 --- a/src/test/java/com/google/devtools/build/lib/pkgcache/IOExceptionsTest.java +++ b/src/test/java/com/google/devtools/build/lib/pkgcache/IOExceptionsTest.java @@ -79,7 +79,7 @@ public class IOExceptionsTest extends PackageLoadingTestCase { @Override protected FileSystem createFileSystem() { - return new InMemoryFileSystem(BlazeClock.instance(), new PathFragment(FS_ROOT)) { + return new InMemoryFileSystem(BlazeClock.instance(), PathFragment.create(FS_ROOT)) { @Override public FileStatus stat(Path path, boolean followSymlinks) throws IOException { String crash = crashMessage.apply(path); diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/IncrementalLoadingTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/IncrementalLoadingTest.java index de78d51e1e..bc5800e246 100644 --- a/src/test/java/com/google/devtools/build/lib/pkgcache/IncrementalLoadingTest.java +++ b/src/test/java/com/google/devtools/build/lib/pkgcache/IncrementalLoadingTest.java @@ -524,7 +524,7 @@ public class IncrementalLoadingTest { Path path = workspace.getRelative(fileName); Preconditions.checkState(!path.exists()); FileSystemUtils.createDirectoryAndParents(path.getParentDirectory()); - path.createSymbolicLink(new PathFragment(target)); + path.createSymbolicLink(PathFragment.create(target)); changes.add(path); } @@ -546,7 +546,7 @@ public class IncrementalLoadingTest { Path symlink = workspace.getRelative(fileName); Preconditions.checkState(symlink.exists()); symlink.delete(); - symlink.createSymbolicLink(new PathFragment(newTarget)); + symlink.createSymbolicLink(PathFragment.create(newTarget)); changes.add(symlink); } diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/LoadingPhaseRunnerTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/LoadingPhaseRunnerTest.java index 9cf3254d92..4ca07f9bd9 100644 --- a/src/test/java/com/google/devtools/build/lib/pkgcache/LoadingPhaseRunnerTest.java +++ b/src/test/java/com/google/devtools/build/lib/pkgcache/LoadingPhaseRunnerTest.java @@ -468,8 +468,8 @@ public class LoadingPhaseRunnerTest { tester.getWorkspace().getChild("broken").createDirectory(); // Create a circular symlink. - tester.getWorkspace().getRelative(new PathFragment("broken/BUILD")) - .createSymbolicLink(new PathFragment("BUILD")); + tester.getWorkspace().getRelative(PathFragment.create("broken/BUILD")) + .createSymbolicLink(PathFragment.create("BUILD")); assertCircularSymlinksDuringTargetParsing("//broken/..."); } @@ -479,10 +479,10 @@ public class LoadingPhaseRunnerTest { tester.getWorkspace().getChild("broken").createDirectory(); // Create a circular symlink. - tester.getWorkspace().getRelative(new PathFragment("broken/BUILD")) - .createSymbolicLink(new PathFragment("x")); - tester.getWorkspace().getRelative(new PathFragment("broken/x")) - .createSymbolicLink(new PathFragment("BUILD")); + tester.getWorkspace().getRelative(PathFragment.create("broken/BUILD")) + .createSymbolicLink(PathFragment.create("x")); + tester.getWorkspace().getRelative(PathFragment.create("broken/x")) + .createSymbolicLink(PathFragment.create("BUILD")); assertCircularSymlinksDuringTargetParsing("//broken/..."); } diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/TargetPatternEvaluatorIOTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/TargetPatternEvaluatorIOTest.java index 3b63fbe157..471f884bca 100644 --- a/src/test/java/com/google/devtools/build/lib/pkgcache/TargetPatternEvaluatorIOTest.java +++ b/src/test/java/com/google/devtools/build/lib/pkgcache/TargetPatternEvaluatorIOTest.java @@ -58,7 +58,7 @@ public class TargetPatternEvaluatorIOTest extends AbstractTargetPatternEvaluator @Override protected FileSystem createFileSystem() { - return new InMemoryFileSystem(BlazeClock.instance(), new PathFragment(FS_ROOT)) { + return new InMemoryFileSystem(BlazeClock.instance(), PathFragment.create(FS_ROOT)) { @Override public FileStatus stat(Path path, boolean followSymlinks) throws IOException { FileStatus defaultResult = super.stat(path, followSymlinks); diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/TargetPatternEvaluatorTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/TargetPatternEvaluatorTest.java index 33e736a1ec..da003add73 100644 --- a/src/test/java/com/google/devtools/build/lib/pkgcache/TargetPatternEvaluatorTest.java +++ b/src/test/java/com/google/devtools/build/lib/pkgcache/TargetPatternEvaluatorTest.java @@ -143,7 +143,7 @@ public class TargetPatternEvaluatorTest extends AbstractTargetPatternEvaluatorTe private void invalidate(String file) throws InterruptedException { skyframeExecutor.invalidateFilesUnderPathForTesting(reporter, - ModifiedFileSet.builder().modify(new PathFragment(file)).build(), rootDirectory); + ModifiedFileSet.builder().modify(PathFragment.create(file)).build(), rootDirectory); } private void invalidate(ModifiedFileSet modifiedFileSet) throws InterruptedException { @@ -340,9 +340,9 @@ public class TargetPatternEvaluatorTest extends AbstractTargetPatternEvaluatorTe scratch.file("nest/nest/BUILD", "cc_library(name = 'nested2', srcs = [ ])"); - updateOffset(new PathFragment("nest")); + updateOffset(PathFragment.create("nest")); assertThat(parseList(":all")).containsExactlyElementsIn(labels("//nest:nested1")); - updateOffset(new PathFragment("nest/nest")); + updateOffset(PathFragment.create("nest/nest")); assertThat(parseList(":all")).containsExactlyElementsIn(labels("//nest/nest:nested2")); } @@ -556,7 +556,7 @@ public class TargetPatternEvaluatorTest extends AbstractTargetPatternEvaluatorTe scratch.file("x/z/BUILD", "cc_library(name='z')"); setDeletedPackages(Sets.newHashSet(PackageIdentifier.createInMainRepo("x/y"))); - parser.updateOffset(new PathFragment("x")); + parser.updateOffset(PathFragment.create("x")); assertEquals(Sets.newHashSet(Label.parseAbsolute("//x/z")), targetsToLabels(getFailFast(parser.parseTargetPattern(parsingListener, "...", false)))); } @@ -786,7 +786,7 @@ public class TargetPatternEvaluatorTest extends AbstractTargetPatternEvaluatorTe public void testSetOffset() throws Exception { assertEquals("//foo:foo1", parseIndividualTarget("foo:foo1").toString()); - parser.updateOffset(new PathFragment("foo")); + parser.updateOffset(PathFragment.create("foo")); assertEquals("//foo:foo1", parseIndividualTarget(":foo1").toString()); } @@ -970,7 +970,7 @@ public class TargetPatternEvaluatorTest extends AbstractTargetPatternEvaluatorTe assertThat(parseList("//h/...")).containsExactlyElementsIn(labels("//h")); ModifiedFileSet modifiedFileSet = ModifiedFileSet.builder() - .modify(new PathFragment("h/i/j/BUILD")).build(); + .modify(PathFragment.create("h/i/j/BUILD")).build(); invalidate(modifiedFileSet); assertThat(parseList("//h/...")).containsExactly(Label.parseAbsolute("//h/i/j:j"), @@ -991,11 +991,11 @@ public class TargetPatternEvaluatorTest extends AbstractTargetPatternEvaluatorTe scratch.file("h/i/j/k/BUILD", "sh_library(name='l')"); ModifiedFileSet modifiedFileSet = ModifiedFileSet.builder() - .modify(new PathFragment("h")) - .modify(new PathFragment("h/i")) - .modify(new PathFragment("h/i/j")) - .modify(new PathFragment("h/i/j/k")) - .modify(new PathFragment("h/i/j/k/BUILD")) + .modify(PathFragment.create("h")) + .modify(PathFragment.create("h/i")) + .modify(PathFragment.create("h/i/j")) + .modify(PathFragment.create("h/i/j/k")) + .modify(PathFragment.create("h/i/j/k/BUILD")) .build(); invalidate(modifiedFileSet); reporter.addHandler(failFastHandler); @@ -1007,7 +1007,7 @@ public class TargetPatternEvaluatorTest extends AbstractTargetPatternEvaluatorTe public void testBrokenSymlinkRepaired() throws Exception { reporter.removeHandler(failFastHandler); Path tuv = scratch.dir("t/u/v"); - tuv.getChild("BUILD").createSymbolicLink(new PathFragment("../../BUILD")); + tuv.getChild("BUILD").createSymbolicLink(PathFragment.create("../../BUILD")); try { parseList("//t/..."); @@ -1018,7 +1018,7 @@ public class TargetPatternEvaluatorTest extends AbstractTargetPatternEvaluatorTe scratch.file("t/BUILD", "sh_library(name='t')"); ModifiedFileSet modifiedFileSet = ModifiedFileSet.builder() - .modify(new PathFragment("t/BUILD")) + .modify(PathFragment.create("t/BUILD")) .build(); invalidate(modifiedFileSet); @@ -1033,7 +1033,7 @@ public class TargetPatternEvaluatorTest extends AbstractTargetPatternEvaluatorTe public void testInfiniteTreeFromSymlinks() throws Exception { reporter.removeHandler(failFastHandler); Path ab = scratch.dir("a/b"); - ab.getChild("c").createSymbolicLink(new PathFragment("../b")); + ab.getChild("c").createSymbolicLink(PathFragment.create("../b")); scratch.file("a/b/BUILD", "filegroup(name='g')"); ResolvedTargets<Target> result = parseTargetPatternList(parser, parsingListener, ImmutableList.of("//a/b/..."), true); @@ -1045,7 +1045,7 @@ public class TargetPatternEvaluatorTest extends AbstractTargetPatternEvaluatorTe public void testSymlinkCycle() throws Exception { reporter.removeHandler(failFastHandler); Path ab = scratch.dir("a/b"); - ab.getChild("c").createSymbolicLink(new PathFragment("c")); + ab.getChild("c").createSymbolicLink(PathFragment.create("c")); scratch.file("a/b/BUILD", "filegroup(name='g')"); ResolvedTargets<Target> result = parseTargetPatternList(parser, parsingListener, ImmutableList.of("//a/b/..."), true); @@ -1060,13 +1060,13 @@ public class TargetPatternEvaluatorTest extends AbstractTargetPatternEvaluatorTe scratch.dir("from-c"); scratch.file("from-c/BUILD", "filegroup(name = 'from-c')"); Path ab = scratch.dir("a/b"); - ab.getChild("symlink").createSymbolicLink(new PathFragment("../../from-b")); + ab.getChild("symlink").createSymbolicLink(PathFragment.create("../../from-b")); scratch.dir("a/b/not-a-symlink"); scratch.file("a/b/not-a-symlink/BUILD", "filegroup(name = 'not-a-symlink')"); scratch.file( "a/b/DONT_FOLLOW_SYMLINKS_WHEN_TRAVERSING_THIS_DIRECTORY_VIA_A_RECURSIVE_TARGET_PATTERN"); Path ac = scratch.dir("a/c"); - ac.getChild("symlink").createSymbolicLink(new PathFragment("../../from-c")); + ac.getChild("symlink").createSymbolicLink(PathFragment.create("../../from-c")); ResolvedTargets<Target> result = parseTargetPatternList(parser, parsingListener, ImmutableList.of("//a/..."), true); assertThat(targetsToLabels(result.getTargets())).containsExactly( diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java index e0789e24d1..7e874d4b8a 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java @@ -1142,21 +1142,21 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase { ImmutableList.of( SourceDirectory.fromSourceRoot( rootDirectory.asFragment(), - new PathFragment("java/android/assets")), + PathFragment.create("java/android/assets")), SourceDirectory.fromRoot( targetConfig.getGenfilesDirectory(RepositoryName.MAIN), - new PathFragment("java/android/assets"))), + PathFragment.create("java/android/assets"))), provider.getAssetDirs()); assertEquals( ImmutableList.of( SourceDirectory.fromSourceRoot( rootDirectory.asFragment(), - new PathFragment("java/android/res"))), + PathFragment.create("java/android/res"))), provider.getResourceDirs()); assertEquals(ImmutableList.of(SourceDirectory.fromSourceRoot( rootDirectory.asFragment(), - new PathFragment("java/android") + PathFragment.create("java/android") )), provider.getIdlImports()); Set<Artifact> artifactClosure = actionsTestUtil().artifactClosureOf(getFilesToBuild(target)); @@ -1193,11 +1193,13 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase { ImmutableList.of( SourceDirectory.fromSourceRoot( rootDirectory.asFragment(), - new PathFragment("research/handwriting/java/com/google/research/handwriting/assets") + PathFragment.create( + "research/handwriting/java/com/google/research/handwriting/assets") ), SourceDirectory.fromRoot( targetConfig.getGenfilesDirectory(RepositoryName.MAIN), - new PathFragment("research/handwriting/java/com/google/research/handwriting/assets") + PathFragment.create( + "research/handwriting/java/com/google/research/handwriting/assets") ) ), provider.getAssetDirs()); @@ -1205,14 +1207,14 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase { ImmutableList.of( SourceDirectory.fromSourceRoot( rootDirectory.asFragment(), - new PathFragment("research/handwriting/java/com/google/research/handwriting/res") + PathFragment.create("research/handwriting/java/com/google/research/handwriting/res") ) ), provider.getResourceDirs()); assertEquals(ImmutableList.of(SourceDirectory.fromSourceRoot( rootDirectory.asFragment(), - new PathFragment("research/handwriting/java/com/google/research/handwriting") + PathFragment.create("research/handwriting/java/com/google/research/handwriting") )), provider.getIdlImports()); Set<Artifact> artifactClosure = actionsTestUtil().artifactClosureOf(getFilesToBuild(target)); @@ -1252,17 +1254,17 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase { ImmutableList.of( SourceDirectory.fromSourceRoot( rootDirectory.asFragment(), - new PathFragment("java/android/assets")), + PathFragment.create("java/android/assets")), SourceDirectory.fromRoot( targetConfig.getGenfilesDirectory(RepositoryName.MAIN), - new PathFragment("java/android/assets")) + PathFragment.create("java/android/assets")) ), provider.getAssetDirs()); assertEquals( ImmutableList.of( SourceDirectory.fromSourceRoot( rootDirectory.asFragment(), - new PathFragment("java/android/res")) + PathFragment.create("java/android/res")) ), provider.getResourceDirs()); @@ -1270,10 +1272,10 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase { ImmutableList.of( SourceDirectory.fromSourceRoot( rootDirectory.asFragment(), - new PathFragment("java/android")), + PathFragment.create("java/android")), SourceDirectory.fromRoot( targetConfig.getGenfilesDirectory(RepositoryName.MAIN), - new PathFragment("java/android")) + PathFragment.create("java/android")) ), provider.getIdlImports()); diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java index e0fc844f63..4f5b63e26e 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java @@ -410,7 +410,7 @@ public class CcCommonTest extends BuildViewTestCase { String includesRoot = "bang/bang_includes"; assertThat(foo.getProvider(CppCompilationContext.class).getSystemIncludeDirs()) .containsAllOf( - new PathFragment(includesRoot), + PathFragment.create(includesRoot), targetConfig.getGenfilesFragment().getRelative(includesRoot)); } @@ -436,7 +436,7 @@ public class CcCommonTest extends BuildViewTestCase { List<PathFragment> expected = new ImmutableList.Builder<PathFragment>() .addAll(noIncludes.getProvider(CppCompilationContext.class).getSystemIncludeDirs()) - .add(new PathFragment(includesRoot)) + .add(PathFragment.create(includesRoot)) .add(targetConfig.getGenfilesFragment().getRelative(includesRoot)) .build(); assertThat(foo.getProvider(CppCompilationContext.class).getSystemIncludeDirs()) @@ -548,7 +548,7 @@ public class CcCommonTest extends BuildViewTestCase { getSkyframeExecutor() .invalidateFilesUnderPathForTesting( reporter, - new ModifiedFileSet.Builder().modify(new PathFragment("WORKSPACE")).build(), + new ModifiedFileSet.Builder().modify(PathFragment.create("WORKSPACE")).build(), rootDirectory); FileSystemUtils.createDirectoryAndParents(scratch.resolve("/foo/bar")); scratch.file("/foo/WORKSPACE", "workspace(name = 'pkg')"); diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java index b80e00ea2f..b87410c97c 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java @@ -58,8 +58,8 @@ import org.junit.runners.JUnit4; */ @RunWith(JUnit4.class) public class CcLibraryConfiguredTargetTest extends BuildViewTestCase { - private static final PathFragment STL_CPPMAP = new PathFragment("stl.cppmap"); - private static final PathFragment CROSSTOOL_CPPMAP = new PathFragment("crosstool.cppmap"); + private static final PathFragment STL_CPPMAP = PathFragment.create("stl.cppmap"); + private static final PathFragment CROSSTOOL_CPPMAP = PathFragment.create("crosstool.cppmap"); @Before public final void createFiles() throws Exception { @@ -501,7 +501,7 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase { List<String> names = new ArrayList<>(); for (String flag : input) { if (CppFileTypes.CPP_MODULE.matches(flag)) { - names.add(new PathFragment(flag).getBaseName()); + names.add(PathFragment.create(flag).getBaseName()); } } return names; diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java index 72494019fd..71020d95de 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainFeaturesTest.java @@ -1209,7 +1209,7 @@ public class CcToolchainFeaturesTest { " implies: 'action-a'", "}") .getFeatureConfiguration("activates-action-a"); - PathFragment crosstoolPath = new PathFragment("crosstool/"); + PathFragment crosstoolPath = PathFragment.create("crosstool/"); PathFragment toolPath = configuration.getToolForAction("action-a").getToolPath(crosstoolPath); assertThat(toolPath.toString()).isEqualTo("crosstool/toolchain/a"); } @@ -1251,7 +1251,7 @@ public class CcToolchainFeaturesTest { " implies: 'action-a'", "}"); - PathFragment crosstoolPath = new PathFragment("crosstool/"); + PathFragment crosstoolPath = PathFragment.create("crosstool/"); FeatureConfiguration featureAConfiguration = toolchainFeatures.getFeatureConfiguration("feature-a", "activates-action-a"); @@ -1310,7 +1310,7 @@ public class CcToolchainFeaturesTest { " implies: 'action-a'", "}"); - PathFragment crosstoolPath = new PathFragment("crosstool/"); + PathFragment crosstoolPath = PathFragment.create("crosstool/"); FeatureConfiguration noFeaturesConfiguration = toolchainFeatures.getFeatureConfiguration("activates-action-a"); diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionTest.java index 2889e324a8..1b38da18d5 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionTest.java @@ -254,8 +254,8 @@ public class CppLinkActionTest extends BuildViewTestCase { @Test public void testComputeKeyNonStatic() throws Exception { final RuleContext ruleContext = createDummyRuleContext(); - final PathFragment exeOutputPath = new PathFragment("dummyRuleContext/output/path"); - final PathFragment dynamicOutputPath = new PathFragment("dummyRuleContext/output/path.so"); + final PathFragment exeOutputPath = PathFragment.create("dummyRuleContext/output/path"); + final PathFragment dynamicOutputPath = PathFragment.create("dummyRuleContext/output/path.so"); final Artifact staticOutputFile = getBinArtifactWithNoOwner(exeOutputPath.getPathString()); final Artifact dynamicOutputFile = getBinArtifactWithNoOwner(dynamicOutputPath.getPathString()); final Artifact oFile = getSourceArtifact("cc/a.o"); @@ -286,7 +286,7 @@ public class CppLinkActionTest extends BuildViewTestCase { builder.setNativeDeps((i & 4) == 0); builder.setUseTestOnlyFlags((i & 8) == 0); builder.setFake((i & 16) == 0); - builder.setRuntimeSolibDir((i & 32) == 0 ? null : new PathFragment("so1")); + builder.setRuntimeSolibDir((i & 32) == 0 ? null : PathFragment.create("so1")); builder.setFeatureConfiguration(featureConfiguration); return builder.build(); @@ -301,8 +301,8 @@ public class CppLinkActionTest extends BuildViewTestCase { @Test public void testComputeKeyStatic() throws Exception { final RuleContext ruleContext = createDummyRuleContext(); - final PathFragment staticOutputPath = new PathFragment("dummyRuleContext/output/path.a"); - final PathFragment dynamicOutputPath = new PathFragment("dummyRuleContext/output/path.so"); + final PathFragment staticOutputPath = PathFragment.create("dummyRuleContext/output/path.a"); + final PathFragment dynamicOutputPath = PathFragment.create("dummyRuleContext/output/path.so"); final Artifact staticOutputFile = getBinArtifactWithNoOwner(staticOutputPath.getPathString()); final Artifact dynamicOutputFile = getBinArtifactWithNoOwner(dynamicOutputPath.getPathString()); final Artifact oFile = getSourceArtifact("cc/a.o"); @@ -336,11 +336,11 @@ public class CppLinkActionTest extends BuildViewTestCase { public void testCommandLineSplitting() throws Exception { RuleContext ruleContext = createDummyRuleContext(); Artifact output = getDerivedArtifact( - new PathFragment("output/path.xyz"), getTargetConfiguration().getBinDirectory( + PathFragment.create("output/path.xyz"), getTargetConfiguration().getBinDirectory( RepositoryName.MAIN), ActionsTestUtil.NULL_ARTIFACT_OWNER); final Artifact outputIfso = getDerivedArtifact( - new PathFragment("output/path.ifso"), getTargetConfiguration().getBinDirectory( + PathFragment.create("output/path.ifso"), getTargetConfiguration().getBinDirectory( RepositoryName.MAIN), ActionsTestUtil.NULL_ARTIFACT_OWNER); CppLinkActionBuilder builder = @@ -432,7 +432,7 @@ public class CppLinkActionTest extends BuildViewTestCase { new CppLinkActionBuilder( ruleContext, new Artifact( - new PathFragment(outputPath), + PathFragment.create(outputPath), getTargetConfiguration() .getBinDirectory(ruleContext.getRule().getRepository())), ruleContext.getConfiguration(), @@ -451,7 +451,7 @@ public class CppLinkActionTest extends BuildViewTestCase { } private CppLinkActionBuilder createLinkBuilder(Link.LinkTargetType type) throws Exception { - PathFragment output = new PathFragment("dummyRuleContext/output/path.a"); + PathFragment output = PathFragment.create("dummyRuleContext/output/path.a"); return createLinkBuilder( type, output.getPathString(), diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CreateIncSymlinkActionTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CreateIncSymlinkActionTest.java index f6ec5bca7e..07ba4ff058 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CreateIncSymlinkActionTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CreateIncSymlinkActionTest.java @@ -43,17 +43,17 @@ public class CreateIncSymlinkActionTest extends FoundationTestCase { @Test public void testDifferentOrderSameActionKey() throws Exception { Root root = Root.asDerivedRoot(rootDirectory, rootDirectory.getRelative("out")); - Artifact a = new Artifact(new PathFragment("a"), root); - Artifact b = new Artifact(new PathFragment("b"), root); - Artifact c = new Artifact(new PathFragment("c"), root); - Artifact d = new Artifact(new PathFragment("d"), root); + Artifact a = new Artifact(PathFragment.create("a"), root); + Artifact b = new Artifact(PathFragment.create("b"), root); + Artifact c = new Artifact(PathFragment.create("c"), root); + Artifact d = new Artifact(PathFragment.create("d"), root); CreateIncSymlinkAction action1 = new CreateIncSymlinkAction(NULL_ACTION_OWNER, ImmutableMap.of(a, b, c, d), root.getPath()); // Can't reuse the artifacts here; that would lead to DuplicateArtifactException. - a = new Artifact(new PathFragment("a"), root); - b = new Artifact(new PathFragment("b"), root); - c = new Artifact(new PathFragment("c"), root); - d = new Artifact(new PathFragment("d"), root); + a = new Artifact(PathFragment.create("a"), root); + b = new Artifact(PathFragment.create("b"), root); + c = new Artifact(PathFragment.create("c"), root); + d = new Artifact(PathFragment.create("d"), root); CreateIncSymlinkAction action2 = new CreateIncSymlinkAction(NULL_ACTION_OWNER, ImmutableMap.of(c, d, a, b), root.getPath()); assertEquals(action1.computeKey(), action2.computeKey()); @@ -62,13 +62,13 @@ public class CreateIncSymlinkActionTest extends FoundationTestCase { @Test public void testDifferentTargetsDifferentActionKey() throws Exception { Root root = Root.asDerivedRoot(rootDirectory, rootDirectory.getRelative("out")); - Artifact a = new Artifact(new PathFragment("a"), root); - Artifact b = new Artifact(new PathFragment("b"), root); + Artifact a = new Artifact(PathFragment.create("a"), root); + Artifact b = new Artifact(PathFragment.create("b"), root); CreateIncSymlinkAction action1 = new CreateIncSymlinkAction(NULL_ACTION_OWNER, ImmutableMap.of(a, b), root.getPath()); // Can't reuse the artifacts here; that would lead to DuplicateArtifactException. - a = new Artifact(new PathFragment("a"), root); - b = new Artifact(new PathFragment("c"), root); + a = new Artifact(PathFragment.create("a"), root); + b = new Artifact(PathFragment.create("c"), root); CreateIncSymlinkAction action2 = new CreateIncSymlinkAction(NULL_ACTION_OWNER, ImmutableMap.of(a, b), root.getPath()); assertThat(action2.computeKey()).isNotEqualTo(action1.computeKey()); @@ -77,13 +77,13 @@ public class CreateIncSymlinkActionTest extends FoundationTestCase { @Test public void testDifferentSymlinksDifferentActionKey() throws Exception { Root root = Root.asDerivedRoot(rootDirectory, rootDirectory.getRelative("out")); - Artifact a = new Artifact(new PathFragment("a"), root); - Artifact b = new Artifact(new PathFragment("b"), root); + Artifact a = new Artifact(PathFragment.create("a"), root); + Artifact b = new Artifact(PathFragment.create("b"), root); CreateIncSymlinkAction action1 = new CreateIncSymlinkAction(NULL_ACTION_OWNER, ImmutableMap.of(a, b), root.getPath()); // Can't reuse the artifacts here; that would lead to DuplicateArtifactException. - a = new Artifact(new PathFragment("c"), root); - b = new Artifact(new PathFragment("b"), root); + a = new Artifact(PathFragment.create("c"), root); + b = new Artifact(PathFragment.create("b"), root); CreateIncSymlinkAction action2 = new CreateIncSymlinkAction(NULL_ACTION_OWNER, ImmutableMap.of(a, b), root.getPath()); assertThat(action2.computeKey()).isNotEqualTo(action1.computeKey()); @@ -96,7 +96,7 @@ public class CreateIncSymlinkActionTest extends FoundationTestCase { Root root = Root.asDerivedRoot(rootDirectory, outputDir); Path symlink = rootDirectory.getRelative("out/a"); Artifact a = new Artifact(symlink, root); - Artifact b = new Artifact(new PathFragment("b"), root); + Artifact b = new Artifact(PathFragment.create("b"), root); CreateIncSymlinkAction action = new CreateIncSymlinkAction(NULL_ACTION_OWNER, ImmutableMap.of(a, b), outputDir); action.execute(null); @@ -113,7 +113,7 @@ public class CreateIncSymlinkActionTest extends FoundationTestCase { Root root = Root.asDerivedRoot(rootDirectory, outputDir); Path symlink = rootDirectory.getRelative("out/subdir/a"); Artifact a = new Artifact(symlink, root); - Artifact b = new Artifact(new PathFragment("b"), root); + Artifact b = new Artifact(PathFragment.create("b"), root); CreateIncSymlinkAction action = new CreateIncSymlinkAction(NULL_ACTION_OWNER, ImmutableMap.of(a, b), outputDir); Path extra = rootDirectory.getRelative("out/extra"); diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CrosstoolConfigurationLoaderTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CrosstoolConfigurationLoaderTest.java index 1fd7a011ad..30b5af1d95 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CrosstoolConfigurationLoaderTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CrosstoolConfigurationLoaderTest.java @@ -540,7 +540,7 @@ public class CrosstoolConfigurationLoaderTest extends AnalysisTestCase { CompilationMode.FASTBUILD, LipoMode.OFF, LinkingMode.FULLY_STATIC, - new PathFragment("hello-world/ld"))); + PathFragment.create("hello-world/ld"))); assertEquals( Arrays.asList( "linker-flag-A-1", @@ -551,7 +551,7 @@ public class CrosstoolConfigurationLoaderTest extends AnalysisTestCase { CompilationMode.DBG, LipoMode.OFF, LinkingMode.DYNAMIC, - new PathFragment("hello-world/ld"))); + PathFragment.create("hello-world/ld"))); assertEquals( Arrays.asList( "linker-flag-A-1", @@ -562,7 +562,7 @@ public class CrosstoolConfigurationLoaderTest extends AnalysisTestCase { CompilationMode.OPT, LipoMode.OFF, LinkingMode.FULLY_STATIC, - new PathFragment("hello-world/ld"))); + PathFragment.create("hello-world/ld"))); assertEquals( Arrays.asList( @@ -574,7 +574,7 @@ public class CrosstoolConfigurationLoaderTest extends AnalysisTestCase { CompilationMode.OPT, LipoMode.BINARY, LinkingMode.FULLY_STATIC, - new PathFragment("hello-world/ld"))); + PathFragment.create("hello-world/ld"))); assertEquals( Arrays.asList("objcopy-embed-flag-A-1", "objcopy-embed-flag-A-2"), @@ -597,7 +597,7 @@ public class CrosstoolConfigurationLoaderTest extends AnalysisTestCase { Arrays.asList( getToolPath("/system-include-dir-A-1"), getToolPath("/system-include-dir-A-2")), toolchainA.getBuiltInIncludeDirectories()); - assertEquals(new PathFragment("some"), toolchainA.getSysroot()); + assertEquals(PathFragment.create("some"), toolchainA.getSysroot()); // Cursory testing of the "B" toolchain only; assume that if none of // toolchain B bled through into toolchain A, the reverse also didn't occur. And @@ -636,21 +636,21 @@ public class CrosstoolConfigurationLoaderTest extends AnalysisTestCase { CompilationMode.FASTBUILD, LipoMode.OFF, LinkingMode.FULLY_STATIC, - new PathFragment("hello-world/ld"))); + PathFragment.create("hello-world/ld"))); assertEquals( Collections.EMPTY_LIST, toolchainC.configureLinkerOptions( CompilationMode.DBG, LipoMode.OFF, LinkingMode.DYNAMIC, - new PathFragment("hello-world/ld"))); + PathFragment.create("hello-world/ld"))); assertEquals( Collections.EMPTY_LIST, toolchainC.configureLinkerOptions( CompilationMode.OPT, LipoMode.OFF, LinkingMode.FULLY_STATIC, - new PathFragment("hello-world/ld"))); + PathFragment.create("hello-world/ld"))); assertThat(toolchainC.getObjCopyOptionsForEmbedding()).isEmpty(); assertThat(toolchainC.getLdOptionsForEmbedding()).isEmpty(); @@ -669,8 +669,9 @@ public class CrosstoolConfigurationLoaderTest extends AnalysisTestCase { PackageIdentifier packageIdentifier = PackageIdentifier.create( TestConstants.TOOLS_REPOSITORY, - new PathFragment( - new PathFragment(TestConstants.TOOLS_REPOSITORY_PATH), new PathFragment(path))); + PathFragment.create( + PathFragment.create(TestConstants.TOOLS_REPOSITORY_PATH), + PathFragment.create(path))); return packageIdentifier.getPathUnderExecRoot(); } @@ -690,7 +691,7 @@ public class CrosstoolConfigurationLoaderTest extends AnalysisTestCase { CompilationMode.DBG, lipoMode, LinkingMode.DYNAMIC, - new PathFragment("hello-world/ld"))); + PathFragment.create("hello-world/ld"))); assertEquals( ImmutableList.<String>of( "compiler-flag-B-1", diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/LTOBackendActionTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/LTOBackendActionTest.java index eb196ec627..70284d8003 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/LTOBackendActionTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/LTOBackendActionTest.java @@ -163,10 +163,10 @@ public class LTOBackendActionTest extends BuildViewTestCase { if ((i & 8) == 0) { builder.addRunfilesSupplier( - new RunfilesSupplierImpl(new PathFragment("a"), Runfiles.EMPTY, artifactA)); + new RunfilesSupplierImpl(PathFragment.create("a"), Runfiles.EMPTY, artifactA)); } else { builder.addRunfilesSupplier( - new RunfilesSupplierImpl(new PathFragment("a"), Runfiles.EMPTY, artifactB)); + new RunfilesSupplierImpl(PathFragment.create("a"), Runfiles.EMPTY, artifactB)); } if ((i & 16) == 0) { diff --git a/src/test/java/com/google/devtools/build/lib/rules/java/JavaUtilTest.java b/src/test/java/com/google/devtools/build/lib/rules/java/JavaUtilTest.java index df3b4d5ca7..7992575483 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/java/JavaUtilTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/java/JavaUtilTest.java @@ -29,13 +29,14 @@ import org.junit.runners.JUnit4; public class JavaUtilTest { private String getRootPath(String path) { - return JavaUtil.getJavaRoot(new PathFragment(path)).getPathString(); + return JavaUtil.getJavaRoot(PathFragment.create(path)).getPathString(); } @Test public void testGetJavaRoot() { assertThat( - JavaUtil.getJavaRoot(new PathFragment("path/without/Java/or/Javatests/or/Src/lowercase"))) + JavaUtil.getJavaRoot( + PathFragment.create("path/without/Java/or/Javatests/or/Src/lowercase"))) .isNull(); assertThat(getRootPath("java/com/google/common/case")).isEqualTo("java"); assertThat(getRootPath("javatests/com/google/common/case")).isEqualTo("javatests"); @@ -103,26 +104,26 @@ public class JavaUtilTest { @Test public void testGetJavaPackageName() { - assertThat(JavaUtil.getJavaPackageName(new PathFragment("java/com/google/foo/FooModule.java"))) - .isEqualTo("com.google.foo"); - assertThat(JavaUtil.getJavaPackageName(new PathFragment("org/foo/FooUtil.java"))) + assertThat(JavaUtil.getJavaPackageName( + PathFragment.create("java/com/google/foo/FooModule.java"))).isEqualTo("com.google.foo"); + assertThat(JavaUtil.getJavaPackageName(PathFragment.create("org/foo/FooUtil.java"))) .isEqualTo("org.foo"); } @Test public void testGetJavaFullClassname() { assertThat( - JavaUtil.getJavaFullClassname(new PathFragment("java/com/google/foo/FooModule.java"))) + JavaUtil.getJavaFullClassname(PathFragment.create("java/com/google/foo/FooModule.java"))) .isEqualTo("com.google.foo.FooModule.java"); - assertThat(JavaUtil.getJavaFullClassname(new PathFragment("org/foo/FooUtil.java"))).isNull(); + assertThat(JavaUtil.getJavaFullClassname(PathFragment.create("org/foo/FooUtil.java"))).isNull(); } @Test public void testGetJavaPath() { assertThat( JavaUtil.getJavaPath( - new PathFragment("java/com/google/foo/FooModule.java")).getPathString()) + PathFragment.create("java/com/google/foo/FooModule.java")).getPathString()) .isEqualTo("com/google/foo/FooModule.java"); - assertThat(JavaUtil.getJavaPath(new PathFragment("org/foo/FooUtil.java"))).isNull(); + assertThat(JavaUtil.getJavaPath(PathFragment.create("org/foo/FooUtil.java"))).isNull(); } } diff --git a/src/test/java/com/google/devtools/build/lib/rules/repository/RepositoryFunctionTest.java b/src/test/java/com/google/devtools/build/lib/rules/repository/RepositoryFunctionTest.java index 629a418e2c..c9e1afacc0 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/repository/RepositoryFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/repository/RepositoryFunctionTest.java @@ -79,7 +79,7 @@ public class RepositoryFunctionTest extends BuildViewTestCase { " name = 'w',", " path = '/a/b/c',", ")"); - assertEquals(new PathFragment("/a/b/c"), + assertEquals(PathFragment.create("/a/b/c"), TestingRepositoryFunction.getTargetPath(rule, rootDirectory)); } diff --git a/src/test/java/com/google/devtools/build/lib/runtime/ExperimentalStateTrackerTest.java b/src/test/java/com/google/devtools/build/lib/runtime/ExperimentalStateTrackerTest.java index ef482198a7..a8ecc550b4 100644 --- a/src/test/java/com/google/devtools/build/lib/runtime/ExperimentalStateTrackerTest.java +++ b/src/test/java/com/google/devtools/build/lib/runtime/ExperimentalStateTrackerTest.java @@ -58,7 +58,7 @@ import org.mockito.Mockito; public class ExperimentalStateTrackerTest extends FoundationTestCase { private Action mockAction(String progressMessage, String primaryOutput) { - Path path = outputBase.getRelative(new PathFragment(primaryOutput)); + Path path = outputBase.getRelative(PathFragment.create(primaryOutput)); Artifact artifact = new Artifact(path, Root.asSourceRoot(path)); Action action = Mockito.mock(Action.class); @@ -424,7 +424,7 @@ public class ExperimentalStateTrackerTest extends FoundationTestCase { String primaryOutput = "some/path/to/a/file"; ManualClock clock = new ManualClock(); - Path path = outputBase.getRelative(new PathFragment(primaryOutput)); + Path path = outputBase.getRelative(PathFragment.create(primaryOutput)); Artifact artifact = new Artifact(path, Root.asSourceRoot(path)); ActionExecutionMetadata actionMetadata = Mockito.mock(ActionExecutionMetadata.class); when(actionMetadata.getOwner()).thenReturn(Mockito.mock(ActionOwner.class)); diff --git a/src/test/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategyTest.java b/src/test/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategyTest.java index 3db7b36b54..4fac68d1b4 100644 --- a/src/test/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategyTest.java +++ b/src/test/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategyTest.java @@ -42,7 +42,7 @@ public class LinuxSandboxedStrategyTest extends SandboxTestCase { @Test public void testParseManifestFile() throws Exception { - PathFragment targetDir = new PathFragment("runfiles"); + PathFragment targetDir = PathFragment.create("runfiles"); Path testFile = workspaceDir.getRelative("testfile"); FileSystemUtils.createEmptyFile(testFile); @@ -58,15 +58,15 @@ public class LinuxSandboxedStrategyTest extends SandboxTestCase { fileSystem, mounts, targetDir, manifestFile.getPathFile(), false, ""); Map<PathFragment, Path> expected = new HashMap<>(); - expected.put(new PathFragment("runfiles/x/testfile"), testFile); - expected.put(new PathFragment("runfiles/x/emptyfile"), null); + expected.put(PathFragment.create("runfiles/x/testfile"), testFile); + expected.put(PathFragment.create("runfiles/x/emptyfile"), null); assertThat(mounts).isEqualTo(expected); } @Test public void testParseFilesetManifestFile() throws Exception { - PathFragment targetDir = new PathFragment("fileset"); + PathFragment targetDir = PathFragment.create("fileset"); Path testFile = workspaceDir.getRelative("testfile"); FileSystemUtils.createEmptyFile(testFile); @@ -81,6 +81,7 @@ public class LinuxSandboxedStrategyTest extends SandboxTestCase { SpawnHelpers.parseManifestFile( fileSystem, mounts, targetDir, manifestFile.getPathFile(), true, "workspace"); - assertThat(mounts).isEqualTo(ImmutableMap.of(new PathFragment("fileset/x/testfile"), testFile)); + assertThat(mounts).isEqualTo( + ImmutableMap.of(PathFragment.create("fileset/x/testfile"), testFile)); } } diff --git a/src/test/java/com/google/devtools/build/lib/sandbox/SymlinkedExecRootTest.java b/src/test/java/com/google/devtools/build/lib/sandbox/SymlinkedExecRootTest.java index 24d1ca12e1..4ad84077dc 100644 --- a/src/test/java/com/google/devtools/build/lib/sandbox/SymlinkedExecRootTest.java +++ b/src/test/java/com/google/devtools/build/lib/sandbox/SymlinkedExecRootTest.java @@ -52,8 +52,8 @@ public class SymlinkedExecRootTest extends SandboxTestCase { SymlinkedExecRoot symlinkedExecRoot = new SymlinkedExecRoot(execRoot); symlinkedExecRoot.createFileSystem( - ImmutableMap.of(new PathFragment("such/input.txt"), helloTxt), - ImmutableSet.of(new PathFragment("very/output.txt")), + ImmutableMap.of(PathFragment.create("such/input.txt"), helloTxt), + ImmutableSet.of(PathFragment.create("very/output.txt")), ImmutableSet.of(execRoot.getRelative("wow/writable"))); assertThat(execRoot.getRelative("such/input.txt").isSymbolicLink()).isTrue(); @@ -69,8 +69,8 @@ public class SymlinkedExecRootTest extends SandboxTestCase { SymlinkedExecRoot symlinkedExecRoot = new SymlinkedExecRoot(execRoot); symlinkedExecRoot.createFileSystem( - ImmutableMap.of(new PathFragment("such/input.txt"), helloTxt), - ImmutableSet.of(new PathFragment("very/output.txt")), + ImmutableMap.of(PathFragment.create("such/input.txt"), helloTxt), + ImmutableSet.of(PathFragment.create("very/output.txt")), ImmutableSet.of(execRoot.getRelative("wow/writable"))); // Pretend to do some work inside the execRoot. @@ -80,8 +80,8 @@ public class SymlinkedExecRootTest extends SandboxTestCase { // Reuse the same execRoot. symlinkedExecRoot.createFileSystem( - ImmutableMap.of(new PathFragment("such/input.txt"), helloTxt), - ImmutableSet.of(new PathFragment("very/output.txt")), + ImmutableMap.of(PathFragment.create("such/input.txt"), helloTxt), + ImmutableSet.of(PathFragment.create("very/output.txt")), ImmutableSet.of(execRoot.getRelative("wow/writable"))); assertThat(execRoot.getRelative("such/input.txt").exists()).isTrue(); @@ -108,8 +108,8 @@ public class SymlinkedExecRootTest extends SandboxTestCase { ImmutableSet.<Path>of()); FileSystemUtils.createEmptyFile(outputFile); - outputLink.createSymbolicLink(new PathFragment("output.txt")); - outputDangling.createSymbolicLink(new PathFragment("doesnotexist")); + outputLink.createSymbolicLink(PathFragment.create("output.txt")); + outputDangling.createSymbolicLink(PathFragment.create("doesnotexist")); outputDir.createDirectory(); FileSystemUtils.createEmptyFile(outputDir.getRelative("test.txt")); diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunctionTest.java index d24647af26..954a3d5cdb 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunctionTest.java @@ -121,12 +121,12 @@ public final class ActionTemplateExpansionFunctionTest extends FoundationTestCas OutputPathMapper mapper = new OutputPathMapper() { @Override public PathFragment parentRelativeOutputPath(TreeFileArtifact inputTreeFileArtifact) { - return new PathFragment("conflict_path"); + return PathFragment.create("conflict_path"); } }; SpawnActionTemplate spawnActionTemplate = new SpawnActionTemplate.Builder(inputTreeArtifact, outputTreeArtifact) - .setExecutable(new PathFragment("/bin/cp")) + .setExecutable(PathFragment.create("/bin/cp")) .setCommandLineTemplate(CustomCommandLine.builder().build()) .setOutputPathMapper(mapper) .build(ActionsTestUtil.NULL_ACTION_OWNER); @@ -152,10 +152,10 @@ public final class ActionTemplateExpansionFunctionTest extends FoundationTestCas PathFragment path; switch (i) { case 0: - path = new PathFragment("path_prefix"); + path = PathFragment.create("path_prefix"); break; case 1: - path = new PathFragment("path_prefix/conflict"); + path = PathFragment.create("path_prefix/conflict"); break; default: path = inputTreeFileArtifact.getParentRelativePath(); @@ -167,7 +167,7 @@ public final class ActionTemplateExpansionFunctionTest extends FoundationTestCas }; SpawnActionTemplate spawnActionTemplate = new SpawnActionTemplate.Builder(inputTreeArtifact, outputTreeArtifact) - .setExecutable(new PathFragment("/bin/cp")) + .setExecutable(PathFragment.create("/bin/cp")) .setCommandLineTemplate(CustomCommandLine.builder().build()) .setOutputPathMapper(mapper) .build(ActionsTestUtil.NULL_ACTION_OWNER); @@ -199,7 +199,7 @@ public final class ActionTemplateExpansionFunctionTest extends FoundationTestCas } private Artifact createTreeArtifact(String path) { - PathFragment execPath = new PathFragment("out").getRelative(path); + PathFragment execPath = PathFragment.create("out").getRelative(path); Path fullPath = rootDirectory.getRelative(execPath); return new SpecialArtifact( fullPath, @@ -216,7 +216,7 @@ public final class ActionTemplateExpansionFunctionTest extends FoundationTestCas for (String childRelativePath : childRelativePaths) { TreeFileArtifact treeFileArtifact = ActionInputHelper.treeFileArtifact( - treeArtifact, new PathFragment(childRelativePath)); + treeArtifact, PathFragment.create(childRelativePath)); scratch.file(treeFileArtifact.getPath().toString(), childRelativePath); // We do not care about the FileArtifactValues in this test. treeFileArtifactMap.put(treeFileArtifact, FileArtifactValue.create(treeFileArtifact)); diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java index c729fc6b6a..21afd0a256 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java @@ -389,11 +389,11 @@ public class ArtifactFunctionTest extends ArtifactFunctionTestCase { } private Artifact createSourceArtifact(String path) { - return new Artifact(new PathFragment(path), Root.asSourceRoot(root)); + return new Artifact(PathFragment.create(path), Root.asSourceRoot(root)); } private Artifact createDerivedArtifact(String path) { - PathFragment execPath = new PathFragment("out").getRelative(path); + PathFragment execPath = PathFragment.create("out").getRelative(path); Path fullPath = root.getRelative(execPath); Artifact output = new Artifact( @@ -416,7 +416,7 @@ public class ArtifactFunctionTest extends ArtifactFunctionTestCase { } private Artifact createDerivedTreeArtifactOnly(String path) { - PathFragment execPath = new PathFragment("out").getRelative(path); + PathFragment execPath = PathFragment.create("out").getRelative(path); Path fullPath = root.getRelative(execPath); return new SpecialArtifact( fullPath, @@ -429,7 +429,7 @@ public class ArtifactFunctionTest extends ArtifactFunctionTestCase { private TreeFileArtifact createFakeTreeFileArtifact(Artifact treeArtifact, String parentRelativePath, String content) throws Exception { TreeFileArtifact treeFileArtifact = ActionInputHelper.treeFileArtifact( - treeArtifact, new PathFragment(parentRelativePath)); + treeArtifact, PathFragment.create(parentRelativePath)); Path path = treeFileArtifact.getPath(); FileSystemUtils.createDirectoryAndParents(path.getParentDirectory()); writeFile(path, content); @@ -499,9 +499,9 @@ public class ArtifactFunctionTest extends ArtifactFunctionTestCase { try { if (output.isTreeArtifact()) { TreeFileArtifact treeFileArtifact1 = ActionInputHelper.treeFileArtifact( - output, new PathFragment("child1")); + output, PathFragment.create("child1")); TreeFileArtifact treeFileArtifact2 = ActionInputHelper.treeFileArtifact( - output, new PathFragment("child2")); + output, PathFragment.create("child2")); TreeArtifactValue treeArtifactValue = TreeArtifactValue.create(ImmutableMap.of( treeFileArtifact1, FileArtifactValue.create(treeFileArtifact1), treeFileArtifact2, FileArtifactValue.create(treeFileArtifact2))); diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManagerTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManagerTest.java index e2aebba89e..2a6f85eb05 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManagerTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/DiffAwarenessManagerTest.java @@ -94,9 +94,9 @@ public class DiffAwarenessManagerTest { @Test public void testHandlesUnprocessedDiffs() throws Exception { Path pathEntry = root.getRelative("pathEntry"); - ModifiedFileSet diff1 = ModifiedFileSet.builder().modify(new PathFragment("file1")).build(); - ModifiedFileSet diff2 = ModifiedFileSet.builder().modify(new PathFragment("file2")).build(); - ModifiedFileSet diff3 = ModifiedFileSet.builder().modify(new PathFragment("file3")).build(); + ModifiedFileSet diff1 = ModifiedFileSet.builder().modify(PathFragment.create("file1")).build(); + ModifiedFileSet diff2 = ModifiedFileSet.builder().modify(PathFragment.create("file2")).build(); + ModifiedFileSet diff3 = ModifiedFileSet.builder().modify(PathFragment.create("file3")).build(); DiffAwarenessStub diffAwareness = new DiffAwarenessStub(ImmutableList.of(diff1, diff2, diff3, DiffAwarenessStub.BROKEN_DIFF)); DiffAwarenessFactoryStub factory = new DiffAwarenessFactoryStub(); @@ -134,12 +134,12 @@ public class DiffAwarenessManagerTest { new DiffAwarenessStub(ImmutableList.<ModifiedFileSet>of(), 1); factory1.inject(pathEntry, diffAwareness1); DiffAwarenessFactoryStub factory2 = new DiffAwarenessFactoryStub(); - ModifiedFileSet diff2 = ModifiedFileSet.builder().modify(new PathFragment("file2")).build(); + ModifiedFileSet diff2 = ModifiedFileSet.builder().modify(PathFragment.create("file2")).build(); DiffAwarenessStub diffAwareness2 = new DiffAwarenessStub(ImmutableList.of(diff2, DiffAwarenessStub.BROKEN_DIFF)); factory2.inject(pathEntry, diffAwareness2); DiffAwarenessFactoryStub factory3 = new DiffAwarenessFactoryStub(); - ModifiedFileSet diff3 = ModifiedFileSet.builder().modify(new PathFragment("file3")).build(); + ModifiedFileSet diff3 = ModifiedFileSet.builder().modify(PathFragment.create("file3")).build(); DiffAwarenessStub diffAwareness3 = new DiffAwarenessStub(ImmutableList.of(diff3)); factory3.inject(pathEntry, diffAwareness3); DiffAwarenessManager manager = @@ -217,7 +217,7 @@ public class DiffAwarenessManagerTest { private static class DiffAwarenessStub implements DiffAwareness { public static final ModifiedFileSet BROKEN_DIFF = - ModifiedFileSet.builder().modify(new PathFragment("special broken marker")).build(); + ModifiedFileSet.builder().modify(PathFragment.create("special broken marker")).build(); private boolean closed = false; private int curSequenceNum = 0; diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java index 5eb13b326d..68f0386bd6 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java @@ -303,7 +303,7 @@ public class FileFunctionTest { rootedPath("a"), rootedPath(""), RootedPath.toRootedPath(fs.getRootDirectory(), PathFragment.EMPTY_FRAGMENT), - RootedPath.toRootedPath(fs.getRootDirectory(), new PathFragment("outside"))); + RootedPath.toRootedPath(fs.getRootDirectory(), PathFragment.create("outside"))); } @Test @@ -320,7 +320,7 @@ public class FileFunctionTest { rootedPath("a"), rootedPath(""), RootedPath.toRootedPath(fs.getRootDirectory(), PathFragment.EMPTY_FRAGMENT), - RootedPath.toRootedPath(fs.getRootDirectory(), new PathFragment("absolute"))); + RootedPath.toRootedPath(fs.getRootDirectory(), PathFragment.create("absolute"))); } @Test @@ -341,10 +341,10 @@ public class FileFunctionTest { rootedPath("a"), rootedPath(""), RootedPath.toRootedPath(root, PathFragment.EMPTY_FRAGMENT), - RootedPath.toRootedPath(root, new PathFragment("output_base")), - RootedPath.toRootedPath(root, new PathFragment("output_base/external")), - RootedPath.toRootedPath(root, new PathFragment("output_base/external/a")), - RootedPath.toRootedPath(root, new PathFragment("output_base/external/a/b"))); + RootedPath.toRootedPath(root, PathFragment.create("output_base")), + RootedPath.toRootedPath(root, PathFragment.create("output_base/external")), + RootedPath.toRootedPath(root, PathFragment.create("output_base/external/a")), + RootedPath.toRootedPath(root, PathFragment.create("output_base/external/a/b"))); } @Test @@ -1584,12 +1584,12 @@ public class FileFunctionTest { private Path symlink(String link, String target) throws Exception { Path path = path(link); FileSystemUtils.createDirectoryAndParents(path.getParentDirectory()); - path.createSymbolicLink(new PathFragment(target)); + path.createSymbolicLink(PathFragment.create(target)); return path; } private Path path(String rootRelativePath) { - return pkgRoot.getRelative(new PathFragment(rootRelativePath)); + return pkgRoot.getRelative(PathFragment.create(rootRelativePath)); } private RootedPath rootedPath(String pathString) { diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/FileSymlinkCycleUniquenessFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/FileSymlinkCycleUniquenessFunctionTest.java index 49414a95ea..aadce0f35e 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/FileSymlinkCycleUniquenessFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/FileSymlinkCycleUniquenessFunctionTest.java @@ -30,9 +30,9 @@ public class FileSymlinkCycleUniquenessFunctionTest { @Test public void testHashCodeAndEqualsContract() throws Exception { Path root = new InMemoryFileSystem().getRootDirectory().getRelative("root"); - RootedPath p1 = RootedPath.toRootedPath(root, new PathFragment("p1")); - RootedPath p2 = RootedPath.toRootedPath(root, new PathFragment("p2")); - RootedPath p3 = RootedPath.toRootedPath(root, new PathFragment("p3")); + RootedPath p1 = RootedPath.toRootedPath(root, PathFragment.create("p1")); + RootedPath p2 = RootedPath.toRootedPath(root, PathFragment.create("p2")); + RootedPath p3 = RootedPath.toRootedPath(root, PathFragment.create("p3")); ImmutableList<RootedPath> cycleA1 = ImmutableList.of(p1); ImmutableList<RootedPath> cycleB1 = ImmutableList.of(p2); ImmutableList<RootedPath> cycleC1 = ImmutableList.of(p1, p2, p3); diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/FilesetEntryFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/FilesetEntryFunctionTest.java index 40d6d4e1fe..949f09b168 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/FilesetEntryFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/FilesetEntryFunctionTest.java @@ -121,7 +121,7 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { } private Artifact getSourceArtifact(String path) throws Exception { - return new Artifact(new PathFragment(path), Root.asSourceRoot(rootDirectory)); + return new Artifact(PathFragment.create(path), Root.asSourceRoot(rootDirectory)); } private Artifact createSourceArtifact(String path) throws Exception { @@ -177,15 +177,15 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { } private static FilesetOutputSymlink symlink(String from, Artifact to) { - return new FilesetOutputSymlink(new PathFragment(from), to.getPath().asFragment()); + return new FilesetOutputSymlink(PathFragment.create(from), to.getPath().asFragment()); } private static FilesetOutputSymlink symlink(String from, String to) { - return new FilesetOutputSymlink(new PathFragment(from), new PathFragment(to)); + return new FilesetOutputSymlink(PathFragment.create(from), PathFragment.create(to)); } private static FilesetOutputSymlink symlink(String from, RootedPath to) { - return new FilesetOutputSymlink(new PathFragment(from), to.asPath().asFragment()); + return new FilesetOutputSymlink(PathFragment.create(from), to.asPath().asFragment()); } private void assertSymlinksInOrder( @@ -215,7 +215,7 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { FilesetTraversalParamsFactory.fileTraversal( /*ownerLabel=*/ label("//foo"), /*fileToTraverse=*/ file, - /*destPath=*/ new PathFragment("output-name"), + PathFragment.create("output-name"), /*symlinkBehaviorMode=*/ SymlinkBehavior.COPY, /*pkgBoundaryMode=*/ DONT_CROSS); assertSymlinksInOrder(params, symlink("output-name", file)); @@ -224,13 +224,13 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { private void assertFileTraversalForFileSymlink(SymlinkBehavior symlinks) throws Exception { Artifact file = createSourceArtifact("foo/file.real"); Artifact symlink = getSourceArtifact("foo/file.sym"); - symlink.getPath().createSymbolicLink(new PathFragment("file.real")); + symlink.getPath().createSymbolicLink(PathFragment.create("file.real")); FilesetTraversalParams params = FilesetTraversalParamsFactory.fileTraversal( /*ownerLabel=*/ label("//foo"), /*fileToTraverse=*/ symlink, - /*destPath=*/ new PathFragment("output-name"), + PathFragment.create("output-name"), /*symlinkBehaviorMode=*/ symlinks, /*pkgBoundaryMode=*/ DONT_CROSS); switch (symlinks) { @@ -265,7 +265,7 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { FilesetTraversalParamsFactory.fileTraversal( /*ownerLabel=*/ label("//foo"), /*fileToTraverse=*/ dir, - /*destPath=*/ new PathFragment("output-name"), + PathFragment.create("output-name"), /*symlinkBehaviorMode=*/ SymlinkBehavior.COPY, /*pkgBoundaryMode=*/ DONT_CROSS); assertSymlinksInOrder( @@ -277,13 +277,13 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { Artifact symlink = getSourceArtifact("foo/dir_sym"); createFile(childOf(dir, "file.a"), "hello"); createFile(childOf(dir, "sub/file.b"), "world"); - symlink.getPath().createSymbolicLink(new PathFragment("dir_real")); + symlink.getPath().createSymbolicLink(PathFragment.create("dir_real")); FilesetTraversalParams params = FilesetTraversalParamsFactory.fileTraversal( /*ownerLabel=*/ label("//foo"), /*fileToTraverse=*/ symlink, - /*destPath=*/ new PathFragment("output-name"), + PathFragment.create("output-name"), /*symlinkBehaviorMode=*/ symlinks, /*pkgBoundaryMode=*/ DONT_CROSS); switch (symlinks) { @@ -316,7 +316,7 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { RootedPath buildFile = createFile(childOf(dir, "subpkg/BUILD"), "blah"); RootedPath fileB = createFile(childOf(dir, "subpkg/file.b"), "blah"); fileAsym.asPath().getParentDirectory().createDirectory(); - fileAsym.asPath().createSymbolicLink(new PathFragment("../file.a")); + fileAsym.asPath().createSymbolicLink(PathFragment.create("../file.a")); FilesetOutputSymlink outA = symlink("output-name/file.a", childOf(dir, "file.a")); FilesetOutputSymlink outAsym = null; @@ -337,7 +337,7 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { FilesetTraversalParamsFactory.recursiveTraversalOfDirectory( /*ownerLabel=*/ label("//foo"), /*directoryToTraverse=*/ dir, - /*destPath=*/ new PathFragment("output-name"), + PathFragment.create("output-name"), /*excludes=*/ null, /*symlinkBehaviorMode=*/ symlinks, /*pkgBoundaryMode=*/ pkgBoundaryMode); @@ -399,8 +399,8 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { createFile(childOf(dir, "subpkg/BUILD"), "blah"); createFile(childOf(dir, "subpkg/file.b"), "blah"); fileAsym.asPath().getParentDirectory().createDirectory(); - fileAsym.asPath().createSymbolicLink(new PathFragment("../file.a")); - symlink.getPath().createSymbolicLink(new PathFragment("dir_real")); + fileAsym.asPath().createSymbolicLink(PathFragment.create("../file.a")); + symlink.getPath().createSymbolicLink(PathFragment.create("dir_real")); FilesetOutputSymlink outA = symlink("output-name/file.a", childOf(symlink, "file.a")); FilesetOutputSymlink outASym = null; @@ -423,7 +423,7 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { FilesetTraversalParamsFactory.recursiveTraversalOfDirectory( /*ownerLabel=*/ label("//foo"), /*directoryToTraverse=*/ symlink, - /*destPath=*/ new PathFragment("output-name"), + PathFragment.create("output-name"), /*excludes=*/ null, /*symlinkBehaviorMode=*/ symlinks, /*pkgBoundaryMode=*/ pkgBoundaryMode); @@ -488,8 +488,8 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { RootedPath fileB = createFile(siblingOf(subpkgBuildFile, "file.b"), "blah"); scratch.dir(fileAsym.asPath().getParentDirectory().getPathString()); - fileAsym.asPath().createSymbolicLink(new PathFragment("../file.a")); - subpkgSymlink.getPath().createSymbolicLink(new PathFragment("subpkg")); + fileAsym.asPath().createSymbolicLink(PathFragment.create("../file.a")); + subpkgSymlink.getPath().createSymbolicLink(PathFragment.create("subpkg")); FilesetOutputSymlink outBuild = symlink("output-name/BUILD", buildFile); FilesetOutputSymlink outA = symlink("output-name/file.a", fileA); @@ -514,7 +514,7 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { FilesetTraversalParamsFactory.recursiveTraversalOfPackage( /*ownerLabel=*/ label("//foo"), /*directoryToTraverse=*/ buildFile, - /*destPath=*/ new PathFragment("output-name"), + PathFragment.create("output-name"), /*excludes=*/ null, /*symlinkBehaviorMode=*/ symlinks, /*pkgBoundaryMode=*/ pkgBoundaryMode); @@ -576,14 +576,14 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { FilesetTraversalParamsFactory.fileTraversal( /*ownerLabel=*/ label("//foo"), /*fileToTraverse=*/ path, - /*destPath=*/ new PathFragment("inner-out"), + PathFragment.create("inner-out"), /*symlinkBehaviorMode=*/ SymlinkBehavior.COPY, /*pkgBoundaryMode=*/ DONT_CROSS); FilesetTraversalParams outer = FilesetTraversalParamsFactory.nestedTraversal( /*ownerLabel=*/ label("//foo:bar"), /*nested=*/ inner, - /*destDir=*/ new PathFragment("outer-out"), + PathFragment.create("outer-out"), /*excludes=*/ null); assertSymlinksInOrder(outer, symlink("outer-out/inner-out", rootedPath(path))); } @@ -598,7 +598,7 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { FilesetTraversalParamsFactory.recursiveTraversalOfDirectory( /*ownerLabel=*/ label("//foo"), /*directoryToTraverse=*/ dir, - /*destPath=*/ new PathFragment(useInnerDir ? "inner-dir" : ""), + PathFragment.create(useInnerDir ? "inner-dir" : ""), /*excludes=*/ null, /*symlinkBehaviorMode=*/ SymlinkBehavior.COPY, /*pkgBoundaryMode=*/ DONT_CROSS); @@ -606,7 +606,7 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { FilesetTraversalParamsFactory.nestedTraversal( /*ownerLabel=*/ label("//foo"), /*nested=*/ inner, - /*destDir=*/ new PathFragment("outer-dir"), + PathFragment.create("outer-dir"), ImmutableSet.<String>of("file.a", "sub/file.c")); if (useInnerDir) { @@ -639,14 +639,14 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { public void testFileTraversalForDanglingSymlink() throws Exception { Artifact linkName = getSourceArtifact("foo/dangling.sym"); RootedPath linkTarget = createFile(siblingOf(linkName, "target.file"), "blah"); - linkName.getPath().createSymbolicLink(new PathFragment("target.file")); + linkName.getPath().createSymbolicLink(PathFragment.create("target.file")); linkTarget.asPath().delete(); FilesetTraversalParams params = FilesetTraversalParamsFactory.fileTraversal( /*ownerLabel=*/ label("//foo"), /*fileToTraverse=*/ linkName, - /*destPath=*/ new PathFragment("output-name"), + PathFragment.create("output-name"), /*symlinkBehaviorMode=*/ SymlinkBehavior.COPY, /*pkgBoundaryMode=*/ DONT_CROSS); assertSymlinksInOrder(params); // expect empty results @@ -659,14 +659,14 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { Artifact linkName = getSourceArtifact("foo/file.sym"); Artifact linkTarget = getSourceArtifact("foo/file.actual"); createFile(linkTarget); - linkName.getPath().createSymbolicLink(new PathFragment("file.actual")); + linkName.getPath().createSymbolicLink(PathFragment.create("file.actual")); // Ensure the symlink and its target would be included if they weren't explicitly excluded. FilesetTraversalParams params = FilesetTraversalParamsFactory.recursiveTraversalOfPackage( /* ownerLabel */ label("//foo"), /* buildFile */ buildFile, - /* destPath */ new PathFragment("output-name"), + PathFragment.create("output-name"), /* excludes */ ImmutableSet.<String>of(), /* symlinkBehaviorMode */ symlinkBehavior, /* pkgBoundaryMode */ PackageBoundaryMode.DONT_CROSS); @@ -686,7 +686,7 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { FilesetTraversalParamsFactory.recursiveTraversalOfPackage( /* ownerLabel */ label("//foo"), /* buildFile */ buildFile, - /* destPath */ new PathFragment("output-name"), + PathFragment.create("output-name"), /* excludes */ ImmutableSet.of("file.sym"), /* symlinkBehaviorMode */ symlinkBehavior, /* pkgBoundaryMode */ PackageBoundaryMode.DONT_CROSS); @@ -710,7 +710,7 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { FilesetTraversalParamsFactory.fileTraversal( /*ownerLabel=*/ label("//foo"), /*fileToTraverse=*/ path, - /*destPath=*/ new PathFragment("output-name"), + PathFragment.create("output-name"), /*symlinkBehaviorMode=*/ SymlinkBehavior.COPY, /*pkgBoundaryMode=*/ DONT_CROSS); assertSymlinksInOrder(params); // expect empty results @@ -720,14 +720,14 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { public void testRecursiveTraversalForDanglingSymlink() throws Exception { Artifact linkName = getSourceArtifact("foo/dangling.sym"); RootedPath linkTarget = createFile(siblingOf(linkName, "target.file"), "blah"); - linkName.getPath().createSymbolicLink(new PathFragment("target.file")); + linkName.getPath().createSymbolicLink(PathFragment.create("target.file")); linkTarget.asPath().delete(); FilesetTraversalParams params = FilesetTraversalParamsFactory.recursiveTraversalOfDirectory( /*ownerLabel=*/ label("//foo"), /*directoryToTraverse=*/ linkName, - /*destPath=*/ new PathFragment("output-name"), + PathFragment.create("output-name"), /*excludes=*/ null, /*symlinkBehaviorMode=*/ SymlinkBehavior.COPY, /*pkgBoundaryMode=*/ DONT_CROSS); @@ -742,7 +742,7 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { FilesetTraversalParamsFactory.recursiveTraversalOfDirectory( /*ownerLabel=*/ label("//foo"), /*directoryToTraverse=*/ path, - /*destPath=*/ new PathFragment("output-name"), + PathFragment.create("output-name"), /*excludes=*/ null, /*symlinkBehaviorMode=*/ SymlinkBehavior.COPY, /*pkgBoundaryMode=*/ DONT_CROSS); @@ -853,7 +853,7 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { return FilesetTraversalParamsFactory.fileTraversal( label((String) kwArgs.get("ownerLabel")), getSourceArtifact((String) kwArgs.get("fileToTraverse")), - new PathFragment((String) kwArgs.get("destPath")), + PathFragment.create((String) kwArgs.get("destPath")), ((SymlinkBehavior) kwArgs.get("symlinkBehaviorMode")), (PackageBoundaryMode) kwArgs.get("pkgBoundaryMode")); } @@ -881,7 +881,7 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { return FilesetTraversalParamsFactory.recursiveTraversalOfDirectory( label((String) kwArgs.get("ownerLabel")), getSourceArtifact((String) kwArgs.get("directoryToTraverse")), - new PathFragment((String) kwArgs.get("destPath")), + PathFragment.create((String) kwArgs.get("destPath")), (Set<String>) kwArgs.get("excludes"), ((SymlinkBehavior) kwArgs.get("symlinkBehaviorMode")), (PackageBoundaryMode) kwArgs.get("pkgBoundaryMode")); @@ -910,7 +910,7 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { return FilesetTraversalParamsFactory.recursiveTraversalOfPackage( label((String) kwArgs.get("ownerLabel")), getSourceArtifact((String) kwArgs.get("buildFile")), - new PathFragment((String) kwArgs.get("destPath")), + PathFragment.create((String) kwArgs.get("destPath")), (Set<String>) kwArgs.get("excludes"), ((SymlinkBehavior) kwArgs.get("symlinkBehaviorMode")), (PackageBoundaryMode) kwArgs.get("pkgBoundaryMode")); @@ -924,7 +924,7 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { FilesetTraversalParamsFactory.fileTraversal( /*ownerLabel=*/ label("//blah"), /*fileToTraverse=*/ getSourceArtifact("blah/file.a"), - /*destPath=*/ new PathFragment("output-name"), + PathFragment.create("output-name"), /*symlinkBehaviorMode=*/ SymlinkBehavior.COPY, /*pkgBoundaryMode=*/ DONT_CROSS); @@ -932,7 +932,7 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { FilesetTraversalParamsFactory.fileTraversal( /*ownerLabel=*/ label("//blah"), /*fileToTraverse=*/ getSourceArtifact("meow/file.b"), - /*destPath=*/ new PathFragment("output-name"), + PathFragment.create("output-name"), /*symlinkBehaviorMode=*/ SymlinkBehavior.COPY, /*pkgBoundaryMode=*/ DONT_CROSS); @@ -949,7 +949,7 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { return FilesetTraversalParamsFactory.nestedTraversal( label((String) kwArgs.get("ownerLabel")), (FilesetTraversalParams) kwArgs.get("nested"), - new PathFragment((String) kwArgs.get("destDir")), + PathFragment.create((String) kwArgs.get("destDir")), (Set<String>) kwArgs.get("excludes")); } }.doTest(); diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java index 0dba1d9db9..2c92706a7a 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java @@ -155,7 +155,7 @@ public class FilesystemValueCheckerTest { assertEmptyDiff(getDirtyFilesystemKeys(evaluator, checker)); SkyKey skyKey = FileStateValue.key( - RootedPath.toRootedPath(fs.getRootDirectory(), new PathFragment("foo"))); + RootedPath.toRootedPath(fs.getRootDirectory(), PathFragment.create("foo"))); EvaluationResult<SkyValue> result = driver.evaluate( ImmutableList.of(skyKey), @@ -206,13 +206,13 @@ public class FilesystemValueCheckerTest { FileSystemUtils.ensureSymbolicLink(sym1, path); FileSystemUtils.ensureSymbolicLink(sym2, path); SkyKey fooKey = - FileValue.key(RootedPath.toRootedPath(fs.getRootDirectory(), new PathFragment("foo"))); + FileValue.key(RootedPath.toRootedPath(fs.getRootDirectory(), PathFragment.create("foo"))); RootedPath symlinkRootedPath = - RootedPath.toRootedPath(fs.getRootDirectory(), new PathFragment("bar")); + RootedPath.toRootedPath(fs.getRootDirectory(), PathFragment.create("bar")); SkyKey symlinkKey = FileValue.key(symlinkRootedPath); SkyKey symlinkFileStateKey = FileStateValue.key(symlinkRootedPath); RootedPath sym1RootedPath = - RootedPath.toRootedPath(fs.getRootDirectory(), new PathFragment("sym1")); + RootedPath.toRootedPath(fs.getRootDirectory(), PathFragment.create("sym1")); SkyKey sym1FileStateKey = FileStateValue.key(sym1RootedPath); Iterable<SkyKey> allKeys = ImmutableList.of(symlinkKey, fooKey); @@ -274,10 +274,10 @@ public class FilesystemValueCheckerTest { SkyKey key1 = FileStateValue.key( - RootedPath.toRootedPath(fs.getRootDirectory(), new PathFragment("foo1"))); + RootedPath.toRootedPath(fs.getRootDirectory(), PathFragment.create("foo1"))); SkyKey key2 = FileStateValue.key( - RootedPath.toRootedPath(fs.getRootDirectory(), new PathFragment("foo2"))); + RootedPath.toRootedPath(fs.getRootDirectory(), PathFragment.create("foo2"))); Iterable<SkyKey> skyKeys = ImmutableList.of(key1, key2); EvaluationResult<SkyValue> result = driver.evaluate( @@ -304,10 +304,11 @@ public class FilesystemValueCheckerTest { public void testFileWithIOExceptionNotConsideredDirty() throws Exception { Path path = fs.getPath("/testroot/foo"); path.getParentDirectory().createDirectory(); - path.createSymbolicLink(new PathFragment("bar")); + path.createSymbolicLink(PathFragment.create("bar")); fs.readlinkThrowsIoException = true; - SkyKey fileKey = FileStateValue.key(RootedPath.toRootedPath(pkgRoot, new PathFragment("foo"))); + SkyKey fileKey = FileStateValue.key( + RootedPath.toRootedPath(pkgRoot, PathFragment.create("foo"))); EvaluationResult<SkyValue> result = driver.evaluate( ImmutableList.of(fileKey), @@ -763,8 +764,8 @@ public class FilesystemValueCheckerTest { @Test public void testPropagatesRuntimeExceptions() throws Exception { - Collection<SkyKey> values = - ImmutableList.of(FileValue.key(RootedPath.toRootedPath(pkgRoot, new PathFragment("foo")))); + Collection<SkyKey> values = ImmutableList.of( + FileValue.key(RootedPath.toRootedPath(pkgRoot, PathFragment.create("foo")))); driver.evaluate( values, false, SkyframeExecutor.DEFAULT_THREAD_COUNT, NullEventHandler.INSTANCE); FilesystemValueChecker checker = new FilesystemValueChecker(null, null); diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunctionTest.java index 564e4665f5..a2d51781c3 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunctionTest.java @@ -143,7 +143,7 @@ public class LocalRepositoryLookupFunctionTest extends FoundationTestCase { scratch.file("some/path/BUILD"); LocalRepositoryLookupValue repositoryLookupValue = - lookupDirectory(RootedPath.toRootedPath(rootDirectory, new PathFragment("some/path"))); + lookupDirectory(RootedPath.toRootedPath(rootDirectory, PathFragment.create("some/path"))); assertThat(repositoryLookupValue).isNotNull(); assertThat(repositoryLookupValue.getRepository()).isEqualTo(RepositoryName.MAIN); } @@ -155,7 +155,7 @@ public class LocalRepositoryLookupFunctionTest extends FoundationTestCase { scratch.file("local/repo/BUILD"); LocalRepositoryLookupValue repositoryLookupValue = - lookupDirectory(RootedPath.toRootedPath(rootDirectory, new PathFragment("local/repo"))); + lookupDirectory(RootedPath.toRootedPath(rootDirectory, PathFragment.create("local/repo"))); assertThat(repositoryLookupValue).isNotNull(); assertThat(repositoryLookupValue.getRepository().getName()).isEqualTo("@local"); } @@ -169,7 +169,7 @@ public class LocalRepositoryLookupFunctionTest extends FoundationTestCase { LocalRepositoryLookupValue repositoryLookupValue = lookupDirectory( - RootedPath.toRootedPath(rootDirectory, new PathFragment("local/repo/sub/package"))); + RootedPath.toRootedPath(rootDirectory, PathFragment.create("local/repo/sub/package"))); assertThat(repositoryLookupValue).isNotNull(); assertThat(repositoryLookupValue.getRepository().getName()).isEqualTo("@local"); } @@ -181,7 +181,7 @@ public class LocalRepositoryLookupFunctionTest extends FoundationTestCase { scratch.file("local/repo/BUILD"); LocalRepositoryLookupValue repositoryLookupValue = - lookupDirectory(RootedPath.toRootedPath(rootDirectory, new PathFragment("local/repo"))); + lookupDirectory(RootedPath.toRootedPath(rootDirectory, PathFragment.create("local/repo"))); assertThat(repositoryLookupValue).isNotNull(); assertThat(repositoryLookupValue.getRepository()).isEqualTo(RepositoryName.MAIN); } @@ -198,7 +198,7 @@ public class LocalRepositoryLookupFunctionTest extends FoundationTestCase { scratch.file("local/repo/BUILD"); SkyKey localRepositoryKey = - createKey(RootedPath.toRootedPath(rootDirectory, new PathFragment("local/repo"))); + createKey(RootedPath.toRootedPath(rootDirectory, PathFragment.create("local/repo"))); EvaluationResult<LocalRepositoryLookupValue> result = lookupDirectory(localRepositoryKey); assertThatEvaluationResult(result) @@ -218,7 +218,7 @@ public class LocalRepositoryLookupFunctionTest extends FoundationTestCase { scratch.file("local/repo/BUILD"); LocalRepositoryLookupValue repositoryLookupValue = - lookupDirectory(RootedPath.toRootedPath(rootDirectory, new PathFragment("local/repo"))); + lookupDirectory(RootedPath.toRootedPath(rootDirectory, PathFragment.create("local/repo"))); assertThat(repositoryLookupValue).isNotNull(); // In this case, the repository should be MAIN as we can't find any local_repository rules. assertThat(repositoryLookupValue.getRepository()).isEqualTo(RepositoryName.MAIN); diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PackageFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PackageFunctionTest.java index 98bedeb0c4..758c41b28b 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/PackageFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/PackageFunctionTest.java @@ -124,7 +124,7 @@ public class PackageFunctionTest extends BuildViewTestCase { preparePackageLoading(rootDirectory); - SkyKey pkgLookupKey = PackageLookupValue.key(new PathFragment("foo")); + SkyKey pkgLookupKey = PackageLookupValue.key(PathFragment.create("foo")); EvaluationResult<PackageLookupValue> result = SkyframeExecutorTestUtils.evaluate( getSkyframeExecutor(), pkgLookupKey, /*keepGoing=*/false, reporter); assertFalse(result.hasError()); @@ -336,7 +336,7 @@ public class PackageFunctionTest extends BuildViewTestCase { scratch.overwriteFile("bar/a", "subinclude('//baz:c')"); getSkyframeExecutor().invalidateFilesUnderPathForTesting(reporter, - ModifiedFileSet.builder().modify(new PathFragment("bar/a")).build(), rootDirectory); + ModifiedFileSet.builder().modify(PathFragment.create("bar/a")).build(), rootDirectory); value = validPackage(skyKey); assertThat(value.getPackage().getSubincludeLabels()).containsExactly( @@ -368,7 +368,7 @@ public class PackageFunctionTest extends BuildViewTestCase { getSkyframeExecutor() .invalidateFilesUnderPathForTesting( reporter, - ModifiedFileSet.builder().modify(new PathFragment("foo/d.txt")).build(), + ModifiedFileSet.builder().modify(PathFragment.create("foo/d.txt")).build(), rootDirectory); value = validPackage(skyKey); assertThat( @@ -399,7 +399,7 @@ public class PackageFunctionTest extends BuildViewTestCase { getSkyframeExecutor() .invalidateFilesUnderPathForTesting( reporter, - ModifiedFileSet.builder().modify(new PathFragment("foo/BUILD")).build(), + ModifiedFileSet.builder().modify(PathFragment.create("foo/BUILD")).build(), rootDirectory); assertSrcs(validPackage(skyKey), "foo", "//foo:a.config", "//foo:b.txt"); scratch.overwriteFile( @@ -407,7 +407,7 @@ public class PackageFunctionTest extends BuildViewTestCase { getSkyframeExecutor() .invalidateFilesUnderPathForTesting( reporter, - ModifiedFileSet.builder().modify(new PathFragment("foo/BUILD")).build(), + ModifiedFileSet.builder().modify(PathFragment.create("foo/BUILD")).build(), rootDirectory); assertSrcs(validPackage(skyKey), "foo", "//foo:a.config", "//foo:b.txt"); getSkyframeExecutor().resetEvaluator(); @@ -461,7 +461,7 @@ public class PackageFunctionTest extends BuildViewTestCase { getSkyframeExecutor() .invalidateFilesUnderPathForTesting( reporter, - ModifiedFileSet.builder().modify(new PathFragment("foo/BUILD")).build(), + ModifiedFileSet.builder().modify(PathFragment.create("foo/BUILD")).build(), rootDirectory); PackageValue fooValue2 = validPackage(fooKey); assertThat(fooValue2).isNotEqualTo(fooValue); @@ -503,7 +503,7 @@ public class PackageFunctionTest extends BuildViewTestCase { getSkyframeExecutor() .invalidateFilesUnderPathForTesting( reporter, - ModifiedFileSet.builder().modify(new PathFragment("foo/irrelevant")).build(), + ModifiedFileSet.builder().modify(PathFragment.create("foo/irrelevant")).build(), rootDirectory); assertThat(validPackage(skyKey)).isSameAs(value); } @@ -521,7 +521,7 @@ public class PackageFunctionTest extends BuildViewTestCase { getSkyframeExecutor() .invalidateFilesUnderPathForTesting( reporter, - ModifiedFileSet.builder().modify(new PathFragment("foo/irrelevant")).build(), + ModifiedFileSet.builder().modify(PathFragment.create("foo/irrelevant")).build(), rootDirectory); assertThat(validPackage(skyKey)).isSameAs(value); } @@ -574,8 +574,10 @@ public class PackageFunctionTest extends BuildViewTestCase { scratch.overwriteFile("bar/ext.bzl", "load('/qux/ext', 'c')", "a = c"); - getSkyframeExecutor().invalidateFilesUnderPathForTesting(reporter, - ModifiedFileSet.builder().modify(new PathFragment("bar/ext.bzl")).build(), rootDirectory); + getSkyframeExecutor().invalidateFilesUnderPathForTesting( + reporter, + ModifiedFileSet.builder().modify(PathFragment.create("bar/ext.bzl")).build(), + rootDirectory); value = validPackage(skyKey); assertThat(value.getPackage().getSkylarkFileDependencies()).containsExactly( @@ -655,7 +657,7 @@ public class PackageFunctionTest extends BuildViewTestCase { public void testSymlinkCycleWithSkylarkExtension() throws Exception { reporter.removeHandler(failFastHandler); Path extensionFilePath = scratch.resolve("/workspace/test/skylark/extension.bzl"); - FileSystemUtils.ensureSymbolicLink(extensionFilePath, new PathFragment("extension.bzl")); + FileSystemUtils.ensureSymbolicLink(extensionFilePath, PathFragment.create("extension.bzl")); scratch.file("test/skylark/BUILD", "load('/test/skylark/extension', 'a')", "genrule(name = gr,", @@ -715,7 +717,7 @@ public class PackageFunctionTest extends BuildViewTestCase { com.google.devtools.build.lib.skyframe.FileStateValue.key( RootedPath.toRootedPath( workspacePath.getParentDirectory(), - new PathFragment(workspacePath.getBaseName()))))); + PathFragment.create(workspacePath.getBaseName()))))); reporter.removeHandler(failFastHandler); EvaluationResult<PackageValue> result = @@ -751,7 +753,7 @@ public class PackageFunctionTest extends BuildViewTestCase { "#some-irrelevant-comment"); getSkyframeExecutor().invalidateFilesUnderPathForTesting(reporter, - ModifiedFileSet.builder().modify(new PathFragment("foo/BUILD")).build(), rootDirectory); + ModifiedFileSet.builder().modify(PathFragment.create("foo/BUILD")).build(), rootDirectory); value = validPackage(skyKey); assertFalse(value.getPackage().containsErrors()); @@ -767,7 +769,7 @@ public class PackageFunctionTest extends BuildViewTestCase { scratch.file("foo/nope"); getSkyframeExecutor().invalidateFilesUnderPathForTesting(reporter, - ModifiedFileSet.builder().modify(new PathFragment("foo/nope")).build(), rootDirectory); + ModifiedFileSet.builder().modify(PathFragment.create("foo/nope")).build(), rootDirectory); PackageValue newValue = validPackage(skyKey); assertFalse(newValue.getPackage().containsErrors()); @@ -803,7 +805,7 @@ public class PackageFunctionTest extends BuildViewTestCase { "[sh_library(name = x + '-matched') for x in glob(['**'], exclude_directories = 0)]", "#some-irrelevant-comment"); getSkyframeExecutor().invalidateFilesUnderPathForTesting(reporter, - ModifiedFileSet.builder().modify(new PathFragment("foo/BUILD")).build(), rootDirectory); + ModifiedFileSet.builder().modify(PathFragment.create("foo/BUILD")).build(), rootDirectory); value = validPackage(skyKey); assertFalse(value.getPackage().containsErrors()); diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java index 0c4c1d4728..6ad7725f4c 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java @@ -199,7 +199,7 @@ public abstract class PackageLookupFunctionTest extends FoundationTestCase { scratch.file("blacklisted/subdir/BUILD"); scratch.file("blacklisted/BUILD"); PrecomputedValue.BLACKLISTED_PACKAGE_PREFIXES_FILE.set(differencer, - new PathFragment("config/blacklisted.txt")); + PathFragment.create("config/blacklisted.txt")); Path blacklist = scratch.file("config/blacklisted.txt", "blacklisted"); ImmutableSet<String> pkgs = ImmutableSet.of("blacklisted/subdir", "blacklisted"); @@ -213,7 +213,7 @@ public abstract class PackageLookupFunctionTest extends FoundationTestCase { scratch.overwriteFile("config/blacklisted.txt", "not_blacklisted"); RootedPath rootedBlacklist = RootedPath.toRootedPath( blacklist.getParentDirectory().getParentDirectory(), - new PathFragment("config/blacklisted.txt")); + PathFragment.create("config/blacklisted.txt")); differencer.invalidate(ImmutableSet.of(FileStateValue.key(rootedBlacklist))); for (String pkg : pkgs) { PackageLookupValue packageLookupValue = lookupPackage(pkg); diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionSmartNegationTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionSmartNegationTest.java index 50c3a2c046..8786b42af3 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionSmartNegationTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionSmartNegationTest.java @@ -90,7 +90,7 @@ public class PrepareDepsOfPatternsFunctionSmartNegationTest extends BuildViewTes // and a blacklist for the malformed package, getSkyframeExecutor().setBlacklistedPackagePrefixesFile( - new PathFragment("config/blacklist.txt")); + PathFragment.create("config/blacklist.txt")); scratch.file("config/blacklist.txt", "foo/foo"); assertSkipsFoo(patternSequence); diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryFunctionTest.java index b790f86780..1602f4a62a 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryFunctionTest.java @@ -97,7 +97,7 @@ public class PrepareDepsOfTargetsUnderDirectoryFunctionTest extends BuildViewTes createPackages(); // When package "a" is evaluated, - SkyKey key = createPrepDepsKey(rootDirectory, new PathFragment("a")); + SkyKey key = createPrepDepsKey(rootDirectory, PathFragment.create("a")); EvaluationResult<?> evaluationResult = getEvaluationResult(key); WalkableGraph graph = Preconditions.checkNotNull(evaluationResult.getWalkableGraph()); @@ -122,7 +122,7 @@ public class PrepareDepsOfTargetsUnderDirectoryFunctionTest extends BuildViewTes createPackages(); // When package "a" is evaluated under a test-only filtering policy, - SkyKey key = createPrepDepsKey(rootDirectory, new PathFragment("a"), + SkyKey key = createPrepDepsKey(rootDirectory, PathFragment.create("a"), ImmutableSet.<PathFragment>of(), FilteringPolicies.FILTER_TESTS); EvaluationResult<?> evaluationResult = getEvaluationResult(key); WalkableGraph graph = Preconditions.checkNotNull(evaluationResult.getWalkableGraph()); @@ -157,12 +157,12 @@ public class PrepareDepsOfTargetsUnderDirectoryFunctionTest extends BuildViewTes // When the top package is evaluated via PrepareDepsOfTargetsUnderDirectoryValue with "a/b" // excluded, - PathFragment excludedPathFragment = new PathFragment("a/b"); - SkyKey key = createPrepDepsKey(rootDirectory, new PathFragment("a"), + PathFragment excludedPathFragment = PathFragment.create("a/b"); + SkyKey key = createPrepDepsKey(rootDirectory, PathFragment.create("a"), ImmutableSet.of(excludedPathFragment)); SkyKey collectkey = createCollectPackagesKey( - rootDirectory, new PathFragment("a"), ImmutableSet.of(excludedPathFragment)); + rootDirectory, PathFragment.create("a"), ImmutableSet.of(excludedPathFragment)); EvaluationResult<?> evaluationResult = getEvaluationResult(key, collectkey); CollectPackagesUnderDirectoryValue value = (CollectPackagesUnderDirectoryValue) @@ -171,7 +171,7 @@ public class PrepareDepsOfTargetsUnderDirectoryFunctionTest extends BuildViewTes .getValue( createCollectPackagesKey( rootDirectory, - new PathFragment("a"), + PathFragment.create("a"), ImmutableSet.of(excludedPathFragment))); // Then the value reports that "a" is a package, @@ -181,7 +181,7 @@ public class PrepareDepsOfTargetsUnderDirectoryFunctionTest extends BuildViewTes RootedPath onlySubdir = Iterables.getOnlyElement( value.getSubdirectoryTransitivelyContainsPackagesOrErrors().keySet()); - assertThat(onlySubdir.getRelativePath()).isEqualTo(new PathFragment("a/c")); + assertThat(onlySubdir.getRelativePath()).isEqualTo(PathFragment.create("a/c")); // And the "a/c" subdirectory reports a package under it. assertThat(value.getSubdirectoryTransitivelyContainsPackagesOrErrors().get(onlySubdir)) @@ -199,7 +199,7 @@ public class PrepareDepsOfTargetsUnderDirectoryFunctionTest extends BuildViewTes assertTrue( exists( createPrepDepsKey( - rootDirectory, new PathFragment("a/c"), ImmutableSet.<PathFragment>of()), + rootDirectory, PathFragment.create("a/c"), ImmutableSet.<PathFragment>of()), graph)); } @@ -212,17 +212,18 @@ public class PrepareDepsOfTargetsUnderDirectoryFunctionTest extends BuildViewTes scratch.file("a/b/d/helloworld"); // When the top package is evaluated for recursive package values, and "a/b/c" is excluded, - ImmutableSet<PathFragment> excludedPaths = ImmutableSet.of(new PathFragment("a/b/c")); - SkyKey key = createPrepDepsKey(rootDirectory, new PathFragment("a"), excludedPaths); + ImmutableSet<PathFragment> excludedPaths = ImmutableSet.of(PathFragment.create("a/b/c")); + SkyKey key = createPrepDepsKey(rootDirectory, PathFragment.create("a"), excludedPaths); SkyKey collectKey = - createCollectPackagesKey(rootDirectory, new PathFragment("a"), excludedPaths); + createCollectPackagesKey(rootDirectory, PathFragment.create("a"), excludedPaths); EvaluationResult<?> evaluationResult = getEvaluationResult(key, collectKey); CollectPackagesUnderDirectoryValue value = (CollectPackagesUnderDirectoryValue) evaluationResult .getWalkableGraph() .getValue( - createCollectPackagesKey(rootDirectory, new PathFragment("a"), excludedPaths)); + createCollectPackagesKey( + rootDirectory, PathFragment.create("a"), excludedPaths)); // Then the value reports that "a" is a package, assertThat(value.isDirectoryPackage()).isTrue(); @@ -231,7 +232,7 @@ public class PrepareDepsOfTargetsUnderDirectoryFunctionTest extends BuildViewTes RootedPath onlySubdir = Iterables.getOnlyElement( value.getSubdirectoryTransitivelyContainsPackagesOrErrors().keySet()); - assertThat(onlySubdir.getRelativePath()).isEqualTo(new PathFragment("a/b")); + assertThat(onlySubdir.getRelativePath()).isEqualTo(PathFragment.create("a/b")); // And the "a/b" subdirectory does not report a package under it (because it got excluded). assertThat(value.getSubdirectoryTransitivelyContainsPackagesOrErrors().get(onlySubdir)) @@ -240,7 +241,8 @@ public class PrepareDepsOfTargetsUnderDirectoryFunctionTest extends BuildViewTes // Also, the computation graph contains a cached value for "a/b" with "a/b/c" excluded, because // "a/b/c" does live underneath "a/b". WalkableGraph graph = Preconditions.checkNotNull(evaluationResult.getWalkableGraph()); - SkyKey abKey = createCollectPackagesKey(rootDirectory, new PathFragment("a/b"), excludedPaths); + SkyKey abKey = createCollectPackagesKey( + rootDirectory, PathFragment.create("a/b"), excludedPaths); assertThat(exists(abKey, graph)).isTrue(); CollectPackagesUnderDirectoryValue abValue = (CollectPackagesUnderDirectoryValue) Preconditions.checkNotNull(graph.getValue(abKey)); @@ -252,7 +254,7 @@ public class PrepareDepsOfTargetsUnderDirectoryFunctionTest extends BuildViewTes RootedPath abd = Iterables.getOnlyElement( abValue.getSubdirectoryTransitivelyContainsPackagesOrErrors().keySet()); - assertThat(abd.getRelativePath()).isEqualTo(new PathFragment("a/b/d")); + assertThat(abd.getRelativePath()).isEqualTo(PathFragment.create("a/b/d")); // And no package is under "a/b/d". assertThat(abValue.getSubdirectoryTransitivelyContainsPackagesOrErrors().get(abd)).isFalse(); diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java index a45d7b1e77..229cbcfb48 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java @@ -137,16 +137,16 @@ public final class RecursiveFilesystemTraversalFunctionTest extends FoundationTe } private Artifact sourceArtifact(String path) { - return new Artifact(new PathFragment(path), Root.asSourceRoot(rootDirectory)); + return new Artifact(PathFragment.create(path), Root.asSourceRoot(rootDirectory)); } private Artifact sourceArtifactUnderPackagePath(String path, String packagePath) { return new Artifact( - new PathFragment(path), Root.asSourceRoot(rootDirectory.getRelative(packagePath))); + PathFragment.create(path), Root.asSourceRoot(rootDirectory.getRelative(packagePath))); } private Artifact derivedArtifact(String path) { - PathFragment execPath = new PathFragment("out").getRelative(path); + PathFragment execPath = PathFragment.create("out").getRelative(path); Path fullPath = rootDirectory.getRelative(execPath); Artifact output = new Artifact( @@ -161,7 +161,8 @@ public final class RecursiveFilesystemTraversalFunctionTest extends FoundationTe } private RootedPath rootedPath(String path, String packagePath) { - return RootedPath.toRootedPath(rootDirectory.getRelative(packagePath), new PathFragment(path)); + return RootedPath.toRootedPath( + rootDirectory.getRelative(packagePath), PathFragment.create(path)); } private static RootedPath childOf(Artifact artifact, String relative) { @@ -376,7 +377,7 @@ public final class RecursiveFilesystemTraversalFunctionTest extends FoundationTe public void testTraversalOfSymlinkToFile() throws Exception { Artifact linkNameArtifact = sourceArtifact("foo/baz/qux.sym"); Artifact linkTargetArtifact = sourceArtifact("foo/bar/baz.txt"); - PathFragment linkValue = new PathFragment("../bar/baz.txt"); + PathFragment linkValue = PathFragment.create("../bar/baz.txt"); TraversalRequest traversalRoot = fileLikeRoot(linkNameArtifact, DONT_CROSS); createFile(linkTargetArtifact); scratch.dir(linkNameArtifact.getExecPath().getParentDirectory().getPathString()); @@ -407,8 +408,8 @@ public final class RecursiveFilesystemTraversalFunctionTest extends FoundationTe RootedPath fileA = createFile(rootedPath(sourceArtifact("a/file.a"))); RootedPath directLink = rootedPath(directLinkArtifact); RootedPath transitiveLink = rootedPath(transitiveLinkArtifact); - PathFragment directLinkPath = new PathFragment("../a/file.a"); - PathFragment transitiveLinkPath = new PathFragment("../direct/file.sym"); + PathFragment directLinkPath = PathFragment.create("../a/file.a"); + PathFragment transitiveLinkPath = PathFragment.create("../direct/file.sym"); parentOf(directLink).asPath().createDirectory(); parentOf(transitiveLink).asPath().createDirectory(); @@ -500,8 +501,8 @@ public final class RecursiveFilesystemTraversalFunctionTest extends FoundationTe RootedPath fileA = createFile(rootedPath(sourceArtifact("a/file.a"))); RootedPath directLink = rootedPath(directLinkArtifact); RootedPath transitiveLink = rootedPath(transitiveLinkArtifact); - PathFragment directLinkPath = new PathFragment("../a"); - PathFragment transitiveLinkPath = new PathFragment("../direct/dir.sym"); + PathFragment directLinkPath = PathFragment.create("../a"); + PathFragment transitiveLinkPath = PathFragment.create("../direct/dir.sym"); parentOf(directLink).asPath().createDirectory(); parentOf(transitiveLink).asPath().createDirectory(); @@ -538,7 +539,7 @@ public final class RecursiveFilesystemTraversalFunctionTest extends FoundationTe Artifact linkNameArtifact = sourceArtifact("link/foo.sym"); Artifact linkTargetArtifact = sourceArtifact("dir"); RootedPath linkName = rootedPath(linkNameArtifact); - PathFragment linkValue = new PathFragment("../dir"); + PathFragment linkValue = PathFragment.create("../dir"); RootedPath file1 = createFile(childOf(linkTargetArtifact, "file.1")); createFile(childOf(linkTargetArtifact, "sub/file.2")); scratch.dir(parentOf(linkName).asPath().getPathString()); @@ -595,7 +596,7 @@ public final class RecursiveFilesystemTraversalFunctionTest extends FoundationTe public void testTraversalOfDanglingSymlink() throws Exception { Artifact linkArtifact = sourceArtifact("a/dangling.sym"); RootedPath link = rootedPath(linkArtifact); - PathFragment linkTarget = new PathFragment("non_existent"); + PathFragment linkTarget = PathFragment.create("non_existent"); parentOf(link).asPath().createDirectory(); link.asPath().createSymbolicLink(linkTarget); traverseAndAssertFiles( @@ -607,7 +608,7 @@ public final class RecursiveFilesystemTraversalFunctionTest extends FoundationTe Artifact dirArtifact = sourceArtifact("a"); RootedPath file = createFile(childOf(dirArtifact, "file.txt")); RootedPath link = rootedPath(sourceArtifact("a/dangling.sym")); - PathFragment linkTarget = new PathFragment("non_existent"); + PathFragment linkTarget = PathFragment.create("non_existent"); parentOf(link).asPath().createDirectory(); link.asPath().createSymbolicLink(linkTarget); traverseAndAssertFiles( @@ -727,7 +728,7 @@ public final class RecursiveFilesystemTraversalFunctionTest extends FoundationTe // Create a relative symlink pp1://a/b.sym -> b/. It will be resolved to the subdirectory // pp1://a/b, even though a package definition pp2://a/b exists. RootedPath pp1aBsym = siblingOf(pp1aFileA, "b.sym"); - pp1aBsym.asPath().createSymbolicLink(new PathFragment("b")); + pp1aBsym.asPath().createSymbolicLink(PathFragment.create("b")); invalidateDirectory(parentOf(pp1aBsym)); // Traverse //a excluding subpackages. The relative symlink //a/b.sym points to the subdirectory @@ -738,7 +739,7 @@ public final class RecursiveFilesystemTraversalFunctionTest extends FoundationTe regularFileForTesting(pp1aBuild), regularFileForTesting(pp1aFileA), regularFileForTesting(childOf(pp1aBsym, "file.fake")), - symlinkToDirectoryForTesting(parentOf(pp1bFileFake), pp1aBsym, new PathFragment("b")), + symlinkToDirectoryForTesting(parentOf(pp1bFileFake), pp1aBsym, PathFragment.create("b")), regularFileForTesting(pp1aSubdirFileB)); } diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunctionTest.java index 89f961a0a5..d23b527469 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunctionTest.java @@ -92,7 +92,7 @@ public class RecursivePkgFunctionTest extends BuildViewTestCase { public void testStartingAtBuildFile() throws Exception { scratch.file("a/b/c/BUILD"); RecursivePkgValue value = - buildRecursivePkgValue(rootDirectory, new PathFragment("a/b/c/BUILD")); + buildRecursivePkgValue(rootDirectory, PathFragment.create("a/b/c/BUILD")); assertTrue(value.getPackages().isEmpty()); } @@ -106,11 +106,11 @@ public class RecursivePkgFunctionTest extends BuildViewTestCase { scratch.file(root2 + "/a/b/BUILD"); setPackageCacheOptions("--package_path=" + "root1" + ":" + "root2"); - RecursivePkgValue valueForRoot1 = buildRecursivePkgValue(root1, new PathFragment("a")); + RecursivePkgValue valueForRoot1 = buildRecursivePkgValue(root1, PathFragment.create("a")); String root1Pkg = Iterables.getOnlyElement(valueForRoot1.getPackages()); assertEquals(root1Pkg, "a"); - RecursivePkgValue valueForRoot2 = buildRecursivePkgValue(root2, new PathFragment("a")); + RecursivePkgValue valueForRoot2 = buildRecursivePkgValue(root2, PathFragment.create("a")); String root2Pkg = Iterables.getOnlyElement(valueForRoot2.getPackages()); assertEquals(root2Pkg, "a/b"); } @@ -123,10 +123,10 @@ public class RecursivePkgFunctionTest extends BuildViewTestCase { scratch.file("a/c/BUILD"); // When the top package is evaluated for recursive package values, and "a/b" is excluded, - PathFragment excludedPathFragment = new PathFragment("a/b"); + PathFragment excludedPathFragment = PathFragment.create("a/b"); SkyKey key = buildRecursivePkgKey( - rootDirectory, new PathFragment("a"), ImmutableSet.of(excludedPathFragment)); + rootDirectory, PathFragment.create("a"), ImmutableSet.of(excludedPathFragment)); EvaluationResult<RecursivePkgValue> evaluationResult = getEvaluationResult(key); RecursivePkgValue value = evaluationResult.get(key); @@ -150,7 +150,7 @@ public class RecursivePkgFunctionTest extends BuildViewTestCase { assertTrue( exists( buildRecursivePkgKey( - rootDirectory, new PathFragment("a/c"), ImmutableSet.<PathFragment>of()), + rootDirectory, PathFragment.create("a/c"), ImmutableSet.<PathFragment>of()), graph)); } @@ -162,8 +162,8 @@ public class RecursivePkgFunctionTest extends BuildViewTestCase { scratch.file("a/b/d/BUILD"); // When the top package is evaluated for recursive package values, and "a/b/c" is excluded, - ImmutableSet<PathFragment> excludedPaths = ImmutableSet.of(new PathFragment("a/b/c")); - SkyKey key = buildRecursivePkgKey(rootDirectory, new PathFragment("a"), excludedPaths); + ImmutableSet<PathFragment> excludedPaths = ImmutableSet.of(PathFragment.create("a/b/c")); + SkyKey key = buildRecursivePkgKey(rootDirectory, PathFragment.create("a"), excludedPaths); EvaluationResult<RecursivePkgValue> evaluationResult = getEvaluationResult(key); RecursivePkgValue value = evaluationResult.get(key); @@ -178,6 +178,8 @@ public class RecursivePkgFunctionTest extends BuildViewTestCase { // "a/b/c" does live underneath "a/b". WalkableGraph graph = Preconditions.checkNotNull(evaluationResult.getWalkableGraph()); assertTrue( - exists(buildRecursivePkgKey(rootDirectory, new PathFragment("a/b"), excludedPaths), graph)); + exists( + buildRecursivePkgKey(rootDirectory, PathFragment.create("a/b"), excludedPaths), + graph)); } } diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/RecursivePkgKeyTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/RecursivePkgKeyTest.java index 9d0fc4dba1..e205cabf1c 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/RecursivePkgKeyTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/RecursivePkgKeyTest.java @@ -53,37 +53,37 @@ public class RecursivePkgKeyTest extends BuildViewTestCase { public void testValidRecursivePkgKeys() throws Exception { buildRecursivePkgKey( RepositoryName.MAIN, - new PathFragment(""), + PathFragment.create(""), ImmutableSet.<PathFragment>of()); buildRecursivePkgKey( RepositoryName.MAIN, - new PathFragment(""), - ImmutableSet.of(new PathFragment("a"))); + PathFragment.create(""), + ImmutableSet.of(PathFragment.create("a"))); buildRecursivePkgKey( RepositoryName.MAIN, - new PathFragment("a"), + PathFragment.create("a"), ImmutableSet.<PathFragment>of()); buildRecursivePkgKey( RepositoryName.MAIN, - new PathFragment("a"), - ImmutableSet.of(new PathFragment("a/b"))); + PathFragment.create("a"), + ImmutableSet.of(PathFragment.create("a/b"))); buildRecursivePkgKey( RepositoryName.MAIN, - new PathFragment("a/b"), + PathFragment.create("a/b"), ImmutableSet.<PathFragment>of()); buildRecursivePkgKey( RepositoryName.MAIN, - new PathFragment("a/b"), - ImmutableSet.of(new PathFragment("a/b/c"))); + PathFragment.create("a/b"), + ImmutableSet.of(PathFragment.create("a/b/c"))); } @Test public void testInvalidRecursivePkgKeys() throws Exception { - invalidHelper(new PathFragment(""), ImmutableSet.of(new PathFragment(""))); - invalidHelper(new PathFragment("a"), ImmutableSet.of(new PathFragment("a"))); - invalidHelper(new PathFragment("a"), ImmutableSet.of(new PathFragment("b"))); - invalidHelper(new PathFragment("a/b"), ImmutableSet.of(new PathFragment("a"))); + invalidHelper(PathFragment.create(""), ImmutableSet.of(PathFragment.create(""))); + invalidHelper(PathFragment.create("a"), ImmutableSet.of(PathFragment.create("a"))); + invalidHelper(PathFragment.create("a"), ImmutableSet.of(PathFragment.create("b"))); + invalidHelper(PathFragment.create("a/b"), ImmutableSet.of(PathFragment.create("a"))); } } diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeAwareActionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeAwareActionTest.java index 66c469d5f0..9c73d2f26f 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeAwareActionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeAwareActionTest.java @@ -443,7 +443,7 @@ public class SkyframeAwareActionTest extends TimestampBuilderTestCase { private RootedPath createSkyframeDepOfAction() throws Exception { scratch.file(rootDirectory.getRelative("action.dep").getPathString(), "blah"); - return RootedPath.toRootedPath(rootDirectory, new PathFragment("action.dep")); + return RootedPath.toRootedPath(rootDirectory, PathFragment.create("action.dep")); } private void appendToFile(Path path) throws Exception { diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitorTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitorTest.java index 892f72126f..8aad421603 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitorTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeLabelVisitorTest.java @@ -261,8 +261,8 @@ public class SkyframeLabelVisitorTest extends SkyframeLabelVisitorTestCase { scratch.file("x/y/BUILD", "sh_library(name = 'z')"); syncPackages( ModifiedFileSet.builder() - .modify(new PathFragment("x/y")) - .modify(new PathFragment("x/y/BUILD")) + .modify(PathFragment.create("x/y")) + .modify(PathFragment.create("x/y/BUILD")) .build()); reporter.removeHandler(failFastHandler); // expect errors @@ -281,7 +281,7 @@ public class SkyframeLabelVisitorTest extends SkyframeLabelVisitorTestCase { assertContainsEvent("Label '//x:y/z' crosses boundary of subpackage 'x/y'"); scratch.deleteFile("x/y/BUILD"); - syncPackages(ModifiedFileSet.builder().modify(new PathFragment("x/y/BUILD")).build()); + syncPackages(ModifiedFileSet.builder().modify(PathFragment.create("x/y/BUILD")).build()); reporter.addHandler(failFastHandler); // don't expect errors assertLabelsVisited( @@ -474,14 +474,14 @@ public class SkyframeLabelVisitorTest extends SkyframeLabelVisitorTestCase { ImmutableSet.of("//a:a"), ImmutableSet.of("//a:a"), !EXPECT_ERROR, !KEEP_GOING); Path subpackageBuildFile = scratch.file("b/c/BUILD", "exports_files(['foo'])"); - syncPackages(ModifiedFileSet.builder().modify(new PathFragment("b/c/BUILD")).build()); + syncPackages(ModifiedFileSet.builder().modify(PathFragment.create("b/c/BUILD")).build()); reporter.removeHandler(failFastHandler); // expect errors assertLabelsVisitedWithErrors(ImmutableSet.of("//a:a"), ImmutableSet.of("//a:a")); assertContainsEvent("Label '//b:c/d/foo' crosses boundary of subpackage 'b/c'"); subpackageBuildFile.delete(); - syncPackages(ModifiedFileSet.builder().modify(new PathFragment("b/c/BUILD")).build()); + syncPackages(ModifiedFileSet.builder().modify(PathFragment.create("b/c/BUILD")).build()); assertLabelsVisited( ImmutableSet.of("//a:a"), ImmutableSet.of("//a:a"), !EXPECT_ERROR, !KEEP_GOING); diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/TargetMarkerFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/TargetMarkerFunctionTest.java index d4dda9baf3..5561adcf71 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/TargetMarkerFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/TargetMarkerFunctionTest.java @@ -93,7 +93,7 @@ public class TargetMarkerFunctionTest extends BuildViewTestCase { scratch.file("a/b/BUILD"); ModifiedFileSet subpackageBuildFile = - ModifiedFileSet.builder().modify(new PathFragment("a/b/BUILD")).build(); + ModifiedFileSet.builder().modify(PathFragment.create("a/b/BUILD")).build(); skyframeExecutor.invalidateFilesUnderPathForTesting( reporter, subpackageBuildFile, rootDirectory); diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java b/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java index 8caead9e87..4b6b7002f5 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java @@ -309,7 +309,7 @@ public abstract class TimestampBuilderTestCase extends FoundationTestCase { Artifact createSourceArtifact(FileSystem fs, String name) { Path root = fs.getPath(TestUtils.tmpDir()); - return new Artifact(new PathFragment(name), Root.asSourceRoot(root)); + return new Artifact(PathFragment.create(name), Root.asSourceRoot(root)); } protected Artifact createDerivedArtifact(String name) { @@ -318,7 +318,7 @@ public abstract class TimestampBuilderTestCase extends FoundationTestCase { Artifact createDerivedArtifact(FileSystem fs, String name) { Path execRoot = fs.getPath(TestUtils.tmpDir()); - PathFragment execPath = new PathFragment("out").getRelative(name); + PathFragment execPath = PathFragment.create("out").getRelative(name); Path path = execRoot.getRelative(execPath); return new Artifact( path, Root.asDerivedRoot(execRoot, execRoot.getRelative("out")), execPath, ALL_OWNER); diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactBuildTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactBuildTest.java index 99da8b961b..c682340282 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactBuildTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactBuildTest.java @@ -709,9 +709,9 @@ public class TreeArtifactBuildTest extends TimestampBuilderTestCase { // artifact1 is a tree artifact generated by a TouchingTestAction. Artifact artifact1 = createTreeArtifact("treeArtifact1"); TreeFileArtifact treeFileArtifactA = ActionInputHelper.treeFileArtifact( - artifact1, new PathFragment("child1")); + artifact1, PathFragment.create("child1")); TreeFileArtifact treeFileArtifactB = ActionInputHelper.treeFileArtifact( - artifact1, new PathFragment("child2")); + artifact1, PathFragment.create("child2")); registerAction(new TouchingTestAction(treeFileArtifactA, treeFileArtifactB)); // artifact2 is a tree artifact generated by an action template. @@ -723,9 +723,9 @@ public class TreeArtifactBuildTest extends TimestampBuilderTestCase { // We mock out the action template function to expand into two actions that just touch the // output files. TreeFileArtifact expectedOutputTreeFileArtifact1 = ActionInputHelper.treeFileArtifact( - artifact2, new PathFragment("child1")); + artifact2, PathFragment.create("child1")); TreeFileArtifact expectedOutputTreeFileArtifact2 = ActionInputHelper.treeFileArtifact( - artifact2, new PathFragment("child2")); + artifact2, PathFragment.create("child2")); Action generateOutputAction = new DummyAction( ImmutableList.<Artifact>of(treeFileArtifactA), expectedOutputTreeFileArtifact1); Action noGenerateOutputAction = new DummyAction( @@ -747,9 +747,9 @@ public class TreeArtifactBuildTest extends TimestampBuilderTestCase { // artifact1 is a tree artifact generated by a TouchingTestAction. Artifact artifact1 = createTreeArtifact("treeArtifact1"); TreeFileArtifact treeFileArtifactA = ActionInputHelper.treeFileArtifact( - artifact1, new PathFragment("child1")); + artifact1, PathFragment.create("child1")); TreeFileArtifact treeFileArtifactB = ActionInputHelper.treeFileArtifact( - artifact1, new PathFragment("child2")); + artifact1, PathFragment.create("child2")); registerAction(new TouchingTestAction(treeFileArtifactA, treeFileArtifactB)); // artifact2 is a tree artifact generated by an action template. @@ -762,9 +762,9 @@ public class TreeArtifactBuildTest extends TimestampBuilderTestCase { // One Action that touches the output file. // The other action that does not generate the output file. TreeFileArtifact expectedOutputTreeFileArtifact1 = ActionInputHelper.treeFileArtifact( - artifact2, new PathFragment("child1")); + artifact2, PathFragment.create("child1")); TreeFileArtifact expectedOutputTreeFileArtifact2 = ActionInputHelper.treeFileArtifact( - artifact2, new PathFragment("child2")); + artifact2, PathFragment.create("child2")); Action generateOutputAction = new DummyAction( ImmutableList.<Artifact>of(treeFileArtifactA), expectedOutputTreeFileArtifact1); Action noGenerateOutputAction = new NoOpDummyAction( @@ -792,9 +792,9 @@ public class TreeArtifactBuildTest extends TimestampBuilderTestCase { // artifact1 is a tree artifact generated by a TouchingTestAction. Artifact artifact1 = createTreeArtifact("treeArtifact1"); TreeFileArtifact treeFileArtifactA = ActionInputHelper.treeFileArtifact( - artifact1, new PathFragment("child1")); + artifact1, PathFragment.create("child1")); TreeFileArtifact treeFileArtifactB = ActionInputHelper.treeFileArtifact( - artifact1, new PathFragment("child2")); + artifact1, PathFragment.create("child2")); registerAction(new TouchingTestAction(treeFileArtifactA, treeFileArtifactB)); // artifact2 is a tree artifact generated by an action template. @@ -807,9 +807,9 @@ public class TreeArtifactBuildTest extends TimestampBuilderTestCase { // One Action that touches the output file. // The other action that just throws when executed. TreeFileArtifact expectedOutputTreeFileArtifact1 = ActionInputHelper.treeFileArtifact( - artifact2, new PathFragment("child1")); + artifact2, PathFragment.create("child1")); TreeFileArtifact expectedOutputTreeFileArtifact2 = ActionInputHelper.treeFileArtifact( - artifact2, new PathFragment("child2")); + artifact2, PathFragment.create("child2")); Action generateOutputAction = new DummyAction( ImmutableList.<Artifact>of(treeFileArtifactA), expectedOutputTreeFileArtifact1); Action throwingAction = new ThrowingDummyAction( @@ -837,9 +837,9 @@ public class TreeArtifactBuildTest extends TimestampBuilderTestCase { // artifact1 is a tree artifact generated by a TouchingTestAction. Artifact artifact1 = createTreeArtifact("treeArtifact1"); TreeFileArtifact treeFileArtifactA = ActionInputHelper.treeFileArtifact( - artifact1, new PathFragment("child1")); + artifact1, PathFragment.create("child1")); TreeFileArtifact treeFileArtifactB = ActionInputHelper.treeFileArtifact( - artifact1, new PathFragment("child2")); + artifact1, PathFragment.create("child2")); registerAction(new TouchingTestAction(treeFileArtifactA, treeFileArtifactB)); // artifact2 is a tree artifact generated by an action template. @@ -850,9 +850,9 @@ public class TreeArtifactBuildTest extends TimestampBuilderTestCase { // We mock out the action template function to expand into two actions that throw when executed. TreeFileArtifact expectedOutputTreeFileArtifact1 = ActionInputHelper.treeFileArtifact( - artifact2, new PathFragment("child1")); + artifact2, PathFragment.create("child1")); TreeFileArtifact expectedOutputTreeFileArtifact2 = ActionInputHelper.treeFileArtifact( - artifact2, new PathFragment("child2")); + artifact2, PathFragment.create("child2")); Action throwingAction = new ThrowingDummyAction( ImmutableList.<Artifact>of(treeFileArtifactA), ImmutableList.<Artifact>of(expectedOutputTreeFileArtifact1)); @@ -1044,7 +1044,7 @@ public class TreeArtifactBuildTest extends TimestampBuilderTestCase { void registerOutput(ActionExecutionContext context, String outputName) throws IOException { context.getMetadataHandler().addExpandedTreeOutput( - treeFileArtifact(getSoleOutput(), new PathFragment(outputName))); + treeFileArtifact(getSoleOutput(), PathFragment.create(outputName))); } static List<TreeFileArtifact> asTreeFileArtifacts(final Artifact parent, String... files) { @@ -1158,7 +1158,7 @@ public class TreeArtifactBuildTest extends TimestampBuilderTestCase { private Artifact createTreeArtifact(String name) { FileSystem fs = scratch.getFileSystem(); Path execRoot = fs.getPath(TestUtils.tmpDir()); - PathFragment execPath = new PathFragment("out").getRelative(name); + PathFragment execPath = PathFragment.create("out").getRelative(name); Path path = execRoot.getRelative(execPath); return new SpecialArtifact( path, Root.asDerivedRoot(execRoot, execRoot.getRelative("out")), execPath, ALL_OWNER, diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java index 03d661867a..56bf8a511c 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java @@ -124,7 +124,7 @@ public class TreeArtifactMetadataTest extends ArtifactFunctionTestCase { public void testEqualTreeArtifacts() throws Exception { Artifact treeArtifact = createTreeArtifact("out"); ImmutableList<PathFragment> children = - ImmutableList.of(new PathFragment("one"), new PathFragment("two")); + ImmutableList.of(PathFragment.create("one"), PathFragment.create("two")); TreeArtifactValue valueOne = evaluateTreeArtifact(treeArtifact, children); MemoizingEvaluator evaluator = driver.getGraphForTesting(); evaluator.delete(new Predicate<SkyKey>() { @@ -142,18 +142,18 @@ public class TreeArtifactMetadataTest extends ArtifactFunctionTestCase { @Test public void testTreeArtifactsWithDigests() throws Exception { fastDigest = true; - doTestTreeArtifacts(ImmutableList.of(new PathFragment("one"))); + doTestTreeArtifacts(ImmutableList.of(PathFragment.create("one"))); } @Test public void testTreeArtifactsWithoutDigests() throws Exception { fastDigest = false; - doTestTreeArtifacts(ImmutableList.of(new PathFragment("one"))); + doTestTreeArtifacts(ImmutableList.of(PathFragment.create("one"))); } @Test public void testTreeArtifactMultipleDigests() throws Exception { - doTestTreeArtifacts(ImmutableList.of(new PathFragment("one"), new PathFragment("two"))); + doTestTreeArtifacts(ImmutableList.of(PathFragment.create("one"), PathFragment.create("two"))); } @Test @@ -162,7 +162,7 @@ public class TreeArtifactMetadataTest extends ArtifactFunctionTestCase { Artifact one = createTreeArtifact("outOne"); Artifact two = createTreeArtifact("outTwo"); ImmutableList<PathFragment> children = - ImmutableList.of(new PathFragment("one"), new PathFragment("two")); + ImmutableList.of(PathFragment.create("one"), PathFragment.create("two")); TreeArtifactValue valueOne = evaluateTreeArtifact(one, children); TreeArtifactValue valueTwo = evaluateTreeArtifact(two, children); assertThat(valueOne.getDigest()).isEqualTo(valueTwo.getDigest()); @@ -188,7 +188,7 @@ public class TreeArtifactMetadataTest extends ArtifactFunctionTestCase { try { Artifact artifact = createTreeArtifact("outOne"); TreeArtifactValue value = evaluateTreeArtifact(artifact, - ImmutableList.of(new PathFragment("one"))); + ImmutableList.of(PathFragment.create("one"))); fail("MissingInputFileException expected, got " + value); } catch (Exception e) { assertThat(Throwables.getRootCause(e).getMessage()).contains(exception.getMessage()); @@ -201,7 +201,7 @@ public class TreeArtifactMetadataTest extends ArtifactFunctionTestCase { } private Artifact createTreeArtifact(String path) throws IOException { - PathFragment execPath = new PathFragment("out").getRelative(path); + PathFragment execPath = PathFragment.create("out").getRelative(path); Path fullPath = root.getRelative(execPath); Artifact output = new SpecialArtifact( diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/WorkspaceASTFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/WorkspaceASTFunctionTest.java index 832cb1c5c7..95e1a6218a 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/WorkspaceASTFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/WorkspaceASTFunctionTest.java @@ -60,7 +60,7 @@ public class WorkspaceASTFunctionTest extends BuildViewTestCase { Path workspacePath = scratch.overwriteFile("WORKSPACE", contents); fakeWorkspaceFileValue.setSize(workspacePath.getFileSize()); return RootedPath.toRootedPath( - workspacePath.getParentDirectory(), new PathFragment(workspacePath.getBaseName())); + workspacePath.getParentDirectory(), PathFragment.create(workspacePath.getBaseName())); } private SkyFunction.Environment getEnv() throws InterruptedException { diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunctionTest.java index 0f5e046c1e..714c662fc8 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunctionTest.java @@ -124,7 +124,7 @@ public class WorkspaceFileFunctionTest extends BuildViewTestCase { Path workspacePath = scratch.overwriteFile("WORKSPACE", contents); fakeWorkspaceFileValue.setSize(workspacePath.getFileSize()); return RootedPath.toRootedPath( - workspacePath.getParentDirectory(), new PathFragment(workspacePath.getBaseName())); + workspacePath.getParentDirectory(), PathFragment.create(workspacePath.getBaseName())); } // Dummy harmcrest matcher that match the function name of a skykey diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/WorkspaceNameFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/WorkspaceNameFunctionTest.java index fbb1e644ef..589a53cf04 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/WorkspaceNameFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/WorkspaceNameFunctionTest.java @@ -36,7 +36,7 @@ public class WorkspaceNameFunctionTest extends BuildViewTestCase { private EvaluationResult<WorkspaceNameValue> eval() throws InterruptedException { getSkyframeExecutor().invalidateFilesUnderPathForTesting( reporter, - ModifiedFileSet.builder().modify(new PathFragment("WORKSPACE")).build(), + ModifiedFileSet.builder().modify(PathFragment.create("WORKSPACE")).build(), rootDirectory); return SkyframeExecutorTestUtils.evaluate( getSkyframeExecutor(), key, /*keepGoing=*/ false, reporter); diff --git a/src/test/java/com/google/devtools/build/lib/syntax/EnvironmentTest.java b/src/test/java/com/google/devtools/build/lib/syntax/EnvironmentTest.java index 71e9cec416..5ad7027643 100644 --- a/src/test/java/com/google/devtools/build/lib/syntax/EnvironmentTest.java +++ b/src/test/java/com/google/devtools/build/lib/syntax/EnvironmentTest.java @@ -243,8 +243,8 @@ public class EnvironmentTest extends EvaluationTestCase { } } DummyFreezable dummy = new DummyFreezable(); - Location locA = Location.fromPathFragment(new PathFragment("/a")); - Location locB = Location.fromPathFragment(new PathFragment("/b")); + Location locA = Location.fromPathFragment(PathFragment.create("/a")); + Location locB = Location.fromPathFragment(PathFragment.create("/b")); Environment env = Environment.builder(mutability).build(); // Acquire two locks, release two locks, check along the way. diff --git a/src/test/java/com/google/devtools/build/lib/syntax/LexerTest.java b/src/test/java/com/google/devtools/build/lib/syntax/LexerTest.java index 10da1add9b..b270a54f65 100644 --- a/src/test/java/com/google/devtools/build/lib/syntax/LexerTest.java +++ b/src/test/java/com/google/devtools/build/lib/syntax/LexerTest.java @@ -41,7 +41,7 @@ public class LexerTest { * error handler beforehand. */ private Lexer createLexer(String input) { - PathFragment somePath = new PathFragment("/some/path.txt"); + PathFragment somePath = PathFragment.create("/some/path.txt"); ParserInputSource inputSource = ParserInputSource.create(input, somePath); Reporter reporter = new Reporter(new EventBus()); reporter.addHandler(new EventHandler() { diff --git a/src/test/java/com/google/devtools/build/lib/syntax/LineNumberTableTest.java b/src/test/java/com/google/devtools/build/lib/syntax/LineNumberTableTest.java index c461635406..4377b3527a 100644 --- a/src/test/java/com/google/devtools/build/lib/syntax/LineNumberTableTest.java +++ b/src/test/java/com/google/devtools/build/lib/syntax/LineNumberTableTest.java @@ -29,7 +29,7 @@ import org.junit.runners.JUnit4; @RunWith(JUnit4.class) public class LineNumberTableTest { private LineNumberTable create(String buffer) { - return LineNumberTable.create(buffer.toCharArray(), new PathFragment("/fake/file")); + return LineNumberTable.create(buffer.toCharArray(), PathFragment.create("/fake/file")); } @Test diff --git a/src/test/java/com/google/devtools/build/lib/syntax/ParserInputSourceTest.java b/src/test/java/com/google/devtools/build/lib/syntax/ParserInputSourceTest.java index d93fc6a6a9..467a5ba84d 100644 --- a/src/test/java/com/google/devtools/build/lib/syntax/ParserInputSourceTest.java +++ b/src/test/java/com/google/devtools/build/lib/syntax/ParserInputSourceTest.java @@ -50,7 +50,7 @@ public class ParserInputSourceTest { public void testCreateFromString() { String content = "Content provided as a string."; String pathName = "/the/name/of/the/content.txt"; - ParserInputSource input = ParserInputSource.create(content, new PathFragment(pathName)); + ParserInputSource input = ParserInputSource.create(content, PathFragment.create(pathName)); assertEquals(content, new String(input.getContent())); assertEquals(pathName, input.getPath().toString()); } @@ -60,7 +60,7 @@ public class ParserInputSourceTest { String content = "Content provided as a string."; String pathName = "/the/name/of/the/content.txt"; char[] contentChars = content.toCharArray(); - ParserInputSource input = ParserInputSource.create(contentChars, new PathFragment(pathName)); + ParserInputSource input = ParserInputSource.create(contentChars, PathFragment.create(pathName)); assertEquals(content, new String(input.getContent())); assertEquals(pathName, input.getPath().toString()); } @@ -81,12 +81,12 @@ public class ParserInputSourceTest { @Test public void testWillNotTryToReadInputFileIfContentProvidedAsString() { ParserInputSource.create( - "Content provided as string.", new PathFragment("/will/not/try/to/read")); + "Content provided as string.", PathFragment.create("/will/not/try/to/read")); } @Test public void testWillNotTryToReadInputFileIfContentProvidedAsChars() { char[] content = "Content provided as char array.".toCharArray(); - ParserInputSource.create(content, new PathFragment("/will/not/try/to/read")); + ParserInputSource.create(content, PathFragment.create("/will/not/try/to/read")); } } diff --git a/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java b/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java index db96a9de38..e107d1b6bd 100644 --- a/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java +++ b/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java @@ -1025,7 +1025,7 @@ public class ParserTest extends EvaluationTestCase { assertThat(imp.getImportString()).named("getImportString()").isEqualTo("/some/skylark/file"); assertThat(imp.hasAbsolutePath()).named("hasAbsolutePath()").isTrue(); assertThat(imp.getAbsolutePath()).named("getAbsolutePath()") - .isEqualTo(new PathFragment("/some/skylark/file.bzl")); + .isEqualTo(PathFragment.create("/some/skylark/file.bzl")); int startOffset = stmt.getImport().getLocation().getStartOffset(); int endOffset = stmt.getImport().getLocation().getEndOffset(); diff --git a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkImportTest.java b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkImportTest.java index 49fdd73bcf..fa9dfbfa51 100644 --- a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkImportTest.java +++ b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkImportTest.java @@ -46,7 +46,7 @@ public class SkylarkImportTest { .isEqualTo(Label.parseAbsoluteUnchecked(expectedLabelString)); assertThat(importForLabel.asPathFragment()).named("asPathFragment()") - .isEqualTo(new PathFragment(expectedPathString)); + .isEqualTo(PathFragment.create(expectedPathString)); thrown.expect(IllegalStateException.class); importForLabel.getAbsolutePath(); @@ -76,10 +76,10 @@ public class SkylarkImportTest { Label irrelevantContainingFile = Label.parseAbsoluteUnchecked("//another/path:BUILD"); assertThat(importForPath.getAbsolutePath()).named("getAbsolutePath()") - .isEqualTo(new PathFragment("//some/skylark/file.bzl")); + .isEqualTo(PathFragment.create("//some/skylark/file.bzl")); assertThat(importForPath.asPathFragment()).named("asPathFragment()") - .isEqualTo(new PathFragment("/some/skylark/file.bzl")); + .isEqualTo(PathFragment.create("/some/skylark/file.bzl")); thrown.expect(IllegalStateException.class); importForPath.getLabel(irrelevantContainingFile); @@ -99,7 +99,7 @@ public class SkylarkImportTest { .isEqualTo(Label.parseAbsolute(expectedLabelString)); assertThat(importForLabel.asPathFragment()).named("asPathFragment()") - .isEqualTo(new PathFragment(expectedPathString)); + .isEqualTo(PathFragment.create(expectedPathString)); thrown.expect(IllegalStateException.class); importForLabel.getAbsolutePath(); @@ -149,7 +149,7 @@ public class SkylarkImportTest { .isEqualTo(Label.parseAbsolute(expectedLabelString)); assertThat(importForPath.asPathFragment()).named("asPathFragment()") - .isEqualTo(new PathFragment(expectedPathString)); + .isEqualTo(PathFragment.create(expectedPathString)); thrown.expect(IllegalStateException.class); importForPath.getAbsolutePath(); diff --git a/src/test/java/com/google/devtools/build/lib/util/FileTypeTest.java b/src/test/java/com/google/devtools/build/lib/util/FileTypeTest.java index fd051904b1..67bdfe2804 100644 --- a/src/test/java/com/google/devtools/build/lib/util/FileTypeTest.java +++ b/src/test/java/com/google/devtools/build/lib/util/FileTypeTest.java @@ -97,7 +97,7 @@ public class FileTypeTest { @Test public void handlesPathFragmentObjects() { - PathFragment readme = new PathFragment("some/where/readme.txt"); + PathFragment readme = PathFragment.create("some/where/readme.txt"); assertTrue(TEXT.matches(readme)); } diff --git a/src/test/java/com/google/devtools/build/lib/util/FingerprintTest.java b/src/test/java/com/google/devtools/build/lib/util/FingerprintTest.java index faf974578f..d1806ee003 100644 --- a/src/test/java/com/google/devtools/build/lib/util/FingerprintTest.java +++ b/src/test/java/com/google/devtools/build/lib/util/FingerprintTest.java @@ -112,7 +112,7 @@ public class FingerprintTest { @Test public void addPath() throws Exception { - PathFragment pf = new PathFragment("/etc/pwd"); + PathFragment pf = PathFragment.create("/etc/pwd"); assertThat(new Fingerprint().addPath(pf).hexDigestAndReset()) .isEqualTo("63ab5c47c117635407a1af6377e216bc"); Path p = new InMemoryFileSystem(BlazeClock.instance()).getPath(pf); @@ -161,8 +161,8 @@ public class FingerprintTest { .addNullableBoolean(null) .addNullableInt(null) .addNullableString(null) - .addPath(new PathFragment("/foo/bar")) - .addPaths(ImmutableList.of(new PathFragment("/foo/bar"))) + .addPath(PathFragment.create("/foo/bar")) + .addPaths(ImmutableList.of(PathFragment.create("/foo/bar"))) .addString("baz") .addUUID(UUID.fromString("12345678-1234-1234-1234-1234567890ab")) .hexDigestAndReset(); diff --git a/src/test/java/com/google/devtools/build/lib/util/OptionsUtilsTest.java b/src/test/java/com/google/devtools/build/lib/util/OptionsUtilsTest.java index 9995dfc34f..84030ad481 100644 --- a/src/test/java/com/google/devtools/build/lib/util/OptionsUtilsTest.java +++ b/src/test/java/com/google/devtools/build/lib/util/OptionsUtilsTest.java @@ -124,7 +124,7 @@ public class OptionsUtilsTest { } private PathFragment fragment(String string) { - return new PathFragment(string); + return PathFragment.create(string); } private List<PathFragment> convert(String input) throws Exception { @@ -155,7 +155,7 @@ public class OptionsUtilsTest { @Test public void valueisUnmodifiable() throws Exception { try { - new PathFragmentListConverter().convert("value").add(new PathFragment("other")); + new PathFragmentListConverter().convert("value").add(PathFragment.create("other")); fail("could modify value"); } catch (UnsupportedOperationException expected) {} } diff --git a/src/test/java/com/google/devtools/build/lib/util/PathFragmentFilterTest.java b/src/test/java/com/google/devtools/build/lib/util/PathFragmentFilterTest.java index 134c7a51a3..3f25414582 100644 --- a/src/test/java/com/google/devtools/build/lib/util/PathFragmentFilterTest.java +++ b/src/test/java/com/google/devtools/build/lib/util/PathFragmentFilterTest.java @@ -35,11 +35,11 @@ public class PathFragmentFilterTest { } protected void assertIncluded(String path) { - assertTrue(filter.isIncluded(new PathFragment(path))); + assertTrue(filter.isIncluded(PathFragment.create(path))); } protected void assertExcluded(String path) { - assertFalse(filter.isIncluded(new PathFragment(path))); + assertFalse(filter.isIncluded(PathFragment.create(path))); } @Test diff --git a/src/test/java/com/google/devtools/build/lib/vfs/FileSystemTest.java b/src/test/java/com/google/devtools/build/lib/vfs/FileSystemTest.java index 8b4255b510..0a1d052002 100644 --- a/src/test/java/com/google/devtools/build/lib/vfs/FileSystemTest.java +++ b/src/test/java/com/google/devtools/build/lib/vfs/FileSystemTest.java @@ -306,7 +306,7 @@ public abstract class FileSystemTest { @Test public void testCreatePathRelativeToWorkingDirectory() { Path relativeCreatedPath = absolutize("some-file"); - Path expectedResult = workingDir.getRelative(new PathFragment("some-file")); + Path expectedResult = workingDir.getRelative(PathFragment.create("some-file")); assertEquals(expectedResult, relativeCreatedPath); } @@ -1091,7 +1091,7 @@ public abstract class FileSystemTest { @Test public void testGetPathOnlyAcceptsAbsolutePathFragment() { try { - testFS.getPath(new PathFragment("not-absolute")); + testFS.getPath(PathFragment.create("not-absolute")); fail("The expected Exception was not thrown."); } catch (IllegalArgumentException ex) { assertThat(ex).hasMessage("not-absolute (not an absolute path)"); diff --git a/src/test/java/com/google/devtools/build/lib/vfs/FileSystemUtilsTest.java b/src/test/java/com/google/devtools/build/lib/vfs/FileSystemUtilsTest.java index f9f4850320..421b9fbd59 100644 --- a/src/test/java/com/google/devtools/build/lib/vfs/FileSystemUtilsTest.java +++ b/src/test/java/com/google/devtools/build/lib/vfs/FileSystemUtilsTest.java @@ -227,69 +227,70 @@ public class FileSystemUtilsTest { @Test public void testReplaceExtension_PathFragment() throws Exception { assertPath("foo/bar.baz", - FileSystemUtils.replaceExtension(new PathFragment("foo/bar"), ".baz")); + FileSystemUtils.replaceExtension(PathFragment.create("foo/bar"), ".baz")); assertPath("foo/bar.baz", - FileSystemUtils.replaceExtension(new PathFragment("foo/bar.cc"), ".baz")); + FileSystemUtils.replaceExtension(PathFragment.create("foo/bar.cc"), ".baz")); assertPath("/foo/bar.baz", - FileSystemUtils.replaceExtension(new PathFragment("/foo/bar"), ".baz")); + FileSystemUtils.replaceExtension(PathFragment.create("/foo/bar"), ".baz")); assertPath("/foo/bar.baz", - FileSystemUtils.replaceExtension(new PathFragment("/foo/bar.cc"), ".baz")); - assertPath("foo.baz", FileSystemUtils.replaceExtension(new PathFragment("foo/"), ".baz")); - assertPath("foo.baz", FileSystemUtils.replaceExtension(new PathFragment("foo.cc/"), ".baz")); - assertPath("/foo.baz", FileSystemUtils.replaceExtension(new PathFragment("/foo/"), ".baz")); + FileSystemUtils.replaceExtension(PathFragment.create("/foo/bar.cc"), ".baz")); + assertPath("foo.baz", FileSystemUtils.replaceExtension(PathFragment.create("foo/"), ".baz")); + assertPath("foo.baz", FileSystemUtils.replaceExtension(PathFragment.create("foo.cc/"), ".baz")); + assertPath("/foo.baz", FileSystemUtils.replaceExtension(PathFragment.create("/foo/"), ".baz")); assertPath("/foo.baz", - FileSystemUtils.replaceExtension(new PathFragment("/foo.cc/"), ".baz")); - assertPath("foo.baz", FileSystemUtils.replaceExtension(new PathFragment("foo"), ".baz")); - assertPath("foo.baz", FileSystemUtils.replaceExtension(new PathFragment("foo.cc"), ".baz")); - assertPath("/foo.baz", FileSystemUtils.replaceExtension(new PathFragment("/foo"), ".baz")); + FileSystemUtils.replaceExtension(PathFragment.create("/foo.cc/"), ".baz")); + assertPath("foo.baz", FileSystemUtils.replaceExtension(PathFragment.create("foo"), ".baz")); + assertPath("foo.baz", FileSystemUtils.replaceExtension(PathFragment.create("foo.cc"), ".baz")); + assertPath("/foo.baz", FileSystemUtils.replaceExtension(PathFragment.create("/foo"), ".baz")); assertPath("/foo.baz", - FileSystemUtils.replaceExtension(new PathFragment("/foo.cc"), ".baz")); - assertPath(".baz", FileSystemUtils.replaceExtension(new PathFragment(".cc"), ".baz")); - assertNull(FileSystemUtils.replaceExtension(new PathFragment("/"), ".baz")); - assertNull(FileSystemUtils.replaceExtension(new PathFragment(""), ".baz")); + FileSystemUtils.replaceExtension(PathFragment.create("/foo.cc"), ".baz")); + assertPath(".baz", FileSystemUtils.replaceExtension(PathFragment.create(".cc"), ".baz")); + assertNull(FileSystemUtils.replaceExtension(PathFragment.create("/"), ".baz")); + assertNull(FileSystemUtils.replaceExtension(PathFragment.create(""), ".baz")); assertPath("foo/bar.baz", - FileSystemUtils.replaceExtension(new PathFragment("foo/bar.pony"), ".baz", ".pony")); + FileSystemUtils.replaceExtension(PathFragment.create("foo/bar.pony"), ".baz", ".pony")); assertPath("foo/bar.baz", - FileSystemUtils.replaceExtension(new PathFragment("foo/bar"), ".baz", "")); - assertNull(FileSystemUtils.replaceExtension(new PathFragment(""), ".baz", ".pony")); + FileSystemUtils.replaceExtension(PathFragment.create("foo/bar"), ".baz", "")); + assertNull(FileSystemUtils.replaceExtension(PathFragment.create(""), ".baz", ".pony")); assertNull( - FileSystemUtils.replaceExtension(new PathFragment("foo/bar.pony"), ".baz", ".unicorn")); + FileSystemUtils.replaceExtension(PathFragment.create("foo/bar.pony"), ".baz", ".unicorn")); } @Test public void testAppendWithoutExtension() throws Exception { assertPath("libfoo-src.jar", - appendWithoutExtension(new PathFragment("libfoo.jar"), "-src")); + appendWithoutExtension(PathFragment.create("libfoo.jar"), "-src")); assertPath("foo/libfoo-src.jar", - appendWithoutExtension(new PathFragment("foo/libfoo.jar"), "-src")); + appendWithoutExtension(PathFragment.create("foo/libfoo.jar"), "-src")); assertPath("java/com/google/foo/libfoo-src.jar", - appendWithoutExtension(new PathFragment("java/com/google/foo/libfoo.jar"), "-src")); + appendWithoutExtension(PathFragment.create("java/com/google/foo/libfoo.jar"), "-src")); assertPath("libfoo.bar-src.jar", - appendWithoutExtension(new PathFragment("libfoo.bar.jar"), "-src")); + appendWithoutExtension(PathFragment.create("libfoo.bar.jar"), "-src")); assertPath("libfoo-src", - appendWithoutExtension(new PathFragment("libfoo"), "-src")); + appendWithoutExtension(PathFragment.create("libfoo"), "-src")); assertPath("libfoo-src.jar", - appendWithoutExtension(new PathFragment("libfoo.jar/"), "-src")); + appendWithoutExtension(PathFragment.create("libfoo.jar/"), "-src")); assertPath("libfoo.src.jar", - appendWithoutExtension(new PathFragment("libfoo.jar"), ".src")); - assertNull(appendWithoutExtension(new PathFragment("/"), "-src")); - assertNull(appendWithoutExtension(new PathFragment(""), "-src")); + appendWithoutExtension(PathFragment.create("libfoo.jar"), ".src")); + assertNull(appendWithoutExtension(PathFragment.create("/"), "-src")); + assertNull(appendWithoutExtension(PathFragment.create(""), "-src")); } @Test public void testReplaceSegments() { assertPath( "poo/bar/baz.cc", - FileSystemUtils.replaceSegments(new PathFragment("foo/bar/baz.cc"), "foo", "poo", true)); + FileSystemUtils.replaceSegments(PathFragment.create("foo/bar/baz.cc"), "foo", "poo", true)); assertPath( "poo/poo/baz.cc", - FileSystemUtils.replaceSegments(new PathFragment("foo/foo/baz.cc"), "foo", "poo", true)); + FileSystemUtils.replaceSegments(PathFragment.create("foo/foo/baz.cc"), "foo", "poo", true)); assertPath( "poo/foo/baz.cc", - FileSystemUtils.replaceSegments(new PathFragment("foo/foo/baz.cc"), "foo", "poo", false)); + FileSystemUtils.replaceSegments( + PathFragment.create("foo/foo/baz.cc"), "foo", "poo", false)); assertPath( "foo/bar/baz.cc", - FileSystemUtils.replaceSegments(new PathFragment("foo/bar/baz.cc"), "boo", "poo", true)); + FileSystemUtils.replaceSegments(PathFragment.create("foo/bar/baz.cc"), "boo", "poo", true)); } @Test @@ -308,11 +309,11 @@ public class FileSystemUtilsTest { @Test public void testResolveRelativeToFilesystemWorkingDir() { - PathFragment relativePath = new PathFragment("relative/path"); + PathFragment relativePath = PathFragment.create("relative/path"); assertEquals(workingDir.getRelative(relativePath), workingDir.getRelative(relativePath)); - PathFragment absolutePath = new PathFragment("/absolute/path"); + PathFragment absolutePath = PathFragment.create("/absolute/path"); assertEquals(fileSystem.getPath(absolutePath), workingDir.getRelative(absolutePath)); } @@ -781,16 +782,16 @@ public class FileSystemUtilsTest { @Test public void testStartsWithAnySuccess() throws Exception { - PathFragment a = new PathFragment("a"); + PathFragment a = PathFragment.create("a"); assertTrue(FileSystemUtils.startsWithAny(a, - Arrays.asList(new PathFragment("b"), new PathFragment("a")))); + Arrays.asList(PathFragment.create("b"), PathFragment.create("a")))); } @Test public void testStartsWithAnyNotFound() throws Exception { - PathFragment a = new PathFragment("a"); + PathFragment a = PathFragment.create("a"); assertFalse(FileSystemUtils.startsWithAny(a, - Arrays.asList(new PathFragment("b"), new PathFragment("c")))); + Arrays.asList(PathFragment.create("b"), PathFragment.create("c")))); } @Test @@ -811,7 +812,7 @@ public class FileSystemUtilsTest { @Test public void testEnsureSymbolicLinkDoesNotMakeUnnecessaryChanges() throws Exception { - PathFragment target = new PathFragment("/b"); + PathFragment target = PathFragment.create("/b"); Path file = fileSystem.getPath("/a"); file.createSymbolicLink(target); long prevTimeMillis = clock.currentTimeMillis(); diff --git a/src/test/java/com/google/devtools/build/lib/vfs/ModifiedFileSetTest.java b/src/test/java/com/google/devtools/build/lib/vfs/ModifiedFileSetTest.java index 07eedbeded..f3c5eb63e7 100644 --- a/src/test/java/com/google/devtools/build/lib/vfs/ModifiedFileSetTest.java +++ b/src/test/java/com/google/devtools/build/lib/vfs/ModifiedFileSetTest.java @@ -28,8 +28,8 @@ public class ModifiedFileSetTest { @Test public void testHashCodeAndEqualsContract() throws Exception { - PathFragment fragA = new PathFragment("a"); - PathFragment fragB = new PathFragment("b"); + PathFragment fragA = PathFragment.create("a"); + PathFragment fragB = PathFragment.create("b"); ModifiedFileSet empty1 = ModifiedFileSet.NOTHING_MODIFIED; ModifiedFileSet empty2 = ModifiedFileSet.builder().build(); diff --git a/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java b/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java index c4ac7c1b32..2e455ccae8 100644 --- a/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java +++ b/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java @@ -40,10 +40,13 @@ import org.junit.runners.JUnit4; public class PathFragmentTest { @Test public void testMergeFourPathsWithAbsolute() { - assertEquals(new PathFragment("x/y/z/a/b/c/d/e"), - new PathFragment(new PathFragment("x/y"), new PathFragment("z/a"), - new PathFragment("/b/c"), // absolute! - new PathFragment("d/e"))); + assertEquals( + PathFragment.create("x/y/z/a/b/c/d/e"), + PathFragment.create( + PathFragment.create("x/y"), + PathFragment.create("z/a"), + PathFragment.create("/b/c"), + PathFragment.create("d/e"))); } @Test @@ -68,22 +71,22 @@ public class PathFragmentTest { new EqualsTester() .addEqualityGroup( - new PathFragment("../relative/path"), - new PathFragment("..").getRelative("relative").getRelative("path"), - new PathFragment('\0', false, new String[] {"..", "relative", "path"}), - new PathFragment(new File("../relative/path"))) - .addEqualityGroup(new PathFragment("something/else")) - .addEqualityGroup(new PathFragment("/something/else")) - .addEqualityGroup(new PathFragment("/"), new PathFragment("//////")) - .addEqualityGroup(new PathFragment(""), PathFragment.EMPTY_FRAGMENT) + PathFragment.create("../relative/path"), + PathFragment.create("..").getRelative("relative").getRelative("path"), + PathFragment.createNoClone('\0', false, new String[] {"..", "relative", "path"}), + PathFragment.create(new File("../relative/path"))) + .addEqualityGroup(PathFragment.create("something/else")) + .addEqualityGroup(PathFragment.create("/something/else")) + .addEqualityGroup(PathFragment.create("/"), PathFragment.create("//////")) + .addEqualityGroup(PathFragment.create(""), PathFragment.EMPTY_FRAGMENT) .addEqualityGroup(filesystem.getRootDirectory()) // A Path object. .testEquals(); } @Test public void testHashCodeCache() { - PathFragment relativePath = new PathFragment("../relative/path"); - PathFragment rootPath = new PathFragment("/"); + PathFragment relativePath = PathFragment.create("../relative/path"); + PathFragment rootPath = PathFragment.create("/"); int oldResult = relativePath.hashCode(); int rootResult = rootPath.hashCode(); @@ -92,19 +95,21 @@ public class PathFragmentTest { } private void checkRelativeTo(String path, String base) { - PathFragment relative = new PathFragment(path).relativeTo(base); - assertEquals(new PathFragment(path), new PathFragment(base).getRelative(relative).normalize()); + PathFragment relative = PathFragment.create(path).relativeTo(base); + assertEquals( + PathFragment.create(path), + PathFragment.create(base).getRelative(relative).normalize()); } @Test public void testRelativeTo() { - assertPath("bar/baz", new PathFragment("foo/bar/baz").relativeTo("foo")); - assertPath("bar/baz", new PathFragment("/foo/bar/baz").relativeTo("/foo")); - assertPath("baz", new PathFragment("foo/bar/baz").relativeTo("foo/bar")); - assertPath("baz", new PathFragment("/foo/bar/baz").relativeTo("/foo/bar")); - assertPath("foo", new PathFragment("/foo").relativeTo("/")); - assertPath("foo", new PathFragment("foo").relativeTo("")); - assertPath("foo/bar", new PathFragment("foo/bar").relativeTo("")); + assertPath("bar/baz", PathFragment.create("foo/bar/baz").relativeTo("foo")); + assertPath("bar/baz", PathFragment.create("/foo/bar/baz").relativeTo("/foo")); + assertPath("baz", PathFragment.create("foo/bar/baz").relativeTo("foo/bar")); + assertPath("baz", PathFragment.create("/foo/bar/baz").relativeTo("/foo/bar")); + assertPath("foo", PathFragment.create("/foo").relativeTo("/")); + assertPath("foo", PathFragment.create("foo").relativeTo("")); + assertPath("foo/bar", PathFragment.create("foo/bar").relativeTo("")); checkRelativeTo("foo/bar/baz", "foo"); checkRelativeTo("/foo/bar/baz", "/foo"); @@ -117,26 +122,26 @@ public class PathFragmentTest { @Test public void testIsAbsolute() { - assertTrue(new PathFragment("/absolute/test").isAbsolute()); - assertFalse(new PathFragment("relative/test").isAbsolute()); - assertTrue(new PathFragment(new File("/absolute/test")).isAbsolute()); - assertFalse(new PathFragment(new File("relative/test")).isAbsolute()); + assertTrue(PathFragment.create("/absolute/test").isAbsolute()); + assertFalse(PathFragment.create("relative/test").isAbsolute()); + assertTrue(PathFragment.create(new File("/absolute/test")).isAbsolute()); + assertFalse(PathFragment.create(new File("relative/test")).isAbsolute()); } @Test public void testIsNormalized() { - assertTrue(new PathFragment("/absolute/path").isNormalized()); - assertTrue(new PathFragment("some//path").isNormalized()); - assertFalse(new PathFragment("some/./path").isNormalized()); - assertFalse(new PathFragment("../some/path").isNormalized()); - assertFalse(new PathFragment("some/other/../path").isNormalized()); - assertTrue(new PathFragment("some/other//tricky..path..").isNormalized()); - assertTrue(new PathFragment("/some/other//tricky..path..").isNormalized()); + assertTrue(PathFragment.create("/absolute/path").isNormalized()); + assertTrue(PathFragment.create("some//path").isNormalized()); + assertFalse(PathFragment.create("some/./path").isNormalized()); + assertFalse(PathFragment.create("../some/path").isNormalized()); + assertFalse(PathFragment.create("some/other/../path").isNormalized()); + assertTrue(PathFragment.create("some/other//tricky..path..").isNormalized()); + assertTrue(PathFragment.create("/some/other//tricky..path..").isNormalized()); } @Test public void testRootNodeReturnsRootString() { - PathFragment rootFragment = new PathFragment("/"); + PathFragment rootFragment = PathFragment.create("/"); assertEquals("/", rootFragment.getPathString()); } @@ -144,27 +149,27 @@ public class PathFragmentTest { public void testGetPathFragmentDoesNotNormalize() { String nonCanonicalPath = "/a/weird/noncanonical/../path/."; assertEquals(nonCanonicalPath, - new PathFragment(nonCanonicalPath).getPathString()); + PathFragment.create(nonCanonicalPath).getPathString()); } @Test public void testGetRelative() { - assertEquals("a/b", new PathFragment("a").getRelative("b").getPathString()); - assertEquals("a/b/c/d", new PathFragment("a/b").getRelative("c/d").getPathString()); - assertEquals("/a/b", new PathFragment("c/d").getRelative("/a/b").getPathString()); - assertEquals("a", new PathFragment("a").getRelative("").getPathString()); - assertEquals("/", new PathFragment("/").getRelative("").getPathString()); + assertEquals("a/b", PathFragment.create("a").getRelative("b").getPathString()); + assertEquals("a/b/c/d", PathFragment.create("a/b").getRelative("c/d").getPathString()); + assertEquals("/a/b", PathFragment.create("c/d").getRelative("/a/b").getPathString()); + assertEquals("a", PathFragment.create("a").getRelative("").getPathString()); + assertEquals("/", PathFragment.create("/").getRelative("").getPathString()); } @Test public void testGetChildWorks() { - PathFragment pf = new PathFragment("../some/path"); - assertEquals(new PathFragment("../some/path/hi"), pf.getChild("hi")); + PathFragment pf = PathFragment.create("../some/path"); + assertEquals(PathFragment.create("../some/path/hi"), pf.getChild("hi")); } @Test public void testGetChildRejectsInvalidBaseNames() { - PathFragment pf = new PathFragment("../some/path"); + PathFragment pf = PathFragment.create("../some/path"); assertGetChildFails(pf, "."); assertGetChildFails(pf, ".."); assertGetChildFails(pf, "x/y"); @@ -182,8 +187,14 @@ public class PathFragmentTest { // Tests after here test the canonicalization private void assertRegular(String expected, String actual) { - assertEquals(expected, new PathFragment(actual).getPathString()); // compare string forms - assertEquals(new PathFragment(expected), new PathFragment(actual)); // compare fragment forms + // compare string forms + assertEquals( + expected, + PathFragment.create(actual).getPathString()); + // compare fragment forms + assertEquals( + PathFragment.create(expected), + PathFragment.create(actual)); } @Test @@ -218,19 +229,19 @@ public class PathFragmentTest { @Test public void testGetParentDirectory() { - PathFragment fooBarWiz = new PathFragment("foo/bar/wiz"); - PathFragment fooBar = new PathFragment("foo/bar"); - PathFragment foo = new PathFragment("foo"); - PathFragment empty = new PathFragment(""); + PathFragment fooBarWiz = PathFragment.create("foo/bar/wiz"); + PathFragment fooBar = PathFragment.create("foo/bar"); + PathFragment foo = PathFragment.create("foo"); + PathFragment empty = PathFragment.create(""); assertEquals(fooBar, fooBarWiz.getParentDirectory()); assertEquals(foo, fooBar.getParentDirectory()); assertEquals(empty, foo.getParentDirectory()); assertNull(empty.getParentDirectory()); - PathFragment fooBarWizAbs = new PathFragment("/foo/bar/wiz"); - PathFragment fooBarAbs = new PathFragment("/foo/bar"); - PathFragment fooAbs = new PathFragment("/foo"); - PathFragment rootAbs = new PathFragment("/"); + PathFragment fooBarWizAbs = PathFragment.create("/foo/bar/wiz"); + PathFragment fooBarAbs = PathFragment.create("/foo/bar"); + PathFragment fooAbs = PathFragment.create("/foo"); + PathFragment rootAbs = PathFragment.create("/"); assertEquals(fooBarAbs, fooBarWizAbs.getParentDirectory()); assertEquals(fooAbs, fooBarAbs.getParentDirectory()); assertEquals(rootAbs, fooAbs.getParentDirectory()); @@ -238,60 +249,60 @@ public class PathFragmentTest { // Note, this is surprising but correct behavior: assertEquals(fooBarAbs, - new PathFragment("/foo/bar/..").getParentDirectory()); + PathFragment.create("/foo/bar/..").getParentDirectory()); } @Test public void testSegmentsCount() { - assertEquals(2, new PathFragment("foo/bar").segmentCount()); - assertEquals(2, new PathFragment("/foo/bar").segmentCount()); - assertEquals(2, new PathFragment("foo//bar").segmentCount()); - assertEquals(2, new PathFragment("/foo//bar").segmentCount()); - assertEquals(1, new PathFragment("foo/").segmentCount()); - assertEquals(1, new PathFragment("/foo/").segmentCount()); - assertEquals(1, new PathFragment("foo").segmentCount()); - assertEquals(1, new PathFragment("/foo").segmentCount()); - assertEquals(0, new PathFragment("/").segmentCount()); - assertEquals(0, new PathFragment("").segmentCount()); + assertEquals(2, PathFragment.create("foo/bar").segmentCount()); + assertEquals(2, PathFragment.create("/foo/bar").segmentCount()); + assertEquals(2, PathFragment.create("foo//bar").segmentCount()); + assertEquals(2, PathFragment.create("/foo//bar").segmentCount()); + assertEquals(1, PathFragment.create("foo/").segmentCount()); + assertEquals(1, PathFragment.create("/foo/").segmentCount()); + assertEquals(1, PathFragment.create("foo").segmentCount()); + assertEquals(1, PathFragment.create("/foo").segmentCount()); + assertEquals(0, PathFragment.create("/").segmentCount()); + assertEquals(0, PathFragment.create("").segmentCount()); } @Test public void testGetSegment() { - assertEquals("foo", new PathFragment("foo/bar").getSegment(0)); - assertEquals("bar", new PathFragment("foo/bar").getSegment(1)); - assertEquals("foo", new PathFragment("/foo/bar").getSegment(0)); - assertEquals("bar", new PathFragment("/foo/bar").getSegment(1)); - assertEquals("foo", new PathFragment("foo/").getSegment(0)); - assertEquals("foo", new PathFragment("/foo/").getSegment(0)); - assertEquals("foo", new PathFragment("foo").getSegment(0)); - assertEquals("foo", new PathFragment("/foo").getSegment(0)); + assertEquals("foo", PathFragment.create("foo/bar").getSegment(0)); + assertEquals("bar", PathFragment.create("foo/bar").getSegment(1)); + assertEquals("foo", PathFragment.create("/foo/bar").getSegment(0)); + assertEquals("bar", PathFragment.create("/foo/bar").getSegment(1)); + assertEquals("foo", PathFragment.create("foo/").getSegment(0)); + assertEquals("foo", PathFragment.create("/foo/").getSegment(0)); + assertEquals("foo", PathFragment.create("foo").getSegment(0)); + assertEquals("foo", PathFragment.create("/foo").getSegment(0)); } @Test public void testBasename() throws Exception { - assertEquals("bar", new PathFragment("foo/bar").getBaseName()); - assertEquals("bar", new PathFragment("/foo/bar").getBaseName()); - assertEquals("foo", new PathFragment("foo/").getBaseName()); - assertEquals("foo", new PathFragment("/foo/").getBaseName()); - assertEquals("foo", new PathFragment("foo").getBaseName()); - assertEquals("foo", new PathFragment("/foo").getBaseName()); - assertThat(new PathFragment("/").getBaseName()).isEmpty(); - assertThat(new PathFragment("").getBaseName()).isEmpty(); + assertEquals("bar", PathFragment.create("foo/bar").getBaseName()); + assertEquals("bar", PathFragment.create("/foo/bar").getBaseName()); + assertEquals("foo", PathFragment.create("foo/").getBaseName()); + assertEquals("foo", PathFragment.create("/foo/").getBaseName()); + assertEquals("foo", PathFragment.create("foo").getBaseName()); + assertEquals("foo", PathFragment.create("/foo").getBaseName()); + assertThat(PathFragment.create("/").getBaseName()).isEmpty(); + assertThat(PathFragment.create("").getBaseName()).isEmpty(); } @Test public void testFileExtension() throws Exception { - assertThat(new PathFragment("foo.bar").getFileExtension()).isEqualTo("bar"); - assertThat(new PathFragment("foo.barr").getFileExtension()).isEqualTo("barr"); - assertThat(new PathFragment("foo.b").getFileExtension()).isEqualTo("b"); - assertThat(new PathFragment("foo.").getFileExtension()).isEmpty(); - assertThat(new PathFragment("foo").getFileExtension()).isEmpty(); - assertThat(new PathFragment(".").getFileExtension()).isEmpty(); - assertThat(new PathFragment("").getFileExtension()).isEmpty(); - assertThat(new PathFragment("foo/bar.baz").getFileExtension()).isEqualTo("baz"); - assertThat(new PathFragment("foo.bar.baz").getFileExtension()).isEqualTo("baz"); - assertThat(new PathFragment("foo.bar/baz").getFileExtension()).isEmpty(); + assertThat(PathFragment.create("foo.bar").getFileExtension()).isEqualTo("bar"); + assertThat(PathFragment.create("foo.barr").getFileExtension()).isEqualTo("barr"); + assertThat(PathFragment.create("foo.b").getFileExtension()).isEqualTo("b"); + assertThat(PathFragment.create("foo.").getFileExtension()).isEmpty(); + assertThat(PathFragment.create("foo").getFileExtension()).isEmpty(); + assertThat(PathFragment.create(".").getFileExtension()).isEmpty(); + assertThat(PathFragment.create("").getFileExtension()).isEmpty(); + assertThat(PathFragment.create("foo/bar.baz").getFileExtension()).isEqualTo("baz"); + assertThat(PathFragment.create("foo.bar.baz").getFileExtension()).isEqualTo("baz"); + assertThat(PathFragment.create("foo.bar/baz").getFileExtension()).isEmpty(); } private static void assertPath(String expected, PathFragment actual) { @@ -300,66 +311,66 @@ public class PathFragmentTest { @Test public void testReplaceName() throws Exception { - assertPath("foo/baz", new PathFragment("foo/bar").replaceName("baz")); - assertPath("/foo/baz", new PathFragment("/foo/bar").replaceName("baz")); - assertPath("foo", new PathFragment("foo/bar").replaceName("")); - assertPath("baz", new PathFragment("foo/").replaceName("baz")); - assertPath("/baz", new PathFragment("/foo/").replaceName("baz")); - assertPath("baz", new PathFragment("foo").replaceName("baz")); - assertPath("/baz", new PathFragment("/foo").replaceName("baz")); - assertNull(new PathFragment("/").replaceName("baz")); - assertNull(new PathFragment("/").replaceName("")); - assertNull(new PathFragment("").replaceName("baz")); - assertNull(new PathFragment("").replaceName("")); - - assertPath("foo/bar/baz", new PathFragment("foo/bar").replaceName("bar/baz")); - assertPath("foo/bar/baz", new PathFragment("foo/bar").replaceName("bar/baz/")); + assertPath("foo/baz", PathFragment.create("foo/bar").replaceName("baz")); + assertPath("/foo/baz", PathFragment.create("/foo/bar").replaceName("baz")); + assertPath("foo", PathFragment.create("foo/bar").replaceName("")); + assertPath("baz", PathFragment.create("foo/").replaceName("baz")); + assertPath("/baz", PathFragment.create("/foo/").replaceName("baz")); + assertPath("baz", PathFragment.create("foo").replaceName("baz")); + assertPath("/baz", PathFragment.create("/foo").replaceName("baz")); + assertNull(PathFragment.create("/").replaceName("baz")); + assertNull(PathFragment.create("/").replaceName("")); + assertNull(PathFragment.create("").replaceName("baz")); + assertNull(PathFragment.create("").replaceName("")); + + assertPath("foo/bar/baz", PathFragment.create("foo/bar").replaceName("bar/baz")); + assertPath("foo/bar/baz", PathFragment.create("foo/bar").replaceName("bar/baz/")); // Absolute path arguments will clobber the original path. - assertPath("/absolute", new PathFragment("foo/bar").replaceName("/absolute")); - assertPath("/", new PathFragment("foo/bar").replaceName("/")); + assertPath("/absolute", PathFragment.create("foo/bar").replaceName("/absolute")); + assertPath("/", PathFragment.create("foo/bar").replaceName("/")); } @Test public void testSubFragment() throws Exception { assertPath("/foo/bar/baz", - new PathFragment("/foo/bar/baz").subFragment(0, 3)); + PathFragment.create("/foo/bar/baz").subFragment(0, 3)); assertPath("foo/bar/baz", - new PathFragment("foo/bar/baz").subFragment(0, 3)); + PathFragment.create("foo/bar/baz").subFragment(0, 3)); assertPath("/foo/bar", - new PathFragment("/foo/bar/baz").subFragment(0, 2)); + PathFragment.create("/foo/bar/baz").subFragment(0, 2)); assertPath("bar/baz", - new PathFragment("/foo/bar/baz").subFragment(1, 3)); + PathFragment.create("/foo/bar/baz").subFragment(1, 3)); assertPath("/foo", - new PathFragment("/foo/bar/baz").subFragment(0, 1)); + PathFragment.create("/foo/bar/baz").subFragment(0, 1)); assertPath("bar", - new PathFragment("/foo/bar/baz").subFragment(1, 2)); - assertPath("baz", new PathFragment("/foo/bar/baz").subFragment(2, 3)); - assertPath("/", new PathFragment("/foo/bar/baz").subFragment(0, 0)); - assertPath("", new PathFragment("foo/bar/baz").subFragment(0, 0)); - assertPath("", new PathFragment("foo/bar/baz").subFragment(1, 1)); + PathFragment.create("/foo/bar/baz").subFragment(1, 2)); + assertPath("baz", PathFragment.create("/foo/bar/baz").subFragment(2, 3)); + assertPath("/", PathFragment.create("/foo/bar/baz").subFragment(0, 0)); + assertPath("", PathFragment.create("foo/bar/baz").subFragment(0, 0)); + assertPath("", PathFragment.create("foo/bar/baz").subFragment(1, 1)); try { - fail("unexpectedly succeeded: " + new PathFragment("foo/bar/baz").subFragment(3, 2)); + fail("unexpectedly succeeded: " + PathFragment.create("foo/bar/baz").subFragment(3, 2)); } catch (IndexOutOfBoundsException e) { /* Expected. */ } try { - fail("unexpectedly succeeded: " + new PathFragment("foo/bar/baz").subFragment(4, 4)); + fail("unexpectedly succeeded: " + PathFragment.create("foo/bar/baz").subFragment(4, 4)); } catch (IndexOutOfBoundsException e) { /* Expected. */ } } @Test public void testStartsWith() { - PathFragment foobar = new PathFragment("/foo/bar"); - PathFragment foobarRelative = new PathFragment("foo/bar"); + PathFragment foobar = PathFragment.create("/foo/bar"); + PathFragment foobarRelative = PathFragment.create("foo/bar"); // (path, prefix) => true assertTrue(foobar.startsWith(foobar)); - assertTrue(foobar.startsWith(new PathFragment("/"))); - assertTrue(foobar.startsWith(new PathFragment("/foo"))); - assertTrue(foobar.startsWith(new PathFragment("/foo/"))); - assertTrue(foobar.startsWith(new PathFragment("/foo/bar/"))); // Includes trailing slash. + assertTrue(foobar.startsWith(PathFragment.create("/"))); + assertTrue(foobar.startsWith(PathFragment.create("/foo"))); + assertTrue(foobar.startsWith(PathFragment.create("/foo/"))); + assertTrue(foobar.startsWith(PathFragment.create("/foo/bar/"))); // Includes trailing slash. // (prefix, path) => false - assertFalse(new PathFragment("/foo").startsWith(foobar)); - assertFalse(new PathFragment("/").startsWith(foobar)); + assertFalse(PathFragment.create("/foo").startsWith(foobar)); + assertFalse(PathFragment.create("/").startsWith(foobar)); // (absolute, relative) => false assertFalse(foobar.startsWith(foobarRelative)); @@ -367,40 +378,40 @@ public class PathFragmentTest { // (relative path, relative prefix) => true assertTrue(foobarRelative.startsWith(foobarRelative)); - assertTrue(foobarRelative.startsWith(new PathFragment("foo"))); - assertTrue(foobarRelative.startsWith(new PathFragment(""))); + assertTrue(foobarRelative.startsWith(PathFragment.create("foo"))); + assertTrue(foobarRelative.startsWith(PathFragment.create(""))); // (path, sibling) => false - assertFalse(new PathFragment("/foo/wiz").startsWith(foobar)); - assertFalse(foobar.startsWith(new PathFragment("/foo/wiz"))); + assertFalse(PathFragment.create("/foo/wiz").startsWith(foobar)); + assertFalse(foobar.startsWith(PathFragment.create("/foo/wiz"))); // Does not normalize. - PathFragment foodotbar = new PathFragment("foo/./bar"); + PathFragment foodotbar = PathFragment.create("foo/./bar"); assertTrue(foodotbar.startsWith(foodotbar)); - assertTrue(foodotbar.startsWith(new PathFragment("foo/."))); - assertTrue(foodotbar.startsWith(new PathFragment("foo/./"))); - assertTrue(foodotbar.startsWith(new PathFragment("foo/./bar"))); - assertFalse(foodotbar.startsWith(new PathFragment("foo/bar"))); + assertTrue(foodotbar.startsWith(PathFragment.create("foo/."))); + assertTrue(foodotbar.startsWith(PathFragment.create("foo/./"))); + assertTrue(foodotbar.startsWith(PathFragment.create("foo/./bar"))); + assertFalse(foodotbar.startsWith(PathFragment.create("foo/bar"))); } @Test public void testFilterPathsStartingWith() { // Retains everything: ImmutableSet<PathFragment> allUnderA = toPathsSet("a/b", "a/c", "a/d"); - assertThat(PathFragment.filterPathsStartingWith(allUnderA, new PathFragment("a"))) + assertThat(PathFragment.filterPathsStartingWith(allUnderA, PathFragment.create("a"))) .containsExactlyElementsIn(allUnderA); // Retains some but not others: ImmutableSet<PathFragment> mixed = toPathsSet("a/b", "a/c", "b/c"); assertThat(PathFragment.filterPathsStartingWith(mixed, - new PathFragment("a"))).containsExactlyElementsIn(toPathsSet("a/b", "a/c")); + PathFragment.create("a"))).containsExactlyElementsIn(toPathsSet("a/b", "a/c")); // Retains none: - assertThat(PathFragment.filterPathsStartingWith(allUnderA, new PathFragment("b"))).isEmpty(); + assertThat(PathFragment.filterPathsStartingWith(allUnderA, PathFragment.create("b"))).isEmpty(); // Retains paths equal to the startingWithPath: assertThat(PathFragment.filterPathsStartingWith(toPathsSet("a"), - new PathFragment("a"))).containsExactlyElementsIn(toPathsSet("a")); + PathFragment.create("a"))).containsExactlyElementsIn(toPathsSet("a")); // Retains everything when startingWithPath is the empty fragment: assertThat(PathFragment.filterPathsStartingWith(mixed, PathFragment.EMPTY_FRAGMENT)) @@ -408,23 +419,23 @@ public class PathFragmentTest { // Supports multi-segment startingWithPaths: assertThat(PathFragment.filterPathsStartingWith(toPathsSet("a/b/c", "a/b/d", "a/c/d"), - new PathFragment("a/b"))).containsExactlyElementsIn(toPathsSet("a/b/c", "a/b/d")); + PathFragment.create("a/b"))).containsExactlyElementsIn(toPathsSet("a/b/c", "a/b/d")); } @Test public void testCheckAllPathsStartWithButAreNotEqualTo() { // Check passes: PathFragment.checkAllPathsAreUnder(toPathsSet("a/b", "a/c"), - new PathFragment("a")); + PathFragment.create("a")); // Check trivially passes: PathFragment.checkAllPathsAreUnder(ImmutableList.<PathFragment>of(), - new PathFragment("a")); + PathFragment.create("a")); // Check fails when some path does not start with startingWithPath: try { PathFragment.checkAllPathsAreUnder(toPathsSet("a/b", "b/c"), - new PathFragment("a")); + PathFragment.create("a")); fail(); } catch (IllegalArgumentException expected) { } @@ -432,7 +443,7 @@ public class PathFragmentTest { // Check fails when some path is equal to startingWithPath: try { PathFragment.checkAllPathsAreUnder(toPathsSet("a/b", "a"), - new PathFragment("a")); + PathFragment.create("a")); fail(); } catch (IllegalArgumentException expected) { } @@ -440,24 +451,24 @@ public class PathFragmentTest { @Test public void testEndsWith() { - PathFragment foobar = new PathFragment("/foo/bar"); - PathFragment foobarRelative = new PathFragment("foo/bar"); + PathFragment foobar = PathFragment.create("/foo/bar"); + PathFragment foobarRelative = PathFragment.create("foo/bar"); // (path, suffix) => true assertTrue(foobar.endsWith(foobar)); - assertTrue(foobar.endsWith(new PathFragment("bar"))); - assertTrue(foobar.endsWith(new PathFragment("foo/bar"))); - assertTrue(foobar.endsWith(new PathFragment("/foo/bar"))); - assertFalse(foobar.endsWith(new PathFragment("/bar"))); + assertTrue(foobar.endsWith(PathFragment.create("bar"))); + assertTrue(foobar.endsWith(PathFragment.create("foo/bar"))); + assertTrue(foobar.endsWith(PathFragment.create("/foo/bar"))); + assertFalse(foobar.endsWith(PathFragment.create("/bar"))); // (prefix, path) => false - assertFalse(new PathFragment("/foo").endsWith(foobar)); - assertFalse(new PathFragment("/").endsWith(foobar)); + assertFalse(PathFragment.create("/foo").endsWith(foobar)); + assertFalse(PathFragment.create("/").endsWith(foobar)); // (suffix, path) => false - assertFalse(new PathFragment("/bar").endsWith(foobar)); - assertFalse(new PathFragment("bar").endsWith(foobar)); - assertFalse(new PathFragment("").endsWith(foobar)); + assertFalse(PathFragment.create("/bar").endsWith(foobar)); + assertFalse(PathFragment.create("bar").endsWith(foobar)); + assertFalse(PathFragment.create("").endsWith(foobar)); // (absolute, relative) => true assertTrue(foobar.endsWith(foobarRelative)); @@ -467,18 +478,18 @@ public class PathFragmentTest { // (relative path, relative prefix) => true assertTrue(foobarRelative.endsWith(foobarRelative)); - assertTrue(foobarRelative.endsWith(new PathFragment("bar"))); - assertTrue(foobarRelative.endsWith(new PathFragment(""))); + assertTrue(foobarRelative.endsWith(PathFragment.create("bar"))); + assertTrue(foobarRelative.endsWith(PathFragment.create(""))); // (path, sibling) => false - assertFalse(new PathFragment("/foo/wiz").endsWith(foobar)); - assertFalse(foobar.endsWith(new PathFragment("/foo/wiz"))); + assertFalse(PathFragment.create("/foo/wiz").endsWith(foobar)); + assertFalse(foobar.endsWith(PathFragment.create("/foo/wiz"))); } static List<PathFragment> toPaths(List<String> strs) { List<PathFragment> paths = Lists.newArrayList(); for (String s : strs) { - paths.add(new PathFragment(s)); + paths.add(PathFragment.create(s)); } return paths; } @@ -486,7 +497,7 @@ public class PathFragmentTest { static ImmutableSet<PathFragment> toPathsSet(String... strs) { ImmutableSet.Builder<PathFragment> builder = ImmutableSet.builder(); for (String str : strs) { - builder.add(new PathFragment(str)); + builder.add(PathFragment.create(str)); } return builder.build(); } @@ -528,24 +539,24 @@ public class PathFragmentTest { @Test public void testGetSafePathString() { - assertEquals("/", new PathFragment("/").getSafePathString()); - assertEquals("/abc", new PathFragment("/abc").getSafePathString()); - assertEquals(".", new PathFragment("").getSafePathString()); + assertEquals("/", PathFragment.create("/").getSafePathString()); + assertEquals("/abc", PathFragment.create("/abc").getSafePathString()); + assertEquals(".", PathFragment.create("").getSafePathString()); assertEquals(".", PathFragment.EMPTY_FRAGMENT.getSafePathString()); - assertEquals("abc/def", new PathFragment("abc/def").getSafePathString()); + assertEquals("abc/def", PathFragment.create("abc/def").getSafePathString()); } @Test public void testNormalize() { - assertEquals(new PathFragment("/a/b"), new PathFragment("/a/b").normalize()); - assertEquals(new PathFragment("/a/b"), new PathFragment("/a/./b").normalize()); - assertEquals(new PathFragment("/b"), new PathFragment("/a/../b").normalize()); - assertEquals(new PathFragment("a/b"), new PathFragment("a/b").normalize()); - assertEquals(new PathFragment("../b"), new PathFragment("a/../../b").normalize()); - assertEquals(new PathFragment(".."), new PathFragment("a/../..").normalize()); - assertEquals(new PathFragment("b"), new PathFragment("a/../b").normalize()); - assertEquals(new PathFragment("a/b"), new PathFragment("a/b/../b").normalize()); - assertEquals(new PathFragment("/.."), new PathFragment("/..").normalize()); + assertEquals(PathFragment.create("/a/b"), PathFragment.create("/a/b").normalize()); + assertEquals(PathFragment.create("/a/b"), PathFragment.create("/a/./b").normalize()); + assertEquals(PathFragment.create("/b"), PathFragment.create("/a/../b").normalize()); + assertEquals(PathFragment.create("a/b"), PathFragment.create("a/b").normalize()); + assertEquals(PathFragment.create("../b"), PathFragment.create("a/../../b").normalize()); + assertEquals(PathFragment.create(".."), PathFragment.create("a/../..").normalize()); + assertEquals(PathFragment.create("b"), PathFragment.create("a/../b").normalize()); + assertEquals(PathFragment.create("a/b"), PathFragment.create("a/b/../b").normalize()); + assertEquals(PathFragment.create("/.."), PathFragment.create("/..").normalize()); } @Test @@ -564,7 +575,7 @@ public class PathFragmentTest { } private void checkSerialization(String pathFragmentString, int expectedSize) throws Exception { - PathFragment a = new PathFragment(pathFragmentString); + PathFragment a = PathFragment.create(pathFragmentString); byte[] sa = TestUtils.serializeObject(a); assertEquals(expectedSize, sa.length); diff --git a/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentWindowsTest.java b/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentWindowsTest.java index 9506202d16..d22080901b 100644 --- a/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentWindowsTest.java +++ b/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentWindowsTest.java @@ -34,47 +34,47 @@ public class PathFragmentWindowsTest { @Test public void testWindowsSeparator() { - assertEquals("bar/baz", new PathFragment("bar\\baz").toString()); - assertEquals("C:/bar/baz", new PathFragment("c:\\bar\\baz").toString()); + assertEquals("bar/baz", PathFragment.create("bar\\baz").toString()); + assertEquals("C:/bar/baz", PathFragment.create("c:\\bar\\baz").toString()); } @Test public void testIsAbsoluteWindows() { - assertTrue(new PathFragment("C:/").isAbsolute()); - assertTrue(new PathFragment("C:/").isAbsolute()); - assertTrue(new PathFragment("C:/foo").isAbsolute()); - assertTrue(new PathFragment("d:/foo/bar").isAbsolute()); + assertTrue(PathFragment.create("C:/").isAbsolute()); + assertTrue(PathFragment.create("C:/").isAbsolute()); + assertTrue(PathFragment.create("C:/foo").isAbsolute()); + assertTrue(PathFragment.create("d:/foo/bar").isAbsolute()); - assertFalse(new PathFragment("*:/").isAbsolute()); + assertFalse(PathFragment.create("*:/").isAbsolute()); // C: is not an absolute path, it points to the current active directory on drive C:. - assertFalse(new PathFragment("C:").isAbsolute()); - assertFalse(new PathFragment("C:foo").isAbsolute()); + assertFalse(PathFragment.create("C:").isAbsolute()); + assertFalse(PathFragment.create("C:foo").isAbsolute()); } @Test public void testAbsoluteAndAbsoluteLookingPaths() { - PathFragment p1 = new PathFragment("/c"); + PathFragment p1 = PathFragment.create("/c"); assertThat(p1.isAbsolute()).isTrue(); assertThat(p1.getDriveLetter()).isEqualTo('\0'); assertThat(p1.getSegments()).containsExactly("c"); - PathFragment p2 = new PathFragment("/c/"); + PathFragment p2 = PathFragment.create("/c/"); assertThat(p2.isAbsolute()).isTrue(); assertThat(p2.getDriveLetter()).isEqualTo('\0'); assertThat(p2.getSegments()).containsExactly("c"); - PathFragment p3 = new PathFragment("C:/"); + PathFragment p3 = PathFragment.create("C:/"); assertThat(p3.isAbsolute()).isTrue(); assertThat(p3.getDriveLetter()).isEqualTo('C'); assertThat(p3.getSegments()).isEmpty(); - PathFragment p4 = new PathFragment("C:"); + PathFragment p4 = PathFragment.create("C:"); assertThat(p4.isAbsolute()).isFalse(); assertThat(p4.getDriveLetter()).isEqualTo('C'); assertThat(p4.getSegments()).isEmpty(); - PathFragment p5 = new PathFragment("/c:"); + PathFragment p5 = PathFragment.create("/c:"); assertThat(p5.isAbsolute()).isTrue(); assertThat(p5.getDriveLetter()).isEqualTo('\0'); assertThat(p5.getSegments()).containsExactly("c:"); @@ -90,39 +90,39 @@ public class PathFragmentWindowsTest { @Test public void testIsAbsoluteWindowsBackslash() { - assertTrue(new PathFragment(new File("C:\\blah")).isAbsolute()); - assertTrue(new PathFragment(new File("C:\\")).isAbsolute()); - assertTrue(new PathFragment(new File("\\blah")).isAbsolute()); - assertTrue(new PathFragment(new File("\\")).isAbsolute()); + assertTrue(PathFragment.create(new File("C:\\blah")).isAbsolute()); + assertTrue(PathFragment.create(new File("C:\\")).isAbsolute()); + assertTrue(PathFragment.create(new File("\\blah")).isAbsolute()); + assertTrue(PathFragment.create(new File("\\")).isAbsolute()); } @Test public void testIsNormalizedWindows() { - assertTrue(new PathFragment("C:/").isNormalized()); - assertTrue(new PathFragment("C:/absolute/path").isNormalized()); - assertFalse(new PathFragment("C:/absolute/./path").isNormalized()); - assertFalse(new PathFragment("C:/absolute/../path").isNormalized()); + assertTrue(PathFragment.create("C:/").isNormalized()); + assertTrue(PathFragment.create("C:/absolute/path").isNormalized()); + assertFalse(PathFragment.create("C:/absolute/./path").isNormalized()); + assertFalse(PathFragment.create("C:/absolute/../path").isNormalized()); } @Test public void testRootNodeReturnsRootStringWindows() { - PathFragment rootFragment = new PathFragment("C:/"); + PathFragment rootFragment = PathFragment.create("C:/"); assertEquals("C:/", rootFragment.getPathString()); } @Test public void testGetRelativeWindows() { - assertEquals("C:/a/b", new PathFragment("C:/a").getRelative("b").getPathString()); - assertEquals("C:/a/b/c/d", new PathFragment("C:/a/b").getRelative("c/d").getPathString()); - assertEquals("C:/b", new PathFragment("C:/a").getRelative("C:/b").getPathString()); - assertEquals("C:/c/d", new PathFragment("C:/a/b").getRelative("C:/c/d").getPathString()); - assertEquals("C:/b", new PathFragment("a").getRelative("C:/b").getPathString()); - assertEquals("C:/c/d", new PathFragment("a/b").getRelative("C:/c/d").getPathString()); + assertEquals("C:/a/b", PathFragment.create("C:/a").getRelative("b").getPathString()); + assertEquals("C:/a/b/c/d", PathFragment.create("C:/a/b").getRelative("c/d").getPathString()); + assertEquals("C:/b", PathFragment.create("C:/a").getRelative("C:/b").getPathString()); + assertEquals("C:/c/d", PathFragment.create("C:/a/b").getRelative("C:/c/d").getPathString()); + assertEquals("C:/b", PathFragment.create("a").getRelative("C:/b").getPathString()); + assertEquals("C:/c/d", PathFragment.create("a/b").getRelative("C:/c/d").getPathString()); } private void assertGetRelative(String path, String relative, PathFragment expected) throws Exception { - PathFragment actual = new PathFragment(path).getRelative(relative); + PathFragment actual = PathFragment.create(path).getRelative(relative); assertThat(actual.getPathString()).isEqualTo(expected.getPathString()); assertThat(actual).isEqualTo(expected); assertThat(actual.getDriveLetter()).isEqualTo(expected.getDriveLetter()); @@ -131,8 +131,8 @@ public class PathFragmentWindowsTest { private void assertRelativeTo(String path, String relativeTo, String... expectedPathSegments) throws Exception { - PathFragment expected = new PathFragment('\0', false, expectedPathSegments); - PathFragment actual = new PathFragment(path).relativeTo(relativeTo); + PathFragment expected = PathFragment.createNoClone('\0', false, expectedPathSegments); + PathFragment actual = PathFragment.create(path).relativeTo(relativeTo); assertThat(actual.getPathString()).isEqualTo(expected.getPathString()); assertThat(actual).isEqualTo(expected); assertThat(actual.getDriveLetter()).isEqualTo(expected.getDriveLetter()); @@ -141,7 +141,7 @@ public class PathFragmentWindowsTest { private void assertCantComputeRelativeTo(String path, String relativeTo) throws Exception { try { - new PathFragment(path).relativeTo(relativeTo); + PathFragment.create(path).relativeTo(relativeTo); Assert.fail("expected failure"); } catch (Exception e) { assertThat(e.getMessage()).contains("is not beneath"); @@ -149,7 +149,7 @@ public class PathFragmentWindowsTest { } private static PathFragment makePath(char drive, boolean absolute, String... segments) { - return new PathFragment(drive, absolute, segments); + return PathFragment.createNoClone(drive, absolute, segments); } @Test @@ -193,14 +193,14 @@ public class PathFragmentWindowsTest { @Test public void testGetChildWorks() { - PathFragment pf = new PathFragment("../some/path"); - assertEquals(new PathFragment("../some/path/hi"), pf.getChild("hi")); + PathFragment pf = PathFragment.create("../some/path"); + assertEquals(PathFragment.create("../some/path/hi"), pf.getChild("hi")); } // Tests after here test the canonicalization private void assertRegular(String expected, String actual) { - PathFragment exp = new PathFragment(expected); - PathFragment act = new PathFragment(actual); + PathFragment exp = PathFragment.create(expected); + PathFragment act = PathFragment.create(actual); assertThat(exp.getPathString()).isEqualTo(expected); assertThat(act.getPathString()).isEqualTo(expected); assertThat(act).isEqualTo(exp); @@ -233,18 +233,18 @@ public class PathFragmentWindowsTest { // information to the path itself. assertAllEqual( PathFragment.EMPTY_FRAGMENT, - new PathFragment("C:"), - new PathFragment("D:"), - new PathFragment('\0', false, new String[0]), - new PathFragment('C', false, new String[0]), - new PathFragment('D', false, new String[0])); - assertAllEqual(new PathFragment("/c"), new PathFragment("/c/")); - assertThat(new PathFragment("C:/")).isNotEqualTo(new PathFragment("/c")); - assertThat(new PathFragment("C:/foo")).isNotEqualTo(new PathFragment("/c/foo")); + PathFragment.create("C:"), + PathFragment.create("D:"), + PathFragment.createNoClone('\0', false, new String[0]), + PathFragment.createNoClone('C', false, new String[0]), + PathFragment.createNoClone('D', false, new String[0])); + assertAllEqual(PathFragment.create("/c"), PathFragment.create("/c/")); + assertThat(PathFragment.create("C:/")).isNotEqualTo(PathFragment.create("/c")); + assertThat(PathFragment.create("C:/foo")).isNotEqualTo(PathFragment.create("/c/foo")); - assertThat(new PathFragment("C:/")).isNotEqualTo(new PathFragment("C:")); - assertThat(new PathFragment("C:/").getPathString()) - .isNotEqualTo(new PathFragment("C:").getPathString()); + assertThat(PathFragment.create("C:/")).isNotEqualTo(PathFragment.create("C:")); + assertThat(PathFragment.create("C:/").getPathString()) + .isNotEqualTo(PathFragment.create("C:").getPathString()); } @Test @@ -271,10 +271,10 @@ public class PathFragmentWindowsTest { @Test public void testGetParentDirectoryWindows() { - PathFragment fooBarWizAbs = new PathFragment("C:/foo/bar/wiz"); - PathFragment fooBarAbs = new PathFragment("C:/foo/bar"); - PathFragment fooAbs = new PathFragment("C:/foo"); - PathFragment rootAbs = new PathFragment("C:/"); + PathFragment fooBarWizAbs = PathFragment.create("C:/foo/bar/wiz"); + PathFragment fooBarAbs = PathFragment.create("C:/foo/bar"); + PathFragment fooAbs = PathFragment.create("C:/foo"); + PathFragment rootAbs = PathFragment.create("C:/"); assertEquals(fooBarAbs, fooBarWizAbs.getParentDirectory()); assertEquals(fooAbs, fooBarAbs.getParentDirectory()); assertEquals(rootAbs, fooAbs.getParentDirectory()); @@ -282,29 +282,29 @@ public class PathFragmentWindowsTest { // Note, this is suprising but correct behaviour: assertEquals(fooBarAbs, - new PathFragment("C:/foo/bar/..").getParentDirectory()); + PathFragment.create("C:/foo/bar/..").getParentDirectory()); } @Test public void testSegmentsCountWindows() { - assertEquals(1, new PathFragment("C:/foo").segmentCount()); - assertEquals(0, new PathFragment("C:/").segmentCount()); + assertEquals(1, PathFragment.create("C:/foo").segmentCount()); + assertEquals(0, PathFragment.create("C:/").segmentCount()); } @Test public void testGetSegmentWindows() { - assertEquals("foo", new PathFragment("C:/foo/bar").getSegment(0)); - assertEquals("bar", new PathFragment("C:/foo/bar").getSegment(1)); - assertEquals("foo", new PathFragment("C:/foo/").getSegment(0)); - assertEquals("foo", new PathFragment("C:/foo").getSegment(0)); + assertEquals("foo", PathFragment.create("C:/foo/bar").getSegment(0)); + assertEquals("bar", PathFragment.create("C:/foo/bar").getSegment(1)); + assertEquals("foo", PathFragment.create("C:/foo/").getSegment(0)); + assertEquals("foo", PathFragment.create("C:/foo").getSegment(0)); } @Test public void testBasenameWindows() throws Exception { - assertEquals("bar", new PathFragment("C:/foo/bar").getBaseName()); - assertEquals("foo", new PathFragment("C:/foo").getBaseName()); + assertEquals("bar", PathFragment.create("C:/foo/bar").getBaseName()); + assertEquals("foo", PathFragment.create("C:/foo").getBaseName()); // Never return the drive name as a basename. - assertThat(new PathFragment("C:/").getBaseName()).isEmpty(); + assertThat(PathFragment.create("C:/").getBaseName()).isEmpty(); } private static void assertPath(String expected, PathFragment actual) { @@ -313,43 +313,43 @@ public class PathFragmentWindowsTest { @Test public void testReplaceNameWindows() throws Exception { - assertPath("C:/foo/baz", new PathFragment("C:/foo/bar").replaceName("baz")); - assertNull(new PathFragment("C:/").replaceName("baz")); + assertPath("C:/foo/baz", PathFragment.create("C:/foo/bar").replaceName("baz")); + assertNull(PathFragment.create("C:/").replaceName("baz")); } @Test public void testStartsWithWindows() { - assertTrue(new PathFragment("C:/foo/bar").startsWith(new PathFragment("C:/foo"))); - assertTrue(new PathFragment("C:/foo/bar").startsWith(new PathFragment("C:/"))); - assertTrue(new PathFragment("C:foo/bar").startsWith(new PathFragment("C:"))); - assertTrue(new PathFragment("C:/").startsWith(new PathFragment("C:/"))); - assertTrue(new PathFragment("C:").startsWith(new PathFragment("C:"))); + assertTrue(PathFragment.create("C:/foo/bar").startsWith(PathFragment.create("C:/foo"))); + assertTrue(PathFragment.create("C:/foo/bar").startsWith(PathFragment.create("C:/"))); + assertTrue(PathFragment.create("C:foo/bar").startsWith(PathFragment.create("C:"))); + assertTrue(PathFragment.create("C:/").startsWith(PathFragment.create("C:/"))); + assertTrue(PathFragment.create("C:").startsWith(PathFragment.create("C:"))); // The first path is absolute, the second is not. - assertFalse(new PathFragment("C:/foo/bar").startsWith(new PathFragment("C:"))); - assertFalse(new PathFragment("C:/").startsWith(new PathFragment("C:"))); + assertFalse(PathFragment.create("C:/foo/bar").startsWith(PathFragment.create("C:"))); + assertFalse(PathFragment.create("C:/").startsWith(PathFragment.create("C:"))); } @Test public void testEndsWithWindows() { - assertTrue(new PathFragment("C:/foo/bar").endsWith(new PathFragment("bar"))); - assertTrue(new PathFragment("C:/foo/bar").endsWith(new PathFragment("foo/bar"))); - assertTrue(new PathFragment("C:/foo/bar").endsWith(new PathFragment("C:/foo/bar"))); - assertTrue(new PathFragment("C:/").endsWith(new PathFragment("C:/"))); + assertTrue(PathFragment.create("C:/foo/bar").endsWith(PathFragment.create("bar"))); + assertTrue(PathFragment.create("C:/foo/bar").endsWith(PathFragment.create("foo/bar"))); + assertTrue(PathFragment.create("C:/foo/bar").endsWith(PathFragment.create("C:/foo/bar"))); + assertTrue(PathFragment.create("C:/").endsWith(PathFragment.create("C:/"))); } @Test public void testGetSafePathStringWindows() { - assertEquals("C:/", new PathFragment("C:/").getSafePathString()); - assertEquals("C:/abc", new PathFragment("C:/abc").getSafePathString()); - assertEquals("C:/abc/def", new PathFragment("C:/abc/def").getSafePathString()); + assertEquals("C:/", PathFragment.create("C:/").getSafePathString()); + assertEquals("C:/abc", PathFragment.create("C:/abc").getSafePathString()); + assertEquals("C:/abc/def", PathFragment.create("C:/abc/def").getSafePathString()); } @Test public void testNormalizeWindows() { - assertEquals(new PathFragment("C:/a/b"), new PathFragment("C:/a/b").normalize()); - assertEquals(new PathFragment("C:/a/b"), new PathFragment("C:/a/./b").normalize()); - assertEquals(new PathFragment("C:/b"), new PathFragment("C:/a/../b").normalize()); - assertEquals(new PathFragment("C:/../b"), new PathFragment("C:/../b").normalize()); + assertEquals(PathFragment.create("C:/a/b"), PathFragment.create("C:/a/b").normalize()); + assertEquals(PathFragment.create("C:/a/b"), PathFragment.create("C:/a/./b").normalize()); + assertEquals(PathFragment.create("C:/b"), PathFragment.create("C:/a/../b").normalize()); + assertEquals(PathFragment.create("C:/../b"), PathFragment.create("C:/../b").normalize()); } } diff --git a/src/test/java/com/google/devtools/build/lib/vfs/PathGetParentTest.java b/src/test/java/com/google/devtools/build/lib/vfs/PathGetParentTest.java index 5e6224c998..5681ba2ab1 100644 --- a/src/test/java/com/google/devtools/build/lib/vfs/PathGetParentTest.java +++ b/src/test/java/com/google/devtools/build/lib/vfs/PathGetParentTest.java @@ -81,6 +81,6 @@ public class PathGetParentTest { // Under UNIX, inode(/tmp/wiz/..) == inode(/). However getPath() does not // perform I/O, only string operations, so it disagrees: - assertEquals(tmp, tmp.getRelative(new PathFragment("wiz/.."))); + assertEquals(tmp, tmp.getRelative(PathFragment.create("wiz/.."))); } } diff --git a/src/test/java/com/google/devtools/build/lib/vfs/PathTest.java b/src/test/java/com/google/devtools/build/lib/vfs/PathTest.java index 1976f05f8d..de1a47cb4c 100644 --- a/src/test/java/com/google/devtools/build/lib/vfs/PathTest.java +++ b/src/test/java/com/google/devtools/build/lib/vfs/PathTest.java @@ -179,11 +179,11 @@ public class PathTest { public void testGetRelativeWithFragmentWorks() { Path dir = filesystem.getPath("/first/x"); assertEquals("/first/x/y", - dir.getRelative(new PathFragment("y")).toString()); + dir.getRelative(PathFragment.create("y")).toString()); assertEquals("/first/x/x", - dir.getRelative(new PathFragment("./x")).toString()); + dir.getRelative(PathFragment.create("./x")).toString()); assertEquals("/first/y", - dir.getRelative(new PathFragment("../y")).toString()); + dir.getRelative(PathFragment.create("../y")).toString()); } @@ -191,7 +191,7 @@ public class PathTest { public void testGetRelativeWithAbsoluteFragmentWorks() { Path root = filesystem.getPath("/first/x"); assertEquals("/x/y", - root.getRelative(new PathFragment("/x/y")).toString()); + root.getRelative(PathFragment.create("/x/y")).toString()); } @Test @@ -238,14 +238,14 @@ public class PathTest { @Test public void testSiblingNonEquivalenceFragment() { assertNotSame( - root.getRelative(new PathFragment("aSingleSegment")), - root.getRelative(new PathFragment("aDifferentSegment"))); + root.getRelative(PathFragment.create("aSingleSegment")), + root.getRelative(PathFragment.create("aDifferentSegment"))); } @Test public void testHashCodeStableAcrossGarbageCollections() { Path parent = filesystem.getPath("/a"); - PathFragment childFragment = new PathFragment("b"); + PathFragment childFragment = PathFragment.create("b"); Path child = parent.getRelative(childFragment); WeakReference<Path> childRef = new WeakReference<>(child); int childHashCode1 = childRef.get().hashCode(); @@ -315,7 +315,7 @@ public class PathTest { } private void assertAsFragmentWorks(String expected) { - assertEquals(new PathFragment(expected), filesystem.getPath(expected).asFragment()); + assertEquals(PathFragment.create(expected), filesystem.getPath(expected).asFragment()); } private void assertGetRelativeWorks(String expected, String relative) { @@ -324,7 +324,7 @@ public class PathTest { } private void assertRelativeToWorks(String expected, String relative, String original) { - assertEquals(new PathFragment(expected), + assertEquals(PathFragment.create(expected), filesystem.getPath(relative).relativeTo(filesystem.getPath(original))); } } diff --git a/src/test/java/com/google/devtools/build/lib/vfs/RootedPathTest.java b/src/test/java/com/google/devtools/build/lib/vfs/RootedPathTest.java index 83a72111b5..7ad65313c0 100644 --- a/src/test/java/com/google/devtools/build/lib/vfs/RootedPathTest.java +++ b/src/test/java/com/google/devtools/build/lib/vfs/RootedPathTest.java @@ -40,12 +40,14 @@ public class RootedPathTest { public void testEqualsAndHashCodeContract() throws Exception { Path pkgRoot1 = root.getRelative("pkgroot1"); Path pkgRoot2 = root.getRelative("pkgroot2"); - RootedPath rootedPathA1 = RootedPath.toRootedPath(pkgRoot1, new PathFragment("foo/bar")); - RootedPath rootedPathA2 = RootedPath.toRootedPath(pkgRoot1, new PathFragment("foo/bar")); - RootedPath absolutePath1 = RootedPath.toRootedPath(root, new PathFragment("pkgroot1/foo/bar")); - RootedPath rootedPathB1 = RootedPath.toRootedPath(pkgRoot2, new PathFragment("foo/bar")); - RootedPath rootedPathB2 = RootedPath.toRootedPath(pkgRoot2, new PathFragment("foo/bar")); - RootedPath absolutePath2 = RootedPath.toRootedPath(root, new PathFragment("pkgroot2/foo/bar")); + RootedPath rootedPathA1 = RootedPath.toRootedPath(pkgRoot1, PathFragment.create("foo/bar")); + RootedPath rootedPathA2 = RootedPath.toRootedPath(pkgRoot1, PathFragment.create("foo/bar")); + RootedPath absolutePath1 = + RootedPath.toRootedPath(root, PathFragment.create("pkgroot1/foo/bar")); + RootedPath rootedPathB1 = RootedPath.toRootedPath(pkgRoot2, PathFragment.create("foo/bar")); + RootedPath rootedPathB2 = RootedPath.toRootedPath(pkgRoot2, PathFragment.create("foo/bar")); + RootedPath absolutePath2 = + RootedPath.toRootedPath(root, PathFragment.create("pkgroot2/foo/bar")); new EqualsTester() .addEqualityGroup(rootedPathA1, rootedPathA2) .addEqualityGroup(rootedPathB1, rootedPathB2) diff --git a/src/test/java/com/google/devtools/build/lib/vfs/ScopeEscapableFileSystemTest.java b/src/test/java/com/google/devtools/build/lib/vfs/ScopeEscapableFileSystemTest.java index f321ab93e3..cec1523a0e 100644 --- a/src/test/java/com/google/devtools/build/lib/vfs/ScopeEscapableFileSystemTest.java +++ b/src/test/java/com/google/devtools/build/lib/vfs/ScopeEscapableFileSystemTest.java @@ -129,7 +129,7 @@ public abstract class ScopeEscapableFileSystemTest extends SymlinkAwareFileSyste } } - protected static final PathFragment SCOPE_ROOT = new PathFragment("/fs/root"); + protected static final PathFragment SCOPE_ROOT = PathFragment.create("/fs/root"); private Path fileLink; private PathFragment fileLinkTarget; @@ -146,11 +146,11 @@ public abstract class ScopeEscapableFileSystemTest extends SymlinkAwareFileSyste } fileLink = testFS.getPath(SCOPE_ROOT.getRelative("link")); - fileLinkTarget = new PathFragment("/should/be/delegated/fileLinkTarget"); + fileLinkTarget = PathFragment.create("/should/be/delegated/fileLinkTarget"); testFS.createSymbolicLink(fileLink, fileLinkTarget); dirLink = testFS.getPath(SCOPE_ROOT.getRelative("dirlink")); - dirLinkTarget = new PathFragment("/should/be/delegated/dirLinkTarget"); + dirLinkTarget = PathFragment.create("/should/be/delegated/dirLinkTarget"); testFS.createSymbolicLink(dirLink, dirLinkTarget); } @@ -605,7 +605,7 @@ public abstract class ScopeEscapableFileSystemTest extends SymlinkAwareFileSyste }; scopedFS().setDelegator(delegator); - PathFragment newLinkTarget = new PathFragment("/something/else"); + PathFragment newLinkTarget = PathFragment.create("/something/else"); dirLink.getRelative("a").createSymbolicLink(newLinkTarget); assertEquals(dirLinkTarget.getRelative("a"), delegator.lastPath()); assertSame(newLinkTarget, delegator.objectState()); @@ -623,7 +623,7 @@ public abstract class ScopeEscapableFileSystemTest extends SymlinkAwareFileSyste scopedFS().setDelegator(delegator); // Since we're not following the link, this shouldn't invoke delegation. - delegator.setState(new PathFragment("whatever")); + delegator.setState(PathFragment.create("whatever")); PathFragment p = fileLink.readSymbolicLink(); assertNull(delegator.lastPath()); assertNotSame(delegator.objectState(), p); @@ -705,7 +705,7 @@ public abstract class ScopeEscapableFileSystemTest extends SymlinkAwareFileSyste */ private void assertInScopeLink(String link, String target, TestDelegator d) throws IOException { Path l = testFS.getPath(SCOPE_ROOT.getRelative(link)); - testFS.createSymbolicLink(l, new PathFragment(target)); + testFS.createSymbolicLink(l, PathFragment.create(target)); l.exists(); assertNull(d.lastPath()); } @@ -717,7 +717,7 @@ public abstract class ScopeEscapableFileSystemTest extends SymlinkAwareFileSyste private void assertOutOfScopeLink(String link, String target, String expectedPath, TestDelegator d) throws IOException { Path l = testFS.getPath(SCOPE_ROOT.getRelative(link)); - testFS.createSymbolicLink(l, new PathFragment(target)); + testFS.createSymbolicLink(l, PathFragment.create(target)); l.exists(); assertEquals(expectedPath, d.lastPath().getPathString()); } @@ -768,7 +768,7 @@ public abstract class ScopeEscapableFileSystemTest extends SymlinkAwareFileSyste // Out-of-scope symlink that's not the final segment in a query. Path oDirLink = testFS.getPath(SCOPE_ROOT.getRelative("olinkdir")); - testFS.createSymbolicLink(oDirLink, new PathFragment("/some/other/dir")); + testFS.createSymbolicLink(oDirLink, PathFragment.create("/some/other/dir")); oDirLink.getRelative("file").exists(); assertEquals("/some/other/dir/file", d.lastPath().getPathString()); } @@ -807,13 +807,13 @@ public abstract class ScopeEscapableFileSystemTest extends SymlinkAwareFileSyste // In-scope symlink that's not the final segment in a query. Path iDirLink = testFS.getPath(SCOPE_ROOT.getRelative("dir/dir2/ilinkdir")); - testFS.createSymbolicLink(iDirLink, new PathFragment("../../dir")); + testFS.createSymbolicLink(iDirLink, PathFragment.create("../../dir")); iDirLink.getRelative("file").exists(); assertNull(d.lastPath()); // Out-of-scope symlink that's not the final segment in a query. Path oDirLink = testFS.getPath(SCOPE_ROOT.getRelative("dir/dir2/olinkdir")); - testFS.createSymbolicLink(oDirLink, new PathFragment("../../../other/dir")); + testFS.createSymbolicLink(oDirLink, PathFragment.create("../../../other/dir")); oDirLink.getRelative("file").exists(); assertEquals(chopScopeRoot(1) + "/other/dir/file", d.lastPath().getPathString()); } diff --git a/src/test/java/com/google/devtools/build/lib/vfs/SymlinkAwareFileSystemTest.java b/src/test/java/com/google/devtools/build/lib/vfs/SymlinkAwareFileSystemTest.java index 9f9480c19b..b048748861 100644 --- a/src/test/java/com/google/devtools/build/lib/vfs/SymlinkAwareFileSystemTest.java +++ b/src/test/java/com/google/devtools/build/lib/vfs/SymlinkAwareFileSystemTest.java @@ -200,7 +200,7 @@ public abstract class SymlinkAwareFileSystemTest extends FileSystemTest { }; Path linkPath = absolutize("link"); for (String linkTarget : linkTargets) { - PathFragment relative = new PathFragment(linkTarget); + PathFragment relative = PathFragment.create(linkTarget); linkPath.delete(); createSymbolicLink(linkPath, relative); if (supportsSymlinks) { @@ -246,7 +246,7 @@ public abstract class SymlinkAwareFileSystemTest extends FileSystemTest { @Test public void testLinkToFragmentContainingLinkResolvesCorrectly() throws IOException { Path link1 = absolutize("link1"); - PathFragment link1target = new PathFragment("link2/foo"); + PathFragment link1target = PathFragment.create("link2/foo"); Path link2 = absolutize("link2"); Path link2target = xNonEmptyDirectory; @@ -331,7 +331,7 @@ public abstract class SymlinkAwareFileSystemTest extends FileSystemTest { String prefix = "./"; while ((ancestor = ancestor.getParentDirectory()) != null) { xLinkToFile.delete(); - createSymbolicLink(xLinkToFile, new PathFragment(prefix + xFile.relativeTo(ancestor))); + createSymbolicLink(xLinkToFile, PathFragment.create(prefix + xFile.relativeTo(ancestor))); assertEquals(xFile, xLinkToFile.resolveSymbolicLinks()); prefix += "../"; diff --git a/src/test/java/com/google/devtools/build/lib/vfs/UnionFileSystemTest.java b/src/test/java/com/google/devtools/build/lib/vfs/UnionFileSystemTest.java index 50329d6ed0..c1e793562a 100644 --- a/src/test/java/com/google/devtools/build/lib/vfs/UnionFileSystemTest.java +++ b/src/test/java/com/google/devtools/build/lib/vfs/UnionFileSystemTest.java @@ -64,8 +64,8 @@ public class UnionFileSystemTest extends SymlinkAwareFileSystemTest { private UnionFileSystem createDefaultUnionFileSystem(boolean readOnly) { return new UnionFileSystem(ImmutableMap.<PathFragment, FileSystem>of( - new PathFragment("/in"), inDelegate, - new PathFragment("/out"), outDelegate), + PathFragment.create("/in"), inDelegate, + PathFragment.create("/out"), outDelegate), defaultDelegate, readOnly); } @@ -123,8 +123,8 @@ public class UnionFileSystemTest extends SymlinkAwareFileSystemTest { @Test public void testPrefixDelegation() throws Exception { unionfs = new UnionFileSystem(ImmutableMap.<PathFragment, FileSystem>of( - new PathFragment("/foo"), inDelegate, - new PathFragment("/foo/bar"), outDelegate), defaultDelegate); + PathFragment.create("/foo"), inDelegate, + PathFragment.create("/foo/bar"), outDelegate), defaultDelegate); assertSame(inDelegate, unionfs.getDelegate(unionfs.getPath("/foo/foo.txt"))); assertSame(outDelegate, unionfs.getDelegate(unionfs.getPath("/foo/bar/foo.txt"))); @@ -220,7 +220,7 @@ public class UnionFileSystemTest extends SymlinkAwareFileSystemTest { outStream.close(); Path outFoo = unionfs.getPath("/out/foo"); - unionfs.createSymbolicLink(outFoo, new PathFragment("../in/bar.txt")); + unionfs.createSymbolicLink(outFoo, PathFragment.create("../in/bar.txt")); assertTrue(unionfs.stat(outFoo, false).isSymbolicLink()); try { @@ -253,8 +253,8 @@ public class UnionFileSystemTest extends SymlinkAwareFileSystemTest { @Test public void testWithinDirectoryMapping() throws Exception { unionfs = new UnionFileSystem(ImmutableMap.<PathFragment, FileSystem>of( - new PathFragment("/fruit/a"), inDelegate, - new PathFragment("/fruit/b"), outDelegate), defaultDelegate); + PathFragment.create("/fruit/a"), inDelegate, + PathFragment.create("/fruit/b"), outDelegate), defaultDelegate); assertTrue(unionfs.createDirectory(unionfs.getPath("/fruit"))); assertTrue(defaultDelegate.getPath("/fruit").isDirectory()); assertTrue(inDelegate.getPath("/fruit").createDirectory()); @@ -309,7 +309,7 @@ public class UnionFileSystemTest extends SymlinkAwareFileSystemTest { @Test public void testCreateParentsAcrossMapping() throws Exception { unionfs = new UnionFileSystem(ImmutableMap.<PathFragment, FileSystem>of( - new PathFragment("/out/dir"), outDelegate), defaultDelegate, false); + PathFragment.create("/out/dir"), outDelegate), defaultDelegate, false); Path outDir = unionfs.getPath("/out/dir/biz/bang"); FileSystemUtils.createDirectoryAndParents(outDir); assertTrue(outDir.isDirectory()); diff --git a/src/test/java/com/google/devtools/build/lib/vfs/inmemoryfs/InMemoryFileSystemTest.java b/src/test/java/com/google/devtools/build/lib/vfs/inmemoryfs/InMemoryFileSystemTest.java index 65446664d3..ee4dfe937a 100644 --- a/src/test/java/com/google/devtools/build/lib/vfs/inmemoryfs/InMemoryFileSystemTest.java +++ b/src/test/java/com/google/devtools/build/lib/vfs/inmemoryfs/InMemoryFileSystemTest.java @@ -394,8 +394,8 @@ public class InMemoryFileSystemTest extends ScopeEscapableFileSystemTest { public void testEloop() throws Exception { Path a = testFS.getPath("/a"); Path b = testFS.getPath("/b"); - a.createSymbolicLink(new PathFragment("b")); - b.createSymbolicLink(new PathFragment("a")); + a.createSymbolicLink(PathFragment.create("b")); + b.createSymbolicLink(PathFragment.create("a")); try { a.stat(); } catch (IOException e) { @@ -406,7 +406,7 @@ public class InMemoryFileSystemTest extends ScopeEscapableFileSystemTest { @Test public void testEloopSelf() throws Exception { Path a = testFS.getPath("/a"); - a.createSymbolicLink(new PathFragment("a")); + a.createSymbolicLink(PathFragment.create("a")); try { a.stat(); } catch (IOException e) { |