.ycm_extra_conf.py
author Nicolas Chevobbe <nchevobbe@mozilla.com>
Fri, 06 Oct 2017 10:02:49 +0200
changeset 385139 a5584789d1d0468cf24538b1e1a05e8065e58b3f
parent 308778 578ebd592745ff2b7647b205576f20b5b36f3327
child 455155 2a22490b8a06c9a5eef192ef3192386f8e7ff74f
permissions -rw-r--r--
Bug 1406042 - Copy relevant old console test to the new frontend; r=Honza This patch copies the tests from the old frontend that are relevant in the context of the new frontend. They are all added in the browser.ini and all are skipped. The number of the bug to do the test migration is indicated as a comment. Some tests were renamed to match what they actually do, or to match which component they test (console, webconsole, jsterm), or simply to remove a bug number in the filename. In the latter case, a reference to the bug was added inside the test if it wasn't already the case. All the support files from the old frontend were copied over, because it would have been time consuming to test if each one of them was used in the tests. A bug will be filed to do a support files cleanup when all the tests are migrated. MozReview-Commit-ID: GhXcCuVBXT5

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

import imp
import os
import shlex
import sys
try:
    from StringIO import StringIO
except ImportError:
    from io import StringIO

old_bytecode = sys.dont_write_bytecode
sys.dont_write_bytecode = True

path = os.path.join(os.path.dirname(__file__), 'mach')

if not os.path.exists(path):
    path = os.path.join(os.path.dirname(__file__), 'config.status')
    config = imp.load_module('_buildconfig', open(path), path, ('', 'r', imp.PY_SOURCE))
    path = os.path.join(config.topsrcdir, 'mach')
mach_module = imp.load_module('_mach', open(path), path, ('', 'r', imp.PY_SOURCE))

sys.dont_write_bytecode = old_bytecode

def FlagsForFile(filename):
    mach = mach_module.get_mach()
    out = StringIO()

    # Mach calls sys.stdout.fileno(), so we need to fake it when capturing it.
    # Returning an invalid file descriptor does the trick.
    out.fileno = lambda: -1
    out.encoding = None
    mach.run(['compileflags', filename], stdout=out, stderr=out)

    flag_list = shlex.split(out.getvalue())

    # This flag is added by Fennec for android build and causes ycmd to fail to parse the file.
    # Removing this flag is a workaround until ycmd starts to handle this flag properly.
    # https://github.com/Valloric/YouCompleteMe/issues/1490
    final_flags = [x for x in flag_list if not x.startswith('-march=armv')]

    return {
        'flags': final_flags,
        'do_cache': True
    }