Example #1
0
        private ClrModule GetMscorlib()
        {
            ClrModule mscorlib   = null;
            string    moduleName = ClrInfo.Flavor == ClrFlavor.Core
                ? "system.private.corelib"
                : "mscorlib";

            foreach (ClrModule module in _modules.Values)
            {
                if (module.Name.ToLowerInvariant().Contains(moduleName))
                {
                    mscorlib = module;
                    break;
                }
            }

            if (mscorlib == null)
            {
                IAppDomainStoreData ads          = GetAppDomainStoreData();
                IAppDomainData      sharedDomain = GetAppDomainData(ads.SharedDomain);
                foreach (ulong assembly in GetAssemblyList(ads.SharedDomain, sharedDomain.AssemblyCount))
                {
                    string name = GetAssemblyName(assembly);
                    if (name.ToLowerInvariant().Contains(moduleName))
                    {
                        IAssemblyData assemblyData = GetAssemblyData(ads.SharedDomain, assembly);
                        ulong         module       = GetModuleList(assembly, assemblyData.ModuleCount).Single();
                        mscorlib = GetModule(module);
                    }
                }
            }

            return(mscorlib);
        }
        public static bool ReadFixture(Type fixtureType, IAssemblyData data, string workingDirectory)
        {
            var fixtureAttribs = fixtureType.GetCustomAttributes(typeof(TestFixtureAttribute), true);

            if (!fixtureAttribs.Any())
            {
                //Console.WriteLine("Specified fixture does not have the required TestFixture attribute.");
                return(false);
            }

            var fixData = new FixtureData(data, fixtureType.Name);

            data.Fixtures.Add(fixData);

            foreach (var test in fixtureType.GetMethods())
            {
                var testAttribs = test.GetCustomAttributes(typeof(TestAttribute), false);
                if (!testAttribs.Any())
                {
                    // skip this method
                    continue;
                }

                if (!ReadTest(test, fixData, workingDirectory))
                {
                    //Console.WriteLine(string.Format("Journal could not be created for test:{0} in fixture:{1}", _test,_fixture));
                    continue;
                }
            }

            return(true);
        }
Example #3
0
        internal IEnumerable <ulong> EnumerateModules(IAppDomainData appDomain)
        {
            if (appDomain != null)
            {
                ulong[] assemblies = GetAssemblyList(appDomain.Address, appDomain.AssemblyCount);
                if (assemblies != null)
                {
                    foreach (ulong assembly in assemblies)
                    {
                        IAssemblyData data = GetAssemblyData(appDomain.Address, assembly);
                        if (data == null)
                        {
                            continue;
                        }

                        ulong[] moduleList = GetModuleList(assembly, data.ModuleCount);
                        if (moduleList != null)
                        {
                            foreach (ulong module in moduleList)
                            {
                                yield return(module);
                            }
                        }
                    }
                }
            }
        }
Example #4
0
 public static void RunAssembly(IAssemblyData ad)
 {
     foreach (var fix in ad.Fixtures)
     {
         RunFixture(fix);
     }
 }
        public static bool ReadFixture(Type fixtureType, IAssemblyData data, string workingDirectory)
        {
            var fixtureAttribs = CustomAttributeData.GetCustomAttributes(fixtureType);

            if (!fixtureAttribs.Any(x => x.Constructor.DeclaringType.Name == "TestFixtureAttribute"))
            {
                //Console.WriteLine("Specified fixture does not have the required TestFixture attribute.");
                return false;
            }

            var fixData = new FixtureData(data, fixtureType.Name);
            data.Fixtures.Add(fixData);

            foreach (var test in fixtureType.GetMethods())
            {
                var testAttribs = CustomAttributeData.GetCustomAttributes(test);

                if (!testAttribs.Any(x => x.Constructor.DeclaringType.Name == "TestAttribute"))
                {
                    // skip this method
                    continue;
                }

                if (!ReadTest(test, fixData, workingDirectory))
                {
                    //Console.WriteLine(string.Format("Journal could not be created for test:{0} in fixture:{1}", _test,_fixture));
                    continue;
                }
            }

            // sort the collection
            fixData.Tests = fixData.Tests.Sorted(x => x.Name);

            return true;
        }
        public CategoryData(IAssemblyData assembly, string name)
        {
            Name     = name;
            Tests    = new ObservableCollection <ITestData>();
            Assembly = assembly;

            Tests.CollectionChanged += Tests_CollectionChanged;
        }
        public FixtureData(IAssemblyData assembly, string name)
        {
            Assembly = assembly;
            Tests = new ObservableCollection<ITestData>();
            Name = name;
            FixtureStatus = FixtureStatus.None;

            Tests.CollectionChanged += Tests_CollectionChanged;
        }
        public FixtureData(IAssemblyData assembly, string name)
        {
            Assembly      = assembly;
            Tests         = new ObservableCollection <ITestData>();
            Name          = name;
            FixtureStatus = FixtureStatus.None;

            Tests.CollectionChanged += Tests_CollectionChanged;
        }
        public void RunAssembly(IAssemblyData ad)
        {
            if (!File.Exists(AddinPath))
            {
                CreateAddin(AddinPath, AssemblyPath);
            }

            foreach (var fix in ad.Fixtures)
            {
                RunFixture(fix);
            }
        }
