[IronPython] Error only from Test Case
Matt Beckius
mbeckius at gmail.com
Thu Oct 23 22:46:50 CEST 2008
We're NUnit and TypeMock.
On Thu, Oct 23, 2008 at 4:38 PM, Dino Viehland <dinov at microsoft.com> wrote:
> Are you using NUnit or NDepend? There's an issue (that we believe is
> related to how the assemblies are being loaded) which we haven't tracked
> down just yet:
> http://www.mail-archive.com/users@lists.ironpython.com/msg07328.html
>
>
>
> Running the same code outside of NUnit or NDepend should work.
>
>
>
>
>
> *From:* users-bounces at lists.ironpython.com [mailto:
> users-bounces at lists.ironpython.com] *On Behalf Of *Matt Beckius
> *Sent:* Thursday, October 23, 2008 1:30 PM
> *To:* users at lists.ironpython.com
> *Subject:* [IronPython] Error only from Test Case
>
>
>
> The test below fails (see stacktrace). If I take the exact same code and
> execute from a running program,it works just fine.
>
> Any suggestions,
>
>
>
> TIA
>
>
>
> Matt B.
>
>
>
> [Test]
>
> public void Statements()
>
> {
>
> var e = new IPEngine();
>
> e.Scope.SetVariable("x","testing");
>
> var script = "import System\nfrom System import *\nx =
> 'kosher'\nprint 'test'";
>
> e.Execute(script);
>
> Assert.AreEqual("kosher",e.Scope.GetVariable<string>("x"));
>
> }
>
>
>
>
>
> failed: System.InvalidProgramException : Common Language Runtime detected
> an invalid program.
>
> at
> Microsoft.Scripting.Actions.MatchCaller.Call6[T0,T1,T2,T3,T4,T5,TRet](Func`8
> target, CallSite site, Object[] args)
>
> at
> Microsoft.Scripting.Actions.CallSite`1.UpdateAndExecute(Object[] args)
>
> at
> Microsoft.Scripting.Actions.UpdateDelegates.Update6[T,T0,T1,T2,T3,T4,T5,TRet](CallSite
> site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5)
>
> at IronPython.Runtime.Importer.Import(CodeContext context,
> String fullName, PythonTuple from, Int32 level)
>
> at
> IronPython.Runtime.Operations.PythonOps.ImportTop(CodeContext context,
> String fullName, Int32 level)
>
> at <module>$1##1(Closure , Scope , LanguageContext )
>
> at
> Microsoft.Scripting.Runtime.OptimizedScriptCode.InvokeTarget(LambdaExpression
> code, Scope scope)
>
> at Microsoft.Scripting.ScriptCode.Run(Scope scope)
>
> at Microsoft.Scripting.SourceUnit.Execute(Scope scope,
> ErrorSink errorSink)
>
> at
> Microsoft.Scripting.Hosting.ScriptSource.Execute(ScriptScope scope)
>
>
>
> public class IPEngine
>
> {
>
> #region Member Vars
>
>
>
> private readonly ScriptEngine engine;
>
> private readonly ScriptScope scope;
>
> private MemoryStream ms;
>
>
>
> #endregion Member Vars
>
>
>
> public IPEngine()
>
> {
>
> engine = Python.CreateEngine();
>
> engine.ImportModule("clr");
>
> engine.Runtime.LoadAssembly(typeof(System.String).Assembly);
>
> scope = Engine.CreateScope();
>
> }
>
>
>
> public ScriptEngine Engine
>
> {
>
> get { return engine; }
>
> }
>
>
>
> public ScriptScope Scope
>
> {
>
> get { return scope; }
>
> }
>
>
>
> public void SetupOutput()
>
> {
>
> ms = new MemoryStream();
>
> engine.Runtime.IO.SetOutput(ms, Encoding.UTF8);
>
> //engine.Runtime.IO.SetErrorOutput(ms, Encoding.UTF8);
>
> }
>
>
>
> /// <summary>
>
> /// Evaluates a single expressoin
>
> /// </summary>
>
> /// <typeparam name="T">Return Type</typeparam>
>
> /// <param name="expression">Expressions to Eval</param>
>
> /// <returns>T</returns>
>
> public T Eval<T>(string expression)
>
> {
>
> SetupOutput();
>
> var source = Engine.CreateScriptSourceFromString(expression,
> SourceCodeKind.Expression);
>
> return source.Execute<T>(Scope);
>
> }
>
>
>
> public void Execute(string statements)
>
> {
>
> SetupOutput();
>
> var source = engine.CreateScriptSourceFromString(statements,
> SourceCodeKind.Statements);
>
> source.Execute(scope);
>
> }
>
>
>
> public string Output
>
> {
>
> get
>
> {
>
> using (var sr = new StreamReader(ms))
>
> {
>
> ms.Position = 0;
>
> return sr.ReadToEnd();
>
> }
>
> }
>
> }
>
> }
>
>
>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20081023/2d9536b4/attachment.html>
More information about the Ironpython-users
mailing list