Пример #1
0
 def test_print_cmd(self):
     group = ReplayProcessGroup(str(self.exename), self.rdbname)
     group.go_forward(1)
     assert group.get_current_time() == 2
     with stdout_capture() as buf:
         group.print_cmd('print-me')
     assert buf.getvalue() == "$0 = stuff\n"
     return group
Пример #2
0
 def test_breakpoint_r(self):
     group = ReplayProcessGroup(str(self.exename), self.rdbname)
     group.active.send(Message(100, 6, extra='set-breakpoint'))
     group.active.expect(42, 100, -43, -44, 'set-breakpoint')
     group.active.expect(ANSWER_READY, 1, Ellipsis)
     e = py.test.raises(Breakpoint, group.go_forward, 10, 'r')
     assert e.value.time == 7
     assert e.value.nums == [99]
     group._check_current_time(10)
Пример #3
0
 def __init__(self,
              revdb_log_filename,
              executable=None,
              pygments_background=None):
     with open(revdb_log_filename, 'rb') as f:
         header = f.readline()
     assert header.endswith('\n')
     fields = header[:-1].split('\t')
     if len(fields) < 2 or fields[0] != 'RevDB:':
         raise ValueError("file %r is not a RevDB log" %
                          (revdb_log_filename, ))
     if executable is None:
         executable = fields[1]
     if not os.path.isfile(executable):
         raise ValueError("executable %r not found" % (executable, ))
     linecacheoutput = self.getlinecacheoutput(pygments_background)
     self.pgroup = ReplayProcessGroup(executable, revdb_log_filename,
                                      linecacheoutput,
                                      (PROG_RES, self.progress_callback))
     self.print_extra_pending_info = None
Пример #4
0
import sys, os, thread, time, signal

os.setpgid(0, 0)
assert os.getpgrp() == os.getpid()

sys.path[:] = sys.argv[1].split('\x7f')
from _revdb.process import ReplayProcessGroup

exename, rdbname = sys.argv[2:]
group = ReplayProcessGroup(exename, rdbname)


class MyInterrupt(Exception):
    pass


def my_signal(*args):
    raise MyInterrupt


prev_signal = signal.signal(signal.SIGINT, my_signal)


def enable_timer():
    def my_kill():
        time.sleep(0.8)
        print >> sys.stderr, "--<<< Sending CTRL-C >>>--"
        os.killpg(os.getpid(), signal.SIGINT)

    thread.start_new_thread(my_kill, ())
Пример #5
0
 def test_rdtoa(self):
     group = ReplayProcessGroup(str(self.exename), self.rdbname)
     with stdout_capture() as buf:
         group.print_cmd('2.35')
     assert buf.getvalue() == "0.35\n2.0\n0.5875\n2\n"
Пример #6
0
 def test_breakpoint_i(self):
     group = ReplayProcessGroup(str(self.exename), self.rdbname)
     group.active.send(Message(100, 6, extra='set-breakpoint'))
     group.active.expect(42, 100, -43, -44, 'set-breakpoint')
     group.active.expect(ANSWER_READY, 1, Ellipsis)
     group.go_forward(10, 'i')  # does not raise Breakpoint
Пример #7
0
 def test_jump_in_time(self, target_times):
     group = ReplayProcessGroup(str(self.exename), self.rdbname)
     for target_time in target_times:
         group.jump_in_time(target_time)
         group._check_current_time(target_time)
Пример #8
0
 def test_forward(self):
     group = ReplayProcessGroup(str(self.exename), self.rdbname)
     group.go_forward(100)
     assert group.get_current_time() == 10
     assert sorted(group.paused) == [1, 4, 6, 8, 9, 10]
     assert group._check_current_time(10)
Пример #9
0
 def test_init(self):
     group = ReplayProcessGroup(str(self.exename), self.rdbname)
     assert group.get_max_time() == 10
     assert group.get_next_clone_time() == 4