Example #10
0
        protected MemberData(TMemberInfo member, AnalysisContext context) : base(context)
        {
            Argument.VerifyNotNull("member", member);

            this.inner = member;

            if (member.DeclaringType != null)
            {
                this.declaringType = context.Resolver.Resolve(member.DeclaringType);
            }

            this.assembly = context.Resolver.Resolve(member.Module.Assembly);
        }
Example #11
0
        private void Run()
        {
            string[] assemblyFiles = IOC.Get <IAssemblyFilesSelector>().SelectAssemblies();

            if (null == assemblyFiles)
            {
                return;
            }

            foreach (String assemblyFile in assemblyFiles)
            {
                IAssemblyData assemblyData =
                    IOC.Get <IAssemblyData>(With.Parameters.ConstructorArgument("assemblyFile", assemblyFile));
                assemblyData.InjectCode();
            }
        }
Example #12
0
        private DesktopAppDomain InitDomain(ulong domain, string name = null)
        {
            ulong[]        bases      = new ulong[1];
            IAppDomainData domainData = GetAppDomainData(domain);

            if (domainData == null)
            {
                return(null);
            }

            DesktopAppDomain appDomain = new DesktopAppDomain(this, domainData, name ?? GetAppDomaminName(domain));

            if (domainData.AssemblyCount > 0)
            {
                foreach (ulong assembly in GetAssemblyList(domain, domainData.AssemblyCount))
                {
                    IAssemblyData assemblyData = GetAssemblyData(domain, assembly);
                    if (assemblyData == null)
                    {
                        continue;
                    }

                    if (assemblyData.ModuleCount > 0)
                    {
                        foreach (ulong module in GetModuleList(assembly, assemblyData.ModuleCount))
                        {
                            DesktopModule clrModule = GetModule(module);
                            if (clrModule != null)
                            {
                                clrModule.AddMapping(appDomain, module);
                                appDomain.AddModule(clrModule);
                            }
                        }
                    }
                }
            }

            return(appDomain);
        }
Example #13
0
 public static void RunAssembly(IAssemblyData ad)
 {
     foreach (var fix in ad.Fixtures)
     {
         RunFixture(fix);
     }
 }
Example #14
0
 public FixtureData(IAssemblyData assembly, string name)
 {
     Assembly = assembly;
     Tests    = new List <ITestData>();
     Name     = name;
 }
        public void RunAssembly(IAssemblyData ad)
        {
            if (!File.Exists(AddinPath))
            {
                CreateAddin(AddinPath, AssemblyPath);
            }

            foreach (var fix in ad.Fixtures)
            {
                RunFixture(fix);
            }
        }
Example #16
0
 public CategoryData(IAssemblyData assembly, string name)
 {
     Name = name;
     Tests = new ObservableCollection<ITestData>();
     Assembly = assembly;
 }
Example #17
0
        /// <summary>
        /// Setup all tests in a selected assembly.
        /// </summary>
        /// <param name="ad"></param>
        /// <param name="continuous"></param>
        private void SetupAssemblyTests(IAssemblyData ad, bool continuous = false)
        {
            if (ad.ShouldRun == false)
                return;

            foreach (var fix in ad.Fixtures)
            {
                if (cancelRequested)
                {
                    cancelRequested = false;
                    break;
                }

                SetupFixtureTests(fix as IFixtureData, continuous);
            }
        }
 internal IEnumerable<TypeData> LoadTypes(IAssemblyData assembly)
 {
     return assembly.Types.SelectDescendantsAndSelves(
         type => type.Members.OfType<TypeData>()
     );
 }
Example #19
0
        private static bool ReadFixture(Type fixtureType, IAssemblyData data)
        {
            var fixtureAttribs = fixtureType.GetCustomAttributes(typeof (TestFixtureAttribute), true);
            if (!fixtureAttribs.Any())
            {
                Console.WriteLine("Specified fixture does not have the required TestFixture attribute.");
                return false;
            }

            var fixData = new FixtureData(data, fixtureType.Name);
            data.Fixtures.Add(fixData);

            foreach (var test in fixtureType.GetMethods())
            {
                var testAttribs = test.GetCustomAttributes(typeof(TestAttribute), false);
                if (!testAttribs.Any())
                {
                    // skip this method
                    continue;
                }

                if (!ReadTest(test, fixData))
                {
                    Console.WriteLine(string.Format("Journal could not be created for test:{0} in fixture:{1}", _test,
                        _fixture));
                    continue;
                }
            }

            return true;
        }
Example #20
0
 public FixtureData(IAssemblyData assembly, string name)
 {
     Assembly = assembly;
     Tests = new List<ITestData>();
     Name = name;
 }
 internal IEnumerable <TypeData> LoadTypes(IAssemblyData assembly)
 {
     return(assembly.Types.SelectDescendantsAndSelves(
                type => type.Members.OfType <TypeData>()
                ));
 }