示例#1
0
文件: config.py 项目: zhangpf/arc
def _generate_jemalloc_integration_tests():
    paths = build_common.find_all_files(
        'android/external/jemalloc/test/integration', ['.c'],
        include_tests=True)

    # Disable some multi-threaded tests flaky under ARM qemu.
    if OPTIONS.is_arm():
        paths.remove(
            'android/external/jemalloc/test/integration/MALLOCX_ARENA.c')
        paths.remove(
            'android/external/jemalloc/test/integration/thread_arena.c')

    for path in paths:
        name = os.path.splitext(os.path.basename(path))[0]
        n = ninja_generator.TestNinjaGenerator('jemalloc_integartion_test_' +
                                               name)
        n.add_include_paths('android/external/jemalloc/include',
                            'android/external/jemalloc/test/include')
        n.add_c_flags('-Werror')
        n.add_c_flags('-DJEMALLOC_INTEGRATION_TEST')
        if OPTIONS.enable_jemalloc_debug():
            n.add_c_flags('-DJEMALLOC_DEBUG')
        # Needs C99 for "restrict" keyword.
        n.add_c_flags('-std=gnu99')
        n.add_library_deps('libjemalloc.a')
        n.add_library_deps('libjemalloc_integrationtest.a')
        n.build_default([path])
        n.run(n.link(),
              enable_valgrind=OPTIONS.enable_valgrind(),
              rule='run_test')
示例#2
0
文件: config.py 项目: zhangpf/arc
def _generate_jemalloc_unit_tests():
    paths = build_common.find_all_files('android/external/jemalloc/test/unit',
                                        ['.c'],
                                        include_tests=True)

    # These tests need -DJEMALLOC_PROF which we do not enable.
    paths.remove('android/external/jemalloc/test/unit/prof_accum.c')
    paths.remove('android/external/jemalloc/test/unit/prof_accum_a.c')
    paths.remove('android/external/jemalloc/test/unit/prof_accum_b.c')
    paths.remove('android/external/jemalloc/test/unit/prof_gdump.c')
    paths.remove('android/external/jemalloc/test/unit/prof_idump.c')

    # Disable some multi-threaded tests flaky under ARM qemu.
    if OPTIONS.is_arm():
        paths.remove('android/external/jemalloc/test/unit/mq.c')
        paths.remove('android/external/jemalloc/test/unit/mtx.c')

    for path in paths:
        name = os.path.splitext(os.path.basename(path))[0]
        n = ninja_generator.TestNinjaGenerator('jemalloc_unit_test_' + name)
        n.add_include_paths('android/external/jemalloc/include',
                            'android/external/jemalloc/test/include')
        n.add_c_flags('-Werror')
        n.add_c_flags('-DJEMALLOC_UNIT_TEST')
        if OPTIONS.enable_jemalloc_debug():
            n.add_c_flags('-DJEMALLOC_DEBUG')
        # Needs C99 for "restrict" keyword.
        n.add_c_flags('-std=gnu99')
        n.add_library_deps('libjemalloc_jet.a')
        n.add_library_deps('libjemalloc_unittest.a')
        n.build_default([path])
        n.run(n.link(),
              enable_valgrind=OPTIONS.enable_valgrind(),
              rule='run_test')
示例#3
0
def generate_test_ninjas():
    n = ninja_generator.TestNinjaGenerator('libcommon_test',
                                           force_compiler='clang',
                                           enable_cxx11=True,
                                           base_path='src/common')
    n.build_default_all_test_sources()
    if build_common.use_ndk_direct_execution():
        n.add_compiler_flags('-DUSE_NDK_DIRECT_EXECUTION')
    n.add_compiler_flags('-Werror')
    n.add_library_deps('libgccdemangle_static.a')
    _add_compile_flags(n)
    n.run(n.link())
示例#4
0
def generate_test_ninjas():
    if not OPTIONS.is_nacl_x86_64():
        return

    n = ninja_generator.TestNinjaGenerator(
        'libunwind_test',
        base_path='android/external/libunwind',
        enable_cxx11=True)
    sources = []
    if OPTIONS.is_x86_64():
        sources.append('src/x86_64/ucontext_i_test.cc')
    n.build_default(sources)
    n.run(n.link())
