diff --git a/src/test/java/BUILD b/src/test/java/BUILD
index 7fde4f2..c62c788 100644
--- a/src/test/java/BUILD
+++ b/src/test/java/BUILD
@@ -144,16 +144,11 @@
     ],
 )
 
-java_test(
-    name = "actions_test",
+java_library(
+    name = "actions_testutil",
     srcs = glob([
-        "com/google/devtools/build/lib/actions/**/*.java",
+        "com/google/devtools/build/lib/actions/util/*.java",
     ]),
-    args = ["com.google.devtools.build.lib.AllTests"],
-    data = [
-        "//src/main/native:libunix.dylib",
-        "//src/main/native:libunix.so",
-    ],
     deps = [
         ":foundations_testutil",
         ":test_runner",
@@ -168,21 +163,48 @@
     ],
 )
 
-# TODO(bazel-team): Make these tests actually run. Also fix the duplicate compilation of
-# actions/util.
-java_library(
-    name = "analysis_actions_test",
+java_test(
+    name = "actions_test",
     srcs = glob([
-        "com/google/devtools/build/lib/actions/util/*.java",
-        "com/google/devtools/build/lib/analysis/**/*.java",
-        "com/google/devtools/build/lib/exec/util/*.java",
-        "com/google/devtools/build/lib/packages/util/*.java",
+        "com/google/devtools/build/lib/actions/*.java",
     ]),
+    args = ["com.google.devtools.build.lib.AllTests"],
     data = [
         "//src/main/native:libunix.dylib",
         "//src/main/native:libunix.so",
     ],
     deps = [
+        ":actions_testutil",
+        ":foundations_testutil",
+        ":test_runner",
+        ":testutil",
+        "//src/main/java:bazel-core",
+        "//third_party:guava",
+        "//third_party:guava-testlib",
+        "//third_party:jsr305",
+        "//third_party:junit4",
+        "//third_party:mockito",
+        "//third_party:truth",
+    ],
+)
+
+java_library(
+    name = "analysis_actions_test",
+    srcs = glob([
+        "com/google/devtools/build/lib/analysis/**/*.java",
+        "com/google/devtools/build/lib/exec/util/*.java",
+        "com/google/devtools/build/lib/packages/util/*.java",
+    ]),
+    #     args = ["com.google.devtools.build.lib.AllTests"],
+    data = [
+        "//src/main/native:libunix.dylib",
+        "//src/main/native:libunix.so",
+    ],
+    resources = [
+        "MOCK_CROSSTOOL",
+    ],
+    deps = [
+        ":actions_testutil",
         ":foundations_testutil",
         ":test_runner",
         ":testutil",
diff --git a/src/test/java/MOCK_CROSSTOOL b/src/test/java/MOCK_CROSSTOOL
new file mode 100644
index 0000000..c57df53
--- /dev/null
+++ b/src/test/java/MOCK_CROSSTOOL
@@ -0,0 +1,197 @@
+# This test resource file needs to cover all the things that we expect in the
+# tests. While it currently looks like a verbatim copy of tools/cpp/CROSSTOOL,
+# that's just because not all tests are there yet.
+
+major_version: "local"
+minor_version: ""
+default_target_cpu: "k8"
+default_toolchain {
+  cpu: "k8"
+  toolchain_identifier: "local_linux"
+}
+default_toolchain {
+  cpu: "darwin"
+  toolchain_identifier: "local_darwin"
+}
+
+toolchain {
+  abi_version: "local"
+  abi_libc_version: "local"
+  builtin_sysroot: ""
+  compiler: "compiler"
+  host_system_name: "local"
+  needsPic: true
+  supports_gold_linker: false
+  supports_incremental_linker: false
+  supports_fission: false
+  supports_interface_shared_objects: false
+  supports_normalizing_ar: false
+  supports_start_end_lib: false
+  supports_thin_archives: false
+  target_libc: "local"
+  target_cpu: "local"
+  target_system_name: "local"
+  toolchain_identifier: "local_linux"
+
+  tool_path { name: "ar" path: "/usr/bin/ar" }
+  tool_path { name: "compat-ld" path: "/usr/bin/ld" }
+  tool_path { name: "cpp" path: "/usr/bin/cpp" }
+  tool_path { name: "dwp" path: "/usr/bin/dwp" }
+  tool_path { name: "gcc" path: "/usr/bin/gcc" }
+  cxx_flag: "-std=c++0x"
+  linker_flag: "-lstdc++"
+  # TODO(bazel-team): In theory, the path here ought to exactly match the path
+  # used by gcc. That works because bazel currently doesn't track files at
+  # absolute locations and has no remote execution, yet. However, this will need
+  # to be fixed, maybe with auto-detection?
+  cxx_builtin_include_directory: "/usr/lib/gcc/"
+  cxx_builtin_include_directory: "/usr/local/include"
+  cxx_builtin_include_directory: "/usr/include"
+  tool_path { name: "gcov" path: "/usr/bin/gcov" }
+  tool_path { name: "ld" path: "/usr/bin/ld" }
+  tool_path { name: "nm" path: "/usr/bin/nm" }
+  tool_path { name: "objcopy" path: "/usr/bin/objcopy" }
+  objcopy_embed_flag: "-I"
+  objcopy_embed_flag: "binary"
+  tool_path { name: "objdump" path: "/usr/bin/objdump" }
+  tool_path { name: "strip" path: "/usr/bin/strip" }
+}
+
+toolchain {
+  abi_version: "local"
+  abi_libc_version: "local"
+  builtin_sysroot: ""
+  compiler: "compiler"
+  host_system_name: "local"
+  needsPic: true
+  target_libc: "macosx"
+  target_cpu: "darwin"
+  target_system_name: "local"
+  toolchain_identifier: "local_darwin"
+
+  tool_path { name: "ar" path: "/usr/bin/libtool" }
+  tool_path { name: "compat-ld" path: "/usr/bin/ld" }
+  tool_path { name: "cpp" path: "/usr/bin/cpp" }
+  tool_path { name: "dwp" path: "/usr/bin/dwp" }
+  tool_path { name: "gcc" path: "/usr/bin/gcc" }
+  cxx_flag: "-std=c++0x"
+  ar_flag: "-static"
+  ar_flag: "-s"
+  ar_flag: "-o"
+  linker_flag: "-lstdc++"
+  cxx_builtin_include_directory: "/usr/include"
+  cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain"
+  cxx_builtin_include_directory: "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs"
+  cxx_builtin_include_directory: "/opt/local/include"
+  cxx_builtin_include_directory: "/Library/Developer/CommandLineTools"
+  tool_path { name: "gcov" path: "/usr/bin/gcov" }
+  tool_path { name: "ld" path: "/usr/bin/ld" }
+  tool_path { name: "nm" path: "/usr/bin/nm" }
+  tool_path { name: "objcopy" path: "/usr/bin/objcopy" }
+  objcopy_embed_flag: "-I"
+  objcopy_embed_flag: "binary"
+  tool_path { name: "objdump" path: "/usr/bin/objdump" }
+  tool_path { name: "strip" path: "/usr/bin/strip" }
+}
+
+toolchain {
+  abi_version: "local"
+  abi_libc_version: "local"
+  builtin_sysroot: ""
+  compiler: "windows_mingw"
+  host_system_name: "local"
+  needsPic: false
+  target_libc: "local"
+  target_cpu: "k8"
+  target_system_name: "local"
+  toolchain_identifier: "local_windows_mingw"
+
+  tool_path { name: "ar" path: "C:/mingw/bin/ar" }
+  tool_path { name: "compat-ld" path: "C:/mingw/bin/ld" }
+  tool_path { name: "cpp" path: "C:/mingw/bin/cpp" }
+  tool_path { name: "dwp" path: "C:/mingw/bin/dwp" }
+  tool_path { name: "gcc" path: "C:/mingw/bin/gcc" }
+  cxx_flag: "-std=c++0x"
+  # TODO(bazel-team): In theory, the path here ought to exactly match the path
+  # used by gcc. That works because bazel currently doesn't track files at
+  # absolute locations and has no remote execution, yet. However, this will need
+  # to be fixed, maybe with auto-detection?
+  cxx_builtin_include_directory: "C:/mingw/include"
+  cxx_builtin_include_directory: "C:/mingw/lib/gcc"
+  tool_path { name: "gcov" path: "C:/mingw/bin/gcov" }
+  tool_path { name: "ld" path: "C:/mingw/bin/ld" }
+  tool_path { name: "nm" path: "C:/mingw/bin/nm" }
+  tool_path { name: "objcopy" path: "C:/mingw/bin/objcopy" }
+  objcopy_embed_flag: "-I"
+  objcopy_embed_flag: "binary"
+  tool_path { name: "objdump" path: "C:/mingw/bin/objdump" }
+  tool_path { name: "strip" path: "C:/mingw/bin/strip" }
+}
+
+toolchain {
+  abi_version: "local"
+  abi_libc_version: "local"
+  builtin_sysroot: ""
+  compiler: "windows_msys64_mingw64"
+  host_system_name: "local"
+  needsPic: false
+  target_libc: "local"
+  target_cpu: "k8"
+  target_system_name: "local"
+  toolchain_identifier: "local_windows_msys64_mingw64"
+
+  tool_path { name: "ar" path: "C:/msys64/mingw64/bin/ar" }
+  tool_path { name: "compat-ld" path: "C:/msys64/mingw64/bin/ld" }
+  tool_path { name: "cpp" path: "C:/msys64/mingw64/bin/cpp" }
+  tool_path { name: "dwp" path: "C:/msys64/mingw64/bin/dwp" }
+  tool_path { name: "gcc" path: "C:/msys64/mingw64/bin/gcc" }
+  cxx_flag: "-std=c++0x"
+  # TODO(bazel-team): In theory, the path here ought to exactly match the path
+  # used by gcc. That works because bazel currently doesn't track files at
+  # absolute locations and has no remote execution, yet. However, this will need
+  # to be fixed, maybe with auto-detection?
+  cxx_builtin_include_directory: "C:/msys64/mingw64/x86_64-w64-mingw32/include"
+  tool_path { name: "gcov" path: "C:/msys64/mingw64/bin/gcov" }
+  tool_path { name: "ld" path: "C:/msys64/mingw64/bin/ld" }
+  tool_path { name: "nm" path: "C:/msys64/mingw64/bin/nm" }
+  tool_path { name: "objcopy" path: "C:/msys64/mingw64/bin/objcopy" }
+  objcopy_embed_flag: "-I"
+  objcopy_embed_flag: "binary"
+  tool_path { name: "objdump" path: "C:/msys64/mingw64/bin/objdump" }
+  tool_path { name: "strip" path: "C:/msys64/mingw64/bin/strip" }
+}
+
+toolchain {
+  abi_version: "local"
+  abi_libc_version: "local"
+  builtin_sysroot: ""
+  compiler: "windows_clang"
+  host_system_name: "local"
+  needsPic: false
+  target_libc: "local"
+  target_cpu: "k8"
+  target_system_name: "local"
+  toolchain_identifier: "local_windows_clang"
+
+  tool_path { name: "ar" path: "C:/mingw/bin/ar" }
+  tool_path { name: "compat-ld" path: "C:/Program Files (x86)/LLVM/bin/ld" }
+  tool_path { name: "cpp" path: "C:/Program Files (x86)/LLVM/bin/cpp" }
+  tool_path { name: "dwp" path: "C:/Program Files (x86)/LLVM/bin/dwp" }
+  tool_path { name: "gcc" path: "C:/Program Files (x86)/LLVM/bin/clang" }
+  cxx_flag: "-std=c++0x"
+  # TODO(bazel-team): In theory, the path here ought to exactly match the path
+  # used by gcc. That works because bazel currently doesn't track files at
+  # absolute locations and has no remote execution, yet. However, this will need
+  # to be fixed, maybe with auto-detection?
+  cxx_builtin_include_directory: "/usr/lib/gcc/"
+  cxx_builtin_include_directory: "/usr/local/include"
+  cxx_builtin_include_directory: "/usr/include"
+  tool_path { name: "gcov" path: "C:/Program Files (x86)/LLVM/bin/gcov" }
+  tool_path { name: "ld" path: "C:/Program Files (x86)/LLVM/bin/ld" }
+  tool_path { name: "nm" path: "C:/Program Files (x86)/LLVM/bin/nm" }
+  tool_path { name: "objcopy" path: "C:/Program Files (x86)/LLVM/bin/objcopy" }
+  objcopy_embed_flag: "-I"
+  objcopy_embed_flag: "binary"
+  tool_path { name: "objdump" path: "C:/Program Files (x86)/LLVM/bin/objdump" }
+  tool_path { name: "strip" path: "C:/Program Files (x86)/LLVM/bin/strip" }
+}
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/BazelAnalysisMock.java b/src/test/java/com/google/devtools/build/lib/analysis/BazelAnalysisMock.java
new file mode 100644
index 0000000..be20313
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/lib/analysis/BazelAnalysisMock.java
@@ -0,0 +1,89 @@
+// Copyright 2015 Google Inc. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//    http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package com.google.devtools.build.lib.analysis;
+
+import com.google.common.base.Functions;
+import com.google.common.collect.ImmutableList;
+import com.google.common.io.ByteStreams;
+import com.google.devtools.build.lib.analysis.config.ConfigurationFactory;
+import com.google.devtools.build.lib.analysis.util.AnalysisMock;
+import com.google.devtools.build.lib.bazel.rules.BazelConfiguration;
+import com.google.devtools.build.lib.bazel.rules.BazelConfigurationCollection;
+import com.google.devtools.build.lib.bazel.rules.BazelRuleClassProvider;
+import com.google.devtools.build.lib.packages.util.MockToolsConfig;
+import com.google.devtools.build.lib.rules.cpp.CppConfigurationLoader;
+import com.google.devtools.build.lib.rules.java.JavaConfigurationLoader;
+import com.google.devtools.build.lib.rules.java.JvmConfigurationLoader;
+import com.google.devtools.build.lib.rules.objc.ObjcConfigurationLoader;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+import java.util.Collection;
+
+public class BazelAnalysisMock extends AnalysisMock {
+  public static final AnalysisMock INSTANCE = new BazelAnalysisMock();
+
+  @Override
+  public void setupMockClient(MockToolsConfig config) throws IOException {
+    config.create("tools/jdk/BUILD",
+        "package(default_visibility=['//visibility:public'])",
+        "java_toolchain(name = 'toolchain', encoding = 'UTF-8', source_version = '8', ",
+        "  target_version = '8')",
+        "filegroup(name = 'jdk-null')",
+        "filegroup(name = 'jdk-default', srcs = [':java'], path = 'jdk/jre')",
+        "filegroup(name = 'jdk', srcs = [':jdk-default', ':jdk-null'])",
+        "filegroup(name='langtools', srcs=['jdk/lib/tools.jar'])",
+        "filegroup(name='bootclasspath', srcs=['jdk/jre/lib/rt.jar'])",
+        "filegroup(name='java', srcs = ['jdk/jre/bin/java'])",
+        "exports_files(['JavaBuilder_deploy.jar','SingleJar_deploy.jar',",
+        "               'JavaBuilderCanary_deploy.jar', 'ijar'])");
+    config.create("tools/cpp/BUILD",
+        "filegroup(name = 'toolchain', srcs = [':cc-compiler-local', ':empty'])",
+        "cc_toolchain(name = 'cc-compiler-local', all_files = ':empty', compiler_files = ':empty',",
+        "cpu = 'local', dwp_files = ':empty', dynamic_runtime_libs = [':empty'], ",
+        "  linker_files = ':empty',",
+        "objcopy_files = ':empty', static_runtime_libs = [':empty'], strip_files = ':empty',)",
+        "cc_toolchain(name = 'cc-compiler-darwin', all_files = ':empty', ",
+        "  compiler_files = ':empty',",
+        "cpu = 'local', dwp_files = ':empty', dynamic_runtime_libs = [':empty'], ",
+        "  linker_files = ':empty',",
+        "objcopy_files = ':empty', static_runtime_libs = [':empty'], strip_files = ':empty',)");
+    config.create("tools/cpp/CROSSTOOL", readFromResources("MOCK_CROSSTOOL"));
+  }
+
+  public static String readFromResources(String filename) {
+    try (InputStream in = BazelAnalysisMock.class.getClassLoader().getResourceAsStream(filename)) {
+      return new String(ByteStreams.toByteArray(in), StandardCharsets.UTF_8);
+    } catch (IOException e) {
+      // This should never happen.
+      throw new AssertionError(e);
+    }
+  }
+
+  @Override
+  public ConfigurationFactory createConfigurationFactory() {
+    return new ConfigurationFactory(new BazelConfigurationCollection(),
+        new BazelConfiguration.Loader(),
+        new CppConfigurationLoader(Functions.<String>identity()),
+        new JvmConfigurationLoader(BazelRuleClassProvider.JAVA_CPU_SUPPLIER),
+        new JavaConfigurationLoader(BazelRuleClassProvider.JAVA_CPU_SUPPLIER),
+        new ObjcConfigurationLoader());
+  }
+
+  @Override
+  public Collection<String> getOptionOverrides() {
+    return ImmutableList.of();
+  }
+}
diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/MockToolsConfig.java b/src/test/java/com/google/devtools/build/lib/packages/util/MockToolsConfig.java
index fcf9b6f..0ea49bf 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/util/MockToolsConfig.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/util/MockToolsConfig.java
@@ -48,7 +48,9 @@
       @Nullable Path runfilesDirectoryOpt) {
     this.rootDirectory = rootDirectory;
     this.realFileSystem = realFileSystem;
-    if (runfilesDirectoryOpt == null) {
+    if (!realFileSystem) {
+      this.runfilesDirectory = null;
+    } else if (runfilesDirectoryOpt == null) {
       this.runfilesDirectory = rootDirectory.getRelative(BlazeTestUtils.runfilesDir());
     } else {
       this.runfilesDirectory = runfilesDirectoryOpt;
diff --git a/src/test/java/com/google/devtools/build/lib/testutil/TestConstants.java b/src/test/java/com/google/devtools/build/lib/testutil/TestConstants.java
index 28ca6bf..85205a6 100644
--- a/src/test/java/com/google/devtools/build/lib/testutil/TestConstants.java
+++ b/src/test/java/com/google/devtools/build/lib/testutil/TestConstants.java
@@ -44,7 +44,8 @@
   /**
    * Name of a class with an INSTANCE field of type AnalysisMock to be used for analysis tests.
    */
-  public static final String TEST_ANALYSIS_MOCK = "DOES-NOT-WORK-YET";
+  public static final String TEST_ANALYSIS_MOCK =
+      "com.google.devtools.build.lib.analysis.BazelAnalysisMock";
 
   /**
    * Directory where we can find bazel's Java tests, relative to a test's runfiles directory.
