Exemple #1
0
        public void TestSampleMetadataGeneration()
        {
            var policy = new SingleFileMetadataPolicy();
            var sampleMetadataModule = _context.GetModuleForSimpleName("SampleMetadataAssembly");
            var transformResult      = MetadataTransform.Run(policy,
                                                             new[] { _systemModule, sampleMetadataModule });

            Assert.Equal(2, transformResult.Scopes.Count);

            var systemScope = transformResult.Scopes.Single(s => s.Name.Value == "PrimaryMetadataAssembly");
            var sampleScope = transformResult.Scopes.Single(s => s.Name.Value == "SampleMetadataAssembly");

            Assert.Equal(_systemModule.GetAllTypes().Count(t => !policy.IsBlocked(t)), systemScope.GetAllTypes().Count());
            Assert.Equal(sampleMetadataModule.GetAllTypes().Count(t => !policy.IsBlocked(t)), sampleScope.GetAllTypes().Count());

            // TODO: check individual types
        }
Exemple #2
0
        public void TestAllTypes()
        {
            var policy = new SingleFileMetadataPolicy();
            var transformResult = MetadataTransform.Run(policy, new[] { _systemModule });

            Assert.Equal(1, transformResult.Scopes.Count());
            
            Assert.Equal(
                _systemModule.GetAllTypes().Count(x => !policy.IsBlocked(x)),
                transformResult.Scopes.Single().GetAllTypes().Count());
        }
Exemple #3
0
        public void TestAllTypes()
        {
            var policy          = new SingleFileMetadataPolicy();
            var transformResult = MetadataTransform.Run(policy, new[] { _systemModule });

            Assert.Equal(1, transformResult.Scopes.Count());

            Assert.Equal(
                _systemModule.GetAllTypes().Count(x => !policy.IsBlocked(x)),
                transformResult.Scopes.Single().GetAllTypes().Count());
        }
Exemple #4
0
        public void TestBlockedInterface()
        {
            var policy = new SingleFileMetadataPolicy();
            var transform = new ILCompiler.Metadata.Transform<SingleFileMetadataPolicy>(policy);

            int count = 0;
            foreach (Cts.MetadataType type in _systemModule.GetAllTypes())
            {
                if (!policy.IsBlocked(type))
                {
                    transform.HandleType(type);
                    count++;
                }
            }

            Assert.Equal(1, transform.Scopes.Count());
            var transformedTypes = transform.Scopes.Single().GetAllTypes().ToList();
            
            Assert.Equal(count, transformedTypes.Count);

            Assert.Equal(1, _systemModule.GetAllTypes().Cast<Cts.MetadataType>().Single(t => t.Name == "__ComObject").ExplicitlyImplementedInterfaces.Length);
            Assert.Equal(0, transformedTypes.Single(t => t.Name.Value == "__ComObject").Interfaces.Count);
        }
Exemple #5
0
        public void TestBlockedInterface()
        {
            var policy    = new SingleFileMetadataPolicy();
            var transform = new ILCompiler.Metadata.Transform <SingleFileMetadataPolicy>(policy);

            int count = 0;

            foreach (Cts.MetadataType type in _systemModule.GetAllTypes())
            {
                if (!policy.IsBlocked(type))
                {
                    transform.HandleType(type);
                    count++;
                }
            }

            Assert.Equal(1, transform.Scopes.Count());
            var transformedTypes = transform.Scopes.Single().GetAllTypes().ToList();

            Assert.Equal(count, transformedTypes.Count);

            Assert.Equal(1, _systemModule.GetAllTypes().Cast <Cts.MetadataType>().Single(t => t.Name == "__ComObject").ExplicitlyImplementedInterfaces.Length);
            Assert.Equal(0, transformedTypes.Single(t => t.Name.Value == "__ComObject").Interfaces.Count);
        }
Exemple #6
0
        public void TestSampleMetadataGeneration()
        {
            var policy = new SingleFileMetadataPolicy();
            var sampleMetadataModule = _context.GetModuleForSimpleName("SampleMetadataAssembly");
            var transformResult = MetadataTransform.Run(policy,
                new[] { _systemModule, sampleMetadataModule });

            Assert.Equal(2, transformResult.Scopes.Count);

            var systemScope = transformResult.Scopes.Single(s => s.Name.Value == "PrimaryMetadataAssembly");
            var sampleScope = transformResult.Scopes.Single(s => s.Name.Value == "SampleMetadataAssembly");

            Assert.Equal(_systemModule.GetAllTypes().Count(t => !policy.IsBlocked(t)), systemScope.GetAllTypes().Count());
            Assert.Equal(sampleMetadataModule.GetAllTypes().Count(t => !policy.IsBlocked(t)), sampleScope.GetAllTypes().Count());

            // TODO: check individual types
        }