示例#5
0
文件: config.py 项目: zhangpf/arc
def _generate_unit_test_ninja():
    n = ninja_generator.TestNinjaGenerator('graphics_translation_unit_test',
                                           force_compiler='clang',
                                           enable_cxx11=True,
                                           base_path='graphics_translation')
    _add_compile_flags(n)
    n.add_ppapi_link_flags()
    n.add_library_deps('libcutils_static.a', 'libetc1_static.a',
                       'libgccdemangle_static.a', 'liblog_static.a',
                       'libutils_static.a', 'libppapi_mocks.a', 'libegl.a',
                       'libgles.a')
    sources = n.find_all_files('graphics_translation/gles', ['_test.cpp'],
                               include_tests=True)
    n.build_default(sources, base_path='mods')
    n.run(n.link())
示例#6
0
文件: config.py 项目: zhangpf/arc
def generate_test_ninjas():
    n = ninja_generator.TestNinjaGenerator('stlport_unittest',
                                           base_path=_STLPORT_ROOT +
                                           '/test/unit')

    n.add_c_flags('-Werror')
    n.add_cxx_flags('-Werror')

    # For avoiding compile failure on min_test.cpp.
    n.add_cxx_flags('-Wno-sequence-point')

    # For avoiding compile failure on sstream_test.cpp and time_facets_test.cpp.
    n.add_cxx_flags('-Wno-uninitialized')

    if n.is_clang_enabled():
        # For avoiding compile failure on string_test.cpp.
        n.add_cxx_flags('-Wno-unused-comparison')

        # For avoiding compile failure on resolve_name.cpp.
        n.add_cxx_flags('-Wno-unused-function')

        # For avoiding compile failure on fstream_test.cpp and sstream_test.cpp.
        n.add_cxx_flags('-Wno-unused-private-field')

        # For avoiding compile failure on slist_test.cpp, list_test.cpp and
        # type_traits_test.cpp.
        n.add_cxx_flags('-Wno-unused-variable')
    else:
        # For avoiding compile failure on --disable-debug-code.
        n.add_cxx_flags('-Wno-maybe-uninitialized')

    # Define STLPORT so that cppunit_proxy.h does not define
    # CPPUNIT_MINI_USE_EXCEPTIONS
    n.add_cxx_flags('-DSTLPORT')

    n.build_default(n.find_all_files(_STLPORT_ROOT + '/test/unit',
                                     ['.cpp', '.c'],
                                     include_tests=True,
                                     exclude=_EXCLUDE_FILES),
                    base_path=None)

    argv = '-x=%s' % ','.join(_EXCLUDE_TESTS)
    n.run(n.link(),
          argv=argv,
          enable_valgrind=OPTIONS.enable_valgrind(),
          rule='run_test')
示例#7
0
def _generate_libutils_arc_tests_ninja():
    base_path = 'android/system/core/libutils/arc_tests'
    n = ninja_generator.TestNinjaGenerator('libutils_arc_tests',
                                           base_path=base_path)
    n.build_default_all_test_sources()
    n.emit_framework_common_flags()
    n.add_compiler_flags('-Werror')
    library_deps = [
        'libchromium_base.a',  # for libcommon.a etc.
        'libcommon.a',
        'libcutils_static.a',
        'libgccdemangle_static.a',
        'libpluginhandle.a',
        'libunwind_static.a',
        'libutils_static.a'
    ]
    n.add_library_deps(*library_deps)
    n.run(n.link())
