$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r83602 - in trunk/tools/regression: src/report test/report
From: steven_at_[hidden]
Date: 2013-03-27 13:05:11
Author: steven_watanabe
Date: 2013-03-27 13:05:09 EDT (Wed, 27 Mar 2013)
New Revision: 83602
URL: http://svn.boost.org/trac/boost/changeset/83602
Log:
Fix most validity errors.
Binary files modified: 
   trunk/tools/regression/test/report/expected.zip
Text files modified: 
   trunk/tools/regression/src/report/html.cpp         |    50 ++++++++++++------------                
   trunk/tools/regression/src/report/issues_page.cpp  |     8 +++-                                    
   trunk/tools/regression/src/report/links_page.cpp   |    77 ++++++++++++++++++++++++--------------- 
   trunk/tools/regression/src/report/result_page.cpp  |    20 +++++++---                              
   trunk/tools/regression/src/report/runners.cpp      |    12 ++++--                                  
   trunk/tools/regression/src/report/summary_page.cpp |     5 +-                                      
   trunk/tools/regression/test/report/runner.xml      |     2                                         
   7 files changed, 105 insertions(+), 69 deletions(-)
Modified: trunk/tools/regression/src/report/html.cpp
==============================================================================
--- trunk/tools/regression/src/report/html.cpp	(original)
+++ trunk/tools/regression/src/report/html.cpp	2013-03-27 13:05:09 EDT (Wed, 27 Mar 2013)
@@ -42,7 +42,7 @@
     "<div class=\"legend\">\n"
     "<table border=\"0\" summary=\"report description\">\n"
     "    <tr>\n"
-    "        <td class=\"legend-item\" width=\"50pt\">\n"
+    "        <td class=\"legend-item\">\n"
     "            <table width=\"100%\" summary=\"success legend\">\n"
     "            <tr class=\"library-row-single\"><td class=\"library-success-expected user-library-success-expected\">pass</td></tr>\n"
     "            </table>\n"
@@ -50,7 +50,7 @@
     "        <td class=\"legend-explanation\">The test successfully passes.</td>\n"
     "    </tr>\n"
     "    <tr>\n"
-    "        <td class=\"legend-item\" width=\"50pt\">\n"
+    "        <td class=\"legend-item\">\n"
     "            <table width=\"100%\" summary=\"expected fail legend\">\n"
     "            <tr class=\"library-row-single\"><td class=\"library-fail-expected user-library-fail-expected\"><u>fail*</u></td></tr>\n"
     "            </table>\n"
@@ -61,7 +61,7 @@
     "        </td>\n"
     "    </tr>\n"
     "    <tr>\n"
-    "        <td class=\"legend-item\" width=\"50pt\">\n"
+    "        <td class=\"legend-item\">\n"
     "            <table width=\"100%\" summary=\"unusable legend\">\n"
     "            <tr class=\"library-row-single\"><td class=\"library-unusable user-library-unusable\">unusable</td></tr>\n"
     "            </table>\n"
@@ -72,7 +72,7 @@
     "        </td>\n"
     "    </tr>\n"
     "    <tr>\n"
-    "        <td class=\"legend-item\" width=\"50pt\">\n"
+    "        <td class=\"legend-item\">\n"
     "            <table width=\"100%\" summary=\"unresearched legend\">\n"
     "            <tr class=\"library-row-single\"><td class=\"library-fail-expected-unresearched user-library-fail-expected-unresearched\"><u>fail?</u></td></tr>\n"
     "            </table>\n"
@@ -83,7 +83,7 @@
     "          access the details and find out how it affects library functionality. </td>\n"
     "    </tr>\n"
     "    <tr>\n"
-    "        <td class=\"legend-item\" width=\"50pt\">\n"
+    "        <td class=\"legend-item\">\n"
     "            <table width=\"100%\" summary=\"unexpected new fail legend\">\n"
     "            <tr class=\"library-row-single\"><td class=\"library-fail-unexpected-new user-library-fail-unexpected-new\"><u>fail</u></td></tr>\n"
     "            </table>\n"
