diff --git a/Makefile b/Makefile index ef6d107..6cf6e73 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ CONFIGURATION := Debug -NUNIT_CONSOLE := packages/NUnit.ConsoleRunner.3.9.0/tools/nunit3-console.exe +NUNIT_CONSOLE := packages/nunit.consolerunner/3.9.0/tools/nunit3-console.exe OS := $(shell uname) RUNTIME := mono --debug=casts V ?= 0 @@ -23,7 +23,7 @@ define RUN_NUNIT_TEST $(RUNTIME) \ $(NUNIT_CONSOLE) $(NUNIT_EXTRA) $(1) \ $(if $(RUN),-run:$(RUN)) \ - --result="TestResult-$(basename $(notdir $(1))).xml;format=nunit2" \ + --result="TestResult-$(basename $(notdir $(1))).xml" \ -output=bin/Test$(CONFIGURATION)/TestOutput-$(basename $(notdir $(1))).txt \ || true ; \ if [ -f "bin/Test$(CONFIGURATION)/TestOutput-$(basename $(notdir $(1))).txt" ] ; then \ diff --git a/NuGet.config b/NuGet.config new file mode 100644 index 0000000..a877b8c --- /dev/null +++ b/NuGet.config @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/Xamarin.Android.Tools.AndroidSdk/AndroidSdkInfo.cs b/src/Xamarin.Android.Tools.AndroidSdk/AndroidSdkInfo.cs index 4cf0ee4..c12d7a4 100644 --- a/src/Xamarin.Android.Tools.AndroidSdk/AndroidSdkInfo.cs +++ b/src/Xamarin.Android.Tools.AndroidSdk/AndroidSdkInfo.cs @@ -45,17 +45,17 @@ public IEnumerable GetBuildToolsPaths () { var buildTools = Path.Combine (AndroidSdkPath, "build-tools"); if (Directory.Exists (buildTools)) { + var sorted = SortedSubdirectoriesByVersion (buildTools); + + foreach (var d in sorted) + yield return d; + var preview = Directory.EnumerateDirectories (buildTools) .Where(x => TryParseVersion (Path.GetFileName (x)) == null) .Select(x => x); foreach (var d in preview) yield return d; - - var sorted = SortedSubdirectoriesByVersion (buildTools); - - foreach (var d in sorted) - yield return d; } var ptPath = Path.Combine (AndroidSdkPath, "platform-tools"); if (Directory.Exists (ptPath)) diff --git a/tests/Xamarin.Android.Tools.AndroidSdk-Tests/AndroidSdkInfoTests.cs b/tests/Xamarin.Android.Tools.AndroidSdk-Tests/AndroidSdkInfoTests.cs index 5b31f3b..262a292 100644 --- a/tests/Xamarin.Android.Tools.AndroidSdk-Tests/AndroidSdkInfoTests.cs +++ b/tests/Xamarin.Android.Tools.AndroidSdk-Tests/AndroidSdkInfoTests.cs @@ -448,5 +448,30 @@ string UnixConfigPath { return Path.Combine (UnixConfigDirOverridePath, "monodroid-config.xml"); } } + + [Test] + public void GetBuildToolsPaths_StableVersionsFirst () + { + CreateSdks (out string root, out string jdk, out string ndk, out string sdk); + CreateFauxAndroidSdkDirectory (sdk, "27.0.0-rc4"); + + var logs = new StringWriter (); + Action logger = (level, message) => { + logs.WriteLine ($"[{level}] {message}"); + }; + + try { + var info = new AndroidSdkInfo (logger, androidSdkPath: sdk, androidNdkPath: ndk, javaSdkPath: jdk); + + var buildToolsPaths = info.GetBuildToolsPaths ().ToList (); + Assert.AreEqual (3, buildToolsPaths.Count); + Assert.AreEqual (Path.Combine (sdk, "build-tools", "26.0.0"), buildToolsPaths [0]); + Assert.AreEqual (Path.Combine (sdk, "build-tools", "27.0.0-rc4"), buildToolsPaths [1]); + Assert.AreEqual (Path.Combine (sdk, "platform-tools"), buildToolsPaths [2]); + } + finally { + Directory.Delete (root, recursive: true); + } + } } }