From 5f2648255967c776e72ec72790db733a22ed7c27 Mon Sep 17 00:00:00 2001 From: jingwen Date: Fri, 23 Feb 2018 09:58:53 -0800 Subject: Set the correct include path for r13b's llvm-libc++ headers and fix compilation with @androidndk//:toolchain-libcpp with missing link time files. This fix needs a way to compare revision numbers, so the type of NdkRelease.majorRevision has been changed to Integer. This also paves the way for r15+ support. Fixes https://github.com/bazelbuild/bazel/issues/3641 Fixes https://github.com/bazelbuild/bazel/issues/3923 Fixes https://github.com/bazelbuild/bazel/issues/4677 TESTED=bazel test //src/test/shell/bazel/android:android_ndk_integration_test with r11, r12, r13, r14, r15 RELNOTES: Fixed include paths for NDK r13+ llvm-libc++ headers to `ndk/sources/cxx-stl/llvm-libc++/include` and `ndk/sources/cxx-stl/llvm-libc++abi/include` PiperOrigin-RevId: 186783465 --- .../ndkcrosstools/AndroidNdkCrosstoolsTest.java | 4 ++- .../android/ndkcrosstools/NdkReleaseTest.java | 33 +++++++++++----------- 2 files changed, 20 insertions(+), 17 deletions(-) (limited to 'src/test/java/com/google/devtools') diff --git a/src/test/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/AndroidNdkCrosstoolsTest.java b/src/test/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/AndroidNdkCrosstoolsTest.java index 00719ffbfd..a4f24c6d45 100644 --- a/src/test/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/AndroidNdkCrosstoolsTest.java +++ b/src/test/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/AndroidNdkCrosstoolsTest.java @@ -131,7 +131,9 @@ public class AndroidNdkCrosstoolsTest { public AndroidNdkCrosstoolsTest(AndroidNdkCrosstoolsTestParams params) throws IOException { // NDK test data is based on the x86 64-bit Linux Android NDK. - NdkPaths ndkPaths = new NdkPaths(REPOSITORY_NAME, HOST_PLATFORM, params.apiLevel); + NdkPaths ndkPaths = + new NdkPaths( + REPOSITORY_NAME, HOST_PLATFORM, params.apiLevel, params.ndkRelease.majorRevision); ImmutableList.Builder crosstools = ImmutableList.builder(); ImmutableMap.Builder stlFilegroupsBuilder = ImmutableMap.builder(); diff --git a/src/test/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/NdkReleaseTest.java b/src/test/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/NdkReleaseTest.java index c3f9c256ef..08733895c5 100644 --- a/src/test/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/NdkReleaseTest.java +++ b/src/test/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/NdkReleaseTest.java @@ -28,20 +28,20 @@ public class NdkReleaseTest { @Test public void testReleaseParsing() { - testNdkRelease("r8", "8", null, null, false); - testNdkRelease("r8 (64-bit)", "8", null, null, true); - testNdkRelease("r10", "10", null, null, false); - testNdkRelease("r10 (64-bit)", "10", null, null, true); - testNdkRelease("r10-rc4", "10", null, "rc4", false); - testNdkRelease("r10-rc4 (64-bit)", "10", null, "rc4", true); - testNdkRelease("r10e", "10", "e", null, false); - testNdkRelease("r10e (64-bit)", "10", "e", null, true); - testNdkRelease("r10e-rc4", "10", "e", "rc4", false); - testNdkRelease("r10e-rc4 (64-bit)", "10", "e", "rc4", true); + testNdkRelease("r8", 8, null, null, false); + testNdkRelease("r8 (64-bit)", 8, null, null, true); + testNdkRelease("r10", 10, null, null, false); + testNdkRelease("r10 (64-bit)", 10, null, null, true); + testNdkRelease("r10-rc4", 10, null, "rc4", false); + testNdkRelease("r10-rc4 (64-bit)", 10, null, "rc4", true); + testNdkRelease("r10e", 10, "e", null, false); + testNdkRelease("r10e (64-bit)", 10, "e", null, true); + testNdkRelease("r10e-rc4", 10, "e", "rc4", false); + testNdkRelease("r10e-rc4 (64-bit)", 10, "e", "rc4", true); try { // this is actually invalid - testNdkRelease("r10e-rc4 (abc)", "10", "e", "rc4", false); + testNdkRelease("r10e-rc4 (abc)", 10, "e", "rc4", false); throw new Error(); } catch (AssertionError e) { // expected @@ -55,7 +55,7 @@ public class NdkReleaseTest { NdkRelease ndkRelease = NdkRelease.create(releaseString); assertThat(ndkRelease.isValid).isTrue(); assertThat(ndkRelease.rawRelease).isEqualTo("11.2.2725575"); - assertThat(ndkRelease.majorRevision).isEqualTo("11"); + assertThat(ndkRelease.majorRevision).isEqualTo(11); assertThat(ndkRelease.minorRevision).isEqualTo("2"); assertThat(ndkRelease.releaseCandidate).isNull(); assertThat(ndkRelease.is64Bit).isTrue(); @@ -68,15 +68,15 @@ public class NdkReleaseTest { NdkRelease ndkRelease = NdkRelease.create(releaseString); assertThat(ndkRelease.isValid).isTrue(); assertThat(ndkRelease.rawRelease).isEqualTo("12.1.297705"); - assertThat(ndkRelease.majorRevision).isEqualTo("12"); + assertThat(ndkRelease.majorRevision).isEqualTo(12); assertThat(ndkRelease.minorRevision).isEqualTo("1"); assertThat(ndkRelease.releaseCandidate).isNull(); assertThat(ndkRelease.is64Bit).isTrue(); } - + private static void testNdkRelease( String ndkReleaseString, - String majorRelease, + Integer majorRelease, String minorRelease, String releaseCandidate, boolean is64Bit) { @@ -115,7 +115,8 @@ public class NdkReleaseTest { NdkRelease ndkRelease = NdkRelease.create(ndkReleaseString); assertThat(ndkRelease.isValid).isFalse(); assertThat(ndkRelease.rawRelease).isEqualTo(ndkReleaseString); - assertThat(ndkRelease.majorRevision).isNull(); + assertThat(ndkRelease.majorRevision) + .isEqualTo(AndroidNdkCrosstools.LATEST_KNOWN_REVISION.getKey()); assertThat(ndkRelease.minorRevision).isNull(); assertThat(ndkRelease.releaseCandidate).isNull(); assertThat(ndkRelease.is64Bit).isFalse(); -- cgit v1.2.3