Esempio n. 1
0
 def __init__(self, project, program):
     ProjectAgent.__init__(self, project, "unix")
     self.program = program
     self.process = CreateProcess(project, name=basename(program))
     self.watch = WatchProcess(self.process)
     self.states = ("help", "stop")
     self.state = 0
     self.help_arguments = ("--help", "-help", "-h")
     self.state_data = None
Esempio n. 2
0
class UnixProject(ProjectAgent):
    def __init__(self, project, program):
        ProjectAgent.__init__(self, project, "unix")
        self.program = program
        self.process = CreateProcess(project, name=basename(program))
        self.watch = WatchProcess(self.process)
        self.states = ("help", "stop")
        self.state = 0
        self.help_arguments = ("--help", "-help", "-h")
        self.state_data = None

    def nextState(self):
        self.state += 1

    def executeState(self):
        arguments = [self.program]
        state = self.states[self.state]
        if state == "help":
            if not self.state_data:
                self.state_data = iter(self.help_arguments)
            try:
                help = self.state_data.next()
            except StopIteration:
                self.nextState()
                self.executeState()
            arguments.append(help)
            self.process.cmdline.arguments = arguments
            self.process.createProcess()
        else:  #state == "stop":
            self.send("project_stop")

    def on_session_start(self):
        self.executeState()

    def on_process_stdout(self, agent, stdout):
        self.stdout = stdout

    def on_process_done(self, agent, status):
        state = self.states[self.state]
        if state == "help":
            self.processHelp(status)

    def processHelp(self, status):
        if status != 0:
            return
        if 0 < status:
            print "EXITCODE: %s" % status
        self.stdout.seek(0)

        parser = CommandHelpParser()
        self.info("Parse command line help output")
        parser.parseFile(self.stdout)
        self.nextState()

    def on_session_done(self, score):
        self.stdout = None
Esempio n. 3
0
class UnixProject(ProjectAgent):
    def __init__(self, project, program):
        ProjectAgent.__init__(self, project, "unix")
        self.program = program
        self.process = CreateProcess(project, name=basename(program))
        self.watch = WatchProcess(self.process)
        self.states = ("help", "stop")
        self.state = 0
        self.help_arguments = ("--help", "-help", "-h")
        self.state_data = None

    def nextState(self):
        self.state += 1

    def executeState(self):
        arguments = [self.program]
        state = self.states[self.state]
        if state == "help":
            if not self.state_data:
                self.state_data = iter(self.help_arguments)
            try:
                help = self.state_data.next()
            except StopIteration:
                self.nextState()
                self.executeState()
            arguments.append(help)
            self.process.cmdline.arguments = arguments
            self.process.createProcess()
        else: #state == "stop":
            self.send("project_stop")

    def on_session_start(self):
        self.executeState()

    def on_process_stdout(self, agent, stdout):
        self.stdout = stdout

    def on_process_done(self, agent, status):
        state = self.states[self.state]
        if state == "help":
            self.processHelp(status)

    def processHelp(self, status):
        if status != 0:
            return
        if 0 < status:
            print "EXITCODE: %s" % status
        self.stdout.seek(0)

        parser = CommandHelpParser()
        self.info("Parse command line help output")
        parser.parseFile(self.stdout)
        self.nextState()

    def on_session_done(self, score):
        self.stdout = None
Esempio n. 4
0
 def __init__(self,
              project,
              arguments,
              mangle_pattern,
              use_relative_mangle=True,
              **kw):
     CreateProcess.__init__(self, project, arguments, **kw)
     self.orig_cmdline = self.cmdline.arguments
     self.mangle_pattern = mangle_pattern
     self.use_relative_mangle = use_relative_mangle
Esempio n. 5
0
 def __init__(self, project, program):
     ProjectAgent.__init__(self, project, "unix")
     self.program = program
     self.process = CreateProcess(project, name=basename(program))
     self.watch = WatchProcess(self.process)
     self.states = ("help", "stop")
     self.state = 0
     self.help_arguments = ("--help", "-help", "-h")
     self.state_data = None
Esempio n. 6
0
 def deinit(self):
     CreateProcess.deinit(self)
     if 'stdin' in self.popen_args:
         del self.popen_args['stdin']
Esempio n. 7
0
 def on_project_start(self):
     CreateProcess.init(self)
     self.createProcess()
Esempio n. 8
0
 def __init__(self, project):
     CreateProcess.__init__(self, project, ["echo"])
     self.datagen = BytesGenerator(1, 10, ASCII0)
Esempio n. 9
0
 def on_project_start(self):
     CreateProcess.init(self)
     self.createProcess()
Esempio n. 10
0
 def __init__(self, project, arguments, mangle_pattern, use_relative_mangle=True, **kw):
     CreateProcess.__init__(self, project, arguments, **kw)
     self.orig_cmdline = self.cmdline.arguments
     self.mangle_pattern = mangle_pattern
     self.use_relative_mangle = use_relative_mangle