@@ -94,7 +94,7 @@
     "        </td>\n"
     "    </tr>\n"
     "    <tr>\n"
-    "        <td class=\"legend-item\" width=\"50pt\">\n"
+    "        <td class=\"legend-item\">\n"
     "            <table width=\"100%\" summary=\"unexpected fail legend\">\n"
     "            <tr class=\"library-row-single user-library-row-single\"><td class=\"library-fail-unexpected\"><u>fail</u></td></tr>\n"
     "            </table>\n"
@@ -105,7 +105,7 @@
     "        </td>\n"
     "    </tr>\n"
     "    <tr>\n"
-    "        <td class=\"legend-item\" width=\"50pt\">\n"
+    "        <td class=\"legend-item\">\n"
     "        </td>\n"
     "        <td class=\"legend-explanation\"></td>\n"
     "    </tr>\n"
@@ -124,7 +124,7 @@
     "<div class=\"legend\">\n"
     "<table border=\"0\" summary=\"report description\">\n"
     "    <tr>\n"
-    "        <td class=\"legend-item\" width=\"50pt\">\n"
+    "        <td class=\"legend-item\">\n"
     "            <table width=\"100%\" summary=\"success legend\">\n"
     "            <tr class=\"library-row-single\"><td class=\"library-success-expected\">pass</td></tr>\n"
     "            </table>\n"
@@ -132,7 +132,7 @@
     "        <td class=\"legend-explanation\">Success.</td>\n"
     "    </tr>\n"
     "    <tr>\n"
-    "        <td class=\"legend-item\" width=\"50pt\">\n"
+    "        <td class=\"legend-item\">\n"
     "            <table width=\"100%\" summary=\"unexpected pass legend\">\n"
     "            <tr class=\"library-row-single\"><td class=\"library-success-unexpected\">pass</td></tr>\n"
     "            </table>\n"
@@ -140,7 +140,7 @@
     "        <td class=\"legend-explanation\">Unexpected success; follow the link for more details.</td>\n"
     "    </tr>\n"
     "    <tr>\n"
-    "        <td class=\"legend-item\" width=\"50pt\">\n"
+    "        <td class=\"legend-item\">\n"
     "            <table width=\"100%\" summary=\"expected fail legend\">\n"
     "            <tr class=\"library-row-single\"><td class=\"library-fail-expected\">fail*</td></tr>\n"
     "            </table>\n"
@@ -148,7 +148,7 @@
     "        <td class=\"legend-explanation\">Expected failure; follow the link for more details.</td>\n"
     "    </tr>\n"
     "    <tr>\n"
-    "        <td class=\"legend-item\" width=\"50pt\">\n"
+    "        <td class=\"legend-item\">\n"
     "            <table width=\"100%\" summary=\"unusable legend\">\n"
     "            <tr class=\"library-row-single\"><td class=\"library-unusable\">n/a</td></tr>\n"
     "            </table>\n"
@@ -156,7 +156,7 @@
     "        <td class=\"legend-explanation\">The library author marked it as unusable on this particular platform/toolset.</td>\n"
     "    </tr>\n"
     "    <tr>\n"
-    "        <td class=\"legend-item\" width=\"50pt\">\n"
+    "        <td class=\"legend-item\">\n"
     "            <table width=\"100%\" summary=\"unresearched legend\">\n"
     "            <tr class=\"library-row-single\"><td class=\"library-fail-expected-unresearched\">fail?</td></tr>\n"
     "            </table>\n"
@@ -164,7 +164,7 @@
     "        <td class=\"legend-explanation\">Unsearched failure; follow the link for more details.</td>\n"
     "    </tr>\n"
     "    <tr>\n"
-    "        <td class=\"legend-item\" width=\"50pt\">\n"
+    "        <td class=\"legend-item\">\n"
     "            <table width=\"100%\" summary=\"unexpected new fail legend\">\n"
     "            <tr class=\"library-row-single\"><td class=\"library-fail-unexpected-new\">fail</td></tr>\n"
     "            </table>\n"
