THRIFT-2578 Moving 'make cross' from test.sh to test.py
diff --git a/test/crossrunner/collect.py b/test/crossrunner/collect.py
index 80a82e7..6c771b3 100644
--- a/test/crossrunner/collect.py
+++ b/test/crossrunner/collect.py
@@ -31,6 +31,13 @@
 # protocols: list of supported protocols
 # transports: list of supported transports
 # sockets: list of supported sockets
+#
+# protocols and transports entries can be colon separated "spec:impl" pair
+# (e.g. binary:accel) where test is run for any matching "spec" while actual
+# argument passed to test executable is "impl".
+# Otherwise "spec" is equivalent to "spec:spec" pair.
+# (e.g. "binary" is equivalent to "binary:bianry" in tests.json)
+#
 VALID_JSON_KEYS = [
   'name',  # name of the library, typically a language name
   'workdir',  # work directory where command is executed
@@ -78,7 +85,6 @@
       return v
     return cached_set(o1, key) & cached_set(o2, key)
 
-  # each entry can be spec:impl (e.g. binary:accel)
   def intersect_with_spec(key, o1, o2):
     # store as set of (spec, impl) tuple
     def cached_set(o):
diff --git a/test/crossrunner/report.py b/test/crossrunner/report.py
index da478fa..85e3c26 100644
--- a/test/crossrunner/report.py
+++ b/test/crossrunner/report.py
@@ -53,7 +53,7 @@
     known = load_known_failures(testdir)
     known.extend(fails)
     fails = known
-  fails_json = json.dumps(sorted(set(fails)), indent=2)
+  fails_json = json.dumps(sorted(set(fails)), indent=2, separators=(',', ': '))
   if save:
     with open(os.path.join(testdir, FAIL_JSON % platform.system()), 'w+') as fp:
       fp.write(fails_json)
@@ -284,6 +284,12 @@
         self.out.write(self._format_test(self._tests[i]))
       self._print_bar()
 
+  def _http_server_command(self, port):
+    if sys.version_info[0] < 3:
+      return 'python -m SimpleHTTPServer %d' % port
+    else:
+      return 'python -m http.server %d' % port
+
   def _print_footer(self):
     fail_count = len(self._expected_failure) + len(self._unexpected_failure)
     self._print_bar()
@@ -295,6 +301,10 @@
     self.out.writelines([
       'You can browse results at:\n',
       '\tfile://%s/%s\n' % (self.testdir, RESULT_HTML),
+      '# If you use Chrome, run:\n',
+      '# \tcd %s\n#\t%s\n' % (self.testdir, self._http_server_command(8001)),
+      '# then browse:\n',
+      '# \thttp://localhost:%d/%s\n' % (8001, RESULT_HTML),
       'Full log for each test is here:\n',
       '\ttest/log/client_server_protocol_transport_client.log\n',
       '\ttest/log/client_server_protocol_transport_server.log\n',