示例#8
0
def _generate_chromium_base_test_ninja():
    base_path = 'android/external/chromium_org'
    n = ninja_generator.TestNinjaGenerator('libchromium_base_test',
                                           base_path=base_path,
                                           force_compiler='clang',
                                           enable_cxx11=True)
    _add_chromium_base_compiler_flags(n)

    # For third_party/testing/gmock. chromium_org/base/*_test.cc include gmock
    # files with '#include "testing/gmock/...".
    n.add_include_paths('out/staging')

    n.add_compiler_flags('-DUNIT_TEST')  # for base/at_exit.h

    # TODO(crbug.com/239062): Support DEATH_TEST on Linux and enable these tests.
    #   'base/memory/weak_ptr_unittest.cc'
    #   'base/synchronization/cancellation_flag_unittest.cc'
    test_files = [
        'base/at_exit_unittest.cc', 'base/atomicops_unittest.cc',
        'base/bits_unittest.cc', 'base/files/file_path_unittest.cc',
        'base/id_map_unittest.cc', 'base/json/json_parser_unittest.cc',
        'base/json/json_value_converter_unittest.cc',
        'base/json/string_escape_unittest.cc', 'base/md5_unittest.cc',
        'base/memory/linked_ptr_unittest.cc',
        'base/memory/ref_counted_memory_unittest.cc',
        'base/memory/ref_counted_unittest.cc',
        'base/memory/scoped_ptr_unittest.cc',
        'base/memory/scoped_vector_unittest.cc',
        'base/memory/singleton_unittest.cc',
        'base/numerics/safe_numerics_unittest.cc',
        'base/scoped_clear_errno_unittest.cc', 'base/sha1_unittest.cc',
        'base/stl_util_unittest.cc', 'base/strings/string16_unittest.cc',
        'base/strings/string_number_conversions_unittest.cc',
        'base/strings/string_piece_unittest.cc',
        'base/strings/string_split_unittest.cc',
        'base/strings/string_tokenizer_unittest.cc',
        'base/strings/string_util_unittest.cc',
        'base/strings/stringize_macros_unittest.cc',
        'base/strings/stringprintf_unittest.cc',
        'base/strings/utf_offset_string_conversions_unittest.cc',
        'base/strings/utf_string_conversions_unittest.cc',
        'base/template_util_unittest.cc', 'base/time/time_unittest.cc',
        'base/tuple_unittest.cc', 'base/values_unittest.cc',
        'libchromium_base_test_main.cc'
    ]  # main function
    if not build_options.OPTIONS.is_nacl_build():
        test_files.extend(['base/environment_unittest.cc'])
    if not build_options.OPTIONS.is_arm():
        # qemu-arm does not support threading at this point.
        test_files.extend([
            'base/lazy_instance_unittest.cc',
            'base/synchronization/condition_variable_unittest.cc',
            'base/synchronization/lock_unittest.cc',
            'base/synchronization/waitable_event_unittest.cc'
        ])
    test_files = [os.path.join(base_path, f) for f in test_files]
    n.build_default(test_files, base_path=None)
    # Exclude FilePathTest.FromUTF8Unsafe_And_AsUTF8Unsafe since the test
    # indirectly depends on base/strings/sys_string_conversions_posix.cc which in
    # turn calls functions like ::wcrtomb() to convert a std::wstring to a system
    # locale's multi byte one. For Linux build, we could make such MB/WC function
    # work by calling ::setlocale(LC_ALL, "en_US.utf8") in the main function, but
    # for NaCl, we have no way.
    exclude = ['FilePathTest.FromUTF8Unsafe_And_AsUTF8Unsafe']
    # Exclude TimeTest.FromLocalExplodedCrashOnAndroid for now because the test
    # relies on timezone info, which is located at
    # '/system/usr/share/zoneinfo/tzdata' in the readonly filesystem, but we do
    # not have an easy way to access this data from unit tests.
    exclude.append('TimeTest.FromLocalExplodedCrashOnAndroid')
    # TODO(crbug.com/414569): L-rebase: Exclude TimeDelta.FromAndIn for now due to
    # subtle floating point issues, e.g.
    # TimeDelta::FromSecondsD(13.1).InSecondsF() != 13.1.
    exclude.append('TimeDelta.FromAndIn')
    # These tests are flaky under Valgrind.
    if build_options.OPTIONS.enable_valgrind():
        # This test queues up 4000 tasks among 200 threads. Under normal
        # circumstances each thread gets to run at least one task, but on several
        # occasions some threads have starved under Valgrind on the bots.
        exclude.append('ConditionVariableTest.LargeFastTaskTest')
    n.add_disabled_tests(*exclude)
    n.run(n.link())