Exemple #1
0
        ]
        return self.http_client.Process(cmd)

    def testHttpWorks(self):
        """Tests that the client process can talk to the server process."""
        server_proc = None
        client_proc = None
        try:
            server_port = self.FindOpenPortOnServer()
            logging.info('Starting server at %s:%s',
                         self.http_server.ip_address, server_port)
            server_proc = self.StartServer(server_port)
            logging.info('Connecting to server at %s:%s',
                         self.http_server.ip_address, server_port)
            client_proc = self.StartClient(server_port)
            client_proc.Wait()
            logging.info('client_proc.stdout: %s', client_proc.ReadStdout())
            logging.info('client_proc.stderr: %s', client_proc.ReadStderr())
            self.assertEqual(client_proc.GetReturncode(), 0)
        finally:
            if server_proc:
                server_proc.Kill()
                server_proc.Delete()
            if client_proc:
                client_proc.Kill()
                client_proc.Delete()


if __name__ == '__main__':
    legion_test_case.main()
Exemple #2
0
  def testCustomKey(self):
    """Tests that a custom key passed to a process works correctly."""
    code = ('import sys\n'
            'sys.stdout.write("Hello CustomKey stdout")\n'
            'sys.stderr.write("Hello CustomKey stderr")')
    self.task.rpc.WriteFile('test.py', code)
    proc = self.task.Process(['python', 'test.py'], key='CustomKey')
    proc.Wait()

    self.CheckProcessOutput('stdout', 'CustomKey', 'Hello CustomKey stdout')
    self.CheckProcessOutput('stderr', 'CustomKey', 'Hello CustomKey stderr')

  def testKeyReuse(self):
    """Tests that a key cannot be reused."""
    self.task.Process(self.LS, key='KeyReuse')
    self.assertRaises(jsonrpclib.Fault, self.task.Process, self.LS,
                      key='KeyReuse')

  def CheckProcessOutput(self, pipe, key, expected):
    """Checks that a process' output files are correct."""
    logging.info('Reading output file')
    output_dir = self.task.rpc.GetOutputDir()
    path = self.task.rpc.PathJoin(output_dir, '%s.%s' % (key, pipe))
    actual = self.task.rpc.ReadFile(path)
    self.assertEqual(expected, actual)


if __name__ == '__main__':
  legion_test_case.main()