@@ -172,7 +172,7 @@
     "        <td class=\"legend-explanation\">Failure on a newly added test/compiler.</td>\n"
     "    </tr>\n"
     "    <tr>\n"
-    "        <td class=\"legend-item\" width=\"50pt\">\n"
+    "        <td class=\"legend-item\">\n"
     "            <table width=\"100%\" summary=\"unexpected fail legend\">\n"
     "            <tr class=\"library-row-single\"><td class=\"library-fail-unexpected\">fail</td></tr>\n"
     "            </table>\n"
@@ -180,7 +180,7 @@
     "        <td class=\"legend-explanation\">Unexpected failure/regression.</td>\n"
     "    </tr>\n"
     "    <tr>\n"
-    "        <td class=\"legend-item\" width=\"50pt\">\n"
+    "        <td class=\"legend-item\">\n"
     "        </td>\n"
     "        <td class=\"legend-explanation\"></td>\n"
     "    </tr>\n"
@@ -199,7 +199,7 @@
     "<div class=\"legend\">\n"
     "<table border=\"0\" summary=\"report description\">\n"
     "    <tr>\n"
-    "        <td class=\"legend-item\" width=\"50pt\">\n"
+    "        <td class=\"legend-item\">\n"
     "            <table width=\"100%\" summary=\"success legend\">\n"
     "                <tr class=\"summary-row-single\"><td class=\"summary-success-expected user-summary-success-expected\"> pass </td></tr>\n"
     "                </table>\n"
@@ -209,7 +209,7 @@
     "        </td>\n"
     "    </tr>\n"
     "    <tr>\n"
-    "        <td class=\"legend-item\" width=\"50pt\">\n"
+    "        <td class=\"legend-item\">\n"
     "            <table width=\"100%\" summary=\"expected fail legend\">\n"
     "                <tr class=\"summary-row-single\"><td class=\"summary-fail-expected user-summary-fail-expected\"><u>details</u></td></tr>\n"
     "            </table>\n"
@@ -220,7 +220,7 @@
     "        </td>\n"
     "    </tr>\n"
     "    <tr>\n"
-    "        <td class=\"legend-item\" width=\"50pt\">\n"
+    "        <td class=\"legend-item\">\n"
     "            <table width=\"100%\" summary=\"unexpected new fail legend\">\n"
     "                <tr class=\"summary-row-single\"><td class=\"summary-fail-unexpected-new user-summary-fail-unexpected-new\"><u>details</u></td></tr>\n"
     "            </table>\n"
@@ -232,7 +232,7 @@
     "        </td>\n"
     "    </tr>\n"
     "    <tr>\n"
-    "        <td class=\"legend-item\" width=\"50pt\">\n"
+    "        <td class=\"legend-item\">\n"
     "            <table width=\"100%\" summary=\"unexpected fail legend\">\n"
     "                <tr class=\"summary-row-single\"><td class=\"summary-fail-unexpected user-summary-fail-unexpected\"><u>regress.</u></td></tr>\n"
     "            </table>\n"
@@ -243,7 +243,7 @@
     "        </td>\n"
     "    </tr>\n"
     "    <tr>\n"
-    "        <td class=\"legend-item\" width=\"50pt\">\n"
+    "        <td class=\"legend-item\">\n"
     "            <table width=\"100%\" summary=\"unusable legend\">\n"
     "                <tr class=\"summary-row-single\"><td class=\"summary-unusable user-summary-unusable\">unusable</td></tr>\n"
     "            </table>\n"
@@ -268,7 +268,7 @@
     "<div class=\"legend\">\n"
     "<table border=\"0\" summary=\"report description\">\n"
     "    <tr>\n"
-    "        <td class=\"legend-item\" width=\"50pt\">\n"
+    "        <td class=\"legend-item\">\n"
     "            <table width=\"100%\" summary=\"success legend\">\n"
     "                <tr class=\"summary-row-single\"><td class=\"summary-success-expected\">OK</td></tr>\n"
     "                </table>\n"
