예제 #1
0
def test_linux(args):
    adapter = LinuxAdapter()
    test_result = Result(message='')
    coverage_result = Result(message='')
    try:
        if args.rebuild or exist_gcov_data_in_linux() or args.coverage:
            adapter.distclean()
        if not args.skip_build:
            adapter.testbinary(with_coverage=args.coverage)

        if '/' in args.group or '\\' in args.group:
            args.group = os.path.basename(args.group)

        test_result = LinuxAdapter().test(verbose=args.verbose,
                                          group=args.group,
                                          name=args.name,
                                          repeat=args.repeat)

        if args.coverage:
            coverage_result = LinuxAdapter().coverage_lcov()

    except RT_OCFError as e:
        test_result = Result(exitcode=e.exitcode, message=e.message)
        coverage_result = Result(exitcode=e.exitcode, message=e.message)
    finally:
        if args.is_ci:
            write_result(CI_LINUX_TEST_FILE_NAME, test_result.message)
            if args.coverage:
                write_result(CI_LINUX_COVERAGE_FILE_NAME,
                             coverage_result.message)
    return test_result
예제 #2
0
def run(args):
    adapter = LinuxAdapter()

    if not args.skip_build:
        adapter.distclean()
        adapter.build()
    result = Result()
    leak_message = LEAK_FAIL_MESSAGE
    peak_message = PEAK_FAIL_MESSAGE
    try:
        leak_dic = {}
        peak_dic = {}
        for binary in FUNCTIONAL_TESTS:
            filename = os.path.basename(binary)
            execute('rm -rf massif.out.*')
            execute_output = execute_return_output('python {}'.format(binary))
            leak_dic[filename] = LeakCalculator().calculate(
                execute_output.data)
            massif_output = execute_return_output('ms_print massif.out.*')
            peak_dic[filename] = PeakCalculator().calculate(massif_output.data)

        leak_total = 0
        peak_max = Peak()
        for filename in leak_dic:
            print(
                '#############################################################'
            )
            print('-- {} --'.format(filename))
            print('  Memory leak')
            print('    {} bytes'.format(leak_dic[filename]))
            print('  Memory peak')
            print('    {}'.format(str(peak_dic[filename])))
            print(
                '#############################################################'
            )
            leak_total += leak_dic[filename]
            if peak_dic[filename] > peak_max:
                peak_max = peak_dic[filename]
        leak_message = 'Memory Leak: {} bytes'.format(str(leak_total))
        peak_message = 'Memory Peak: {}'.format(str(peak_max))
    except RT_OCFError as e:
        peak_message = PEAK_FAIL_MESSAGE
        leak_message = LEAK_FAIL_MESSAGE
        result = Result(exitcode=e.exitcode, message=e.message)
    finally:
        if args.is_ci:
            write_result(CI_LINUX_LEAK_FILE_NAME, leak_message)
            write_result(CI_LINUX_PEAK_FILE_NAME, peak_message)

    print("Result::")
    print(leak_message)
    print(peak_message)
    exit(result.exitcode)
예제 #3
0
파일: build.py 프로젝트: sdsxpln/RT-OCF
def build_linux(args):
    result = Result(message='Successfully finished..')
    try:
        adapter = LinuxAdapter()
        if args.rebuild:
            adapter.distclean()
        adapter.build()
    except RT_OCFError as e:
        result = Result(exitcode=e.exitcode, message=e.message)
    finally:
        if args.is_ci:
            write_result(CI_LINUX_BUILD_FILE_NAME, result.message)
    return result
 def read_serial_output(self):
     while True:
         line = self.serial.readline()
         if line == '':
             print('Timeout')
             return Result(exitcode=1,
                           message='timeout: Core Dump may occur')
         sys.stdout.write(line)
         if self.is_test_result(line):
             return Result(
                 exitcode=self.get_test_exitcode(line),
                 message=line)
         if self.is_core_dump(line):
             return Result(exitcode=1, message=line)
예제 #5
0
파일: build.py 프로젝트: sdsxpln/RT-OCF
def build_tizenrt(args):
    result = Result(message='Successfully finished..')
    try:
        adapter = TizenRTAdapter(config=args.config)
        if args.rebuild:
            adapter.distclean()
            adapter.reconfig()
        adapter.build()
        if args.with_flash:
            adapter.flash_binary()
    except RT_OCFError as e:
        result = Result(exitcode=e.exitcode, message=e.message)
    finally:
        if args.is_ci:
            write_result(CI_TIZENRT_BUILD_FILE_NAME, result.message)
    return result
예제 #6
0
def run_peak(is_ci):
    try:
        result = PeakCalculator().calculate(FUNCTIONAL_TESTS)
    except RT_OCFError as e:
        result = Result(exitcode=e.exitcode, message=e.message)
    finally:
        if args.is_ci:
            write_result(CI_LINUX_PEAK_FILE_NAME, result.message)
    return result
예제 #7
0
def test_tizenrt(args):
    result = Result(message='')
    try:
        adapter = TizenRTAdapter(config='artik053/zeroroot_unittest')
        if args.rebuild:
            adapter.reconfig()
            adapter.distclean()
            adapter.reconfig()
        print('!!!' + args.group)
        if not args.skip_build:
            adapter.build()
        if '/' in args.group or '\\' in args.group:
            args.group = os.path.basename(args.group)
        result = adapter.test(verbose=args.verbose,
                              group=args.group,
                              name=args.name,
                              repeat=args.repeat)
    except RT_OCFError as e:
        result = Result(exitcode=e.exitcode, message=e.message)
    finally:
        if args.is_ci:
            write_result(CI_TIZENRT_TEST_FILE_NAME, result.message)
    return result
예제 #8
0
    def execute(self, file_list, show_warning):
        warning_count = {'error': 0, 'warning': 0}
        for filepath in file_list:
            if not filepath.endswith('.c') and not filepath.endswith('.h'):
                continue
            each_result = self.execute_lint(filepath, show_warning)
            warning_count['error'] += each_result['error']
            warning_count['warning'] += each_result['warning']
        report = 'error: {}, warning: {}'.format(warning_count['error'],
                                                 warning_count['warning'])
        exitcode = 0
        if warning_count['error'] > 0:
            exitcode = 1
            print_fail('Catch you!!! You did not take code style seriously.')

        return Result(message=report, exitcode=exitcode)