Ejemplo n.º 1
0
        public void CreatePcFileCacheWithCacheFileContaining1EntryForAnExistingPcFile()
        {
            // Create pc cache file with an entry and corresponding pc file
            string pkgConfigFileName     = "gtk-sharp-2.0.pc";
            string pkgConfigFullFilePath = Path.GetFullPath(Path.Combine(pkgConfigDir, pkgConfigFileName));
            string pcCacheFileContent    = @"<PcFileCache>
  <File path=""" + pkgConfigFullFilePath + @""" lastWriteTime=""2013-11-23T21:18:31+01:00"" />
</PcFileCache>
";

            string pkgConfigFileContent = @"prefix=${pcfiledir}/../..
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
gapidir=${prefix}/share/gapi-2.0


Name: Gtk#
Description: Gtk# - GNOME .NET Binding
Version: 2.12.10
Cflags: -I:${gapidir}/pango-api.xml -I:${gapidir}/atk-api.xml -I:${gapidir}/gdk-api.xml -I:${gapidir}/gtk-api.xml
Libs: -r:${libdir}/cli/pango-sharp-2.0/pango-sharp.dll -r:${libdir}/cli/atk-sharp-2.0/atk-sharp.dll -r:${libdir}/cli/gdk-sharp-2.0/gdk-sharp.dll -r:${libdir}/cli/gtk-sharp-2.0/gtk-sharp.dll
Requires: glib-sharp-2.0
";

            AddPkgConfigFile(pkgConfigFileName, pkgConfigFileContent);
            WritePcCacheFileContent(pcCacheFileContent);

            PcFileCache cache = PcFileCacheStub.Create(cacheDir);

            // cache should contain entry of pc file
            Assert.IsNotNull(cache.GetPackageInfo(pkgConfigFullFilePath), "A1");
        }
Ejemplo n.º 2
0
        public void CreatePcFileCacheWithoutCacheFileButWithPcFile()
        {
            string pkgConfigFileName    = "gtk-sharp-2.0.pc";
            string pkgConfigFileContent = @"prefix=${pcfiledir}/../..
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
gapidir=${prefix}/share/gapi-2.0


Name: Gtk#
Description: Gtk# - GNOME .NET Binding
Version: 2.12.10
Cflags: -I:${gapidir}/pango-api.xml -I:${gapidir}/atk-api.xml -I:${gapidir}/gdk-api.xml -I:${gapidir}/gtk-api.xml
Libs: -r:${libdir}/cli/pango-sharp-2.0/pango-sharp.dll -r:${libdir}/cli/atk-sharp-2.0/atk-sharp.dll -r:${libdir}/cli/gdk-sharp-2.0/gdk-sharp.dll -r:${libdir}/cli/gtk-sharp-2.0/gtk-sharp.dll
Requires: glib-sharp-2.0
";

            AddPkgConfigFile(pkgConfigFileName, pkgConfigFileContent);

            PcFileCache cache = PcFileCacheStub.Create(cacheDir);

            // cache file should exist
            Assert.IsFalse(File.Exists(pcCacheFilePath), "A1");

            // cache should be empty
            string[] pkgConfigDirs = { pkgConfigDir };
            CollectionAssert.IsEmpty(cache.GetPackages(pkgConfigDirs), "A2");
        }
Ejemplo n.º 3
0
            public static PcFileCache Create(string cacheDirectory)
            {
                initCacheDirectory = cacheDirectory;
                PcFileCache cache = new PcFileCacheStub(cacheDirectory);

                initCacheDirectory = null;
                return(cache);
            }
Ejemplo n.º 4
0
        public void CreatePcFileCacheWithExistingEmptyCacheFile()
        {
            // Create pc cache file
            WritePcCacheFileContent("");
            PcFileCache cache = PcFileCacheStub.Create(cacheDir);

            // cache should be empty
            string[] pkgConfigDirs = { pkgConfigDir };
            CollectionAssert.IsEmpty(cache.GetPackages(pkgConfigDirs), "A1");
        }
Ejemplo n.º 5
0
        public void CreatePcFileCache()
        {
            PcFileCacheStub.Create(cacheDir);

            // cache dir should exist
            Assert.IsTrue(Directory.Exists(cacheDir), "A1");

            // cache file should not exist
            Assert.IsFalse(File.Exists(pcCacheFilePath), "A2");
        }
Ejemplo n.º 6
0
        public void CreatePcFileCacheWithCacheFileContainingOneOrphanedEntry()
        {
            string pkgConfigFileName     = "gtk-sharp-2.0.pc";
            string pkgConfigFullFilePath = Path.GetFullPath(Path.Combine(pkgConfigDir, pkgConfigFileName));
            string pcCacheFileContent    = @"<PcFileCache>
  <File path=""" + pkgConfigFullFilePath + @""" lastWriteTime=""2013-11-23T21:18:31+01:00"" />
</PcFileCache>
";

            WritePcCacheFileContent(pcCacheFileContent);

            PcFileCache cache = PcFileCacheStub.Create(cacheDir);

            // cache should contain orphaned entry
            Assert.IsNotNull(cache.GetPackageInfo(pkgConfigFullFilePath), "A1");
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        public void UpdatePcFileCacheWithOrphanedEntry()
        {
            string pkgConfigFileNameAttr = "gtk-sharp-2.0";
            string pkgConfigFileName     = "gtk-sharp-2.0.pc";
            string pkgConfigFullFilePath = Path.GetFullPath(Path.Combine(pkgConfigDir, pkgConfigFileName));
            string pcCacheFileContent    = @"<PcFileCache>
  <File path=""" + pkgConfigFullFilePath + @""" lastWriteTime=""2013-11-23T21:18:31+01:00"" name=""" + pkgConfigFileNameAttr + @""" />
</PcFileCache>
";

            WritePcCacheFileContent(pcCacheFileContent);

            PcFileCache cache = PcFileCacheStub.Create(cacheDir);

            // precondition
            string[] pkgConfigDirs = { pkgConfigDir };
            Assert.IsNotNull(cache.GetPackageInfoByName(pkgConfigFileNameAttr, pkgConfigDirs), "A1");

            cache.Update(pkgConfigDirs);
            Assert.IsNull(cache.GetPackageInfoByName(pkgConfigFileNameAttr, pkgConfigDirs), "A2");
        }
Ejemplo n.º 9
0
			public static PcFileCache Create (string cacheDirectory)
			{
				initCacheDirectory = cacheDirectory;
				PcFileCache cache = new PcFileCacheStub (cacheDirectory);
				initCacheDirectory = null;
				return cache;
			}