@@ -278,7 +278,7 @@
     "        </td>\n"
     "    </tr>\n"
     "    <tr>\n"
-    "        <td class=\"legend-item\" width=\"50pt\">\n"
+    "        <td class=\"legend-item\">\n"
     "            <table width=\"100%\" summary=\"unexpected pass legend\">\n"
     "                <tr class=\"summary-row-single\"><td class=\"summary-success-unexpected\">OK</td></tr>\n"
     "            </table>\n"
@@ -289,7 +289,7 @@
     "        </td>\n"
     "    </tr>\n"
     "    <tr>\n"
-    "        <td class=\"legend-item\" width=\"50pt\">\n"
+    "        <td class=\"legend-item\">\n"
     "            <table width=\"100%\" summary=\"unexpected new fail legend\">\n"
     "                <tr class=\"summary-row-single\"><td class=\"summary-fail-unexpected-new\">fail</td></tr>\n"
     "            </table>\n"
@@ -299,7 +299,7 @@
     "        </td>\n"
     "    </tr>\n"
     "    <tr>\n"
-    "        <td class=\"legend-item\" width=\"50pt\">\n"
+    "        <td class=\"legend-item\">\n"
     "            <table width=\"100%\" summary=\"unexpected fail legend\">\n"
     "                <tr class=\"summary-row-single\"><td class=\"summary-fail-unexpected\">broken</td></tr>\n"
     "            </table>\n"
@@ -309,7 +309,7 @@
     "        </td>\n"
     "    </tr>\n"
     "    <tr>\n"
-    "        <td class=\"legend-item\" width=\"50pt\">\n"
+    "        <td class=\"legend-item\">\n"
     "            <table width=\"100%\" summary=\"unusable legend\">\n"
     "                <tr class=\"summary-row-single\"><td class=\"summary-unusable\">n/a</td></tr>\n"
     "            </table>\n"
Modified: trunk/tools/regression/src/report/issues_page.cpp
==============================================================================
--- trunk/tools/regression/src/report/issues_page.cpp	(original)
+++ trunk/tools/regression/src/report/issues_page.cpp	2013-03-27 13:05:09 EDT (Wed, 27 Mar 2013)
@@ -72,9 +72,10 @@
                                       const std::string& issues_list)
 {
     html_writer document(out);
-    document << "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n";
+    document << "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Frameset//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd\">\n";
     document << "<html>\n";
     document << "  <head>\n";
+    document << "    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n";
     document << "    <link rel=\"stylesheet\" type=\"text/css\" href=\"../master.css\" title=\"master\" />\n";
     document << "    <title>Boost regression unresolved issues: " << source << "</title>\n";
     document << "  </head>\n";
@@ -124,11 +125,13 @@
 
     html_writer document(path);
 
-    document << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\">\n";
+    document << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
       
     document << "<html>\n";
     document << "  <head>\n";
+    document << "    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n";
     document << "    <link rel=\"stylesheet\" type=\"text/css\" href=\"../master.css\" title=\"master\" />\n";
+    document << "    <title>Boost regression unresolved issues: " << source << "</title>\n";
     document << "  </head>\n";
     document << "  <body>\n";
     document << "\n";
@@ -211,6 +214,7 @@
 
         document << "    </table>\n";
     }
+    document << "    </div>\n";
     document << issues_legend;
     document << "  </body>\n";
     document << "</html>\n";
Modified: trunk/tools/regression/src/report/links_page.cpp
==============================================================================
--- trunk/tools/regression/src/report/links_page.cpp	(original)
+++ trunk/tools/regression/src/report/links_page.cpp	2013-03-27 13:05:09 EDT (Wed, 27 Mar 2013)
@@ -31,7 +31,9 @@
                 const std::vector<test_structure_t::test_log_t>& test_logs);
 void write_variants_reference_file(const std::string& path,
                                    const std::string& variants_file_path,
-                                   const std::string release_postfix);
+                                   const std::string release_postfix,
+                                   const std::vector<test_structure_t::test_log_t>& test_logs,
+                                   const std::string& runner_id);
 std::string output_page_header(node_ptr test_log, const std::string& runner_id);
 void write_variants_file(const failures_markup_t& explicit_markup,
                          const std::string& path,
@@ -45,7 +47,10 @@
                             const std::string& runner_id,
                             const std::string& revision,
                             const boost::posix_time::ptime& timestamp);
