Example #1
0
        public static string RunMigration(string supportDll, CecilMigrationResult expectedResult, string logPath = null)
        {
            var migratedDll = Utils.GetTempFilename() + ".dll";

            var migrator = new CecilMigrator();

            if (!string.IsNullOrWhiteSpace(logPath))
            {
                migrator.MessageLogged += (sender, e) =>
                {
                    var log = string.Empty;
                    if (e.IsError)
                    {
                        log += "ERROR: ";
                    }
                    if (e.IsVerbose)
                    {
                        log += "VERBOSE: ";
                    }
                    log += e.Message;
                    File.AppendAllLines(logPath, new [] { log });
                };
            }

            var result = migrator.Migrate(supportDll, migratedDll);

            Assert.Equal(expectedResult, result);

            return(migratedDll);
        }
        public override bool Execute()
        {
            var pairs = new List <MigrationPair>(Assemblies.Length);

            foreach (var file in Assemblies)
            {
                pairs.Add(new MigrationPair(file.ItemSpec, file.ItemSpec));
            }

            var cecilfier = new CecilMigrator
            {
                SkipEmbeddedResources = SkipEmbeddedResources,
                Verbose          = Verbose,
                EnablePdbSupport = EnablePdbSupport
            };

            cecilfier.MessageLogged += (sender, e) => LogToolMessage(e);

            try
            {
                var result = cecilfier.Migrate(pairs);

                Log.LogMessage($"Result of cecilfication: {result}");
            }
            catch (Exception ex)
            {
                Log.LogErrorFromException(ex, true);

                return(false);
            }

            return(!cecilfier.HasLoggedErrors);
        }
Example #3
0
        public static string RunMigration(string supportDll, CecilMigrationResult expectedResult)
        {
            var migratedDll = Utils.GetTempFilename() + ".dll";

            var migrator = new CecilMigrator();
            var result   = migrator.Migrate(supportDll, migratedDll);

            Assert.Equal(expectedResult, result);

            return(migratedDll);
        }
Example #4
0
        public void JniStringAreCorrectlyMapped(string supportJni, string androidxJni)
        {
            var cecilMigrator = new CecilMigrator();
            var wasChanged    = cecilMigrator.MigrateJniString(supportJni, out var mappedJni);

            Assert.Equal(supportJni != androidxJni, wasChanged);
            if (wasChanged)
            {
                Assert.Equal(androidxJni, mappedJni);
            }
            else
            {
                Assert.Null(mappedJni);
            }
        }
Example #5
0
        protected override bool OnInvoke(IEnumerable <string> extras)
        {
            var assemblyPairs = Assemblies.Select(a => new MigrationPair(a.Key, a.Value)).ToArray();

            var migrator = new CecilMigrator
            {
                Verbose = Program.Verbose,
                SkipEmbeddedResources = skipEmbeddedResources,
                RenameTypes           = renameTypes,
                JavaPath = JavaPath,
            };

            migrator.MessageLogged += (sender, e) => LogToolMessage(e);

            migrator.Migrate(assemblyPairs);

            return(true);
        }
Example #6
0
        public override bool Execute()
        {
            var pairs = new List <MigrationPair>(Assemblies.Length);

            var refs = References.Select(r => r.ItemSpec).ToList();

            foreach (var file in Assemblies)
            {
                var f = file.ItemSpec;

                // create the migration pair
                pairs.Add(new MigrationPair(f, f));

                // replace the original with the migrated assembly
                refs.RemoveAll(r => Path.GetFileName(r) == Path.GetFileName(f));
                refs.Add(f);
            }

            var cecilfier = new CecilMigrator
            {
                SkipEmbeddedResources = SkipEmbeddedResources,
                References            = refs,
                Verbose = Verbose
            };

            cecilfier.MessageLogged += (sender, e) => LogToolMessage(e);

            try
            {
                var result = cecilfier.Migrate(pairs);

                Log.LogMessage($"Result of cecilfication: {result}");
            }
            catch (Exception ex)
            {
                Log.LogErrorFromException(ex, true);

                return(false);
            }

            return(!cecilfier.HasLoggedErrors);
        }