Пример #1
0
 public virtual void Link(string[] args, LinkerCustomizations customizations, ILogger logger)
 {
     Driver.ProcessResponseFile(args, out var queue);
     using (var driver = new TestDriver(queue, customizations)) {
         driver.Run(logger);
     }
 }
Пример #2
0
        public virtual void CustomizeLinker(LinkerDriver linker, LinkerCustomizations customizations)
        {
            if (_testCaseTypeDefinition.CustomAttributes.Any(attr =>
                                                             attr.AttributeType.Name == nameof(DependencyRecordedAttribute)))
            {
                customizations.DependencyRecorder = new TestDependencyRecorder();
                customizations.CustomizeContext  += context => {
                    context.Tracer.AddRecorder(customizations.DependencyRecorder);
                };
            }

            if (ValidatesReflectionAccessPatterns(_testCaseTypeDefinition))
            {
                customizations.ReflectionPatternRecorder = new TestReflectionPatternRecorder();
                customizations.CustomizeContext         += context => {
                    customizations.ReflectionPatternRecorder.PreviousRecorder = context.ReflectionPatternRecorder;
                    context.ReflectionPatternRecorder = customizations.ReflectionPatternRecorder;
                    context.LogMessages = true;
                };
            }

            if (ValidatesLogMessages(_testCaseTypeDefinition))
            {
                customizations.CustomizeContext += context => {
                    context.LogMessages = true;
                };
            }
        }
Пример #3
0
        protected virtual LinkerCustomizations CustomizeLinker(LinkerDriver linker, TestCaseMetadataProvider metadataProvider)
        {
            LinkerCustomizations customizations = new LinkerCustomizations();

            metadataProvider.CustomizeLinker(linker, customizations);

            return(customizations);
        }
Пример #4
0
 public LinkedTestCaseResult(TestCase testCase, NPath inputAssemblyPath, NPath outputAssemblyPath, NPath expectationsAssemblyPath, TestCaseSandbox sandbox, TestCaseMetadataProvider metadataProvider, ManagedCompilationResult compilationResult, LinkerTestLogger logger, LinkerCustomizations customizations)
 {
     TestCase                 = testCase;
     InputAssemblyPath        = inputAssemblyPath;
     OutputAssemblyPath       = outputAssemblyPath;
     ExpectationsAssemblyPath = expectationsAssemblyPath;
     Sandbox           = sandbox;
     MetadataProvider  = metadataProvider;
     CompilationResult = compilationResult;
     Logger            = logger;
     Customizations    = customizations;
 }
Пример #5
0
        public virtual void CustomizeLinker(LinkerDriver linker, LinkerCustomizations customizations)
        {
            if (_testCaseTypeDefinition.CustomAttributes.Any(attr =>
                                                             attr.AttributeType.Name == nameof(DependencyRecordedAttribute)))
            {
                customizations.DependencyRecorder = new TestDependencyRecorder();
                customizations.CustomizeContext  += context => {
                    context.Tracer.AddRecorder(customizations.DependencyRecorder);
                };
            }

            if (_testCaseTypeDefinition.CustomAttributes.Any(attr =>
                                                             attr.AttributeType.Name == nameof(VerifyAllReflectionAccessPatternsAreValidatedAttribute)) ||
                _testCaseTypeDefinition.AllMethods().Any(method => method.CustomAttributes.Any(attr =>
                                                                                               attr.AttributeType.Name == nameof(RecognizedReflectionAccessPatternAttribute) ||
                                                                                               attr.AttributeType.Name == nameof(UnrecognizedReflectionAccessPatternAttribute))))
            {
                customizations.ReflectionPatternRecorder = new TestReflectionPatternRecorder();
                customizations.CustomizeContext         += context => {
                    context.ReflectionPatternRecorder = customizations.ReflectionPatternRecorder;
                };
            }
            else if (_testCaseTypeDefinition.HasNestedTypes &&
                     _testCaseTypeDefinition.NestedTypes.Any(nestedType =>
                                                             nestedType.CustomAttributes.Any(attr =>
                                                                                             attr.AttributeType.Name == nameof(VerifyAllReflectionAccessPatternsAreValidatedAttribute) ||
                                                                                             nestedType.AllMethods().Any(method => method.CustomAttributes.Any(attr =>
                                                                                                                                                               attr.AttributeType.Name == nameof(RecognizedReflectionAccessPatternAttribute) ||
                                                                                                                                                               attr.AttributeType.Name == nameof(UnrecognizedReflectionAccessPatternAttribute))))))
            {
                customizations.ReflectionPatternRecorder = new TestReflectionPatternRecorder();
                customizations.CustomizeContext         += context => {
                    context.ReflectionPatternRecorder = customizations.ReflectionPatternRecorder;
                };
            }
        }
Пример #6
0
 public TestDriver(Queue <string> args, LinkerCustomizations customizations) : base(args)
 {
     _customization = customizations;
 }