-void write_test_results_reference_file(const std::string& path, const std::string& log_file_path);
+void write_test_results_reference_file(const std::string& path,
+                                       const std::string& log_file_path,
+                                       const test_structure_t::test_log_t& test_log,
+                                       const std::string& runner_id);
 
 // requires: revision must be a SVN revision.  i.e. of the form nnnnn
 void links_page(const failures_markup_t& explicit_markup,
@@ -71,7 +76,7 @@
         BOOST_FOREACH(const std::string& release_postfix, postfixes) {
             BOOST_FOREACH(const std::string& directory, dirs) {
                 std::string variants__file_path = directory + "/" + (encode_path(runner_id + "-" + library_name + "-" + toolset_name + "-" + test_name + "-variants_" + release_postfix) + ".html");
-                write_variants_reference_file(variants__file_path, "../" + variants_file_path, release_postfix);
+                write_variants_reference_file(variants__file_path, "../" + variants_file_path, release_postfix, test_logs, runner_id);
             }
         }
     }
@@ -86,27 +91,41 @@
             BOOST_FOREACH(const std::string& release_postfix, postfixes) {
                 BOOST_FOREACH(const std::string& directory, dirs) {
                     std::string reference_file_path = directory + "/" + log_file_path(explicit_markup, test_log, runner_id, release_postfix);
-                    write_test_results_reference_file(reference_file_path, log_path);
+                    write_test_results_reference_file(reference_file_path, log_path, test_log, runner_id);
                 }
             }
         }
     }
 }
 
+// okay. result is unconstrained
+std::string output_page_header(const test_structure_t::test_log_t& test_log, const std::string& runner_id) {
+    if(test_log.test_name != "") {
+        return runner_id + " - " + test_log.library + " - " + test_log.test_name + " / " + test_log.toolset;
+    } else {
+        return test_log.target_directory;
+    }
+}
+
 // requires: path must be a valid file path.
 // requires: variants_file_path must be the path to the variants file relative to path
 void write_variants_reference_file(const std::string& path,
                                    const std::string& variants_file_path,
-                                   const std::string release_postfix)
+                                   const std::string release_postfix,
+                                   const std::vector<test_structure_t::test_log_t>& test_logs,
+                                   const std::string& runner_id)
 {
     //utils::log("    Writing variants reference file %s" % path);
+    std::string component = output_page_header(test_logs[0], runner_id);
 
     html_writer document(path);
     
-    document << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\">\n"
+    document << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Frameset//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd\">\n"
                 "<html>\n"
                 "    <head>\n"
+                "        <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n"
                 "        <link rel=\"stylesheet\" type=\"text/css\" href=\"../master.css\" title=\"master\" />\n"
+                "        <title>Test output: " << escape_xml(component) << "</title>\n"
                 "    </head>\n"
                 "    <frameset cols=\"190px,*\" frameborder=\"0\" framespacing=\"0\" border=\"0\">\n"
                 "        <frame name=\"tocframe\" src=\"toc" << release_postfix  << ".html\" scrolling=\"auto\"/>\n"
@@ -115,15 +134,6 @@
                 "</html>\n";
 }
 
