diff --git a/src/Xamarin.Android.Tools.AndroidSdk/Sdks/AndroidSdkBase.cs b/src/Xamarin.Android.Tools.AndroidSdk/Sdks/AndroidSdkBase.cs index c76fe9b..2f03b6e 100644 --- a/src/Xamarin.Android.Tools.AndroidSdk/Sdks/AndroidSdkBase.cs +++ b/src/Xamarin.Android.Tools.AndroidSdk/Sdks/AndroidSdkBase.cs @@ -11,7 +11,7 @@ abstract class AndroidSdkBase { // When this changes, update the test: Xamarin.Android.Tools.Tests.AndroidSdkInfoTests.Ndk_MultipleNdkVersionsInSdk const int MinimumCompatibleNDKMajorVersion = 16; - const int MaximumCompatibleNDKMajorVersion = 21; + const int MaximumCompatibleNDKMajorVersion = 23; static readonly char[] SourcePropertiesKeyValueSplit = new char[] { '=' }; diff --git a/tests/Xamarin.Android.Tools.AndroidSdk-Tests/AndroidSdkInfoTests.cs b/tests/Xamarin.Android.Tools.AndroidSdk-Tests/AndroidSdkInfoTests.cs index d195092..a3a3ede 100644 --- a/tests/Xamarin.Android.Tools.AndroidSdk-Tests/AndroidSdkInfoTests.cs +++ b/tests/Xamarin.Android.Tools.AndroidSdk-Tests/AndroidSdkInfoTests.cs @@ -71,7 +71,7 @@ public void Ndk_MultipleNdkVersionsInSdk () { // Must match like-named constants in AndroidSdkBase const int MinimumCompatibleNDKMajorVersion = 16; - const int MaximumCompatibleNDKMajorVersion = 21; + const int MaximumCompatibleNDKMajorVersion = 23; CreateSdks(out string root, out string jdk, out string ndk, out string sdk); @@ -91,8 +91,10 @@ public void Ndk_MultipleNdkVersionsInSdk () "21.2.6472646", "21.3.6528147", "22.0.7026061", + "22.1.7171670", + "23.1.7779620", }; - string expectedVersion = "21.3.6528147"; + string expectedVersion = "23.1.7779620"; string expectedNdkPath = Path.Combine (sdk, "ndk", expectedVersion); try { @@ -137,7 +139,7 @@ public void Ndk_PathInSdk() File.WriteAllText(Path.Combine(ndkPath, $"ndk-stack{extension}"), ""); var info = new AndroidSdkInfo(logger, androidSdkPath: sdk, androidNdkPath: null, javaSdkPath: jdk); - + Assert.AreEqual(ndkPath, info.AndroidNdkPath, "AndroidNdkPath not found inside sdk!"); } finally @@ -308,7 +310,7 @@ public void Sdk_GetCommandLineToolsPaths () var latestToolsVersion = "latest"; var toolsVersion = "2.1"; var higherToolsVersion = "11.2"; - + void recreateCmdlineToolsDirectory () { Directory.Delete (cmdlineTools, recursive: true); Directory.CreateDirectory (cmdlineTools); @@ -324,7 +326,7 @@ void recreateCmdlineToolsDirectory () { Assert.AreEqual (toolsPaths.Count (), 1, "Incorrect number of elements"); Assert.AreEqual (toolsPaths.First (), Path.Combine (sdk, "cmdline-tools", toolsVersion), "Incorrect command line tools path"); - + // Test that cmdline-tools is preferred over tools recreateCmdlineToolsDirectory(); CreateFauxAndroidSdkToolsDirectory (sdk, createToolsDir: true, toolsVersion: latestToolsVersion, createOldToolsDir: true); @@ -347,7 +349,7 @@ void recreateCmdlineToolsDirectory () { && toolsPathsList [1].Equals (Path.Combine (sdk, "cmdline-tools", higherToolsVersion), StringComparison.Ordinal) && toolsPathsList [2].Equals (Path.Combine (sdk, "cmdline-tools", toolsVersion), StringComparison.Ordinal) && toolsPathsList [3].Equals (Path.Combine (sdk, "tools"), StringComparison.Ordinal); - + Assert.IsTrue (isOrderCorrect, "Tools order is not descending"); } finally { Directory.Delete (root, recursive: true); @@ -386,10 +388,10 @@ static void CreateFauxAndroidSdkToolsDirectory (string androidSdkDirectory, bool if (createToolsDir) { string androidSdkToolsPath = Path.Combine (androidSdkDirectory, "cmdline-tools", toolsVersion ?? "1.0"); string androidSdkToolsBinPath = Path.Combine (androidSdkToolsPath, "bin"); - + Directory.CreateDirectory (androidSdkToolsPath); Directory.CreateDirectory (androidSdkToolsBinPath); - + File.WriteAllText (Path.Combine (androidSdkToolsBinPath, IsWindows ? "lint.bat" : "lint"), ""); } @@ -399,7 +401,7 @@ static void CreateFauxAndroidSdkToolsDirectory (string androidSdkDirectory, bool Directory.CreateDirectory (androidSdkToolsPath); Directory.CreateDirectory (androidSdkToolsBinPath); - + File.WriteAllText (Path.Combine (androidSdkToolsBinPath, IsWindows ? "lint.bat" : "lint"), ""); } @@ -414,7 +416,7 @@ static void CreateFauxAndroidSdkDirectory ( ApiInfo[] apiLevels = null) { CreateFauxAndroidSdkToolsDirectory (androidSdkDirectory, createToolsDir, toolsVersion, createOldToolsDir); - + var androidSdkPlatformToolsPath = Path.Combine (androidSdkDirectory, "platform-tools"); var androidSdkPlatformsPath = Path.Combine (androidSdkDirectory, "platforms"); var androidSdkBuildToolsPath = Path.Combine (androidSdkDirectory, "build-tools", buildToolsVersion);