Example #1
0
    def StartServer(self, request_data):
        with self._server_state_mutex:
            LOGGER.info('Starting %s: %s', self.GetServerName(),
                        self.GetCommandLine())

            self._stderr_file = utils.CreateLogfile('{}_stderr'.format(
                utils.MakeSafeFileNameString(self.GetServerName())))

            with utils.OpenForStdHandle(self._stderr_file) as stderr:
                self._server_handle = utils.SafePopen(self.GetCommandLine(),
                                                      stdin=subprocess.PIPE,
                                                      stdout=subprocess.PIPE,
                                                      stderr=stderr)

            self._connection = (lsc.StandardIOLanguageServerConnection(
                self._server_handle.stdin, self._server_handle.stdout,
                self.GetDefaultNotificationHandler()))

            self._connection.Start()

            try:
                self._connection.AwaitServerConnection()
            except lsc.LanguageServerConnectionTimeout:
                LOGGER.error(
                    '%s failed to start, or did not connect successfully',
                    self.GetServerName())
                self.Shutdown()
                return False

        LOGGER.info('%s started', self.GetServerName())

        return True
Example #2
0
def MakeSafeFileNameString_test():
    tests = (
        ('this is a test 0123 -x', 'this_is_a_test_0123__x'),
        ('This Is A Test 0123 -x', 'this_is_a_test_0123__x'),
        ('T˙^ß ^ß å †´ß† 0123 -x', 't______________0123__x'),
        ('contains/slashes', 'contains_slashes'),
        ('contains/newline/\n', 'contains_newline__'),
        ('', ''),
    )
    for t in tests:
        assert_that(utils.MakeSafeFileNameString(t[0]), equal_to(t[1]))
Example #3
0
 def test_MakeSafeFileNameString(self):
     for unsafe_name, safe_name in zip([
             'this is a test 0123 -x', 'This Is A Test 0123 -x',
             'T˙^ß ^ß å †´ß† 0123 -x', 'contains/slashes',
             'contains/newline/\n', ''
     ], [
             'this_is_a_test_0123__x', 'this_is_a_test_0123__x',
             't______________0123__x', 'contains_slashes',
             'contains_newline__', ''
     ]):
         with self.subTest(unsafe_name=unsafe_name, safe_name=safe_name):
             assert_that(utils.MakeSafeFileNameString(unsafe_name),
                         equal_to(safe_name))
Example #4
0
def MakeSafeFileNameString_test(unsafe_name, safe_name):
    assert_that(utils.MakeSafeFileNameString(unsafe_name), equal_to(safe_name))