-// okay. result is unconstrained
-std::string output_page_header(const test_structure_t::test_log_t& test_log, const std::string& runner_id) {
-    if(test_log.test_name != "") {
-        return runner_id + " - " + test_log.library + " - " + test_log.test_name + " / " + test_log.toolset;
-    } else {
-        return test_log.target_directory;
-    }
-}
-
 // requires revision is an SVN revision #
 // requires path is a valid path
 void write_variants_file(const failures_markup_t& explicit_markup,
@@ -139,9 +149,10 @@
     std::string component = output_page_header(test_logs[0], runner_id);
     int age = 0; // timestamp_difference(timestamp, run_date);
 
-    document << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\">\n"
+    document << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"
                 "<html>\n"
                 "    <head>\n"
+                "        <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n"
                 "        <link rel=\"stylesheet\" type=\"text/css\" href=\"../master.css\" title=\"master\" />\n"
                 "        <title>Test output: " << escape_xml(component) << "</title>\n"
                 "    </head>\n"
@@ -213,10 +224,11 @@
     std::string component = output_page_header(test_log, runner_id);
     int age = 0; // timestamp_difference(timestamp, run_date);
     
-    document << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\">\n"
+    document << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"
                 "<html>\n";
 
     document << "    <head>\n"
+                "        <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n"
                 "        <link rel=\"stylesheet\" type=\"text/css\" href=\"../master.css\" title=\"master\" />\n"
                 "        <title>Test output: " << escape_xml(component) << "</title>\n"
                 "    </head>\n";
@@ -234,41 +246,41 @@
     
     if(!test_log.notes.empty()) {
 
-        document << "        <p>\n"
+        document << "        <div class=\"notes\">\n"
                     "            <div class=\"notes-title\">Notes</div>\n";
 
         show_notes(document, test_log.notes, explicit_markup);
 
-        document << "        </p>\n";
+        document << "        </div>\n";
 
     }
 
     if(const test_structure_t::target_t* compile = lookup_target(test_log, "compile")) {
         const char* compile_result = compile->result? "succeed" : "fail";
-        document << "        <p>\n";
+        document << "        <div>\n";
         document << "            <div class=\"log-compiler-output-title\">Compile [" << escape_xml(compile->timestamp) << "]:"
                                  " <span class=\"output-" << compile_result << "\">" << compile_result << "</span></div>\n";
         document << "            <pre>\n";
         write_contents(document, compile->contents, true);
         document << "            </pre>\n";
-        document << "        </p>\n";
+        document << "        </div>\n";
     }
 
     if(const test_structure_t::target_t* link = lookup_target(test_log, "link")) {
         const char* link_result = link->result? "succeed" : "fail";
-        document << "        <p>\n";
+        document << "        <div>\n";
         document << "            <div class=\"log-linker-output-title\">Link [" << escape_xml(link->timestamp) << "]:"
                                  " <span class=\"output-" << link_result << "\">" << link_result << "</span></div>\n";
         document << "            <pre>\n";
         write_contents(document, link->contents, true);
         document << "            </pre>\n";
-        document << "        </p>\n";
+        document << "        </div>\n";
     }
 
     if(const test_structure_t::target_t* lib = lookup_target(test_log, "lib")) {
         const char* lib_result = lib->result? "succeed" : "fail";
         std::string lib_name(lib->contents->value(), lib->contents->value_size());
-        document << "        <p>\n";
+        document << "        <div>\n";
         document << "            <div class=\"log-linker-output-title\">Lib [" << escape_xml(lib->timestamp) << "]:"
                                  " <span class=\"output-" << lib_result << "\">" << lib_result << "</span></div>\n";
         document << "            <p>\n";
@@ -276,18 +288,18 @@
         document << "                " << escape_xml(lib_name) << "\n";
         document << "                </a>\n";
         document << "            </p>\n";
-        document << "        </p>\n";
+        document << "        </div>\n";
     }
          
     if(const test_structure_t::target_t* run = lookup_target(test_log, "run")) {
         const char* run_result = run->result? "succeed" : "fail";
-        document << "        <p>\n";
+        document << "        <div>\n";
         document << "            <div class=\"log-linker-output-title\">Run [" << escape_xml(run->timestamp) << "]:"
                                  " <span class=\"output-" << run_result << "\">" << run_result << "</span></div>\n";
         document << "            <pre>\n";
         write_contents(document, run->contents, true);
         document << "            </pre>\n";
-        document << "        </p>\n";
+        document << "        </div>\n";
     }
 
     document << "    </body>\n";
@@ -296,14 +308,21 @@
 
 // requires path is a valid path
 // requires: log_file_path is the location of the log file relative to path
-void write_test_results_reference_file(const std::string& path, const std::string& log_file_path)
+void write_test_results_reference_file(const std::string& path,
+                                       const std::string& log_file_path,
+                                       const test_structure_t::test_log_t& test_log,
+                                       const std::string& runner_id)
 {
+    std::string component = output_page_header(test_log, runner_id);
+
     html_writer document(path);
     
-    document << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\">\n"
+    document << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Frameset//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd\">\n"
                 "<html>\n"
                 "    <head>\n"
+                "        <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n"
                 "        <link rel=\"stylesheet\" type=\"text/css\" href=\"../master.css\" title=\"master\" />\n"
+                "        <title>Test output: " << escape_xml(component) << "</title>\n"
                 "    </head>\n"
                 "    <frameset cols=\"190px,*\" frameborder=\"0\" framespacing=\"0\" border=\"0\">\n"
                 "        <frame name=\"tocframe\" src=\"../toc.html\" scrolling=\"auto\"/>\n"
Modified: trunk/tools/regression/src/report/result_page.cpp
==============================================================================
--- trunk/tools/regression/src/report/result_page.cpp	(original)
+++ trunk/tools/regression/src/report/result_page.cpp	2013-03-27 13:05:09 EDT (Wed, 27 Mar 2013)
@@ -275,7 +275,9 @@
     std::cout << "Writing document " << "index" << release_postfix(release) << ".html" << std::endl;
 
     html_writer index(mode + "/" + "index" + release_postfix(release) + ".html");
-    index << "<head>\n"
+    index << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Frameset//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd\">\n"
+             "<html>\n"
+             "<head>\n"
              "    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n"
              "    <link rel=\"stylesheet\" type=\"text/css\" href=\"../master.css\" title=\"master\" />\n"
              "    <title>Boost regression: " << source << "</title>\n"
@@ -283,17 +285,20 @@
              "<frameset cols=\"190px,*\" frameborder=\"0\" framespacing=\"0\" border=\"0\">\n"
              "    <frame name=\"tocframe\" src=\"toc" << release_postfix(release) << ".html\" scrolling=\"auto\"/>\n"
              "    <frame name=\"docframe\" src=\"" << index_path << "\" scrolling=\"auto\"/>\n"
-             "</frameset>\n";
+             "</frameset>\n"
+             "</html>\n";
     }
 
     std::cout << "Writing document " << index_path << std::endl;
 
     {
         html_writer index(mode + "/" + index_path);
-        index << "<html>\n"
+        index << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
+                 "<html>\n"
                  "<head>\n"
                  "    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n"
                  "    <link rel=\"stylesheet\" type=\"text/css\" href=\"../master.css\" title=\"master\" />\n"
+                 "    <title>Boost regression: " << source << "</title>\n"
                  "</head>\n"
                  "<body>\n"
                  "\n"
@@ -324,6 +329,7 @@
             std::string comment_data(std::istreambuf_iterator<char>(comment.rdbuf()), std::istreambuf_iterator<char>());
             index << comment_data;
         }
+        index << "    </div>\n";
 
         index << "</body>\n";
         index << "</html>\n";
@@ -339,11 +345,12 @@
 
         html_writer toc(mode + "/" + toc_path);
 
-        toc << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\">\n"
+        toc << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
             << "<html>\n"
             << "<head>\n"
             << "    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n"
             << "    <link rel=\"stylesheet\" type=\"text/css\" href=\"../master.css\" title=\"master\"/>\n"
+            << "    <title>Boost regression: " << source << "</title>\n"
             << "</head>\n"
             << "<body class=\"" << mode << "-toc\">\n"
             << "    <div class=\"toc-header-entry\">\n"
@@ -391,7 +398,7 @@
             {
                 html_writer document(mode + "/" + library_page);
 
-                document << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\">\n"
+                document << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Frameset//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd\">\n"
                             "<html>\n"
                             "<head>\n"
                             "    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n"
@@ -410,11 +417,12 @@
             {
                 html_writer document(mode + "/" + library_results);
 
-                document << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\">\n"
+                document << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
                             "<html>\n"
                             "<head>\n"
                             "    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n"
                             "    <link rel=\"stylesheet\" type=\"text/css\" href=\"../master.css\" title=\"master\" />\n"
+                            "    <title>Boost regression: " << escape_xml(library) << "/" << source << "</title>\n"
                             "</head>\n"
                             "\n"
                             "<body>\n";
Modified: trunk/tools/regression/src/report/runners.cpp
==============================================================================
--- trunk/tools/regression/src/report/runners.cpp	(original)
+++ trunk/tools/regression/src/report/runners.cpp	2013-03-27 13:05:09 EDT (Wed, 27 Mar 2013)
@@ -13,9 +13,13 @@
 void boost::regression::runners(const test_structure_t& tests) {
     {
         html_writer document("runners.html");
-        document << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\">\n"
+        document << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"
                     "<html>\n"
-                    "  <body bgcolor=\"#FFFFFF\">\n";
+                    "  <head>\n"
+                    "    <link rel=\"stylesheet\" type=\"text/css\" href=\"master.css\" title=\"master\" />\n"
+                    "    <title>runners</title>\n"
+                    "  </head>\n"
+                    "  <body>\n";
         BOOST_FOREACH(test_structure_t::platform_group_t::const_reference platform, tests.platforms) {
             BOOST_FOREACH(test_structure_t::platform_t::const_reference run, platform.second) {
                 document << "    <table>"
@@ -37,9 +41,9 @@
 
             html_writer document(encode_path(run.runner) + ".html");
 
-            document << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\">\n"
+            document << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"
                         "<html>\n"
-                        "  <head>\n"
+                        "<head>\n"
                         "<title>" << escape_xml(run.runner) << "</title>\n"
                         "</head>\n"
                         "<body>\n"
Modified: trunk/tools/regression/src/report/summary_page.cpp
==============================================================================
--- trunk/tools/regression/src/report/summary_page.cpp	(original)
+++ trunk/tools/regression/src/report/summary_page.cpp	2013-03-27 13:05:09 EDT (Wed, 27 Mar 2013)
@@ -121,7 +121,7 @@
     {
         html_writer document(mode + "/" + "summary" + release_postfix(release) + ".html");
 
-        document << "<!DOCTYPE html PUBLIC \"-//W3C//DTD html 4.01 Transitional//EN\">\n"
+        document << "<!DOCTYPE html PUBLIC \"-//W3C//DTD html 4.01 Frameset//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd\">\n"
                     "<html>\n"
                     "    <head>\n"
                     "        <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n"
@@ -141,11 +141,12 @@
     {
         html_writer document(mode + "/" + summary_results);
 
-        document << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\">\n"
+        document << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
                     "<html>\n"
                     "<head>\n"
                     "    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n"
                     "    <link rel=\"stylesheet\" type=\"text/css\" href=\"../master.css\" title=\"master\"/>\n"
+                    "    <title>Boost regression summary: " << source << "</title>\n"
                     "</head>\n"
                     "<body>\n";
 
Modified: trunk/tools/regression/test/report/expected.zip
==============================================================================
Binary files. No diff available.
Modified: trunk/tools/regression/test/report/runner.xml
==============================================================================
--- trunk/tools/regression/test/report/runner.xml	(original)
+++ trunk/tools/regression/test/report/runner.xml	2013-03-27 13:05:09 EDT (Wed, 27 Mar 2013)
@@ -8,7 +8,7 @@
     http://www.boost.org/LICENSE_1_0.txt)
     -->
   <comment><h1>runner</h1>
-Tests are run on the Windows platform</comment>
+<p>Tests are run on the Windows platform</p></comment>
   <test-log toolset="msvc-11.0" library="any" test-name="run_pass"
             test-program="libs/any/test/run_pass.cpp"
             target-directory="boost/bin.v2/libs/any/test/run_pass.test/msvc-11.0/debug"