protected void stepIntoMyCode() {
    XDebugSession currentSession = XDebuggerManager.getInstance(getProject()).getCurrentSession();

    Assert.assertTrue(currentSession.isSuspended());
    Assert.assertEquals(0, myPausedSemaphore.availablePermits());

    PyDebugProcess debugProcess = (PyDebugProcess) currentSession.getDebugProcess();
    debugProcess.startStepIntoMyCode();
  }
  protected void smartStepInto(String funcName) {
    XDebugSession currentSession = XDebuggerManager.getInstance(getProject()).getCurrentSession();

    Assert.assertTrue(currentSession.isSuspended());
    Assert.assertEquals(0, myPausedSemaphore.availablePermits());

    myDebugProcess.startSmartStepInto(funcName);
  }
 protected void setVal(String name, String value)
     throws InterruptedException, PyDebuggerException {
   XValue var = XDebuggerTestUtil.evaluate(mySession, name).first;
   myDebugProcess.changeVariable((PyDebugValue) var, value);
 }
 protected void input(String text) {
   PrintWriter pw = new PrintWriter(myDebugProcess.getProcessHandler().getProcessInput());
   pw.println(text);
   pw.flush();
 }