Add best practices doc

PiperOrigin-RevId: 154734540
diff --git a/site/_layouts/documentation.html b/site/_layouts/documentation.html
index 676d616..4f77d61 100644
--- a/site/_layouts/documentation.html
+++ b/site/_layouts/documentation.html
@@ -84,6 +84,7 @@
               <li><a href="{{ page.version_prefix }}/docs/command-line-reference.html">Command-line Reference</a></li>
               <li><a href="{{ page.version_prefix }}/docs/output_directories.html">Output Directories</a></li>
               <li><a href="{{ page.version_prefix }}/docs/windows.html">Bazel on Windows</a></li>
+              <li><a href="{{ page.version_prefix }}/docs/best-practices.html">Best Practices</a></li>
             </ul>
             {% include be-nav.html %}
             <h3>Extensions</h3>
diff --git a/site/docs/best-practices.md b/site/docs/best-practices.md
new file mode 100644
index 0000000..e936d31
--- /dev/null
+++ b/site/docs/best-practices.md
@@ -0,0 +1,4 @@
+---
+layout: redirect
+redirect: docs/best-practices.html
+---
diff --git a/site/versions/master/docs/best-practices.md b/site/versions/master/docs/best-practices.md
new file mode 100644
index 0000000..a1f84d7
--- /dev/null
+++ b/site/versions/master/docs/best-practices.md
@@ -0,0 +1,321 @@
+---
+layout: documentation
+title: Best practices
+---
+
+# Best practices for Bazel
+
+This document assumes that you are familiar with Bazel and provides advice on structuring your
+projects to take full advantage of Bazel's features.
+
+The overall goals are:
+
+- To use fine-grained dependencies to allow parallelism and incrementality.
+- To keep dependencies well-encapsulated.
+- To make code well-structured and testable.
+- To create a build configuration that is easy to understand and maintain.
+
+These guidelines are not requirements: few projects will be able to adhere to all of them.  As the
+man page for lint says, "A special reward will be presented to the first person to produce a real
+program that produces no errors with strict checking." However, incorporating as many of these
+principles as possible should make a project more readable, less error-prone, and faster to build.
+
+This document uses the requirement levels described in
+[this RFC](https://www.ietf.org/rfc/rfc2119.txt).
+
+## Contents
+
+- [General structure](#general-structure)
+   - [Running builds and tests](#running-builds-and-tests)
+   - [Third party dependencies](#third-party-dependencies)
+   - [Depending on binaries](#depending-on-binaries)
+   - [Versioning](#versioning)
+   - [.bazelrc](#bazelrc)
+   - [Packages](#packages)
+- [BUILD files](#build-files)
+   - [BUILD file style guide](#build-file-style-guide)
+   - [Formatting](#formatting)
+   - [References to targets in the current package](#references-to-targets-in-the-current-package)
+   - [Target naming](#target-naming)
+   - [Visibility](#visibility)
+   - [Dependencies](#dependencies)
+   - [Globs](#globs)
+- [Skylark](#skylark)
+   - [Skylark style guide](#skylark-style-guide)
+   - [Packaging rules](#packaging-rules)
+   - [Rule choice](#rule-choice)
+- [WORKSPACE files](#workspace-files)
+   - [Repository rules](#repository-rules)
+   - [Custom BUILD files](#custom-build-files)
+   - [Skylark repository rules](#skylark-repository-rules)
+- [Java](#java)
+   - [Directory structure](#directory-structure)
+   - [BUILD files](#build-files)
+- [C++](#c)
+   - [BUILD files](#build-files)
+   - [Include paths](#include-paths)
+- [Protos](#protos)
+   - [Recommended Code Organization](#recommended-code-organization)
+
+# General structure
+
+## Running builds and tests
+
+A project should always be able to run `bazel build //...` and `bazel test //...` successfully on
+its stable branch. Targets that are necessary but do not build under certain circumstances (e.g.,
+require specific build flags, do not build on a certain platform, require license agreements)
+should be tagged as specifically as possible (e.g., "`requires-osx`"). This tagging allows
+targets to be filtered at a more fine-grained level than the "manual" tag and allows someone
+inspecting the BUILD file to understand what a target's restrictions are.
+
+## Third party dependencies
+
+Prefer declaring third party dependencies as remote repositories in the WORKSPACE file. If it's
+necessary to check third party dependencies into your repository, put them in a directory called
+`third_party/` under your workspace directory.   Note that all BUILD files in `third_party/` must
+include [license](https://bazel.build/versions/master/docs/be/functions.html#licenses)
+declarations.
+
+## Depending on binaries
+
+Everything should be built from source whenever possible. Generally this means that, instead of
+depending on a library `some-library.so`, you'd create a BUILD file and build `some-library.so`
+from its sources, then depend on that target.
+
+Building from source prevents a build from using an library that was build with incompatible flags
+or a different architecture.  There are also some features like coverage, static analysis, or
+dynamic analysis that will only work on the source.
+
+## Versioning
+
+Prefer building all code from head whenever possible.  When versions must be used, avoid including
+the version in the target name (e.g., `//guava`, not `//guava-20.0`). This naming makes the library
+easier to update (only one target needs to be updated).  It is also more resilient to diamond
+dependency issues: if one library depends on `guava-19.0` and one depends on `guava-20.0`, you
+could end up with a library that tries to depend on two different versions. If you created a
+misleading alias to point both targets to one guava library, then the BUILD files are misleading.
+
+## `.bazelrc`
+
+For project-specific options, use the configuration file `_your-workspace_/tools/bazel.rc`.
+
+For options that you **do not** want to check into source control, create the configuration file
+`_your-workspace_/.bazelrc` and add `.bazelrc` to your `.gitignore`.  Note that this file has a
+different name than the file above (`bazel.rc` vs `.bazelrc`).
+
+## Packages
+
+Every directory that contains buildable files should be a package. If a BUILD file refers to files
+in subdirectories (e.g., `srcs = ["a/b/C.java"]`) it is a sign that a BUILD file should be added to
+that subdirectory.  The longer this structure exists, the more likely circular dependencies will be
+inadvertently created, a target's scope will creep, and an increasing number of reverse
+dependencies will have to be updated.
+
+# BUILD files
+
+## BUILD file style guide
+
+See the [BUILD file style
+guide](https://bazel.build/versions/master/docs/skylark/build-style.html).
+
+## Formatting
+
+[Buildifier](https://github.com/bazelbuild/buildifier) should be used to achieve the correct
+formatting for BUILD files.  Editors should be configured to automatically format BUILD files on
+save.  Humans should not try to format BUILD files themselves.
+
+If there is a question as to what the correct formatting is, the answer is "how buildifier formats
+it."
+
+## References to targets in the current package
+
+Files should be referred to by their paths relative to the package directory (without ever using
+up-references, such as `..`).  Generated files should be prefixed with "`:`" to indicate that they
+are not sources.  Source files should not be prefixed with `:`. Rules should be prefixed with `:`.
+For example, assuming `x.cc` is a source file:
+
+```python
+cc_library(
+    name = "lib",
+    srcs = ["x.cc"],
+    hdrs = [":gen-header"],
+)
+
+genrule(
+    name = "gen-header",
+    srcs = [],
+    outs = ["x.h"],
+    cmd = "echo 'int x();' > $@",
+)
+```
+
+## Target naming
+
+Target names should be descriptive. If a target contains one source file, the target should
+generally be named after that source (e.g., a `cc_library` for `chat.cc` should be named "`chat`").
+
+The eponymous target for a package (the target with the same name as the containing directory)
+should provide the functionality described by the directory name. If there is no such target, do
+not create an eponymous target.
+
+Prefer using the short name when referring to an eponymous target (`//x` instead of `//x:x`).  If
+you are in the same package, prefer the local reference (`:x` instead of `//x`).
+
+## Visibility
+
+Do not set the default visibility of a package to `//visibility:public`.  `//visibility:public`
+should be individually set for targets in the project's public API. These could be libraries which
+are designed to be depended on by external projects or binaries that could be used by an external
+project's build process.
+
+Otherwise, visibility should be scoped as tightly as possible, while still allowing access by tests
+and reverse dependencies. Prefer using `__pkg__` to `__subpackages__`.
+
+## Dependencies
+
+Dependencies should be restricted to direct dependencies (dependencies needed by the sources listed
+in the rule). Do not list transitive dependencies.
+
+Package-local dependencies should be listed first and referred to in a way compatible with the
+[References to targets in the current package](#references-to-targets-in-the-current-package)
+section above (not by their absolute package name).
+
+## Globs
+
+Do not use recursive globs (e.g., `glob(["**/*.java"])`). Recursive globs make BUILD files
+difficult to read, as they skip subdirectories containing BUILD files. Non-recursive globs are
+generally acceptable, see language-specific advice below for details.
+
+Indicate "no targets" with `[]`. Do not use a glob that matches nothing: it is more error-prone and
+less obvious than an empty list.
+
+# Skylark
+
+## Skylark style guide
+
+See the [Style guide for .bzl
+files](https://bazel.build/versions/master/docs/skylark/bzl-style.html) for Skylark rule guidelines.
+
+## Packaging rules
+
+See [Packaging rules](https://bazel.build/versions/master/docs/skylark/deploying.html) for advice
+on how to structure and where to put new Skylark rules.
+
+## Rule choice
+
+When using a language for which Bazel has built-in rules (e.g., C++), prefer using these rules to
+writing your own in Skylark. These rules are documented in the [build
+encyclopedia](https://bazel.build/versions/master/docs/be/overview.html).
+
+# WORKSPACE files
+
+## Repository rules
+
+Prefer `http_archive` and `new_http_archive` to `git_repository`, `new_git_repository`, and
+`maven_jar`.
+
+`git_repository` depends on jGit, which has several unpleasant bugs, and `maven_jar` uses Maven's
+internal API, which generally works but is less optimized for Bazel than `http_archive`'s
+downloader logic. Track the following issues filed to remediate these problems:
+
+-  [Use `http_archive` as `git_repository`'s
+   backend.](https://github.com/bazelbuild/bazel/issues/2147)
+-  [Improve `maven_jar`'s backend.](https://github.com/bazelbuild/bazel/issues/1752)
+
+Do not use `bind()`.  See "[Consider removing
+bind](https://github.com/bazelbuild/bazel/issues/1952)" for a long discussion of its issues and
+alternatives.
+
+## Custom BUILD files
+
+When using a `new_` repository rule, prefer to specify `build_file_content`, not `build_file`.
+
+## Skylark repository rules
+
+A Skylark repository rule should generally be responsible for:
+
+-  Detecting system settings and writing them to files.
+-  Finding resources elsewhere on the system.
+-  Downloading resources from URLs.
+-  Generating or symlinking BUILD files into the external repository directory.
+
+Avoid using `repository_ctx.execute` when possible.  For example, when using a non-Bazel C++
+library that has a build using Make, it is preferable to use `respository_ctx.download()` and then
+write a BUILD file that builds it, instead of running `ctx.execute(["make"])`.
+
+# Java
+
+## Directory structure
+
+Prefer Maven's standard directory layout (sources under `src/main/java`, tests under
+`src/test/java`).
+
+## BUILD files
+
+Use one BUILD file per package containing Java sources. Every BUILD file should contain one
+`java_library` rule that looks like this:
+
+```python
+java_library(
+    name = "directory-name",
+    srcs = glob(["*.java"]),
+    deps = [...],
+)
+```
+
+The name of the library should be the name of the directory containing the BUILD file.  The sources
+should be a non-recursive glob of all Java files in the directory.
+
+Tests should be in a matching directory under `src/test` and depend on this library.
+
+# C++
+
+## BUILD files
+
+Each BUILD file should contain one `cc_library` rule target per compilation unit in the directory.
+C++ libraries should be as fine-grained as possible to provide as much incrementality as possible.
+
+If there is a single source file in `srcs`, the library should be named based on that C++ file's
+name. This library should contain a C++ file(s), any matching header file(s), and the library's
+direct dependencies.  For example,
+
+```python
+cc_library(
+    name = "mylib",
+    srcs = ["mylib.cc"],
+    hdrs = ["mylib.h"],
+    deps = [":lower-level-lib"]
+)
+```
+
+There should be one `cc_test` rule target per `cc_library` target in the file. The `cc_test`'s
+source should be a file named `[libname]_test.cc`.  For example, a test for the target above might
+look like:
+
+```
+cc_test(
+    name = "mylib_test",
+    srcs = ["mylib_test.cc"],
+    deps = [":mylib"]
+)
+```
+
+## Include paths
+
+All include paths should be relative to the workspace directory. Use `includes` only if a public
+header needs to be widely used at a non-workspace-relative path (for legacy or `third_party` code).
+Otherwise, prefer to use the `copts` attribute, not the `includes` attribute.
+
+Using `cc_inc_library` is discouraged, prefer `copts` or `includes`.
+See [the design document](https://docs.google.com/document/d/18qUWh0uUiJBv6ZOySvp6DEV0NjVnBoEy-r-ZHa9cmhU/edit#heading=h.kmep1cl5ym9k)
+on C++ include directories for reasoning.
+
+# Protos
+
+## Recommended Code Organization
+
+-  One `proto_library` rule per `.proto` file.
+-  A file named `foo.proto` will be in a rule named `foo_proto`, which is located in the same
+   package.
+-  A `[language]_proto_library` that wraps a `proto_library` named `foo_proto` should be called
+   `foo_[language]_proto`, and be located in the same package.
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/ndk12bfiles.txt b/src/test/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/ndk12bfiles.txt
index e293d12..ee3e450 100644
--- a/src/test/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/ndk12bfiles.txt
+++ b/src/test/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/ndk12bfiles.txt
@@ -1,4 +1,256 @@
-rces/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.promise/set_value_at_thread_exit_void.pass.cpp
+sic.string/string.modifiers/string_assign/pointer_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_assign/rv_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_assign/size_char.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_assign/string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_assign/string_size_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_copy/copy.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_erase/erase_iter_db1.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_erase/erase_iter_db2.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_erase/erase_iter_iter_db1.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_erase/erase_iter_iter_db2.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_erase/erase_iter_iter_db3.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_erase/erase_iter_iter_db4.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_erase/iter_iter.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_erase/iter.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_erase/pop_back.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_erase/size_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_insert/iter_char.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_insert/iter_initializer_list.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_insert/iter_size_char.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_insert/size_pointer.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_insert/size_pointer_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_insert/size_size_char.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_insert/size_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_insert/size_string_size_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_op_plus_equal/char.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_op_plus_equal/initializer_list.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_op_plus_equal/pointer.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_op_plus_equal/string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_replace/iter_iter_initializer_list.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_replace/iter_iter_pointer.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_replace/iter_iter_pointer_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_replace/iter_iter_size_char.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_replace/iter_iter_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_replace/size_size_pointer.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_replace/size_size_pointer_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_replace/size_size_size_char.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_replace/size_size_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_replace/size_size_string_size_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.modifiers/string_swap/swap.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/nothing_to_do.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string.io/get_line_delim.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string.io/get_line_delim_rv.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string.io/get_line.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string.io/get_line_rv.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string.io/stream_extract.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string.io/stream_insert.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_op+/char_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_op!EQ/pointer_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_op!EQ/string_pointer.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_op!EQ/string_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_operatorEQEQ/pointer_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_operatorEQEQ/string_pointer.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_operatorEQEQ/string_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_operator==/pointer_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_operator==/string_pointer.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_operator==/string_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_opgtEQ/pointer_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_opgtEQ/string_pointer.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_opgtEQ/string_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_opgt=/pointer_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_opgt/pointer_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_opgt=/string_pointer.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_opgt/string_pointer.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_opgt=/string_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_opgt/string_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_opltEQ/pointer_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_opltEQ/string_pointer.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_opltEQ/string_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_oplt=/pointer_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_oplt/pointer_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_oplt=/string_pointer.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_oplt/string_pointer.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_oplt=/string_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_oplt/string_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_op!=/pointer_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_op+/pointer_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_op+/string_char.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_op!=/string_pointer.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_op+/string_pointer.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_op!=/string_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string_op+/string_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string.special/swap_noexcept.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.nonmembers/string.special/swap.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/nothing_to_do.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string.accessors/c_str.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string.accessors/data.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string.accessors/get_allocator.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_compare/pointer.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_compare/size_size_pointer.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_compare/size_size_pointer_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_compare/size_size_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_compare/size_size_string_size_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_compare/string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_find/char_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_find.first.not.of/char_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_find.first.not.of/pointer_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_find.first.not.of/pointer_size_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_find.first.not.of/string_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_find.first.of/char_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_find.first.of/pointer_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_find.first.of/pointer_size_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_find.first.of/string_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_find.last.not.of/char_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_find.last.not.of/pointer_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_find.last.not.of/pointer_size_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_find.last.not.of/string_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_find.last.of/char_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_find.last.of/pointer_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_find.last.of/pointer_size_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_find.last.of/string_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_find/pointer_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_find/pointer_size_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_find/string_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_rfind/char_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_rfind/pointer_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_rfind/pointer_size_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_rfind/string_size.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.ops/string_substr/substr.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/string.require/nothing_to_do.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/test_traits.h
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/basic.string/types.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.require/nothing_to_do.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/assign2.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/assign3.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/compare.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/copy.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/eof.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/eq_int_type.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/eq.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/find.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/length.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/lt.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/move.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/not_eof.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/to_char_type.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/to_int_type.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/types.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/assign2.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/assign3.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/compare.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/copy.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/eof.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/eq_int_type.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/eq.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/find.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/length.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/lt.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/move.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/not_eof.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/to_char_type.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/to_int_type.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/types.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char/assign2.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char/assign3.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char/compare.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char/copy.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char/eof.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char/eq_int_type.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char/eq.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char/find.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char/length.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char/lt.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char/move.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char/not_eof.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char/to_char_type.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char/to_int_type.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.char/types.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/assign2.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/assign3.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/compare.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/copy.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/eof.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/eq_int_type.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/eq.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/find.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/length.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/lt.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/move.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/not_eof.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/to_char_type.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/to_int_type.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar.t/types.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.specializations/nothing_to_do.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/char.traits.typedefs/nothing_to_do.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/char.traits/nothing_to_do.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/c.strings/cctype.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/c.strings/cstring.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/c.strings/cuchar.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/c.strings/cwchar.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/c.strings/cwctype.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/c.strings/version_cctype.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/c.strings/version_cstring.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/c.strings/version_cuchar.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/c.strings/version_cwchar.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/c.strings/version_cwctype.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/string.classes/typedefs.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/string.conversions/stod.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/string.conversions/stof.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/string.conversions/stoi.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/string.conversions/stold.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/string.conversions/stoll.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/string.conversions/stol.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/string.conversions/stoull.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/string.conversions/stoul.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/string.conversions/to_string.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/string.conversions/to_wstring.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/strings.general/nothing_to_do.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/strings/version.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/support/allocators.h
+sources/cxx-stl/llvm-libc++/libcxx/test/support/asan_testing.h
+sources/cxx-stl/llvm-libc++/libcxx/test/support/DefaultOnly.h
+sources/cxx-stl/llvm-libc++/libcxx/test/support/hexfloat.h
+sources/cxx-stl/llvm-libc++/libcxx/test/support/min_allocator.h
+sources/cxx-stl/llvm-libc++/libcxx/test/support/nasty_containers.hpp
+sources/cxx-stl/llvm-libc++/libcxx/test/support/nothing_to_do.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/support/platform_support.h
+sources/cxx-stl/llvm-libc++/libcxx/test/support/private_constructor.hpp
+sources/cxx-stl/llvm-libc++/libcxx/test/support/test_allocator.h
+sources/cxx-stl/llvm-libc++/libcxx/test/support/test_iterators.h
+sources/cxx-stl/llvm-libc++/libcxx/test/testit
+sources/cxx-stl/llvm-libc++/libcxx/test/testit_android
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.async/async.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.errors/default_error_condition.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.errors/equivalent_error_code_int.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.errors/equivalent_int_error_condition.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.errors/future_category.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.errors/make_error_code.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.errors/make_error_condition.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.future_error/code.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.future_error/types.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.future_error/what.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.overview/future_errc.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.overview/future_status.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.overview/is_error_code_enum_future_errc.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.overview/launch.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.promise/alloc_ctor.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.promise/copy_assign.fail.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.promise/copy_ctor.fail.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.promise/default.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.promise/dtor.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.promise/get_future.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.promise/move_assign.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.promise/move_ctor.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.promise/set_exception_at_thread_exit.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.promise/set_exception.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.promise/set_lvalue_at_thread_exit.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.promise/set_lvalue.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.promise/set_rvalue_at_thread_exit.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.promise/set_rvalue.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.promise/set_value_at_thread_exit_const.pass.cpp
+sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.promise/set_value_at_thread_exit_void.pass.cpp
 sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.promise/set_value_const.pass.cpp
 sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.promise/set_value_void.pass.cpp
 sources/cxx-stl/llvm-libc++/libcxx/test/thread/futures/futures.promise/swap.pass.cpp
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/ndkfiles.txt b/src/test/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/ndkfiles.txt
index d06793f..9fc996a 100644
--- a/src/test/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/ndkfiles.txt
+++ b/src/test/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/ndkfiles.txt
@@ -1,4 +1,446 @@
-id-21/arch-x86_64/usr/include/linux/netfilter/xt_helper.h
+orms/android-21/arch-x86_64/usr/include/asm-generic/unistd.h
+platforms/android-21/arch-x86_64/usr/include/asm/hw_breakpoint.h
+platforms/android-21/arch-x86_64/usr/include/asm/hyperv.h
+platforms/android-21/arch-x86_64/usr/include/asm/ioctl.h
+platforms/android-21/arch-x86_64/usr/include/asm/ioctls.h
+platforms/android-21/arch-x86_64/usr/include/asm/ipcbuf.h
+platforms/android-21/arch-x86_64/usr/include/asm/ist.h
+platforms/android-21/arch-x86_64/usr/include/asm/ldt.h
+platforms/android-21/arch-x86_64/usr/include/asm/mce.h
+platforms/android-21/arch-x86_64/usr/include/asm/mman.h
+platforms/android-21/arch-x86_64/usr/include/asm/msgbuf.h
+platforms/android-21/arch-x86_64/usr/include/asm/msr.h
+platforms/android-21/arch-x86_64/usr/include/asm/msr-index.h
+platforms/android-21/arch-x86_64/usr/include/asm/mtrr.h
+platforms/android-21/arch-x86_64/usr/include/asm/param.h
+platforms/android-21/arch-x86_64/usr/include/asm/perf_regs.h
+platforms/android-21/arch-x86_64/usr/include/asm/poll.h
+platforms/android-21/arch-x86_64/usr/include/asm/posix_types_32.h
+platforms/android-21/arch-x86_64/usr/include/asm/posix_types_64.h
+platforms/android-21/arch-x86_64/usr/include/asm/posix_types.h
+platforms/android-21/arch-x86_64/usr/include/asm/posix_types_x32.h
+platforms/android-21/arch-x86_64/usr/include/asm/prctl.h
+platforms/android-21/arch-x86_64/usr/include/asm/processor-flags.h
+platforms/android-21/arch-x86_64/usr/include/asm/ptrace-abi.h
+platforms/android-21/arch-x86_64/usr/include/asm/ptrace.h
+platforms/android-21/arch-x86_64/usr/include/asm/resource.h
+platforms/android-21/arch-x86_64/usr/include/asm/sembuf.h
+platforms/android-21/arch-x86_64/usr/include/asm/setup.h
+platforms/android-21/arch-x86_64/usr/include/asm/shmbuf.h
+platforms/android-21/arch-x86_64/usr/include/asm/sigcontext32.h
+platforms/android-21/arch-x86_64/usr/include/asm/sigcontext.h
+platforms/android-21/arch-x86_64/usr/include/asm/siginfo.h
+platforms/android-21/arch-x86_64/usr/include/asm/signal.h
+platforms/android-21/arch-x86_64/usr/include/asm/socket.h
+platforms/android-21/arch-x86_64/usr/include/asm/sockios.h
+platforms/android-21/arch-x86_64/usr/include/asm/statfs.h
+platforms/android-21/arch-x86_64/usr/include/asm/stat.h
+platforms/android-21/arch-x86_64/usr/include/asm/svm.h
+platforms/android-21/arch-x86_64/usr/include/asm/swab.h
+platforms/android-21/arch-x86_64/usr/include/asm/termbits.h
+platforms/android-21/arch-x86_64/usr/include/asm/termios.h
+platforms/android-21/arch-x86_64/usr/include/asm/types.h
+platforms/android-21/arch-x86_64/usr/include/asm/ucontext.h
+platforms/android-21/arch-x86_64/usr/include/asm/unistd_32.h
+platforms/android-21/arch-x86_64/usr/include/asm/unistd_64.h
+platforms/android-21/arch-x86_64/usr/include/asm/unistd.h
+platforms/android-21/arch-x86_64/usr/include/asm/unistd_x32.h
+platforms/android-21/arch-x86_64/usr/include/asm/vm86.h
+platforms/android-21/arch-x86_64/usr/include/asm/vmx.h
+platforms/android-21/arch-x86_64/usr/include/asm/vsyscall.h
+platforms/android-21/arch-x86_64/usr/include/assert.h
+platforms/android-21/arch-x86_64/usr/include/byteswap.h
+platforms/android-21/arch-x86_64/usr/include/complex.h
+platforms/android-21/arch-x86_64/usr/include/ctype.h
+platforms/android-21/arch-x86_64/usr/include/dirent.h
+platforms/android-21/arch-x86_64/usr/include/dlfcn.h
+platforms/android-21/arch-x86_64/usr/include/EGL/eglext.h
+platforms/android-21/arch-x86_64/usr/include/EGL/egl.h
+platforms/android-21/arch-x86_64/usr/include/EGL/eglplatform.h
+platforms/android-21/arch-x86_64/usr/include/elf.h
+platforms/android-21/arch-x86_64/usr/include/endian.h
+platforms/android-21/arch-x86_64/usr/include/err.h
+platforms/android-21/arch-x86_64/usr/include/errno.h
+platforms/android-21/arch-x86_64/usr/include/fcntl.h
+platforms/android-21/arch-x86_64/usr/include/features.h
+platforms/android-21/arch-x86_64/usr/include/fenv.h
+platforms/android-21/arch-x86_64/usr/include/fnmatch.h
+platforms/android-21/arch-x86_64/usr/include/fts.h
+platforms/android-21/arch-x86_64/usr/include/ftw.h
+platforms/android-21/arch-x86_64/usr/include/getopt.h
+platforms/android-21/arch-x86_64/usr/include/GLES2/gl2ext.h
+platforms/android-21/arch-x86_64/usr/include/GLES2/gl2.h
+platforms/android-21/arch-x86_64/usr/include/GLES2/gl2platform.h
+platforms/android-21/arch-x86_64/usr/include/GLES3/gl31.h
+platforms/android-21/arch-x86_64/usr/include/GLES3/gl3ext.h
+platforms/android-21/arch-x86_64/usr/include/GLES3/gl3.h
+platforms/android-21/arch-x86_64/usr/include/GLES3/gl3platform.h
+platforms/android-21/arch-x86_64/usr/include/GLES/glext.h
+platforms/android-21/arch-x86_64/usr/include/GLES/gl.h
+platforms/android-21/arch-x86_64/usr/include/GLES/glplatform.h
+platforms/android-21/arch-x86_64/usr/include/grp.h
+platforms/android-21/arch-x86_64/usr/include/i386/elf_machdep.h
+platforms/android-21/arch-x86_64/usr/include/inttypes.h
+platforms/android-21/arch-x86_64/usr/include/jni.h
+platforms/android-21/arch-x86_64/usr/include/KHR/khrplatform.h
+platforms/android-21/arch-x86_64/usr/include/lastlog.h
+platforms/android-21/arch-x86_64/usr/include/libgen.h
+platforms/android-21/arch-x86_64/usr/include/limits.h
+platforms/android-21/arch-x86_64/usr/include/link.h
+platforms/android-21/arch-x86_64/usr/include/linux/acct.h
+platforms/android-21/arch-x86_64/usr/include/linux/adb.h
+platforms/android-21/arch-x86_64/usr/include/linux/adfs_fs.h
+platforms/android-21/arch-x86_64/usr/include/linux/affs_hardblocks.h
+platforms/android-21/arch-x86_64/usr/include/linux/agpgart.h
+platforms/android-21/arch-x86_64/usr/include/linux/aio_abi.h
+platforms/android-21/arch-x86_64/usr/include/linux/android_alarm.h
+platforms/android-21/arch-x86_64/usr/include/linux/a.out.h
+platforms/android-21/arch-x86_64/usr/include/linux/apm_bios.h
+platforms/android-21/arch-x86_64/usr/include/linux/arcfb.h
+platforms/android-21/arch-x86_64/usr/include/linux/ashmem.h
+platforms/android-21/arch-x86_64/usr/include/linux/atalk.h
+platforms/android-21/arch-x86_64/usr/include/linux/atmapi.h
+platforms/android-21/arch-x86_64/usr/include/linux/atmarp.h
+platforms/android-21/arch-x86_64/usr/include/linux/atmbr2684.h
+platforms/android-21/arch-x86_64/usr/include/linux/atmclip.h
+platforms/android-21/arch-x86_64/usr/include/linux/atmdev.h
+platforms/android-21/arch-x86_64/usr/include/linux/atm_eni.h
+platforms/android-21/arch-x86_64/usr/include/linux/atm.h
+platforms/android-21/arch-x86_64/usr/include/linux/atm_he.h
+platforms/android-21/arch-x86_64/usr/include/linux/atm_idt77105.h
+platforms/android-21/arch-x86_64/usr/include/linux/atmioc.h
+platforms/android-21/arch-x86_64/usr/include/linux/atmlec.h
+platforms/android-21/arch-x86_64/usr/include/linux/atmmpc.h
+platforms/android-21/arch-x86_64/usr/include/linux/atm_nicstar.h
+platforms/android-21/arch-x86_64/usr/include/linux/atmppp.h
+platforms/android-21/arch-x86_64/usr/include/linux/atmsap.h
+platforms/android-21/arch-x86_64/usr/include/linux/atmsvc.h
+platforms/android-21/arch-x86_64/usr/include/linux/atm_tcp.h
+platforms/android-21/arch-x86_64/usr/include/linux/atm_zatm.h
+platforms/android-21/arch-x86_64/usr/include/linux/audit.h
+platforms/android-21/arch-x86_64/usr/include/linux/auto_fs4.h
+platforms/android-21/arch-x86_64/usr/include/linux/auto_fs.h
+platforms/android-21/arch-x86_64/usr/include/linux/auxvec.h
+platforms/android-21/arch-x86_64/usr/include/linux/ax25.h
+platforms/android-21/arch-x86_64/usr/include/linux/b1lli.h
+platforms/android-21/arch-x86_64/usr/include/linux/baycom.h
+platforms/android-21/arch-x86_64/usr/include/linux/bcache.h
+platforms/android-21/arch-x86_64/usr/include/linux/bcm933xx_hcs.h
+platforms/android-21/arch-x86_64/usr/include/linux/bfs_fs.h
+platforms/android-21/arch-x86_64/usr/include/linux/binder.h
+platforms/android-21/arch-x86_64/usr/include/linux/binfmts.h
+platforms/android-21/arch-x86_64/usr/include/linux/blkpg.h
+platforms/android-21/arch-x86_64/usr/include/linux/blktrace_api.h
+platforms/android-21/arch-x86_64/usr/include/linux/bpqether.h
+platforms/android-21/arch-x86_64/usr/include/linux/bsg.h
+platforms/android-21/arch-x86_64/usr/include/linux/btrfs.h
+platforms/android-21/arch-x86_64/usr/include/linux/byteorder/big_endian.h
+platforms/android-21/arch-x86_64/usr/include/linux/byteorder/little_endian.h
+platforms/android-21/arch-x86_64/usr/include/linux/caif/caif_socket.h
+platforms/android-21/arch-x86_64/usr/include/linux/caif/if_caif.h
+platforms/android-21/arch-x86_64/usr/include/linux/can/bcm.h
+platforms/android-21/arch-x86_64/usr/include/linux/can/error.h
+platforms/android-21/arch-x86_64/usr/include/linux/can/gw.h
+platforms/android-21/arch-x86_64/usr/include/linux/can.h
+platforms/android-21/arch-x86_64/usr/include/linux/can/netlink.h
+platforms/android-21/arch-x86_64/usr/include/linux/can/raw.h
+platforms/android-21/arch-x86_64/usr/include/linux/capability.h
+platforms/android-21/arch-x86_64/usr/include/linux/capi.h
+platforms/android-21/arch-x86_64/usr/include/linux/cciss_defs.h
+platforms/android-21/arch-x86_64/usr/include/linux/cciss_ioctl.h
+platforms/android-21/arch-x86_64/usr/include/linux/cdrom.h
+platforms/android-21/arch-x86_64/usr/include/linux/cgroupstats.h
+platforms/android-21/arch-x86_64/usr/include/linux/chio.h
+platforms/android-21/arch-x86_64/usr/include/linux/cifs/cifs_mount.h
+platforms/android-21/arch-x86_64/usr/include/linux/cm4000_cs.h
+platforms/android-21/arch-x86_64/usr/include/linux/cn_proc.h
+platforms/android-21/arch-x86_64/usr/include/linux/coda.h
+platforms/android-21/arch-x86_64/usr/include/linux/coda_psdev.h
+platforms/android-21/arch-x86_64/usr/include/linux/coff.h
+platforms/android-21/arch-x86_64/usr/include/linux/compiler.h
+platforms/android-21/arch-x86_64/usr/include/linux/connector.h
+platforms/android-21/arch-x86_64/usr/include/linux/const.h
+platforms/android-21/arch-x86_64/usr/include/linux/cramfs_fs.h
+platforms/android-21/arch-x86_64/usr/include/linux/cuda.h
+platforms/android-21/arch-x86_64/usr/include/linux/cyclades.h
+platforms/android-21/arch-x86_64/usr/include/linux/cycx_cfm.h
+platforms/android-21/arch-x86_64/usr/include/linux/dcbnl.h
+platforms/android-21/arch-x86_64/usr/include/linux/dccp.h
+platforms/android-21/arch-x86_64/usr/include/linux/dlmconstants.h
+platforms/android-21/arch-x86_64/usr/include/linux/dlm_device.h
+platforms/android-21/arch-x86_64/usr/include/linux/dlm.h
+platforms/android-21/arch-x86_64/usr/include/linux/dlm_netlink.h
+platforms/android-21/arch-x86_64/usr/include/linux/dlm_plock.h
+platforms/android-21/arch-x86_64/usr/include/linux/dm-ioctl.h
+platforms/android-21/arch-x86_64/usr/include/linux/dm-log-userspace.h
+platforms/android-21/arch-x86_64/usr/include/linux/dn.h
+platforms/android-21/arch-x86_64/usr/include/linux/dqblk_xfs.h
+platforms/android-21/arch-x86_64/usr/include/linux/dvb/audio.h
+platforms/android-21/arch-x86_64/usr/include/linux/dvb/ca.h
+platforms/android-21/arch-x86_64/usr/include/linux/dvb/dmx.h
+platforms/android-21/arch-x86_64/usr/include/linux/dvb/frontend.h
+platforms/android-21/arch-x86_64/usr/include/linux/dvb/net.h
+platforms/android-21/arch-x86_64/usr/include/linux/dvb/osd.h
+platforms/android-21/arch-x86_64/usr/include/linux/dvb/version.h
+platforms/android-21/arch-x86_64/usr/include/linux/dvb/video.h
+platforms/android-21/arch-x86_64/usr/include/linux/edd.h
+platforms/android-21/arch-x86_64/usr/include/linux/efs_fs_sb.h
+platforms/android-21/arch-x86_64/usr/include/linux/elfcore.h
+platforms/android-21/arch-x86_64/usr/include/linux/elf-em.h
+platforms/android-21/arch-x86_64/usr/include/linux/elf-fdpic.h
+platforms/android-21/arch-x86_64/usr/include/linux/elf.h
+platforms/android-21/arch-x86_64/usr/include/linux/errno.h
+platforms/android-21/arch-x86_64/usr/include/linux/errqueue.h
+platforms/android-21/arch-x86_64/usr/include/linux/ethtool.h
+platforms/android-21/arch-x86_64/usr/include/linux/eventpoll.h
+platforms/android-21/arch-x86_64/usr/include/linux/fadvise.h
+platforms/android-21/arch-x86_64/usr/include/linux/falloc.h
+platforms/android-21/arch-x86_64/usr/include/linux/fanotify.h
+platforms/android-21/arch-x86_64/usr/include/linux/fb.h
+platforms/android-21/arch-x86_64/usr/include/linux/fcntl.h
+platforms/android-21/arch-x86_64/usr/include/linux/fd.h
+platforms/android-21/arch-x86_64/usr/include/linux/fdreg.h
+platforms/android-21/arch-x86_64/usr/include/linux/fib_rules.h
+platforms/android-21/arch-x86_64/usr/include/linux/fiemap.h
+platforms/android-21/arch-x86_64/usr/include/linux/filter.h
+platforms/android-21/arch-x86_64/usr/include/linux/firewire-cdev.h
+platforms/android-21/arch-x86_64/usr/include/linux/firewire-constants.h
+platforms/android-21/arch-x86_64/usr/include/linux/flat.h
+platforms/android-21/arch-x86_64/usr/include/linux/fs.h
+platforms/android-21/arch-x86_64/usr/include/linux/fsl_hypervisor.h
+platforms/android-21/arch-x86_64/usr/include/linux/fuse.h
+platforms/android-21/arch-x86_64/usr/include/linux/futex.h
+platforms/android-21/arch-x86_64/usr/include/linux/gameport.h
+platforms/android-21/arch-x86_64/usr/include/linux/genetlink.h
+platforms/android-21/arch-x86_64/usr/include/linux/gen_stats.h
+platforms/android-21/arch-x86_64/usr/include/linux/genwqe/genwqe_card.h
+platforms/android-21/arch-x86_64/usr/include/linux/gfs2_ondisk.h
+platforms/android-21/arch-x86_64/usr/include/linux/gigaset_dev.h
+platforms/android-21/arch-x86_64/usr/include/linux/hash_info.h
+platforms/android-21/arch-x86_64/usr/include/linux/hdlcdrv.h
+platforms/android-21/arch-x86_64/usr/include/linux/hdlc.h
+platforms/android-21/arch-x86_64/usr/include/linux/hdlc/ioctl.h
+platforms/android-21/arch-x86_64/usr/include/linux/hdreg.h
+platforms/android-21/arch-x86_64/usr/include/linux/hiddev.h
+platforms/android-21/arch-x86_64/usr/include/linux/hid.h
+platforms/android-21/arch-x86_64/usr/include/linux/hidraw.h
+platforms/android-21/arch-x86_64/usr/include/linux/hpet.h
+platforms/android-21/arch-x86_64/usr/include/linux/hsi/hsi_char.h
+platforms/android-21/arch-x86_64/usr/include/linux/hsr_netlink.h
+platforms/android-21/arch-x86_64/usr/include/linux/hw_breakpoint.h
+platforms/android-21/arch-x86_64/usr/include/linux/hysdn_if.h
+platforms/android-21/arch-x86_64/usr/include/linux/i2c-dev.h
+platforms/android-21/arch-x86_64/usr/include/linux/i2c.h
+platforms/android-21/arch-x86_64/usr/include/linux/i2o-dev.h
+platforms/android-21/arch-x86_64/usr/include/linux/i8k.h
+platforms/android-21/arch-x86_64/usr/include/linux/icmp.h
+platforms/android-21/arch-x86_64/usr/include/linux/icmpv6.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_addr.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_addrlabel.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_alg.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_arcnet.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_arp.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_bonding.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_bridge.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_cablemodem.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_eql.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_ether.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_fc.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_fddi.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_frad.h
+platforms/android-21/arch-x86_64/usr/include/linux/if.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_hippi.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_infiniband.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_link.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_ltalk.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_packet.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_phonet.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_plip.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_ppp.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_pppol2tp.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_pppolac.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_pppopns.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_pppox.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_slip.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_team.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_tun.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_tunnel.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_vlan.h
+platforms/android-21/arch-x86_64/usr/include/linux/if_x25.h
+platforms/android-21/arch-x86_64/usr/include/linux/igmp.h
+platforms/android-21/arch-x86_64/usr/include/linux/in6.h
+platforms/android-21/arch-x86_64/usr/include/linux/inet_diag.h
+platforms/android-21/arch-x86_64/usr/include/linux/in.h
+platforms/android-21/arch-x86_64/usr/include/linux/inotify.h
+platforms/android-21/arch-x86_64/usr/include/linux/input.h
+platforms/android-21/arch-x86_64/usr/include/linux/in_route.h
+platforms/android-21/arch-x86_64/usr/include/linux/ioctl.h
+platforms/android-21/arch-x86_64/usr/include/linux/ion.h
+platforms/android-21/arch-x86_64/usr/include/linux/ioprio.h
+platforms/android-21/arch-x86_64/usr/include/linux/ip6_tunnel.h
+platforms/android-21/arch-x86_64/usr/include/linux/ipc.h
+platforms/android-21/arch-x86_64/usr/include/linux/ip.h
+platforms/android-21/arch-x86_64/usr/include/linux/ipmi.h
+platforms/android-21/arch-x86_64/usr/include/linux/ipmi_msgdefs.h
+platforms/android-21/arch-x86_64/usr/include/linux/ipsec.h
+platforms/android-21/arch-x86_64/usr/include/linux/ipv6.h
+platforms/android-21/arch-x86_64/usr/include/linux/ipv6_route.h
+platforms/android-21/arch-x86_64/usr/include/linux/ip_vs.h
+platforms/android-21/arch-x86_64/usr/include/linux/ipx.h
+platforms/android-21/arch-x86_64/usr/include/linux/irda.h
+platforms/android-21/arch-x86_64/usr/include/linux/irqnr.h
+platforms/android-21/arch-x86_64/usr/include/linux/isdn/capicmd.h
+platforms/android-21/arch-x86_64/usr/include/linux/isdn_divertif.h
+platforms/android-21/arch-x86_64/usr/include/linux/isdn.h
+platforms/android-21/arch-x86_64/usr/include/linux/isdnif.h
+platforms/android-21/arch-x86_64/usr/include/linux/isdn_ppp.h
+platforms/android-21/arch-x86_64/usr/include/linux/iso_fs.h
+platforms/android-21/arch-x86_64/usr/include/linux/ivtvfb.h
+platforms/android-21/arch-x86_64/usr/include/linux/ivtv.h
+platforms/android-21/arch-x86_64/usr/include/linux/ixjuser.h
+platforms/android-21/arch-x86_64/usr/include/linux/jffs2.h
+platforms/android-21/arch-x86_64/usr/include/linux/joystick.h
+platforms/android-21/arch-x86_64/usr/include/linux/kdev_t.h
+platforms/android-21/arch-x86_64/usr/include/linux/kd.h
+platforms/android-21/arch-x86_64/usr/include/linux/kernelcapi.h
+platforms/android-21/arch-x86_64/usr/include/linux/kernel.h
+platforms/android-21/arch-x86_64/usr/include/linux/kernel-page-flags.h
+platforms/android-21/arch-x86_64/usr/include/linux/kexec.h
+platforms/android-21/arch-x86_64/usr/include/linux/keyboard.h
+platforms/android-21/arch-x86_64/usr/include/linux/keychord.h
+platforms/android-21/arch-x86_64/usr/include/linux/keyctl.h
+platforms/android-21/arch-x86_64/usr/include/linux/l2tp.h
+platforms/android-21/arch-x86_64/usr/include/linux/libc-compat.h
+platforms/android-21/arch-x86_64/usr/include/linux/limits.h
+platforms/android-21/arch-x86_64/usr/include/linux/llc.h
+platforms/android-21/arch-x86_64/usr/include/linux/loop.h
+platforms/android-21/arch-x86_64/usr/include/linux/lp.h
+platforms/android-21/arch-x86_64/usr/include/linux/magic.h
+platforms/android-21/arch-x86_64/usr/include/linux/major.h
+platforms/android-21/arch-x86_64/usr/include/linux/map_to_7segment.h
+platforms/android-21/arch-x86_64/usr/include/linux/matroxfb.h
+platforms/android-21/arch-x86_64/usr/include/linux/mdio.h
+platforms/android-21/arch-x86_64/usr/include/linux/media.h
+platforms/android-21/arch-x86_64/usr/include/linux/mei.h
+platforms/android-21/arch-x86_64/usr/include/linux/mempolicy.h
+platforms/android-21/arch-x86_64/usr/include/linux/meye.h
+platforms/android-21/arch-x86_64/usr/include/linux/mic_common.h
+platforms/android-21/arch-x86_64/usr/include/linux/mic_ioctl.h
+platforms/android-21/arch-x86_64/usr/include/linux/mii.h
+platforms/android-21/arch-x86_64/usr/include/linux/minix_fs.h
+platforms/android-21/arch-x86_64/usr/include/linux/mman.h
+platforms/android-21/arch-x86_64/usr/include/linux/mmc/ioctl.h
+platforms/android-21/arch-x86_64/usr/include/linux/mmtimer.h
+platforms/android-21/arch-x86_64/usr/include/linux/module.h
+platforms/android-21/arch-x86_64/usr/include/linux/mqueue.h
+platforms/android-21/arch-x86_64/usr/include/linux/mroute6.h
+platforms/android-21/arch-x86_64/usr/include/linux/mroute.h
+platforms/android-21/arch-x86_64/usr/include/linux/msdos_fs.h
+platforms/android-21/arch-x86_64/usr/include/linux/msg.h
+platforms/android-21/arch-x86_64/usr/include/linux/mtio.h
+platforms/android-21/arch-x86_64/usr/include/linux/nbd.h
+platforms/android-21/arch-x86_64/usr/include/linux/ncp_fs.h
+platforms/android-21/arch-x86_64/usr/include/linux/ncp.h
+platforms/android-21/arch-x86_64/usr/include/linux/ncp_mount.h
+platforms/android-21/arch-x86_64/usr/include/linux/ncp_no.h
+platforms/android-21/arch-x86_64/usr/include/linux/neighbour.h
+platforms/android-21/arch-x86_64/usr/include/linux/netconf.h
+platforms/android-21/arch-x86_64/usr/include/linux/netdevice.h
+platforms/android-21/arch-x86_64/usr/include/linux/net_dropmon.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_arp/arp_tables.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_arp/arpt_mangle.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_arp.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_bridge/ebt_802_3.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_bridge/ebtables.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_bridge/ebt_among.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_bridge/ebt_arp.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_bridge/ebt_arpreply.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_bridge/ebt_ip6.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_bridge/ebt_ip.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_bridge/ebt_limit.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_bridge/ebt_log.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_bridge/ebt_mark_m.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_bridge/ebt_mark_t.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_bridge/ebt_nat.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_bridge/ebt_nflog.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_bridge/ebt_pkttype.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_bridge/ebt_redirect.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_bridge/ebt_stp.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_bridge/ebt_ulog.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_bridge/ebt_vlan.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_bridge.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_decnet.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/ipset/ip_set_bitmap.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/ipset/ip_set.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/ipset/ip_set_hash.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/ipset/ip_set_list.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_ipv4.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_ipv4/ip_tables.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_ipv4/ipt_ah.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_ipv4/ipt_ecn.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_ipv4/ipt_ECN.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_ipv4/ipt_LOG.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_ipv4/ipt_REJECT.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_ipv4/ipt_ttl.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_ipv4/ipt_TTL.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_ipv4/ipt_ULOG.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_ipv6.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_ipv6/ip6_tables.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_ipv6/ip6t_ah.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_ipv6/ip6t_frag.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_ipv6/ip6t_hl.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_ipv6/ip6t_HL.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_ipv6/ip6t_ipv6header.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_ipv6/ip6t_LOG.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_ipv6/ip6t_mh.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_ipv6/ip6t_NPT.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_ipv6/ip6t_opts.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_ipv6/ip6t_REJECT.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter_ipv6/ip6t_rt.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/nf_conntrack_common.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/nf_conntrack_ftp.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/nf_conntrack_sctp.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/nf_conntrack_tcp.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/nf_conntrack_tuple_common.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/nf_nat.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/nfnetlink_acct.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/nfnetlink_compat.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/nfnetlink_conntrack.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/nfnetlink_cthelper.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/nfnetlink_cttimeout.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/nfnetlink.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/nfnetlink_log.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/nfnetlink_queue.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/nf_tables_compat.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/nf_tables.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/x_tables.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_addrtype.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_AUDIT.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_bpf.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_cgroup.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_CHECKSUM.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_CLASSIFY.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_cluster.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_comment.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_connbytes.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_connlabel.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_connlimit.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_connmark.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_CONNMARK.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_CONNSECMARK.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_conntrack.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_cpu.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_CT.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_dccp.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_devgroup.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_dscp.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_DSCP.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_ecn.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_esp.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_hashlimit.h
+platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_helper.h
 platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_HMARK.h
 platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_IDLETIMER.h
 platforms/android-21/arch-x86_64/usr/include/linux/netfilter/xt_ipcomp.h
diff --git a/src/test/java/com/google/devtools/build/lib/packages/BuildTypeTest.java b/src/test/java/com/google/devtools/build/lib/packages/BuildTypeTest.java
index 63c15d9..f13b682 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/BuildTypeTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/BuildTypeTest.java
@@ -1,8 +1,4 @@
-// Copyright 2015 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
+u may obtain a copy of the License at
 //
 //    http://www.apache.org/licenses/LICENSE-2.0
 //
diff --git a/src/test/java/com/google/devtools/build/lib/packages/ConfigurationFragmentPolicyTest.java b/src/test/java/com/google/devtools/build/lib/packages/ConfigurationFragmentPolicyTest.java
index dcd3ea0..a3ea359 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/ConfigurationFragmentPolicyTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/ConfigurationFragmentPolicyTest.java
@@ -1,4 +1,89 @@
-(policy.isLegalConfigurationFragment(Integer.class, ConfigurationTransition.NONE))
+// Copyright 2016 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//    http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package com.google.devtools.build.lib.packages;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import com.google.common.collect.ImmutableSet;
+import com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition;
+import com.google.devtools.build.lib.packages.ConfigurationFragmentPolicy.MissingFragmentPolicy;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+/**
+ * Tests for the ConfigurationFragmentPolicy builder and methods.
+ */
+@RunWith(JUnit4.class)
+public final class ConfigurationFragmentPolicyTest {
+
+  @SkylarkModule(name = "test_fragment", doc = "first fragment")
+  private static final class TestFragment {}
+
+  @SkylarkModule(name = "other_fragment", doc = "second fragment")
+  private static final class OtherFragment {}
+
+  @SkylarkModule(name = "unknown_fragment", doc = "useless waste of permgen")
+  private static final class UnknownFragment {}
+
+  @Test
+  public void testMissingFragmentPolicy() throws Exception {
+    ConfigurationFragmentPolicy policy =
+        new ConfigurationFragmentPolicy.Builder()
+            .setMissingFragmentPolicy(MissingFragmentPolicy.IGNORE)
+            .build();
+
+    assertThat(policy.getMissingFragmentPolicy()).isEqualTo(MissingFragmentPolicy.IGNORE);
+
+    ConfigurationFragmentPolicy otherPolicy =
+        new ConfigurationFragmentPolicy.Builder()
+            .setMissingFragmentPolicy(MissingFragmentPolicy.CREATE_FAIL_ACTIONS)
+            .build();
+
+    assertThat(otherPolicy.getMissingFragmentPolicy())
+        .isEqualTo(MissingFragmentPolicy.CREATE_FAIL_ACTIONS);
+  }
+
+  @Test
+  public void testRequiresConfigurationFragments_AddsToRequiredSet() throws Exception {
+    // Although these aren't configuration fragments, there are no requirements as to what the class
+    // has to be, so...
+    ConfigurationFragmentPolicy policy =
+        new ConfigurationFragmentPolicy.Builder()
+            .requiresConfigurationFragments(ImmutableSet.<Class<?>>of(Integer.class, String.class))
+            .requiresConfigurationFragments(ImmutableSet.<Class<?>>of(String.class, Long.class))
+            .build();
+
+    assertThat(policy.getRequiredConfigurationFragments())
+        .containsExactly(Integer.class, String.class, Long.class);
+  }
+
+  @Test
+  public void testRequiresConfigurationFragments_RequiredAndLegalForSpecifiedConfiguration()
+      throws Exception {
+    ConfigurationFragmentPolicy policy =
+        new ConfigurationFragmentPolicy.Builder()
+            .requiresConfigurationFragments(ImmutableSet.<Class<?>>of(Integer.class))
+            .requiresHostConfigurationFragments(ImmutableSet.<Class<?>>of(Long.class))
+            .build();
+
+    assertThat(policy.getRequiredConfigurationFragments()).containsAllOf(Integer.class, Long.class);
+
+    assertThat(policy.isLegalConfigurationFragment(Integer.class)).isTrue();
+    assertThat(policy.isLegalConfigurationFragment(Integer.class, ConfigurationTransition.NONE))
         .isTrue();
     // TODO(mstaib): .isFalse() when dynamic configurations care which configuration a fragment was
     // specified for