Tests for stepInto out different places.

Running test: testStepInOutBranch

      function a() { #b(false); c(); };
      function b(x) { if (x) { c(); }};

      function a() { b(false); c(); };
      function b(x) { #if (x) { c(); }};
      function c() {};

      function a() { b(false); c(); };
      function b(x) { if (x) { c(); }#};
      function c() {};


      function a() { b(false); #c(); };
      function b(x) { if (x) { c(); }};

      function b(x) { if (x) { c(); }};
      function c() {#};
      a(); b(); c();


      function a() { b(false); c(); #};
      function b(x) { if (x) { c(); }};


Running test: testStepInOutTree
use stepInto..

      function a() { #b(c(d()), d()); c(d()); d(); };
      function b(x,y) { c(); };

      function c(x) {};
      function d() {#};
      a(); b(); c(); d();


      function a() { b(#c(d()), d()); c(d()); d(); };
      function b(x,y) { c(); };

      function b(x,y) { c(); };
      function c(x) {#};
      function d() {};


      function a() { b(c(d()), #d()); c(d()); d(); };
      function b(x,y) { c(); };

      function c(x) {};
      function d() {#};
      a(); b(); c(); d();


      function a() { #b(c(d()), d()); c(d()); d(); };
      function b(x,y) { c(); };

      function a() { b(c(d()), d()); c(d()); d(); };
      function b(x,y) { #c(); };
      function c(x) {};

      function b(x,y) { c(); };
      function c(x) {#};
      function d() {};

      function a() { b(c(d()), d()); c(d()); d(); };
      function b(x,y) { c(); #};
      function c(x) {};


      function a() { b(c(d()), d()); #c(d()); d(); };
      function b(x,y) { c(); };

      function c(x) {};
      function d() {#};
      a(); b(); c(); d();


      function a() { b(c(d()), d()); #c(d()); d(); };
      function b(x,y) { c(); };

      function b(x,y) { c(); };
      function c(x) {#};
      function d() {};


      function a() { b(c(d()), d()); c(d()); #d(); };
      function b(x,y) { c(); };

      function c(x) {};
      function d() {#};
      a(); b(); c(); d();


      function a() { b(c(d()), d()); c(d()); d(); #};
      function b(x,y) { c(); };

use stepOver..

      function a() { #b(c(d()), d()); c(d()); d(); };
      function b(x,y) { c(); };


      function a() { b(c(d()), d()); #c(d()); d(); };
      function b(x,y) { c(); };


      function a() { b(c(d()), d()); c(d()); #d(); };
      function b(x,y) { c(); };


      function a() { b(c(d()), d()); c(d()); d(); #};
      function b(x,y) { c(); };

use stepOut..

      function a() { #b(c(d()), d()); c(d()); d(); };
      function b(x,y) { c(); };


Running test: testStepInOutSimple
use stepInto..

      function a() { #b(); c(); }
      function b() { c(); }

      function a() { b(); c(); }
      function b() { #c(); }
      function c() {}

      function b() { c(); }
      function c() {#}
      a(); b(); c();

      function a() { b(); c(); }
      function b() { c(); #}
      function c() {}


      function a() { b(); #c(); }
      function b() { c(); }

      function b() { c(); }
      function c() {#}
      a(); b(); c();


      function a() { b(); c(); #}
      function b() { c(); }

use stepOver..

      function a() { #b(); c(); }
      function b() { c(); }


      function a() { b(); #c(); }
      function b() { c(); }


      function a() { b(); c(); #}
      function b() { c(); }

use stepOut..

      function a() { #b(); c(); }
      function b() { c(); }

