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',