diff options
author | 2017-05-01 17:41:12 +0200 | |
---|---|---|
committer | 2017-05-02 11:25:44 +0200 | |
commit | 248581e8c72687c85b5c41edaea6780c8701aa55 (patch) | |
tree | f62dd1831c79c9c886cbeeebefedb1e3319f155a /src/test | |
parent | 38b835097f9ae9a6062172b8a33ec2e2d1edde20 (diff) |
Move platform providers to a new package to break cyclic dependencies.
Part of #2219.
Change-Id: I87c7bc9fbfb38d3dbdf193b46247901d0f2a838d
PiperOrigin-RevId: 154719063
Diffstat (limited to 'src/test')
11 files changed, 859 insertions, 184 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/BUILD b/src/test/java/com/google/devtools/build/lib/BUILD index 77a466052a..3b92f212de 100644 --- a/src/test/java/com/google/devtools/build/lib/BUILD +++ b/src/test/java/com/google/devtools/build/lib/BUILD @@ -38,6 +38,7 @@ filegroup( "//src/test/java/com/google/devtools/build/lib/skyframe:srcs", "//src/test/java/com/google/devtools/build/lib/rules/android:srcs", "//src/test/java/com/google/devtools/build/lib/rules/config:srcs", + "//src/test/java/com/google/devtools/build/lib/analysis/platform:srcs", "//src/test/java/com/google/devtools/build/lib/rules/platform:srcs", "//src/test/java/com/google/devtools/build/lib/rules/repository:srcs", "//src/test/java/com/google/devtools/build/lib/bazel/repository:srcs", diff --git a/src/test/java/com/google/devtools/build/lib/analysis/platform/BUILD b/src/test/java/com/google/devtools/build/lib/analysis/platform/BUILD new file mode 100644 index 0000000000..5993fc5516 --- /dev/null +++ b/src/test/java/com/google/devtools/build/lib/analysis/platform/BUILD @@ -0,0 +1,26 @@ +filegroup( + name = "srcs", + srcs = glob(["**"]), + visibility = ["//src/test/java/com/google/devtools/build/lib:__pkg__"], +) + +java_test( + name = "PlatformAnalysisTests", + srcs = glob(["*.java"]), + test_class = "com.google.devtools.build.lib.AllTests", + deps = [ + "//src/main/java/com/google/devtools/build/lib:events", + "//src/main/java/com/google/devtools/build/lib:os_util", + "//src/main/java/com/google/devtools/build/lib:syntax", + "//src/main/java/com/google/devtools/build/lib:util", + "//src/main/java/com/google/devtools/build/lib/analysis/platform", + "//src/main/java/com/google/devtools/build/lib/cmdline", + "//src/test/java/com/google/devtools/build/lib:analysis_testutil", + "//src/test/java/com/google/devtools/build/lib:packages_testutil", + "//src/test/java/com/google/devtools/build/lib/skylark:testutil", + "//third_party:guava", + "//third_party:guava-testlib", + "//third_party:junit4", + "//third_party:truth", + ], +) diff --git a/src/test/java/com/google/devtools/build/lib/analysis/platform/PlatformProvidersTest.java b/src/test/java/com/google/devtools/build/lib/analysis/platform/PlatformProvidersTest.java new file mode 100644 index 0000000000..235532c2d8 --- /dev/null +++ b/src/test/java/com/google/devtools/build/lib/analysis/platform/PlatformProvidersTest.java @@ -0,0 +1,150 @@ +// Copyright 2017 The Bazel Authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package com.google.devtools.build.lib.analysis.platform; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.testing.EqualsTester; +import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; +import com.google.devtools.build.lib.events.Location; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +/** Tests of platform providers. */ +@RunWith(JUnit4.class) +public class PlatformProvidersTest extends BuildViewTestCase { + @Rule public ExpectedException expectedException = ExpectedException.none(); + + @Test + public void constraintSetting_equalsTester() { + new EqualsTester() + .addEqualityGroup( + ConstraintSettingInfo.create(makeLabel("//constraint:basic")), + ConstraintSettingInfo.create(makeLabel("//constraint:basic"))) + .addEqualityGroup(ConstraintSettingInfo.create(makeLabel("//constraint:other"))) + .testEquals(); + } + + @Test + public void constraintValue_equalsTester() { + ConstraintSettingInfo setting1 = ConstraintSettingInfo.create(makeLabel("//constraint:basic")); + ConstraintSettingInfo setting2 = ConstraintSettingInfo.create(makeLabel("//constraint:other")); + new EqualsTester() + .addEqualityGroup( + // Base case. + ConstraintValueInfo.create(setting1, makeLabel("//constraint:value")), + ConstraintValueInfo.create(setting1, makeLabel("//constraint:value"))) + .addEqualityGroup( + // Different label. + ConstraintValueInfo.create(setting1, makeLabel("//constraint:otherValue"))) + .addEqualityGroup( + // Different setting. + ConstraintValueInfo.create(setting2, makeLabel("//constraint:ovalue"))) + .testEquals(); + } + + @Test + public void platformInfo_overlappingConstraintsError() throws Exception { + ConstraintSettingInfo setting = ConstraintSettingInfo.create(makeLabel("//constraint:basic")); + + ConstraintValueInfo value1 = ConstraintValueInfo.create(setting, makeLabel("//constraint:foo")); + ConstraintValueInfo value2 = ConstraintValueInfo.create(setting, makeLabel("//constraint:bar")); + + PlatformInfo.Builder builder = + PlatformInfo.builder().addConstraint(value1).addConstraint(value2); + + expectedException.expect(PlatformInfo.DuplicateConstraintException.class); + expectedException.expectMessage( + "Duplicate constraint_values for constraint_setting //constraint:basic: " + + "//constraint:foo, //constraint:bar"); + builder.build(); + } + + @Test + public void platformInfo_equalsTester() throws Exception { + ConstraintSettingInfo setting1 = ConstraintSettingInfo.create(makeLabel("//constraint:basic")); + ConstraintSettingInfo setting2 = ConstraintSettingInfo.create(makeLabel("//constraint:other")); + + ConstraintValueInfo value1 = + ConstraintValueInfo.create(setting1, makeLabel("//constraint:value1")); + ConstraintValueInfo value2 = + ConstraintValueInfo.create(setting2, makeLabel("//constraint:value2")); + ConstraintValueInfo value3 = + ConstraintValueInfo.create(setting2, makeLabel("//constraint:value3")); + + new EqualsTester() + .addEqualityGroup( + // Base case. + PlatformInfo.builder().addConstraint(value1).addConstraint(value2).build(), + PlatformInfo.builder().addConstraint(value1).addConstraint(value2).build(), + PlatformInfo.builder() + .addConstraint(value1) + .addConstraint(value2) + .addRemoteExecutionProperty("key", "val") // execution properties are ignored. + .build()) + .addEqualityGroup( + // Extra constraint. + PlatformInfo.builder().addConstraint(value1).addConstraint(value3).build()) + .addEqualityGroup( + // Missing constraint. + PlatformInfo.builder().addConstraint(value1).build()) + .testEquals(); + } + + @Test + public void toolchainInfo_equalsTester() throws Exception { + ConstraintSettingInfo setting1 = ConstraintSettingInfo.create(makeLabel("//constraint:basic")); + ConstraintSettingInfo setting2 = ConstraintSettingInfo.create(makeLabel("//constraint:other")); + + ConstraintValueInfo value1 = + ConstraintValueInfo.create(setting1, makeLabel("//constraint:value1")); + ConstraintValueInfo value2 = + ConstraintValueInfo.create(setting2, makeLabel("//constraint:value2")); + ConstraintValueInfo value3 = + ConstraintValueInfo.create(setting2, makeLabel("//constraint:value3")); + + new EqualsTester() + .addEqualityGroup( + // Base case. + new ToolchainInfo( + ImmutableList.of(value1, value2), + ImmutableList.of(value1, value3), + ImmutableMap.<String, Object>of("foo", "val1", "bar", "val2"), + Location.BUILTIN), + new ToolchainInfo( + ImmutableList.of(value1, value2), + ImmutableList.of(value1, value3), + ImmutableMap.<String, Object>of("foo", "val1", "bar", "val2"), + Location.BUILTIN)) + .addEqualityGroup( + // Different target constraints. + new ToolchainInfo( + ImmutableList.of(value1, value2), + ImmutableList.of(value1, value2), + ImmutableMap.<String, Object>of("foo", "val1", "bar", "val2"), + Location.BUILTIN)) + .addEqualityGroup( + // Different data. + new ToolchainInfo( + ImmutableList.of(value1, value2), + ImmutableList.of(value1, value3), + ImmutableMap.<String, Object>of("foo", "val1", "bar", "val3"), + Location.BUILTIN)) + .testEquals(); + } +} 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 b56ae99fee..068f9613c4 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,154 @@ -es/rebind_alloc.pass.cpp +thread.thread.class/types.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/thread/thread.threads/thread.thread.this/get_id.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/thread/thread.threads/thread.thread.this/sleep_for.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/thread/thread.threads/thread.thread.this/sleep_until.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/thread/thread.threads/thread.thread.this/yield.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/thread/thread.threads/version.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/allocator.adaptor/allocator.adaptor.cnstr/allocs.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/allocator.adaptor/allocator.adaptor.cnstr/converting_copy.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/allocator.adaptor/allocator.adaptor.cnstr/converting_move.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/allocator.adaptor/allocator.adaptor.cnstr/copy.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/allocator.adaptor/allocator.adaptor.cnstr/default.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/allocator.adaptor/allocator.adaptor.members/allocate_size_hint.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/allocator.adaptor/allocator.adaptor.members/allocate_size.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/allocator.adaptor/allocator.adaptor.members/construct.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/allocator.adaptor/allocator.adaptor.members/deallocate.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/allocator.adaptor/allocator.adaptor.members/destroy.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/allocator.adaptor/allocator.adaptor.members/inner_allocator.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/allocator.adaptor/allocator.adaptor.members/max_size.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/allocator.adaptor/allocator.adaptor.members/outer_allocator.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/allocator.adaptor/allocator.adaptor.members/select_on_container_copy_construction.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/allocator.adaptor/allocator.adaptor.types/allocator_pointers.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/allocator.adaptor/allocator.adaptor.types/inner_allocator_type.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/allocator.adaptor/allocator.adaptor.types/propagate_on_container_copy_assignment.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/allocator.adaptor/allocator.adaptor.types/propagate_on_container_move_assignment.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/allocator.adaptor/allocator.adaptor.types/propagate_on_container_swap.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/allocator.adaptor/scoped.adaptor.operators/eq.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/allocator.adaptor/types.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/date.time/tested_elsewhere.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/arithmetic.operations/divides.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/arithmetic.operations/minus.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/arithmetic.operations/modulus.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/arithmetic.operations/multiplies.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/arithmetic.operations/negate.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/arithmetic.operations/plus.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/arithmetic.operations/transparent.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.bind/copy.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_int_0.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_lvalue.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_rvalue.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_void_0.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.bind/nested.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.isbind/is_bind_expression.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.isbind/is_placeholder.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/bind/func.bind/func.bind.place/placeholders.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/bind/func.bind/nothing_to_do.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/bind/nothing_to_do.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/bitwise.operations/bit_and.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/bitwise.operations/bit_not.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/bitwise.operations/bit_or.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/bitwise.operations/bit_xor.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/bitwise.operations/transparent.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/comparisons/equal_to.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/comparisons/greater_equal.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/comparisons/greater.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/comparisons/less_equal.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/comparisons/less.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/comparisons/not_equal_to.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/comparisons/transparent.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.def/nothing_to_do.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.memfn/member_data.fail.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.memfn/member_data.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.memfn/member_function_const.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.memfn/member_function_const_volatile.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.memfn/member_function.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.memfn/member_function_volatile.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.require/binary_function.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.require/invoke.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.require/unary_function.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.badcall/bad_function_call.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.badcall/func.wrap.badcall.const/bad_function_call_ctor.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.alg/swap.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.cap/operator_bool.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_F.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_function.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_nullptr.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_rfunction.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_assign.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/default.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F_assign.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F_incomplete.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/nullptr_t_assign.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/nullptr_t.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.inv/invoke.fail.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.inv/invoke_int_0.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.inv/invoke.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.inv/invoke_void_0.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.mod/assign_F_alloc.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.mod/swap.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.nullptr/operator_EQEQ.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.nullptr/operator_==.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.targ/target.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.targ/target_type.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/func.wrap.func/types.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/func.wrap/nothing_to_do.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/logical.operations/logical_and.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/logical.operations/logical_not.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/logical.operations/logical_or.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/logical.operations/transparent.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/negators/binary_negate.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/negators/not1.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/negators/not2.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/negators/unary_negate.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/refwrap/binary.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/refwrap/refwrap.access/conversion.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/refwrap/refwrap.assign/copy_assign.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/refwrap/refwrap.const/copy_ctor.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/refwrap/refwrap.const/type_ctor.fail.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/refwrap/refwrap.const/type_ctor.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/refwrap/refwrap.helpers/cref_1.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/refwrap/refwrap.helpers/cref_2.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/refwrap/refwrap.helpers/ref_1.fail.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/refwrap/refwrap.helpers/ref_1.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/refwrap/refwrap.helpers/ref_2.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/refwrap/refwrap.invoke/invoke.fail.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/refwrap/refwrap.invoke/invoke_int_0.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/refwrap/refwrap.invoke/invoke.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/refwrap/refwrap.invoke/invoke_void_0.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/refwrap/type.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/refwrap/unary.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/refwrap/weak_result.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/unord.hash/enum.fail.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/unord.hash/enum.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/unord.hash/floating.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/unord.hash/integral.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/unord.hash/pointer.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/function.objects/version.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/intseq/intseq.general/integer_seq.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/intseq/intseq.intseq/integer_seq.fail.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/intseq/intseq.intseq/integer_seq.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/intseq/intseq.make/make_integer_seq.fail.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/intseq/intseq.make/make_integer_seq.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/intseq/nothing_to_do.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/memory/allocator.tag/allocator_arg.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/memory/allocator.traits/allocator.traits.members/allocate_hint.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/memory/allocator.traits/allocator.traits.members/allocate.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/memory/allocator.traits/allocator.traits.members/construct.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/memory/allocator.traits/allocator.traits.members/deallocate.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/memory/allocator.traits/allocator.traits.members/destroy.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/memory/allocator.traits/allocator.traits.members/max_size.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/memory/allocator.traits/allocator.traits.members/select_on_container_copy_construction.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/memory/allocator.traits/allocator.traits.types/const_pointer.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/memory/allocator.traits/allocator.traits.types/const_void_pointer.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/memory/allocator.traits/allocator.traits.types/difference_type.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/memory/allocator.traits/allocator.traits.types/pointer.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/memory/allocator.traits/allocator.traits.types/propagate_on_container_copy_assignment.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/memory/allocator.traits/allocator.traits.types/propagate_on_container_move_assignment.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/memory/allocator.traits/allocator.traits.types/propagate_on_container_swap.pass.cpp +sources/cxx-stl/llvm-libc++/libcxx/test/utilities/memory/allocator.traits/allocator.traits.types/rebind_alloc.pass.cpp sources/cxx-stl/llvm-libc++/libcxx/test/utilities/memory/allocator.traits/allocator.traits.types/size_type.pass.cpp sources/cxx-stl/llvm-libc++/libcxx/test/utilities/memory/allocator.traits/allocator.traits.types/void_pointer.pass.cpp sources/cxx-stl/llvm-libc++/libcxx/test/utilities/memory/allocator.traits/allocator_type.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 bf6e08efc3..ad209a867c 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,297 @@ -21/arch-x86/usr/include/linux/connector.h +-21/arch-x86_64/usr/lib64/libc.so +platforms/android-21/arch-x86_64/usr/lib64/libdl.so +platforms/android-21/arch-x86_64/usr/lib64/libEGL.so +platforms/android-21/arch-x86_64/usr/lib64/libGLESv1_CM.so +platforms/android-21/arch-x86_64/usr/lib64/libGLESv2.so +platforms/android-21/arch-x86_64/usr/lib64/libGLESv3.so +platforms/android-21/arch-x86_64/usr/lib64/libjnigraphics.so +platforms/android-21/arch-x86_64/usr/lib64/liblog.so +platforms/android-21/arch-x86_64/usr/lib64/libm.a +platforms/android-21/arch-x86_64/usr/lib64/libmediandk.so +platforms/android-21/arch-x86_64/usr/lib64/libm.so +platforms/android-21/arch-x86_64/usr/lib64/libOpenMAXAL.so +platforms/android-21/arch-x86_64/usr/lib64/libOpenSLES.so +platforms/android-21/arch-x86_64/usr/lib64/libstdc++.a +platforms/android-21/arch-x86_64/usr/lib64/libstdc++.so +platforms/android-21/arch-x86_64/usr/lib64/libz.a +platforms/android-21/arch-x86_64/usr/lib64/libz.so +platforms/android-21/arch-x86_64/usr/lib64/rs/libclcore.bc +platforms/android-21/arch-x86_64/usr/lib64/rs/libcompiler_rt.a +platforms/android-21/arch-x86_64/usr/lib64/rs/libRScpp_static.a +platforms/android-21/arch-x86_64/usr/lib64/rs/libRSSupport.so +platforms/android-21/arch-x86_64/usr/lib/crtbegin_dynamic.o +platforms/android-21/arch-x86_64/usr/lib/crtbegin_so.o +platforms/android-21/arch-x86_64/usr/lib/crtbegin_static.o +platforms/android-21/arch-x86_64/usr/lib/crtend_android.o +platforms/android-21/arch-x86_64/usr/lib/crtend_so.o +platforms/android-21/arch-x86_64/usr/lib/libandroid.so +platforms/android-21/arch-x86_64/usr/lib/libc.a +platforms/android-21/arch-x86_64/usr/lib/libc.so +platforms/android-21/arch-x86_64/usr/lib/libdl.so +platforms/android-21/arch-x86_64/usr/lib/libEGL.so +platforms/android-21/arch-x86_64/usr/lib/libGLESv1_CM.so +platforms/android-21/arch-x86_64/usr/lib/libGLESv2.so +platforms/android-21/arch-x86_64/usr/lib/libGLESv3.so +platforms/android-21/arch-x86_64/usr/lib/libjnigraphics.so +platforms/android-21/arch-x86_64/usr/lib/liblog.so +platforms/android-21/arch-x86_64/usr/lib/libm.a +platforms/android-21/arch-x86_64/usr/lib/libmediandk.so +platforms/android-21/arch-x86_64/usr/lib/libm.so +platforms/android-21/arch-x86_64/usr/lib/libOpenMAXAL.so +platforms/android-21/arch-x86_64/usr/lib/libOpenSLES.so +platforms/android-21/arch-x86_64/usr/lib/libstdc++.a +platforms/android-21/arch-x86_64/usr/lib/libstdc++.so +platforms/android-21/arch-x86_64/usr/lib/libz.a +platforms/android-21/arch-x86_64/usr/lib/libz.so +platforms/android-21/arch-x86_64/usr/libx32/crtbegin_dynamic.o +platforms/android-21/arch-x86_64/usr/libx32/crtbegin_so.o +platforms/android-21/arch-x86_64/usr/libx32/crtbegin_static.o +platforms/android-21/arch-x86_64/usr/libx32/crtend_android.o +platforms/android-21/arch-x86_64/usr/libx32/crtend_so.o +platforms/android-21/arch-x86_64/usr/libx32/libandroid.so +platforms/android-21/arch-x86_64/usr/libx32/libc.so +platforms/android-21/arch-x86_64/usr/libx32/libdl.so +platforms/android-21/arch-x86_64/usr/libx32/libEGL.so +platforms/android-21/arch-x86_64/usr/libx32/libGLESv1_CM.so +platforms/android-21/arch-x86_64/usr/libx32/libGLESv2.so +platforms/android-21/arch-x86_64/usr/libx32/libGLESv3.so +platforms/android-21/arch-x86_64/usr/libx32/libjnigraphics.so +platforms/android-21/arch-x86_64/usr/libx32/liblog.so +platforms/android-21/arch-x86_64/usr/libx32/libmediandk.so +platforms/android-21/arch-x86_64/usr/libx32/libm.so +platforms/android-21/arch-x86_64/usr/libx32/libOpenMAXAL.so +platforms/android-21/arch-x86_64/usr/libx32/libOpenSLES.so +platforms/android-21/arch-x86_64/usr/libx32/libstdc++.so +platforms/android-21/arch-x86_64/usr/libx32/libz.so +platforms/android-21/arch-x86/usr/include/alloca.h +platforms/android-21/arch-x86/usr/include/android/api-level.h +platforms/android-21/arch-x86/usr/include/android/asset_manager.h +platforms/android-21/arch-x86/usr/include/android/asset_manager_jni.h +platforms/android-21/arch-x86/usr/include/android/bitmap.h +platforms/android-21/arch-x86/usr/include/android/configuration.h +platforms/android-21/arch-x86/usr/include/android/dlext.h +platforms/android-21/arch-x86/usr/include/android/input.h +platforms/android-21/arch-x86/usr/include/android/keycodes.h +platforms/android-21/arch-x86/usr/include/android/log.h +platforms/android-21/arch-x86/usr/include/android/looper.h +platforms/android-21/arch-x86/usr/include/android/native_activity.h +platforms/android-21/arch-x86/usr/include/android/native_window.h +platforms/android-21/arch-x86/usr/include/android/native_window_jni.h +platforms/android-21/arch-x86/usr/include/android/obb.h +platforms/android-21/arch-x86/usr/include/android/rect.h +platforms/android-21/arch-x86/usr/include/android/sensor.h +platforms/android-21/arch-x86/usr/include/android/storage_manager.h +platforms/android-21/arch-x86/usr/include/android/tts.h +platforms/android-21/arch-x86/usr/include/android/window.h +platforms/android-21/arch-x86/usr/include/ar.h +platforms/android-21/arch-x86/usr/include/arpa/inet.h +platforms/android-21/arch-x86/usr/include/arpa/nameser_compat.h +platforms/android-21/arch-x86/usr/include/arpa/nameser.h +platforms/android-21/arch-x86/usr/include/arpa/telnet.h +platforms/android-21/arch-x86/usr/include/asm/a.out.h +platforms/android-21/arch-x86/usr/include/asm/auxvec.h +platforms/android-21/arch-x86/usr/include/asm/bitsperlong.h +platforms/android-21/arch-x86/usr/include/asm/boot.h +platforms/android-21/arch-x86/usr/include/asm/bootparam.h +platforms/android-21/arch-x86/usr/include/asm/byteorder.h +platforms/android-21/arch-x86/usr/include/asm/debugreg.h +platforms/android-21/arch-x86/usr/include/asm/e820.h +platforms/android-21/arch-x86/usr/include/asm/errno.h +platforms/android-21/arch-x86/usr/include/asm/fcntl.h +platforms/android-21/arch-x86/usr/include/asm-generic/auxvec.h +platforms/android-21/arch-x86/usr/include/asm-generic/bitsperlong.h +platforms/android-21/arch-x86/usr/include/asm-generic/errno-base.h +platforms/android-21/arch-x86/usr/include/asm-generic/errno.h +platforms/android-21/arch-x86/usr/include/asm-generic/fcntl.h +platforms/android-21/arch-x86/usr/include/asm-generic/int-l64.h +platforms/android-21/arch-x86/usr/include/asm-generic/int-ll64.h +platforms/android-21/arch-x86/usr/include/asm-generic/ioctl.h +platforms/android-21/arch-x86/usr/include/asm-generic/ioctls.h +platforms/android-21/arch-x86/usr/include/asm-generic/ipcbuf.h +platforms/android-21/arch-x86/usr/include/asm-generic/mman-common.h +platforms/android-21/arch-x86/usr/include/asm-generic/mman.h +platforms/android-21/arch-x86/usr/include/asm-generic/msgbuf.h +platforms/android-21/arch-x86/usr/include/asm-generic/param.h +platforms/android-21/arch-x86/usr/include/asm-generic/poll.h +platforms/android-21/arch-x86/usr/include/asm-generic/posix_types.h +platforms/android-21/arch-x86/usr/include/asm-generic/resource.h +platforms/android-21/arch-x86/usr/include/asm-generic/sembuf.h +platforms/android-21/arch-x86/usr/include/asm-generic/setup.h +platforms/android-21/arch-x86/usr/include/asm-generic/shmbuf.h +platforms/android-21/arch-x86/usr/include/asm-generic/shmparam.h +platforms/android-21/arch-x86/usr/include/asm-generic/siginfo.h +platforms/android-21/arch-x86/usr/include/asm-generic/signal-defs.h +platforms/android-21/arch-x86/usr/include/asm-generic/signal.h +platforms/android-21/arch-x86/usr/include/asm-generic/socket.h +platforms/android-21/arch-x86/usr/include/asm-generic/sockios.h +platforms/android-21/arch-x86/usr/include/asm-generic/statfs.h +platforms/android-21/arch-x86/usr/include/asm-generic/stat.h +platforms/android-21/arch-x86/usr/include/asm-generic/swab.h +platforms/android-21/arch-x86/usr/include/asm-generic/termbits.h +platforms/android-21/arch-x86/usr/include/asm-generic/termios.h +platforms/android-21/arch-x86/usr/include/asm-generic/types.h +platforms/android-21/arch-x86/usr/include/asm-generic/ucontext.h +platforms/android-21/arch-x86/usr/include/asm-generic/unistd.h +platforms/android-21/arch-x86/usr/include/asm/hw_breakpoint.h +platforms/android-21/arch-x86/usr/include/asm/hyperv.h +platforms/android-21/arch-x86/usr/include/asm/ioctl.h +platforms/android-21/arch-x86/usr/include/asm/ioctls.h +platforms/android-21/arch-x86/usr/include/asm/ipcbuf.h +platforms/android-21/arch-x86/usr/include/asm/ist.h +platforms/android-21/arch-x86/usr/include/asm/ldt.h +platforms/android-21/arch-x86/usr/include/asm/mce.h +platforms/android-21/arch-x86/usr/include/asm/mman.h +platforms/android-21/arch-x86/usr/include/asm/msgbuf.h +platforms/android-21/arch-x86/usr/include/asm/msr.h +platforms/android-21/arch-x86/usr/include/asm/msr-index.h +platforms/android-21/arch-x86/usr/include/asm/mtrr.h +platforms/android-21/arch-x86/usr/include/asm/param.h +platforms/android-21/arch-x86/usr/include/asm/perf_regs.h +platforms/android-21/arch-x86/usr/include/asm/poll.h +platforms/android-21/arch-x86/usr/include/asm/posix_types_32.h +platforms/android-21/arch-x86/usr/include/asm/posix_types_64.h +platforms/android-21/arch-x86/usr/include/asm/posix_types.h +platforms/android-21/arch-x86/usr/include/asm/posix_types_x32.h +platforms/android-21/arch-x86/usr/include/asm/prctl.h +platforms/android-21/arch-x86/usr/include/asm/processor-flags.h +platforms/android-21/arch-x86/usr/include/asm/ptrace-abi.h +platforms/android-21/arch-x86/usr/include/asm/ptrace.h +platforms/android-21/arch-x86/usr/include/asm/resource.h +platforms/android-21/arch-x86/usr/include/asm/sembuf.h +platforms/android-21/arch-x86/usr/include/asm/setup.h +platforms/android-21/arch-x86/usr/include/asm/shmbuf.h +platforms/android-21/arch-x86/usr/include/asm/sigcontext32.h +platforms/android-21/arch-x86/usr/include/asm/sigcontext.h +platforms/android-21/arch-x86/usr/include/asm/siginfo.h +platforms/android-21/arch-x86/usr/include/asm/signal.h +platforms/android-21/arch-x86/usr/include/asm/socket.h +platforms/android-21/arch-x86/usr/include/asm/sockios.h +platforms/android-21/arch-x86/usr/include/asm/statfs.h +platforms/android-21/arch-x86/usr/include/asm/stat.h +platforms/android-21/arch-x86/usr/include/asm/svm.h +platforms/android-21/arch-x86/usr/include/asm/swab.h +platforms/android-21/arch-x86/usr/include/asm/termbits.h +platforms/android-21/arch-x86/usr/include/asm/termios.h +platforms/android-21/arch-x86/usr/include/asm/types.h +platforms/android-21/arch-x86/usr/include/asm/ucontext.h +platforms/android-21/arch-x86/usr/include/asm/unistd_32.h +platforms/android-21/arch-x86/usr/include/asm/unistd_64.h +platforms/android-21/arch-x86/usr/include/asm/unistd.h +platforms/android-21/arch-x86/usr/include/asm/unistd_x32.h +platforms/android-21/arch-x86/usr/include/asm/vm86.h +platforms/android-21/arch-x86/usr/include/asm/vmx.h +platforms/android-21/arch-x86/usr/include/asm/vsyscall.h +platforms/android-21/arch-x86/usr/include/assert.h +platforms/android-21/arch-x86/usr/include/byteswap.h +platforms/android-21/arch-x86/usr/include/complex.h +platforms/android-21/arch-x86/usr/include/ctype.h +platforms/android-21/arch-x86/usr/include/dirent.h +platforms/android-21/arch-x86/usr/include/dlfcn.h +platforms/android-21/arch-x86/usr/include/EGL/eglext.h +platforms/android-21/arch-x86/usr/include/EGL/egl.h +platforms/android-21/arch-x86/usr/include/EGL/eglplatform.h +platforms/android-21/arch-x86/usr/include/elf.h +platforms/android-21/arch-x86/usr/include/endian.h +platforms/android-21/arch-x86/usr/include/err.h +platforms/android-21/arch-x86/usr/include/errno.h +platforms/android-21/arch-x86/usr/include/fcntl.h +platforms/android-21/arch-x86/usr/include/features.h +platforms/android-21/arch-x86/usr/include/fenv.h +platforms/android-21/arch-x86/usr/include/fnmatch.h +platforms/android-21/arch-x86/usr/include/fts.h +platforms/android-21/arch-x86/usr/include/ftw.h +platforms/android-21/arch-x86/usr/include/getopt.h +platforms/android-21/arch-x86/usr/include/GLES2/gl2ext.h +platforms/android-21/arch-x86/usr/include/GLES2/gl2.h +platforms/android-21/arch-x86/usr/include/GLES2/gl2platform.h +platforms/android-21/arch-x86/usr/include/GLES3/gl31.h +platforms/android-21/arch-x86/usr/include/GLES3/gl3ext.h +platforms/android-21/arch-x86/usr/include/GLES3/gl3.h +platforms/android-21/arch-x86/usr/include/GLES3/gl3platform.h +platforms/android-21/arch-x86/usr/include/GLES/glext.h +platforms/android-21/arch-x86/usr/include/GLES/gl.h +platforms/android-21/arch-x86/usr/include/GLES/glplatform.h +platforms/android-21/arch-x86/usr/include/grp.h +platforms/android-21/arch-x86/usr/include/i386/elf_machdep.h +platforms/android-21/arch-x86/usr/include/inttypes.h +platforms/android-21/arch-x86/usr/include/jni.h +platforms/android-21/arch-x86/usr/include/KHR/khrplatform.h +platforms/android-21/arch-x86/usr/include/lastlog.h +platforms/android-21/arch-x86/usr/include/libgen.h +platforms/android-21/arch-x86/usr/include/limits.h +platforms/android-21/arch-x86/usr/include/link.h +platforms/android-21/arch-x86/usr/include/linux/acct.h +platforms/android-21/arch-x86/usr/include/linux/adb.h +platforms/android-21/arch-x86/usr/include/linux/adfs_fs.h +platforms/android-21/arch-x86/usr/include/linux/affs_hardblocks.h +platforms/android-21/arch-x86/usr/include/linux/agpgart.h +platforms/android-21/arch-x86/usr/include/linux/aio_abi.h +platforms/android-21/arch-x86/usr/include/linux/android_alarm.h +platforms/android-21/arch-x86/usr/include/linux/a.out.h +platforms/android-21/arch-x86/usr/include/linux/apm_bios.h +platforms/android-21/arch-x86/usr/include/linux/arcfb.h +platforms/android-21/arch-x86/usr/include/linux/ashmem.h +platforms/android-21/arch-x86/usr/include/linux/atalk.h +platforms/android-21/arch-x86/usr/include/linux/atmapi.h +platforms/android-21/arch-x86/usr/include/linux/atmarp.h +platforms/android-21/arch-x86/usr/include/linux/atmbr2684.h +platforms/android-21/arch-x86/usr/include/linux/atmclip.h +platforms/android-21/arch-x86/usr/include/linux/atmdev.h +platforms/android-21/arch-x86/usr/include/linux/atm_eni.h +platforms/android-21/arch-x86/usr/include/linux/atm.h +platforms/android-21/arch-x86/usr/include/linux/atm_he.h +platforms/android-21/arch-x86/usr/include/linux/atm_idt77105.h +platforms/android-21/arch-x86/usr/include/linux/atmioc.h +platforms/android-21/arch-x86/usr/include/linux/atmlec.h +platforms/android-21/arch-x86/usr/include/linux/atmmpc.h +platforms/android-21/arch-x86/usr/include/linux/atm_nicstar.h +platforms/android-21/arch-x86/usr/include/linux/atmppp.h +platforms/android-21/arch-x86/usr/include/linux/atmsap.h +platforms/android-21/arch-x86/usr/include/linux/atmsvc.h +platforms/android-21/arch-x86/usr/include/linux/atm_tcp.h +platforms/android-21/arch-x86/usr/include/linux/atm_zatm.h +platforms/android-21/arch-x86/usr/include/linux/audit.h +platforms/android-21/arch-x86/usr/include/linux/auto_fs4.h +platforms/android-21/arch-x86/usr/include/linux/auto_fs.h +platforms/android-21/arch-x86/usr/include/linux/auxvec.h +platforms/android-21/arch-x86/usr/include/linux/ax25.h +platforms/android-21/arch-x86/usr/include/linux/b1lli.h +platforms/android-21/arch-x86/usr/include/linux/baycom.h +platforms/android-21/arch-x86/usr/include/linux/bcache.h +platforms/android-21/arch-x86/usr/include/linux/bcm933xx_hcs.h +platforms/android-21/arch-x86/usr/include/linux/bfs_fs.h +platforms/android-21/arch-x86/usr/include/linux/binder.h +platforms/android-21/arch-x86/usr/include/linux/binfmts.h +platforms/android-21/arch-x86/usr/include/linux/blkpg.h +platforms/android-21/arch-x86/usr/include/linux/blktrace_api.h +platforms/android-21/arch-x86/usr/include/linux/bpqether.h +platforms/android-21/arch-x86/usr/include/linux/bsg.h +platforms/android-21/arch-x86/usr/include/linux/btrfs.h +platforms/android-21/arch-x86/usr/include/linux/byteorder/big_endian.h +platforms/android-21/arch-x86/usr/include/linux/byteorder/little_endian.h +platforms/android-21/arch-x86/usr/include/linux/caif/caif_socket.h +platforms/android-21/arch-x86/usr/include/linux/caif/if_caif.h +platforms/android-21/arch-x86/usr/include/linux/can/bcm.h +platforms/android-21/arch-x86/usr/include/linux/can/error.h +platforms/android-21/arch-x86/usr/include/linux/can/gw.h +platforms/android-21/arch-x86/usr/include/linux/can.h +platforms/android-21/arch-x86/usr/include/linux/can/netlink.h +platforms/android-21/arch-x86/usr/include/linux/can/raw.h +platforms/android-21/arch-x86/usr/include/linux/capability.h +platforms/android-21/arch-x86/usr/include/linux/capi.h +platforms/android-21/arch-x86/usr/include/linux/cciss_defs.h +platforms/android-21/arch-x86/usr/include/linux/cciss_ioctl.h +platforms/android-21/arch-x86/usr/include/linux/cdrom.h +platforms/android-21/arch-x86/usr/include/linux/cgroupstats.h +platforms/android-21/arch-x86/usr/include/linux/chio.h +platforms/android-21/arch-x86/usr/include/linux/cifs/cifs_mount.h +platforms/android-21/arch-x86/usr/include/linux/cm4000_cs.h +platforms/android-21/arch-x86/usr/include/linux/cn_proc.h +platforms/android-21/arch-x86/usr/include/linux/coda.h +platforms/android-21/arch-x86/usr/include/linux/coda_psdev.h +platforms/android-21/arch-x86/usr/include/linux/coff.h +platforms/android-21/arch-x86/usr/include/linux/compiler.h +platforms/android-21/arch-x86/usr/include/linux/connector.h platforms/android-21/arch-x86/usr/include/linux/const.h platforms/android-21/arch-x86/usr/include/linux/cramfs_fs.h platforms/android-21/arch-x86/usr/include/linux/cuda.h diff --git a/src/test/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunctionTest.java b/src/test/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunctionTest.java index 321562475f..f19a31ee1d 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunctionTest.java @@ -1,95 +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 -// -// 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 static org.junit.Assert.assertEquals; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import com.google.devtools.build.lib.packages.ImplicitOutputsFunction.AttributeValueGetter; -import com.google.devtools.build.lib.testutil.Suite; -import com.google.devtools.build.lib.testutil.TestSpec; -import com.google.devtools.build.lib.util.Preconditions; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -/** - * Tests for {@link ImplicitOutputsFunction}. - */ -@TestSpec(size = Suite.SMALL_TESTS) -@RunWith(JUnit4.class) -public final class ImplicitOutputsFunctionTest { - private void assertPlaceholderCollection( - String template, String expectedTemplate, String... expectedPlaceholders) throws Exception { - List<String> actualPlaceholders = new ArrayList<>(); - assertEquals( - expectedTemplate, - ImplicitOutputsFunction.createPlaceholderSubstitutionFormatString( - template, actualPlaceholders)); - assertThat(actualPlaceholders) - .containsExactlyElementsIn(Arrays.asList(expectedPlaceholders)) - .inOrder(); - } - - @Test - public void testNoPlaceholder() throws Exception { - assertPlaceholderCollection("foo", "foo"); - } - - @Test - public void testJustPlaceholder() throws Exception { - assertPlaceholderCollection("%{foo}", "%s", "foo"); - } - - @Test - public void testPrefixedPlaceholder() throws Exception { - assertPlaceholderCollection("foo%{bar}", "foo%s", "bar"); - } - - @Test - public void testSuffixedPlaceholder() throws Exception { - assertPlaceholderCollection("%{foo}bar", "%sbar", "foo"); - } - - @Test - public void testMultiplePlaceholdersPrefixed() throws Exception { - assertPlaceholderCollection("foo%{bar}baz%{qux}", "foo%sbaz%s", "bar", "qux"); - } - - @Test - public void testMultiplePlaceholdersSuffixed() throws Exception { - assertPlaceholderCollection("%{foo}bar%{baz}qux", "%sbar%squx", "foo", "baz"); - } - - @Test - public void testTightlyPackedPlaceholders() throws Exception { - assertPlaceholderCollection("%{foo}%{bar}%{baz}", "%s%s%s", "foo", "bar", "baz"); - } - - @Test - public void testIncompletePlaceholder() throws Exception { +{ assertPlaceholderCollection("%{foo", "%%{foo"); } diff --git a/src/test/java/com/google/devtools/build/lib/packages/OutputFileTest.java b/src/test/java/com/google/devtools/build/lib/packages/OutputFileTest.java index 5c34318c21..34a3a9bbb7 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/OutputFileTest.java +++ b/src/test/java/com/google/devtools/build/lib/packages/OutputFileTest.java @@ -1 +1,220 @@ +// 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 +// +// 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 org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertSame; + +import com.google.devtools.build.lib.cmdline.PackageIdentifier; +import com.google.devtools.build.lib.packages.util.PackageLoadingTestCase; +import com.google.devtools.build.lib.vfs.Path; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +@RunWith(JUnit4.class) +public class OutputFileTest extends PackageLoadingTestCase { + private Package pkg; + private Rule rule; + + @Before + public final void createRule() throws Exception { + Path buildfile = + scratch.file( + "pkg/BUILD", + "genrule(name='foo', ", + " srcs=[], ", + " cmd='', ", + " outs=['x', 'subdir/y'])"); + this.pkg = + packageFactory.createPackageForTesting( + PackageIdentifier.createInMainRepo("pkg"), buildfile, getPackageManager(), reporter); + assertNoEvents(); + + this.rule = (Rule) pkg.getTarget("foo"); + } + + private void checkTargetRetainsGeneratingRule(OutputFile output) throws Exception { + assertSame(rule, output.getGeneratingRule()); + } + + private void checkName(OutputFile output, String expectedName) throws Exception { + assertEquals(expectedName, output.getName()); + } + + private void checkLabel(OutputFile output, String expectedLabelString) throws Exception { + assertEquals(expectedLabelString, output.getLabel().toString()); + } + + @Test + public void testGetAssociatedRule() throws Exception { + assertSame(rule, pkg.getTarget("x").getAssociatedRule()); + } + + @Test + public void testOutputFileInPackageDir() throws Exception { + OutputFile outputFileX = (OutputFile) pkg.getTarget("x"); + checkTargetRetainsGeneratingRule(outputFileX); + checkName(outputFileX, "x"); + checkLabel(outputFileX, "//pkg:x"); + assertEquals("generated file", outputFileX.getTargetKind()); + } + + @Test + public void testOutputFileInSubdirectory() throws Exception { + OutputFile outputFileY = (OutputFile) pkg.getTarget("subdir/y"); + checkTargetRetainsGeneratingRule(outputFileY); + checkName(outputFileY, "subdir/y"); + checkLabel(outputFileY, "//pkg:subdir/y"); + } + + @Test + public void testEquivalenceRelation() throws Exception { + OutputFile outputFileX1 = (OutputFile) pkg.getTarget("x"); + OutputFile outputFileX2 = (OutputFile) pkg.getTarget("x"); + OutputFile outputFileY1 = (OutputFile) pkg.getTarget("subdir/y"); + OutputFile outputFileY2 = (OutputFile) pkg.getTarget("subdir/y"); + assertSame(outputFileX1, outputFileX2); + assertSame(outputFileY1, outputFileY2); + assertEquals(outputFileX1, outputFileX2); + assertEquals(outputFileX2, outputFileX1); + assertEquals(outputFileY1, outputFileY2); + assertEquals(outputFileY2, outputFileY1); + assertFalse(outputFileX1.equals(outputFileY1)); + assertFalse(outputFileY1.equals(outputFileX1)); + assertEquals(outputFileX1.hashCode(), outputFileX2.hashCode()); + assertEquals(outputFileY1.hashCode(), outputFileY2.hashCode()); + } + + @Test + public void testDuplicateOutputFilesInDifferentRules() throws Exception { + Path buildfile = + scratch.file( + "two_outs/BUILD", + "genrule(name='a',", + " cmd='ls >$(location out)',", + " outs=['out'])", + "", + "genrule(name='b',", + " cmd='ls >$(location out)',", + " outs=['out'])"); + + reporter.removeHandler(failFastHandler); + packageFactory.createPackageForTesting( + PackageIdentifier.createInMainRepo("two_outs"), + buildfile, + getPackageManager(), + reporter); + assertContainsEvent( + "generated file 'out' in rule 'b' conflicts with " + + "existing generated file from rule 'a'"); + } + + @Test + public void testOutputFileNameConflictsWithExistingRule() throws Exception { + Path buildfile = + scratch.file( + "out_is_rule/BUILD", + "genrule(name='a',", + " cmd='ls >$(location out)',", + " outs=['out'])", + "", + "genrule(name='b',", + " cmd='ls >$(location out)',", + " outs=['a'])"); + + reporter.removeHandler(failFastHandler); + packageFactory.createPackageForTesting( + PackageIdentifier.createInMainRepo("out_is_rule"), + buildfile, + getPackageManager(), + reporter); + assertContainsEvent("generated file 'a' in rule 'b' conflicts with existing genrule rule"); + } + + @Test + public void testDuplicateOutputFilesInSameRule() throws Exception { + Path buildfile = + scratch.file( + "two_outs/BUILD", + "genrule(name='a',", + " cmd='ls >$(location out)',", + " outs=['out', 'out'])"); + + reporter.removeHandler(failFastHandler); + packageFactory.createPackageForTesting( + PackageIdentifier.createInMainRepo("two_outs"), + buildfile, + getPackageManager(), + reporter); + assertContainsEvent( + "generated file 'out' in rule 'a' conflicts with " + + "existing generated file from rule 'a'"); + } + + @Test + public void testOutputFileWithIllegalName() throws Exception { + Path buildfile = + scratch.file( + "bad_out_name/BUILD", + "genrule(name='a',", + " cmd='ls',", + " outs=['!@#'])"); + + reporter.removeHandler(failFastHandler); + packageFactory.createPackageForTesting( + PackageIdentifier.createInMainRepo("bad_out_name"), + buildfile, + getPackageManager(), + reporter); + assertContainsEvent("illegal output file name '!@#' in rule //bad_out_name:a"); + } + + @Test + public void testOutputFileWithCrossPackageLabel() throws Exception { + Path buildfile = + scratch.file( + "cross_package_out/BUILD", + "genrule(name='a',", + " cmd='ls',", + " outs=['//foo:bar'])"); + + reporter.removeHandler(failFastHandler); + packageFactory.createPackageForTesting( + PackageIdentifier.createInMainRepo("cross_package_out"), + buildfile, + getPackageManager(), + reporter); + assertContainsEvent("label '//foo:bar' is not in the current package"); + } + + @Test + public void testOutputFileNamedBUILD() throws Exception { + Path buildfile = + scratch.file( + "output_called_build/BUILD", + "genrule(name='a',", + " cmd='ls',", + " outs=['BUILD'])"); + + reporter.removeHandler(failFastHandler); + packageFactory.createPackageForTesting( + PackageIdentifier.createInMainRepo("output_called_build"), buildfile, + getPackageManager(), reporter); + assertContainsEvent("generated file 'BUILD' in rule 'a' conflicts with existing source file"); + } } diff --git a/src/test/java/com/google/devtools/build/lib/rules/platform/BUILD b/src/test/java/com/google/devtools/build/lib/rules/platform/BUILD index 39b1617172..daf896eea9 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/platform/BUILD +++ b/src/test/java/com/google/devtools/build/lib/rules/platform/BUILD @@ -13,6 +13,7 @@ java_test( "//src/main/java/com/google/devtools/build/lib:os_util", "//src/main/java/com/google/devtools/build/lib:syntax", "//src/main/java/com/google/devtools/build/lib:util", + "//src/main/java/com/google/devtools/build/lib/analysis/platform", "//src/main/java/com/google/devtools/build/lib/cmdline", "//src/main/java/com/google/devtools/build/lib/rules/platform", "//src/test/java/com/google/devtools/build/lib:analysis_testutil", diff --git a/src/test/java/com/google/devtools/build/lib/rules/platform/ConstraintTest.java b/src/test/java/com/google/devtools/build/lib/rules/platform/ConstraintTest.java index 5029953037..130e1dd1fa 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/platform/ConstraintTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/platform/ConstraintTest.java @@ -16,7 +16,6 @@ package com.google.devtools.build.lib.rules.platform; import static com.google.common.truth.Truth.assertThat; -import com.google.common.testing.EqualsTester; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; import com.google.devtools.build.lib.cmdline.Label; @@ -46,22 +45,22 @@ public class ConstraintTest extends BuildViewTestCase { public void testConstraint() throws Exception { ConfiguredTarget setting = getConfiguredTarget("//constraint:basic"); assertThat(setting).isNotNull(); - assertThat(ConstraintSettingInfo.fromTarget(setting)).isNotNull(); - assertThat(ConstraintSettingInfo.fromTarget(setting)).isNotNull(); - assertThat(ConstraintSettingInfo.fromTarget(setting).label()) + assertThat(ConstraintSetting.constraintSetting(setting)).isNotNull(); + assertThat(ConstraintSetting.constraintSetting(setting)).isNotNull(); + assertThat(ConstraintSetting.constraintSetting(setting).label()) .isEqualTo(Label.parseAbsolute("//constraint:basic")); ConfiguredTarget fooValue = getConfiguredTarget("//constraint:foo"); assertThat(fooValue).isNotNull(); - assertThat(ConstraintValueInfo.fromTarget(fooValue)).isNotNull(); - assertThat(ConstraintValueInfo.fromTarget(fooValue).constraint().label()) + assertThat(ConstraintValue.constraintValue(fooValue)).isNotNull(); + assertThat(ConstraintValue.constraintValue(fooValue).constraint().label()) .isEqualTo(Label.parseAbsolute("//constraint:basic")); - assertThat(ConstraintValueInfo.fromTarget(fooValue).label()) + assertThat(ConstraintValue.constraintValue(fooValue).label()) .isEqualTo(Label.parseAbsolute("//constraint:foo")); ConfiguredTarget barValue = getConfiguredTarget("//constraint:bar"); assertThat(barValue).isNotNull(); - assertThat(ConstraintValueInfo.fromTarget(barValue).constraint().label()) + assertThat(ConstraintValue.constraintValue(barValue).constraint().label()) .isEqualTo(Label.parseAbsolute("//constraint:basic")); - assertThat(ConstraintValueInfo.fromTarget(barValue).label()) + assertThat(ConstraintValue.constraintValue(barValue).label()) .isEqualTo(Label.parseAbsolute("//constraint:bar")); } @@ -96,32 +95,4 @@ public class ConstraintTest extends BuildViewTestCase { assertThat(valueLabel).isNotNull(); assertThat(valueLabel).isEqualTo(makeLabel("//constraint:foo")); } - - @Test - public void constraintSetting_equalsTester() { - new EqualsTester() - .addEqualityGroup( - ConstraintSettingInfo.create(makeLabel("//constraint:basic")), - ConstraintSettingInfo.create(makeLabel("//constraint:basic"))) - .addEqualityGroup(ConstraintSettingInfo.create(makeLabel("//constraint:other"))) - .testEquals(); - } - - @Test - public void constraintValue_equalsTester() { - ConstraintSettingInfo setting1 = ConstraintSettingInfo.create(makeLabel("//constraint:basic")); - ConstraintSettingInfo setting2 = ConstraintSettingInfo.create(makeLabel("//constraint:other")); - new EqualsTester() - .addEqualityGroup( - // Base case. - ConstraintValueInfo.create(setting1, makeLabel("//constraint:value")), - ConstraintValueInfo.create(setting1, makeLabel("//constraint:value"))) - .addEqualityGroup( - // Different label. - ConstraintValueInfo.create(setting1, makeLabel("//constraint:otherValue"))) - .addEqualityGroup( - // Different setting. - ConstraintValueInfo.create(setting2, makeLabel("//constraint:ovalue"))) - .testEquals(); - } } diff --git a/src/test/java/com/google/devtools/build/lib/rules/platform/PlatformCommonTest.java b/src/test/java/com/google/devtools/build/lib/rules/platform/PlatformCommonTest.java index b30432891c..f3cd8255b1 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/platform/PlatformCommonTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/platform/PlatformCommonTest.java @@ -18,6 +18,8 @@ import static com.google.common.truth.Truth.assertThat; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.TransitiveInfoCollection; +import com.google.devtools.build.lib.analysis.platform.ConstraintSettingInfo; +import com.google.devtools.build.lib.analysis.platform.ConstraintValueInfo; import com.google.devtools.build.lib.skylark.util.SkylarkTestCase; import java.util.List; import org.junit.Test; diff --git a/src/test/java/com/google/devtools/build/lib/rules/platform/PlatformTest.java b/src/test/java/com/google/devtools/build/lib/rules/platform/PlatformTest.java index 5cb0991dfc..1b17491440 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/platform/PlatformTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/platform/PlatformTest.java @@ -17,11 +17,12 @@ package com.google.devtools.build.lib.rules.platform; import static com.google.common.truth.Truth.assertThat; import com.google.common.collect.ImmutableMap; -import com.google.common.testing.EqualsTester; import com.google.devtools.build.lib.analysis.ConfiguredTarget; +import com.google.devtools.build.lib.analysis.platform.ConstraintSettingInfo; +import com.google.devtools.build.lib.analysis.platform.ConstraintValueInfo; +import com.google.devtools.build.lib.analysis.platform.PlatformInfo; import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; import com.google.devtools.build.lib.cmdline.Label; -import com.google.devtools.build.lib.rules.platform.PlatformInfo.DuplicateConstraintException; import com.google.devtools.build.lib.util.CPU; import com.google.devtools.build.lib.util.OS; import org.junit.Before; @@ -56,7 +57,7 @@ public class PlatformTest extends BuildViewTestCase { ConfiguredTarget platform = getConfiguredTarget("//constraint:plat1"); assertThat(platform).isNotNull(); - PlatformInfo provider = PlatformInfo.fromTarget(platform); + PlatformInfo provider = Platform.platform(platform); assertThat(provider).isNotNull(); assertThat(provider.constraints()).hasSize(1); ConstraintSettingInfo constraintSetting = @@ -88,7 +89,7 @@ public class PlatformTest extends BuildViewTestCase { ConfiguredTarget platform = getConfiguredTarget("//host:host_platform"); assertThat(platform).isNotNull(); - PlatformInfo provider = PlatformInfo.fromTarget(platform); + PlatformInfo provider = Platform.platform(platform); assertThat(provider).isNotNull(); // Check the CPU and OS. @@ -134,7 +135,7 @@ public class PlatformTest extends BuildViewTestCase { ConfiguredTarget platform = getConfiguredTarget("//constraint/remote:plat_remote"); assertThat(platform).isNotNull(); - PlatformInfo provider = PlatformInfo.fromTarget(platform); + PlatformInfo provider = Platform.platform(platform); assertThat(provider).isNotNull(); assertThat(provider.remoteExecutionProperties()) .containsExactlyEntriesIn(ImmutableMap.of("foo", "val1", "bar", "val2")); @@ -175,52 +176,4 @@ public class PlatformTest extends BuildViewTestCase { assertThat(valueLabel).isNotNull(); assertThat(valueLabel).isEqualTo(makeLabel("//constraint:foo")); } - - @Test - public void platformInfo_overlappingConstraintsError() throws DuplicateConstraintException { - ConstraintSettingInfo setting = ConstraintSettingInfo.create(makeLabel("//constraint:basic")); - - ConstraintValueInfo value1 = ConstraintValueInfo.create(setting, makeLabel("//constraint:foo")); - ConstraintValueInfo value2 = ConstraintValueInfo.create(setting, makeLabel("//constraint:bar")); - - PlatformInfo.Builder builder = - PlatformInfo.builder().addConstraint(value1).addConstraint(value2); - - expectedException.expect(DuplicateConstraintException.class); - expectedException.expectMessage( - "Duplicate constraint_values for constraint_setting //constraint:basic: " - + "//constraint:foo, //constraint:bar"); - builder.build(); - } - - @Test - public void platformInfo_equalsTester() throws DuplicateConstraintException { - ConstraintSettingInfo setting1 = ConstraintSettingInfo.create(makeLabel("//constraint:basic")); - ConstraintSettingInfo setting2 = ConstraintSettingInfo.create(makeLabel("//constraint:other")); - - ConstraintValueInfo value1 = - ConstraintValueInfo.create(setting1, makeLabel("//constraint:value1")); - ConstraintValueInfo value2 = - ConstraintValueInfo.create(setting2, makeLabel("//constraint:value2")); - ConstraintValueInfo value3 = - ConstraintValueInfo.create(setting2, makeLabel("//constraint:value3")); - - new EqualsTester() - .addEqualityGroup( - // Base case. - PlatformInfo.builder().addConstraint(value1).addConstraint(value2).build(), - PlatformInfo.builder().addConstraint(value1).addConstraint(value2).build(), - PlatformInfo.builder() - .addConstraint(value1) - .addConstraint(value2) - .addRemoteExecutionProperty("key", "val") // execution properties are ignored. - .build()) - .addEqualityGroup( - // Extra constraint. - PlatformInfo.builder().addConstraint(value1).addConstraint(value3).build()) - .addEqualityGroup( - // Missing constraint. - PlatformInfo.builder().addConstraint(value1).build()) - .testEquals(); - } } |