Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unit tests fail on building #357

Closed
7sharp9 opened this issue Nov 20, 2015 · 5 comments
Closed

Unit tests fail on building #357

7sharp9 opened this issue Nov 20, 2015 · 5 comments

Comments

@7sharp9
Copy link
Member

7sharp9 commented Nov 20, 2015

Errors and Failures:
1) Test Error : FSharp.Literate.Tests.Simple.Can process fsx file using the template included in NuGet package
   System.Exception : Generating HTML failed.
  at FSharp.Literate.RazorRender.handleCompile[a] (System.String source, Microsoft.FSharp.Core.FSharpFunc`2 f) <0x116b09e8 + 0x005d7> in <filename unknown>:0
  at FSharp.Literate.RazorRender.ProcessFileModel[b] (System.Type modelType, System.Object model, Microsoft.FSharp.Core.FSharpOption`1 properties) <0x116b0880 + 0x00073> in <filename unknown>:0
  at FSharp.Literate.Templating.generateFile (Microsoft.FSharp.Core.FSharpOption`1 references, System.String contentTag, IEnumerable`1 parameters, Microsoft.FSharp.Core.FSharpOption`1 templateOpt, System.String output, IEnumerable`1 layoutRoots) <0x116a1740 + 0x00187> in <filename unknown>:0
  at FSharp.Literate.Templating.processFile (Microsoft.FSharp.Core.FSharpOption`1 references, FSharp.Literate.LiterateDocument doc, System.String output, FSharp.Literate.ProcessingContext ctx) <0x116a0ef0 + 0x003ab> in <filename unknown>:0
  at FSharp.Literate.Literate.ProcessScriptFile (System.String input, Microsoft.FSharp.Core.FSharpOption`1 templateFile, Microsoft.FSharp.Core.FSharpOption`1 output, Microsoft.FSharp.Core.FSharpOption`1 format, Microsoft.FSharp.Core.FSharpOption`1 formatAgent, Microsoft.FSharp.Core.FSharpOption`1 prefix, Microsoft.FSharp.Core.FSharpOption`1 compilerOptions, Microsoft.FSharp.Core.FSharpOption`1 lineNumbers, Microsoft.FSharp.Core.FSharpOption`1 references, Microsoft.FSharp.Core.FSharpOption`1 fsiEvaluator, Microsoft.FSharp.Core.FSharpOption`1 replacements, Microsoft.FSharp.Core.FSharpOption`1 includeSource, Microsoft.FSharp.Core.FSharpOption`1 layoutRoots, Microsoft.FSharp.Core.FSharpOption`1 generateAnchors, Microsoft.FSharp.Core.FSharpOption`1 assemblyReferences, Microsoft.FSharp.Core.FSharpOption`1 customizeDocument) <0x116a09d8 + 0x000d7> in <filename unknown>:0
  at FSharp.Literate.Tests.Simple.Can process fsx file using the template included in NuGet package () <0x116a03a0 + 0x0022b> in <filename unknown>:0
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) <0x2feb058 + 0x00093> in <filename unknown>:0

