<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>With ReStructureText format, We can convert the report to another<br>
      format easily. Use option --format rst<br>
      <br>
      Signed-off-by: Hoang Van Tuyen
      <a class="moz-txt-link-rfc2396E" href="mailto:tuyen.hoangvan@toshiba-tsdv.com">&lt;tuyen.hoangvan@toshiba-tsdv.com&gt;</a><br>
      ---<br>
       engine/scripts/ftc | 50
      +++++++++++++++++++++++++++++++++++++++++++++++++-<br>
       1 file changed, 49 insertions(+), 1 deletion(-)<br>
      <br>
      diff --git a/engine/scripts/ftc b/engine/scripts/ftc<br>
      index c1a2887..6b88cc7 100755<br>
      --- a/engine/scripts/ftc<br>
      +++ b/engine/scripts/ftc<br>
      @@ -2177,6 +2177,52 @@ def gen_csv_report(header_data,
      report_data, report_file):<br>
           # generate lines for this report<br>
               writer.writerows(report_data)<br>
       <br>
      +# create a rst table<br>
      +def make_table(grid):<br>
      +    # adjust column width size<br>
      +    max_cols = [max(out) for out in map(list,
      zip(*[[len(str(item)) for item in row] for row in grid]))]<br>
      +    rst = table_div(max_cols, 1)<br>
      +<br>
      +    for i, row in enumerate(grid):<br>
      +        header_flag = 0<br>
      +        if i == 0 or i == len(grid)-1: header_flag = 1<br>
      +        rst += normalize_row(row,max_cols)<br>
      +        rst += table_div(max_cols, header_flag )<br>
      +    return rst<br>
      +<br>
      +def table_div(max_cols, header_flag=1):<br>
      +    out = ""<br>
      +    if header_flag == 1:<br>
      +        style = "="<br>
      +    else:<br>
      +        style = "-"<br>
      +<br>
      +    for max_col in max_cols:<br>
      +        out += max_col * style + " "<br>
      +<br>
      +    return out + "\n"<br>
      +<br>
      +def normalize_row(row, max_cols):<br>
      +    r = ""<br>
      +    for i, max_col in enumerate(max_cols):<br>
      +        r += str(row[i]) + (max_col - len(str(row[i])) + 1) * " "<br>
      +    return r + "\n"<br>
      +<br>
      +def gen_rst_report(header_data, report_data):<br>
      +    # generate header<br>
      +    title = "Fuego Test Report"<br>
      +    title_len = len(title)<br>
      +    report = title + "\n"<br>
      +    report += table_div([title_len], 1)<br>
      +<br>
      +    for field,val_str in header_data:<br>
      +        report += ":%s: %s\n" % (field, val_str)<br>
      +    report += "\n"<br>
      +<br>
      +    # generate lines for this report<br>
      +    report += make_table(report_data)<br>
      +    return report<br>
      +<br>
       # generate a report from run results<br>
       def do_gen_report(conf, options):<br>
           global quiet, verbose<br>
      @@ -2198,7 +2244,7 @@ def do_gen_report(conf, options):<br>
           fmt="txt"<br>
           if "--format" in options:<br>
               fmt = options[options.index("--format")+1]<br>
      -        if fmt not in ["txt","html","pdf","excel","csv"]:<br>
      +        if fmt not in ["txt","html","pdf","excel","csv","rst"]:<br>
                   error_out("Unsupported format '%s' specified" % fmt)<br>
       <br>
           if "--layout" in options:<br>
      @@ -2267,6 +2313,8 @@ def do_gen_report(conf, options):<br>
           if fmt=="csv":<br>
               gen_csv_report(header_data, report_data, report_file)<br>
               sys.exit(0)<br>
      +    if fmt=="rst":<br>
      +        report = gen_rst_report(header_data, report_data)<br>
       <br>
           print report<br>
       <br>
      -- <br>
      2.1.4<br>
      <br>
    </p>
    <pre wrap="">_______________________________________________
Fuego mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Fuego@lists.linuxfoundation.org">Fuego@lists.linuxfoundation.org</a>
<a class="moz-txt-link-freetext" href="https://lists.linuxfoundation.org/mailman/listinfo/fuego">https://lists.linuxfoundation.org/mailman/listinfo/fuego</a></pre>
  </body>
</html>