Esempio n. 1
0
 /// <summary>
 /// Performs boilerplate code settings
 /// </summary>
 protected internal void StartConsole(string title = null)
 {
     //set app domain cfg
     _startTime = DateTime.Now;
     if (_isVisable)
     {
         try
         {
             title = title ?? Assembly.GetEntryAssembly().GetName().Name;
             Console.WindowWidth = 100;
             ConsoleCmd.SetConsoleAsTransparent();
             Console.ForegroundColor = ConsoleColor.Green;
             Console.Title           = title;
             PrintToConsole($"{Console.Title} started");
         }
         catch (Exception ex)
         {
             Debug.WriteLine(ex.Message);
             Debug.WriteLine(ex.StackTrace);
         }
     }
     SetReflectionOnly();
     SetDefaultReflectionFlags();
     FxPointers.AddResolveAsmEventHandlerToDomain();
 }
Esempio n. 2
0
        public void TestResolveAllMetadataTokens()
        {
            NfConfig.UseReflectionOnlyLoad = false;
            FxPointers.AddResolveAsmEventHandlerToDomain();

            var testtypeName = "AdventureWorks.VeryBadCode.ViewWankathon";
            var testAsm      = GetAdventureWorks2012();

            Assert.IsNotNull(testAsm);

            var testResult = NoFuture.Gen.Etc.GetCgOfType(testAsm, testtypeName, false, true);

            Assert.IsNotNull(testResult);

            var testResultCgMem = testResult.Methods.FirstOrDefault(x => x.Name == "YouGottaGetWidIt");

            Assert.IsNotNull(testResultCgMem);

            Assert.IsNotNull(testResultCgMem.OpCodeCallAndCallvirts);
            Assert.AreNotEqual(0, testResultCgMem.OpCodeCallAndCallvirts.Count);

            foreach (var opCodeCall in testResultCgMem.OpCodeCallAndCallvirts)
            {
                Console.WriteLine(string.Format("{0} {1} {2}", opCodeCall.DeclaringTypeAsmName, opCodeCall.Name, opCodeCall.TypeName));
            }
        }
Esempio n. 3
0
        public void TestResolveAssemblyEventHandler_BadAsmName()
        {
            var arg = new ResolveEventArgs("this-is-not an assembly name",
                                           AppDomain.CurrentDomain.GetAssemblies().First());

            Assert.Throws <System.IO.FileNotFoundException>(() => FxPointers.ResolveReflectionOnlyAssembly(new object(), arg));
        }
Esempio n. 4
0
        public void TestCtor()
        {
            FxPointers.AddResolveAsmEventHandlerToDomain();
            var testtypeName = "AdventureWorks.Production.Product";
            var testAsm      = TestCgType.GetAdventureWorks2012();

            Assert.IsNotNull(testAsm);

            var testResult = new NoFuture.Gen.CgTypeCsSrcCode(testAsm, testtypeName);
        }
Esempio n. 5
0
        public void TestResolveAssembly_CoreAsm()
        {
            var asmArg = AppDomain.CurrentDomain.GetAssemblies().First();

            Console.WriteLine(asmArg.Location);
            var arg =
                new ResolveEventArgs(
                    "System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
                    AppDomain.CurrentDomain.GetAssemblies().First());
            var testResult = FxPointers.ResolveReflectionOnlyAssembly(new object(), arg);

            Assert.IsNotNull(testResult);
        }
Esempio n. 6
0
        public void TestResolveAssembly_InAssemblySearchPath()
        {
            //TODO have to run twice at least
            MakeSomeAssemblies();
            var sdir = AsmTests.GetTestFileDirectory();

            NfConfig.AssemblySearchPaths.Add(sdir);
            var testAsm2 =
                System.Reflection.Assembly.ReflectionOnlyLoadFrom(System.IO.Path.Combine(sdir, "TestAsm2.dll"));
            var arg        = new ResolveEventArgs("TestAsm, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", testAsm2);
            var testResult = FxPointers.ResolveReflectionOnlyAssembly(new object(), arg);

            Assert.IsNotNull(testResult);
            Assert.AreEqual("TestAsm, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", testResult.FullName);
        }
Esempio n. 7
0
        public void TestCtor2()
        {
            FxPointers.AddResolveAsmEventHandlerToDomain();
            var testtypeName = "AdventureWorks.Production.Product";
            var testAsm      = TestCgType.GetAdventureWorks2012();

            var testFile = TestCgType.PutTestFileOnDisk("Production_Product.eg");

            Assert.IsNotNull(testAsm);
            Assert.IsTrue(File.Exists(testFile));

            var testResult = new NoFuture.Gen.CgTypeCsSrcCode(testAsm, testtypeName, testFile);

            Assert.IsNotNull(testResult.CgType);
            Assert.IsTrue(testResult.CgType.Properties.Any(p => p.GetMyStartEnclosure(null) != null));
        }
Esempio n. 8
0
        public void TestFindCgMemberByTokenName()
        {
            NfConfig.UseReflectionOnlyLoad = false;
            FxPointers.AddResolveAsmEventHandlerToDomain();
            var testAsm = GetAdventureWorks2012();

            const string testTypeName = "AdventureWorks.VeryBadCode.BasicGenerics";
            var          testType     = testAsm.GetType(testTypeName);

            Assert.IsNotNull(testType);

            var testMethod = testType.GetMember("TakesGenericArg").FirstOrDefault();

            Assert.IsNotNull(testMethod);

            var testAsmIndicies = new AsmIndexResponse()
            {
                Asms =
                    new[]
                {
                    new MetadataTokenAsm()
                    {
                        AssemblyName = "AdventureWorks2012, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null",
                        IndexId      = 0
                    }
                }
            };
            var testTokenName = AssemblyAnalysis.ConvertToMetadataTokenName(testMethod, testAsmIndicies, null);

            Assert.IsNotNull(testTokenName);

            var testCgType = NoFuture.Gen.Etc.GetCgOfType(testAsm, testTypeName, false);

            Assert.IsNotNull(testCgType);

            var testResult = testCgType.FindCgMemberByTokenName(testTokenName);

            Assert.IsNotNull(testResult);
        }
Esempio n. 9
0
        public void TestRemoveCgMember()
        {
            NfConfig.UseReflectionOnlyLoad = false;
            FxPointers.AddResolveAsmEventHandlerToDomain();
            var testAsm = GetAdventureWorks2012();

            const string testTypeName = "AdventureWorks.VeryBadCode.BasicGenerics";
            var          testType     = testAsm.GetType(testTypeName);

            Assert.IsNotNull(testType);

            var testCgType = NoFuture.Gen.Etc.GetCgOfType(testAsm, testTypeName, false);

            Assert.IsNotNull(testCgType);

            var cgMem = testCgType.Methods.FirstOrDefault();

            Assert.IsNotNull(cgMem);

            var testResult = testCgType.RemoveCgMember(cgMem);

            Assert.AreEqual(1, testResult);
        }
Esempio n. 10
0
        public void TestFindCgMember()
        {
            NfConfig.UseReflectionOnlyLoad = false;
            FxPointers.AddResolveAsmEventHandlerToDomain();
            var testAsm = GetAdventureWorks2012();

            const string testTypeName = "AdventureWorks.VeryBadCode.BasicGenerics";
            var          testType     = testAsm.GetType(testTypeName);

            Assert.IsNotNull(testType);

            var testMethod = testType.GetMember("TakesGenericArg").FirstOrDefault();

            Assert.IsNotNull(testMethod);

            var testCgType = NoFuture.Gen.Etc.GetCgOfType(testAsm, testTypeName, false);

            Assert.IsNotNull(testCgType);

            var testResult = testCgType.FindCgMember("TakesGenericArg", new [] { "myGenericArg" });

            Assert.IsNotNull(testResult);
            Assert.AreEqual("TakesGenericArg", testResult.Name);
        }
Esempio n. 11
0
 public void Init()
 {
     FxPointers.AddSHA512ToCryptoConfig();
 }