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); }
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); }
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); } }
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); }
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); }