Skip to content
This repository was archived by the owner on Nov 1, 2020. It is now read-only.

Enable multi-module for CoreCLR tests#2765

Merged
nattress merged 1 commit intodotnet:masterfrom
nattress:coreclrmultimodule
Feb 17, 2017
Merged

Enable multi-module for CoreCLR tests#2765
nattress merged 1 commit intodotnet:masterfrom
nattress:coreclrmultimodule

Conversation

@nattress
Copy link
Copy Markdown
Contributor

  • Allows runtest.cmd /multimodule /coreclr
  • Modify build integration targets to allow for tests with multiple
    assemblies. We have two set of assembly inputs to ILC: @(ManagedLibrary)
    which despite being an Item contains the main managed assembly to use as
    the template name for the response file and output object file base
    name. @(IlcCompileInput) is the list of assemblies that are inputs to
    Ilc. This change allows us to compile all the app assemblies into a
    single object file.
  • Specify the inputs / outputs to the MSBuild task that builds the
    framework assembly obj files. This removes a page of spam per test when
    MSBuild skips over the already-built obj files.
  • Currently 12 tests fail due to some EH issue that needs investigating.

* Allows runtest.cmd /multimodule /coreclr
* Modify build integration targets to allow for tests with multiple
assemblies. We have two set of assembly inputs to ILC: @(ManagedLibrary)
which despite being an Item contains the main managed assembly to use as
the template name for the response file and output object file base
name. @(IlcCompileInput) is the list of assemblies that are inputs to
Ilc. This change allows us to compile all the app assemblies into a
single object file.
* Specify the inputs / outputs to the MSBuild task that builds the
framework assembly obj files. This removes a page of spam per test when
MSBuild skips over the already-built obj files.
* Currently 12 tests fail due to some EH issue that needs investigating.
@nattress nattress merged commit 48a76d0 into dotnet:master Feb 17, 2017
@MichalStrehovsky
Copy link
Copy Markdown
Member

I think this is causing about 70 new failures in the rolling build:

          Unhandled Exception: System.InvalidOperationException: PE image does not have metadata.
             at System.Reflection.PortableExecutable.PEReader.GetMetadataBlock()
             at System.Reflection.Metadata.PEReaderExtensions.GetMetadataReader(PEReader peReader, MetadataReaderOptions options, MetadataStringDecoder utf8Decoder)
             at Internal.TypeSystem.Ecma.EcmaModule.CreateMetadataReader(TypeSystemContext context, PEReader peReader)
             at Internal.TypeSystem.Ecma.EcmaModule.Create(TypeSystemContext context, PEReader peReader, PdbSymbolReader pdbReader)
             at ILCompiler.CompilerTypeSystemContext.AddModule(String filePath, String expectedSimpleName)
             at ILCompiler.CompilerTypeSystemContext.GetModuleFromPath(String filePath)
             at ILCompiler.Program.Run(String[] args)

I assume it's because we allow passing all sorts of garbage as -r parameter, but are more sensitive about inputs. Some of the files this is passing as inputs are actually native DLL dependencies. I'm not sure there's a good way to go about this besides baselining this or hacking the compiler in the short term :/.

There are about 70 more failures in the rolling build due to a RyuJIT update. I'll have a closer look at them later in the week and file issues.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants