Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonius Riha <antoniusriha@gmail.com>2013-12-30 16:03:31 +0400
committerAntonius Riha <antoniusriha@gmail.com>2014-01-03 00:14:53 +0400
commit37c3ac78f53bfb3c95a94f5a9f847cc8cc1c1da9 (patch)
treeb2a9ac8321c4968b814f9702b11f3222b9259443 /mcs/class/Mono.XBuild.Tasks
parentbbd241298576279e117a0e294006bfc7be407432 (diff)
Add a test for PcFileCache.GetPackages()
Diffstat (limited to 'mcs/class/Mono.XBuild.Tasks')
-rw-r--r--mcs/class/Mono.XBuild.Tasks/Test/Mono.XBuild.Tasks/PcFileCacheTest.cs49
1 files changed, 49 insertions, 0 deletions
diff --git a/mcs/class/Mono.XBuild.Tasks/Test/Mono.XBuild.Tasks/PcFileCacheTest.cs b/mcs/class/Mono.XBuild.Tasks/Test/Mono.XBuild.Tasks/PcFileCacheTest.cs
index 9ac9c64386f..5f4ae8d136e 100644
--- a/mcs/class/Mono.XBuild.Tasks/Test/Mono.XBuild.Tasks/PcFileCacheTest.cs
+++ b/mcs/class/Mono.XBuild.Tasks/Test/Mono.XBuild.Tasks/PcFileCacheTest.cs
@@ -24,6 +24,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System;
+using System.Collections.Generic;
using System.IO;
using Mono.PkgConfig;
using NUnit.Framework;
@@ -158,6 +159,49 @@ Requires: glib-sharp-2.0
CollectionAssert.IsEmpty (cache.GetPackages (pkgConfigDirs), "A2");
}
+ [Test]
+ public void GetPackagesOrderedByFolder ()
+ {
+ string pkgConfigDir1 = "testpkgconfigdir1";
+ string pkgConfigDir2 = "testpkgconfigdir2";
+ Directory.CreateDirectory (pkgConfigDir1);
+ Directory.CreateDirectory (pkgConfigDir2);
+
+ string pkgConfigFile11NameAttr = "gtk-sharp-2.0";
+ string pkgConfigFile11FullPath = Path.GetFullPath (Path.Combine (pkgConfigDir1, "gtk-sharp-2.0.pc"));
+
+ string pkgConfigFile21NameAttr = "art-sharp-2.0";
+ string pkgConfigFile21FullPath = Path.GetFullPath (Path.Combine (pkgConfigDir2, "art-sharp-2.0.pc"));
+
+ string pkgConfigFile12NameAttr = "cecil";
+ string pkgConfigFile12FullPath = Path.GetFullPath (Path.Combine (pkgConfigDir1, "cecil.pc"));
+
+ string pcCacheFileContent = @"<PcFileCache>
+ <File path=""" + pkgConfigFile11FullPath + @""" lastWriteTime=""2013-11-23T21:18:31+01:00"" name=""" + pkgConfigFile11NameAttr + @""" />
+ <File path=""" + pkgConfigFile21FullPath + @""" lastWriteTime=""2011-07-12T12:04:53+02:00"" name=""" + pkgConfigFile21NameAttr + @""" />
+ <File path=""" + pkgConfigFile12FullPath + @""" lastWriteTime=""2012-07-24T22:28:30+02:00"" name=""" + pkgConfigFile12NameAttr + @""" />
+</PcFileCache>
+";
+
+ WritePcCacheFileContent (pcCacheFileContent);
+
+ PcFileCache cache = PcFileCacheStub.Create (cacheDir);
+ string[] pkgConfigDirs = { pkgConfigDir1, pkgConfigDir2 };
+ IEnumerable<PackageInfo> packages = cache.GetPackages (pkgConfigDirs);
+
+ PackageInfo[] packageArray = new PackageInfo [3];
+ int i = 0;
+ foreach (PackageInfo package in packages)
+ packageArray [i++] = package;
+
+ Assert.AreEqual (pkgConfigFile11NameAttr, packageArray [0].Name, "A1");
+ Assert.AreEqual (pkgConfigFile12NameAttr, packageArray [1].Name, "A2");
+ Assert.AreEqual (pkgConfigFile21NameAttr, packageArray [2].Name, "A3");
+
+ Directory.Delete (pkgConfigDir1, true);
+ Directory.Delete (pkgConfigDir2, true);
+ }
+
static void WritePcCacheFileContent (string content)
{
File.WriteAllText (pcCacheFilePath, content);
@@ -165,6 +209,11 @@ Requires: glib-sharp-2.0
static void AddPkgConfigFile (string fileName, string content)
{
+ AddPkgConfigFile (fileName, content, pkgConfigDir);
+ }
+
+ static void AddPkgConfigFile (string fileName, string content, string pkgConfigDir)
+ {
string path = Path.Combine (pkgConfigDir, fileName);
File.WriteAllText (path, content);
}