public ScriptProperty(ScriptDebugger debugger, string name, object value) { Log.DebugFormat("{0} {1}", name, value); Name = name; Value = value; _debugger = debugger; }
public void ShouldSetLineBreakpoint() { var engineEvents = new Mock<IEngineEvents>(); var sbps = new List<ScriptBreakpoint> { new ScriptBreakpoint(null, ".\\TestFile.ps1", 1, 0, engineEvents.Object) }; _debugger = new ScriptDebugger(true, null); _debugger.SetRunspace(_runspace); _debugger.SetBreakpoints(sbps); using (var pipe = _runspace.CreatePipeline()) { pipe.Commands.Add("Get-PSBreakpoint"); var breakpoints = pipe.Invoke(); //Verify the breakpoint was added to the runspace. Assert.AreEqual(1, breakpoints.Count); } //Verify the callback event was triggered. engineEvents.Verify(m => m.Breakpoint(null, sbps[0]), Times.Once()); }
public ScriptPropertyCollection(ScriptDebugger debugger) { Log.Debug("debugger"); foreach (var keyVal in debugger.Variables) { var val = keyVal.Value; Add(ScriptPropertyFactory.MakeProperty(debugger, keyVal.Key, val)); } }
public EnumerableScriptProperty(ScriptDebugger debugger, string name, object value) : base(debugger, name, value) { if (!(value is IEnumerable)) { throw new ArgumentException("Value must be of type IEnumerable."); } _enumerable = value as IEnumerable; }
protected ScriptProperty(ScriptDebugger debugger, Variable var, string path) { Log.DebugFormat("{0} {1}", var.VarName, var.VarValue); Name = var.VarName; Value = var.VarValue; IsEnum = var.IsEnum; _debugger = debugger; TypeName = (var.Type == null ? string.Empty : var.Type); _path = path; }
public ScriptProperty(ScriptDebugger debugger, string name, string value, bool isEnum, string type, string path) { Log.DebugFormat("{0} {1}", name, value); Name = name; Value = value; IsEnum = isEnum; _debugger = debugger; TypeName = (type == null ? string.Empty : type); _path = path; }
public PSObjectScriptProperty(ScriptDebugger debugger, string name, object value) : base(debugger, name, value) { if (!(value is PSObject)) { throw new ArgumentException("Value must be of type PSObject"); } _psObject = value as PSObject; }
public ScriptStackFrame(ScriptProgramNode node, string scriptName, string frame, int startLine, int endLine, int startColumn, int endColumn) { if (node == null) { throw new ArgumentNullException("node"); } _node = node; _debugger = node.Debugger; // VS is zero based, PS is 1 based _docContext = new ScriptDocumentContext(scriptName, frame, startLine - 1, endLine - 1, startColumn - 1, endColumn - 1); }
public ScriptStackFrame(ScriptProgramNode node, CallStackFrame frame) { if (node == null) { throw new ArgumentNullException("node"); } _node = node; _debugger = node.Debugger; // VS is zero based, PS is 1 based _docContext = new ScriptDocumentContext(frame.ScriptName, frame.ScriptLineNumber - 1, 0, frame.ToString()); _frame = frame; }
public ScriptExpression(ScriptDebugger debugger, string name, object value) { Log.DebugFormat("Name [{0}] Value [{1}]", name, value); if (name.StartsWith("$")) { name = name.Remove(0, 1); } _name = name; _value = value; _debugger = debugger; }
public void ShouldNotDieIfNoBreakpoints() { _debugger = new ScriptDebugger(true, null); _debugger.SetRunspace(_runspace); using (var pipe = _runspace.CreatePipeline()) { pipe.Commands.Add("Get-PSBreakpoint"); var breakpoints = pipe.Invoke(); Assert.AreEqual(0, breakpoints.Count); } }
public ScriptExpression(ScriptDebugger debugger, Variable var) { if (var != null) { Log.DebugFormat("Name [{0}] Value [{1}]", var.VarName, var.VarValue); if (var.VarName.StartsWith("$")) { var.VarName = var.VarName.Remove(0, 1); } _var = var; } _debugger = debugger; }
public static ScriptProperty MakeProperty(ScriptDebugger debugger, Variable var, string parentPath) { if (var == null) { return(null); } if (var.IsEnumerable && !var.Type.Contains("System.String")) { return(new EnumerableScriptProperty(debugger, var, parentPath)); } if (var.IsPSObject) { return(new PSObjectScriptProperty(debugger, var, parentPath)); } return(new ScriptProperty(debugger, var.VarName, var.VarValue, var.IsEnum, var.Type, parentPath)); }
public static ScriptProperty MakeProperty(ScriptDebugger debugger, string name, object value) { var psObject = value as PSObject; if (psObject != null && psObject.BaseObject is IEnumerable && !psObject.TypeNames.Contains("System.String")) { return(new EnumerableScriptProperty(debugger, name, psObject.BaseObject)); } if (psObject != null) { return(new PSObjectScriptProperty(debugger, name, value)); } if (value is IEnumerable && !(value is string)) { return(new EnumerableScriptProperty(debugger, name, value)); } return(new ScriptProperty(debugger, name, value)); }
public void ShouldClearBreakpoints() { using (var pipe = _runspace.CreatePipeline()) { var command = new Command("Set-PSBreakpoint"); command.Parameters.Add("Script", ".\\TestFile.ps1"); command.Parameters.Add("Line", 1); pipe.Commands.Add(command); pipe.Invoke(); } _debugger = new ScriptDebugger(true, null); _debugger.SetRunspace(_runspace); _debugger.SetBreakpoints(new List<ScriptBreakpoint>()); using (var pipe = _runspace.CreatePipeline()) { pipe.Commands.Add("Get-PSBreakpoint"); var breakpoints = pipe.Invoke(); Assert.AreEqual(0, breakpoints.Count); } }
public void ShouldSupportRemoteSession() { var sbps = new List<ScriptBreakpoint>(); _debugger = new ScriptDebugger(true, null); _runspace.Dispose(); _runspace = RunspaceFactory.CreateRunspace(_debugger); _runspace.Open(); _debugger.SetRunspace(_runspace); _debugger.SetBreakpoints(sbps); var node = new ScriptProgramNode(null); node.FileName = "Enter-PSSession localhost"; var mre = new ManualResetEvent(false); string outputString = null; _debugger.DebuggingFinished += (sender, args) => mre.Set(); _debugger.OutputString += (sender, args) => outputString = args.Value; _debugger.Execute(node); Assert.IsTrue(mre.WaitOne(5000)); mre.Reset(); node = new ScriptProgramNode(null); node.FileName = "$host.Name"; _debugger.Execute(node); Assert.IsTrue(mre.WaitOne(5000)); Assert.AreEqual("ServerRemoteHost", outputString); }
public void ShouldExecuteSnippet() { var sbps = new List<ScriptBreakpoint>(); _debugger = new ScriptDebugger(true, null); _debugger.SetRunspace(_runspace); _debugger.SetBreakpoints(sbps); var node = new ScriptProgramNode(null); node.FileName = "$Global:MyVariable = 'Test'"; var mre = new ManualResetEvent(false); _debugger.DebuggingFinished += (sender, args) => mre.Set(); _debugger.Execute(node); Assert.IsTrue(mre.WaitOne(5000)); var myVariable = _runspace.SessionStateProxy.GetVariable("MyVariable"); Assert.AreEqual("Test", myVariable); }
public void ShouldAcceptArguments() { var fi = new FileInfo(".\\TestFile.ps1"); var sbps = new List<ScriptBreakpoint>(); _debugger = new ScriptDebugger(true, null); _debugger.SetRunspace(_runspace); _debugger.SetBreakpoints(sbps); var node = new ScriptProgramNode(null); node.FileName = fi.FullName; node.IsFile = true; node.Arguments = "'Arg1' 'Arg2'"; var mre = new ManualResetEvent(false); _debugger.DebuggingFinished += (sender, args) => mre.Set(); _debugger.Execute(node); Assert.IsTrue(mre.WaitOne(5000)); var arg1 = _runspace.SessionStateProxy.GetVariable("Argument1"); var arg2 = _runspace.SessionStateProxy.GetVariable("Argument2"); Assert.AreEqual("Arg1", arg1); Assert.AreEqual("Arg2", arg2); }
public void ShouldBreakOnBreakPoint() { var engineEvents = new Mock<IEngineEvents>(); var fi = new FileInfo(".\\TestFile.ps1"); var sbps = new List<ScriptBreakpoint> { new ScriptBreakpoint(null, fi.FullName, 3, 0, engineEvents.Object) }; _debugger = new ScriptDebugger(true, null); _debugger.SetRunspace(_runspace); _debugger.SetBreakpoints(sbps); var node = new ScriptProgramNode(null); node.IsFile = true; node.FileName = fi.FullName; var mre = new ManualResetEvent(false); bool breakpointHit = false; _debugger.BreakpointHit += (sender, args) => { breakpointHit = true; _debugger.Continue(); }; _debugger.DebuggingFinished += (sender, args) => mre.Set(); _debugger.Execute(node); Assert.IsTrue(mre.WaitOne(5000)); Assert.IsTrue(breakpointHit); }
public RawHostUi(ScriptDebugger debugger) { _debugger = debugger; }
public PowerShellReplEvaluator(ScriptDebugger debugger) { Debugger = debugger; }
/// <summary> /// Ctor /// </summary> /// <param name="debugger">Script debugger</param> public BreakpointManager(ScriptDebugger debugger) : this() { _debugger = debugger; }
public void Init() { _host = new ScriptDebugger(true, null); }
public HostUi(ScriptDebugger scriptDebugger) { _scriptDebugger = scriptDebugger; }
public PSObjectScriptProperty(ScriptDebugger debugger, Variable var, string parentPath) : base(debugger, var, parentPath) { _val = var.VarName; }
public DebugServiceEventsHandlerProxy(ScriptDebugger debugger, bool uiOutput) { _debugger = debugger; _uiOutput = uiOutput; }