Ejemplo n.º 1
0
        internal CompilationVerifier Emit(
            Compilation compilation,
            IEnumerable <ModuleData> dependencies,
            IEnumerable <ResourceDescription> manifestResources,
            SignatureDescription[] expectedSignatures,
            string expectedOutput,
            int?expectedReturnCode,
            string[] args,
            Action <PEAssembly> assemblyValidator,
            Action <IModuleSymbol> symbolValidator,
            EmitOptions emitOptions,
            Verification verify)
        {
            var verifier = new CompilationVerifier(compilation, VisualizeRealIL, dependencies);

            verifier.Emit(expectedOutput, expectedReturnCode, args, manifestResources, emitOptions, verify, expectedSignatures);

            if (assemblyValidator != null || symbolValidator != null)
            {
                // We're dual-purposing emitters here.  In this context, it
                // tells the validator the version of Emit that is calling it.
                RunValidators(verifier, assemblyValidator, symbolValidator);
            }

            return(verifier);
        }
Ejemplo n.º 2
0
        static internal CompilationVerifier Emit(
            CommonTestBase test,
            Compilation compilation,
            IEnumerable <ModuleData> dependencies,
            TestEmitters emitOptions,
            IEnumerable <ResourceDescription> manifestResources,
            SignatureDescription[] expectedSignatures,
            string expectedOutput,
            Action <PEAssembly, TestEmitters> assemblyValidator,
            Action <IModuleSymbol, TestEmitters> symbolValidator,
            bool collectEmittedAssembly,
            bool verify)
        {
            CompilationVerifier verifier = null;

            // We only handle CCI emit here for now...
            if (emitOptions != TestEmitters.RefEmit)
            {
                verifier = new CompilationVerifier(test, compilation, dependencies);

                verifier.Emit(expectedOutput, manifestResources, verify, expectedSignatures);

                // We're dual-purposing EmitOptions here.  In this context, it
                // tells the validator the version of Emit that is calling it.
                RunValidators(verifier, TestEmitters.CCI, assemblyValidator, symbolValidator);
            }

            return(verifier);
        }
Ejemplo n.º 3
0
        internal CompilationVerifier Emit(
            Compilation compilation,
            IEnumerable <ModuleData> dependencies,
            IEnumerable <ResourceDescription> manifestResources,
            SignatureDescription[] expectedSignatures,
            string expectedOutput,
            Action <PEAssembly> assemblyValidator,
            Action <IModuleSymbol> symbolValidator,
            bool verify)
        {
            CompilationVerifier verifier = null;

            verifier = new CompilationVerifier(this, compilation, dependencies);

            verifier.Emit(expectedOutput, manifestResources, verify, expectedSignatures);

            // We're dual-purposing emitters here.  In this context, it
            // tells the validator the version of Emit that is calling it.
            RunValidators(verifier, assemblyValidator, symbolValidator);

            return(verifier);
        }