2) Test Error : FSharp.Literate.Tests.Simple.Can process md file using the template included in NuGet package
   System.Exception : Generating HTML failed.
  at FSharp.Literate.RazorRender.handleCompile[a] (System.String source, Microsoft.FSharp.Core.FSharpFunc`2 f) <0x116b09e8 + 0x005d7> in <filename unknown>:0
  at FSharp.Literate.RazorRender.ProcessFileModel[b] (System.Type modelType, System.Object model, Microsoft.FSharp.Core.FSharpOption`1 properties) <0x116b0880 + 0x00073> in <filename unknown>:0
  at FSharp.Literate.Templating.generateFile (Microsoft.FSharp.Core.FSharpOption`1 references, System.String contentTag, IEnumerable`1 parameters, Microsoft.FSharp.Core.FSharpOption`1 templateOpt, System.String output, IEnumerable`1 layoutRoots) <0x116a1740 + 0x00187> in <filename unknown>:0
  at FSharp.Literate.Templating.processFile (Microsoft.FSharp.Core.FSharpOption`1 references, FSharp.Literate.LiterateDocument doc, System.String output, FSharp.Literate.ProcessingContext ctx) <0x116a0ef0 + 0x003ab> in <filename unknown>:0
  at FSharp.Literate.Literate.ProcessMarkdown (System.String input, Microsoft.FSharp.Core.FSharpOption`1 templateFile, Microsoft.FSharp.Core.FSharpOption`1 output, Microsoft.FSharp.Core.FSharpOption`1 format, Microsoft.FSharp.Core.FSharpOption`1 formatAgent, Microsoft.FSharp.Core.FSharpOption`1 prefix, Microsoft.FSharp.Core.FSharpOption`1 compilerOptions, Microsoft.FSharp.Core.FSharpOption`1 lineNumbers, Microsoft.FSharp.Core.FSharpOption`1 references, Microsoft.FSharp.Core.FSharpOption`1 replacements, Microsoft.FSharp.Core.FSharpOption`1 includeSource, Microsoft.FSharp.Core.FSharpOption`1 layoutRoots, Microsoft.FSharp.Core.FSharpOption`1 generateAnchors, Microsoft.FSharp.Core.FSharpOption`1 assemblyReferences, Microsoft.FSharp.Core.FSharpOption`1 customizeDocument) <0x116edee8 + 0x000d7> in <filename unknown>:0
  at FSharp.Literate.Tests.Simple.Can process md file using the template included in NuGet package () <0x116edb50 + 0x00213> in <filename unknown>:0
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) <0x2feb058 + 0x00093> in <filename unknown>:0

3) Test Error : FSharp.Literate.Tests.Simple.Code and HTML is formatted with a tooltip in F# Script file using Razor template
   System.Exception : Generating HTML failed.
  at FSharp.Literate.RazorRender.handleCompile[a] (System.String source, Microsoft.FSharp.Core.FSharpFunc`2 f) <0x116b09e8 + 0x005d7> in <filename unknown>:0
  at FSharp.Literate.RazorRender.ProcessFileModel[b] (System.Type modelType, System.Object model, Microsoft.FSharp.Core.FSharpOption`1 properties) <0x116b0880 + 0x00073> in <filename unknown>:0
  at FSharp.Literate.Templating.generateFile (Microsoft.FSharp.Core.FSharpOption`1 references, System.String contentTag, IEnumerable`1 parameters, Microsoft.FSharp.Core.FSharpOption`1 templateOpt, System.String output, IEnumerable`1 layoutRoots) <0x116a1740 + 0x00187> in <filename unknown>:0
  at FSharp.Literate.Templating.processFile (Microsoft.FSharp.Core.FSharpOption`1 references, FSharp.Literate.LiterateDocument doc, System.String output, FSharp.Literate.ProcessingContext ctx) <0x116a0ef0 + 0x003ab> in <filename unknown>:0
  at FSharp.Literate.Literate.ProcessScriptFile (System.String input, Microsoft.FSharp.Core.FSharpOption`1 templateFile, Microsoft.FSharp.Core.FSharpOption`1 output, Microsoft.FSharp.Core.FSharpOption`1 format, Microsoft.FSharp.Core.FSharpOption`1 formatAgent, Microsoft.FSharp.Core.FSharpOption`1 prefix, Microsoft.FSharp.Core.FSharpOption`1 compilerOptions, Microsoft.FSharp.Core.FSharpOption`1 lineNumbers, Microsoft.FSharp.Core.FSharpOption`1 references, Microsoft.FSharp.Core.FSharpOption`1 fsiEvaluator, Microsoft.FSharp.Core.FSharpOption`1 replacements, Microsoft.FSharp.Core.FSharpOption`1 includeSource, Microsoft.FSharp.Core.FSharpOption`1 layoutRoots, Microsoft.FSharp.Core.FSharpOption`1 generateAnchors, Microsoft.FSharp.Core.FSharpOption`1 assemblyReferences, Microsoft.FSharp.Core.FSharpOption`1 customizeDocument) <0x116a09d8 + 0x000d7> in <filename unknown>:0
  at FSharp.Literate.Tests.Simple.Code and HTML is formatted with a tooltip in F# Script file using Razor template () <0x116f0fd8 + 0x001d3> in <filename unknown>:0
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) <0x2feb058 + 0x00093> in <filename unknown>:0


Running build failed.
Error:
Fake.UnitTestCommon+FailedTestsException: NUnit test failed (3).
  at Fake.NUnitSequential.NUnit (Microsoft.FSharp.Core.FSharpFunc`2 setParams, IEnumerable`1 assemblies) <0x8562990 + 0x00337> in <filename unknown>:0
  at [email protected] (Microsoft.FSharp.Core.Unit unitVar0) <0x8562898 + 0x000d3> in <filename unknown>:0
  at Fake.TargetHelper+targetFromTemplate@195[a].Invoke (Microsoft.FSharp.Core.Unit unitVar0) <0x8556ee0 + 0x00020> in <filename unknown>:0
  at Fake.TargetHelper.runSingleTarget (Fake.TargetTemplate`1 target) <0x84cd1a0 + 0x000bd> in <filename unknown>:0
@matthid
Copy link
Member

matthid commented Nov 21, 2015

Can see this on the travis CI as well, Windows seems to be working fine.

@matthid
Copy link
Member

matthid commented Nov 21, 2015

@7sharp9 regarding #328 (comment) and #357
Its really hard how this all sticks together, because we have multiple compilations going on. This is the explanation:

RazorEngine will compile the templates to C# code and reference all currently loaded assemblies.
FAKE switched to latest FCS. I'm not completely sure where the reference to 4.0 is coming from, this is the the version mono loads for some reason? This leads to problems as FCS is build against 12 and therefore the C# compiler is complaining...
For now I added assembly redirects but I would really like to know where the 4.0 reference comes from (I couldn't find it anywhere with dotpeek...). As far as I can see mono should actually load the 12.0.0.0 assembly.

Fixed with #358

@matthid matthid closed this as completed Nov 21, 2015
@7sharp9
Copy link
Member Author

7sharp9 commented Nov 21, 2015

12.0 version being msbuild? That normally always requires an assembly redirect. xbuild if called directly has these, as does VS on Windows if I remember correctly.

@matthid
Copy link
Member

matthid commented Nov 21, 2015

I still don't get it. We get the error on runtime when executing the unit tests (https://travis-ci.org/tpetricek/FSharp.Formatting/builds/92441276#L2574). Do you say that xbuild adds references to Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a? Because thats the assembly mono loads at runtime, and this is incompatible with what latest FSharp.Compiler.Service is referencing...

@matthid matthid mentioned this issue Nov 21, 2015
@7sharp9
Copy link
Member Author

7sharp9 commented Nov 21, 2015

xbuild has assembly redirects from 0.0.0.0 to 12.0.0.0. This is a common theme with FCS, there are also problems with the project cracker needing to be ran out of process with assembly redirects for similar reasons.

22:33 $ cat xbuild.exe.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <runtime>
        <generatePublisherEvidence enabled="false" />
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Build.Framework" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
                <bindingRedirect oldVersion="0.0.0.0-100.0.0.0" newVersion="12.0.0.0" />
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Build.Engine" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
                <bindingRedirect oldVersion="0.0.0.0-100.0.0.0" newVersion="12.0.0.0" />
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
</configuration>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants