diff --git a/tools/run_tests/jobset.py b/tools/run_tests/jobset.py
index 575d2c5902d4a90dfae9c6f0c6509eb4dc97ad4a..7e1faa7b94979f261182eefa0794130cd477b46f 100755
--- a/tools/run_tests/jobset.py
+++ b/tools/run_tests/jobset.py
@@ -161,6 +161,7 @@ class Job(object):
     env = os.environ.copy()
     for k, v in spec.environ.iteritems():
       env[k] = v
+    self._start = time.time()
     self._process = subprocess.Popen(args=spec.cmdline,
                                      stderr=subprocess.STDOUT,
                                      stdout=self._tempfile,
@@ -168,12 +169,12 @@ class Job(object):
     self._state = _RUNNING
     self._newline_on_success = newline_on_success
     self._travis = travis
-    if not travis:
-      message('START', spec.shortname)
+    message('START', spec.shortname, do_newline=self._travis)
 
   def state(self, update_cache):
     """Poll current state of the job. Prints messages at completion."""
     if self._state == _RUNNING and self._process.poll() is not None:
+      elapsed = time.time() - self._start
       if self._process.returncode != 0:
         self._state = _FAILURE
         self._tempfile.seek(0)
@@ -182,7 +183,7 @@ class Job(object):
             self._spec.shortname, self._process.returncode), stdout)
       else:
         self._state = _SUCCESS
-        message('PASSED', self._spec.shortname,
+        message('PASSED', '%s [time=%.1fsec]' % (self._spec.shortname, elapsed),
                 do_newline=self._newline_on_success or self._travis)
         if self._bin_hash:
           update_cache.finished(self._spec.identity(), self._bin_hash)
@@ -288,7 +289,11 @@ def run(cmdlines,
               maxjobs if maxjobs is not None else _DEFAULT_MAX_JOBS,
               newline_on_success, travis,
               cache if cache is not None else NoCache())
-  for cmdline in shuffle_iteratable(cmdlines):
+  if not travis:
+    cmdlines = shuffle_iteratable(cmdlines)
+  else:
+    cmdlines = sorted(cmdlines)
+  for cmdline in cmdlines:
     if not js.start(cmdline):
       break
   return js.finish()