⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 report.py

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 PY
字号:
# Copyright (c) MetaCommunications, Inc. 2003-2004## Distributed under the Boost Software License, Version 1.0. # (See accompanying file LICENSE_1_0.txt or copy at # http://www.boost.org/LICENSE_1_0.txt)import shutilimport os.pathimport osimport stringimport timeimport sysimport utilsimport runnerreport_types = [ 'us', 'ds', 'ud', 'dd', 'l', 'p', 'x', 'i', 'n', 'ddr', 'dsr' ]if __name__ == '__main__':    run_dir = os.path.abspath( os.path.dirname( sys.argv[ 0 ] ) )else:    run_dir = os.path.abspath( os.path.dirname( sys.modules[ __name__ ].__file__ ) )def map_path( path ):    return os.path.join( run_dir, path ) def xsl_path( xsl_file_name, v2 = 0 ):    if v2:        return map_path( os.path.join( 'xsl/v2', xsl_file_name ) )    else:        return map_path( os.path.join( 'xsl', xsl_file_name ) )def make_result_pages(           test_results_file        , expected_results_file        , failures_markup_file        , tag        , run_date        , comment_file        , results_dir        , result_prefix        , reports        , v2        ):    utils.log( 'Producing the reports...' )    __log__ = 1        output_dir = os.path.join( results_dir, result_prefix )    utils.makedirs( output_dir )        if comment_file != '':        comment_file = os.path.abspath( comment_file )            if expected_results_file != '':        expected_results_file = os.path.abspath( expected_results_file )    else:        expected_results_file = os.path.abspath( map_path( 'empty_expected_results.xml' ) )            extended_test_results = os.path.join( output_dir, 'extended_test_results.xml' )    if 'x' in reports:            utils.log( '    Merging with expected results...' )        utils.libxslt(               utils.log            , test_results_file            , xsl_path( 'add_expected_results.xsl', v2 )            , extended_test_results            , { 'expected_results_file': expected_results_file              , 'failures_markup_file' : failures_markup_file              , 'source' : tag }            )    links = os.path.join( output_dir, 'links.html' )        utils.makedirs( os.path.join( output_dir, 'output' ) )    for mode in ( 'developer', 'user' ):        utils.makedirs( os.path.join( output_dir, mode , 'output' ) )            if 'l' in reports:                utils.log( '    Making test output files...' )        utils.libxslt(               utils.log            , extended_test_results            , xsl_path( 'links_page.xsl', v2 )            , links            , {                  'source':                 tag                , 'run_date':               run_date                 , 'comment_file':           comment_file                , 'explicit_markup_file':   failures_markup_file                }            )    issues = os.path.join( output_dir, 'developer', 'issues.html'  )    if 'i' in reports:        utils.log( '    Making issues list...' )        utils.libxslt(               utils.log            , extended_test_results            , xsl_path( 'issues_page.xsl', v2 )            , issues            , {                  'source':                 tag                , 'run_date':               run_date                , 'comment_file':           comment_file                , 'explicit_markup_file':   failures_markup_file                }            )    for mode in ( 'developer', 'user' ):        if mode[0] + 'd' in reports:            utils.log( '    Making detailed %s  report...' % mode )            utils.libxslt(                   utils.log                , extended_test_results                , xsl_path( 'result_page.xsl', v2 )                , os.path.join( output_dir, mode, 'index.html' )                , {                       'links_file':             'links.html'                    , 'mode':                   mode                    , 'source':                 tag                    , 'run_date':               run_date                     , 'comment_file':           comment_file                    , 'expected_results_file':  expected_results_file                    , 'explicit_markup_file' :  failures_markup_file                    }                )        for mode in ( 'developer', 'user' ):        if mode[0] + 's' in reports:            utils.log( '    Making summary %s  report...' % mode )            utils.libxslt(                  utils.log                , extended_test_results                , xsl_path( 'summary_page.xsl', v2 )                , os.path.join( output_dir, mode, 'summary.html' )                , {                       'mode' :                  mode                     , 'source':                 tag                    , 'run_date':               run_date                     , 'comment_file':           comment_file                    , 'explicit_markup_file' :  failures_markup_file                    }                )    if v2 and "ddr" in reports:        utils.log( '    Making detailed %s release report...' % mode )        utils.libxslt(                   utils.log                , extended_test_results                , xsl_path( 'result_page.xsl', v2 )                , os.path.join( output_dir, "developer", 'index_release.html' )                , {                       'links_file':             'links.html'                    , 'mode':                   "developer"                    , 'source':                 tag                    , 'run_date':               run_date                     , 'comment_file':           comment_file                    , 'expected_results_file':  expected_results_file                    , 'explicit_markup_file' :  failures_markup_file                    , 'release':                "yes"                    }                )    if v2 and "dsr" in reports:        utils.log( '    Making summary %s release report...' % mode )        utils.libxslt(                  utils.log                , extended_test_results                , xsl_path( 'summary_page.xsl', v2 )                , os.path.join( output_dir, "developer", 'summary_release.html' )                , {                       'mode' :                  "developer"                    , 'source':                 tag                    , 'run_date':               run_date                     , 'comment_file':           comment_file                    , 'explicit_markup_file' :  failures_markup_file                    , 'release':                'yes'                    }                )            if 'e' in reports:        utils.log( '    Generating expected_results ...' )        utils.libxslt(              utils.log            , extended_test_results            , xsl_path( 'produce_expected_results.xsl', v2 )            , os.path.join( output_dir, 'expected_results.xml' )            )    if v2 and 'n' in reports:        utils.log( '    Making runner comment files...' )        utils.libxslt(              utils.log            , extended_test_results            , xsl_path( 'runners.xsl', v2 )            , os.path.join( output_dir, 'runners.html' )            )    shutil.copyfile(          xsl_path( 'html/master.css', v2 )        , os.path.join( output_dir, 'master.css' )        )def build_xsl_reports(           locate_root_dir        , tag        , expected_results_file        , failures_markup_file        , comment_file        , results_dir        , result_file_prefix        , dont_collect_logs = 0        , reports = report_types        , v2 = 0        , user = None        , upload = False        ):    ( run_date ) = time.strftime( '%Y-%m-%dT%H:%M:%SZ', time.gmtime() )        test_results_file = os.path.join( results_dir, 'test_results.xml' )    bin_boost_dir = os.path.join( locate_root_dir, 'bin', 'boost' )    if v2:        import merger        merger.merge_logs(              tag            , user            , results_dir            , test_results_file            , dont_collect_logs            )    else:        utils.log( '  dont_collect_logs: %s' % dont_collect_logs )        if not dont_collect_logs:            f = open( test_results_file, 'w+' )            f.write( '<tests>\n' )            runner.collect_test_logs( [ bin_boost_dir ], f )            f.write( '</tests>\n' )            f.close()    make_result_pages(           test_results_file        , expected_results_file        , failures_markup_file        , tag        , run_date        , comment_file        , results_dir        , result_file_prefix        , reports        , v2        )    if v2 and upload:        upload_dir = 'regression-logs/'        utils.log( 'Uploading v2 results into "%s" [connecting as %s]...' % ( upload_dir, user ) )                archive_name = '%s.tar.gz' % result_file_prefix        utils.tar(               os.path.join( results_dir, result_file_prefix )            , archive_name            )                utils.sourceforge.upload( os.path.join( results_dir, archive_name ), upload_dir, user )        utils.sourceforge.untar( os.path.join( upload_dir, archive_name ), user, background = True )def accept_args( args ):    args_spec = [           'locate-root='        , 'tag='        , 'expected-results='        , 'failures-markup='        , 'comment='        , 'results-dir='        , 'results-prefix='        , 'dont-collect-logs'        , 'reports='        , 'v2'        , 'user='        , 'upload'        , 'help'        ]            options = {           '--comment': ''        , '--expected-results': ''        , '--failures-markup': ''        , '--reports': string.join( report_types, ',' )        , '--tag': None        , '--user': None        , 'upload': False        }        utils.accept_args( args_spec, args, options, usage )    if not options.has_key( '--results-dir' ):         options[ '--results-dir' ] = options[ '--locate-root' ]    if not options.has_key( '--results-prefix' ):        if options.has_key( '--v2' ):            options[ '--results-prefix' ] = 'all'        else:            options[ '--results-prefix' ] = ''        return (           options[ '--locate-root' ]        , options[ '--tag' ]        , options[ '--expected-results' ]        , options[ '--failures-markup' ]        , options[ '--comment' ]        , options[ '--results-dir' ]        , options[ '--results-prefix' ]        , options.has_key( '--dont-collect-logs' )        , options[ '--reports' ].split( ',' )        , options.has_key( '--v2' )        , options[ '--user' ]        , options.has_key( '--upload' )        )def usage():    print 'Usage: %s [options]' % os.path.basename( sys.argv[0] )    print    '''\t--locate-root         the same as --locate-root in compiler_status\t--tag                 the tag for the results (i.e. 'CVS-HEAD')\t--expected-results    the file with the results to be compared with\t                      the current run\t--failures-markup     the file with the failures markup\t--comment             an html comment file (will be inserted in the reports)\t--results-dir         the directory containing -links.html, -fail.html\t                      files produced by compiler_status (by default the\t                      same as specified in --locate-root)\t--results-prefix      the prefix of -links.html, -fail.html\t                      files produced by compiler_status\t--v2                  v2 reports (combine multiple runners results into a \t                      single set of reports)The following options are valid only for v2 reports:\t--user                SourceForge user name for a shell account\t--upload              upload v2 reports to SourceForge The following options are useful in debugging:\t--dont-collect-logs dont collect the test logs\t--reports           produce only the specified reports\t                        us - user summary\t                        ds - developer summary\t                        ud - user detailed\t                        dd - developer detailed\t                        l  - links\t                        p  - patches\t                        x  - extended results file\t                        i  - issues'''def main():    build_xsl_reports( *accept_args( sys.argv[ 1 : ] ) )if __name__ == '__main__':    main()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -