THRIFT-3109 Cross test log file cannot be browsed when served in HTTP server
diff --git a/test/crossrunner/report.py b/test/crossrunner/report.py
index 85e3c26..a284d2b 100644
--- a/test/crossrunner/report.py
+++ b/test/crossrunner/report.py
@@ -82,9 +82,9 @@
     self._lock = multiprocessing.Lock()
 
   @classmethod
-  def test_logfile(cls, dir, test_name, prog_kind):
-    return os.path.realpath(os.path.join(
-      dir, 'log', '%s_%s.log' % (test_name, prog_kind)))
+  def test_logfile(cls, test_name, prog_kind, dir=None):
+    relpath = os.path.join('log', '%s_%s.log' % (test_name, prog_kind))
+    return relpath if not dir else os.path.realpath(os.path.join(dir, relpath))
 
   def _start(self):
     self._start_time = time.time()
@@ -113,7 +113,7 @@
     super(ExecReporter, self).__init__()
     self._test = test
     self._prog = prog
-    self.logpath = self.test_logfile(testdir, test.name, prog.kind)
+    self.logpath = self.test_logfile(test.name, prog.kind, testdir)
     self.out = None
 
   def begin(self):
@@ -324,8 +324,8 @@
       test.as_expected,
       test.returncode,
       {
-        'server': self.test_logfile(test.testdir, test.name, test.server.kind),
-        'client': self.test_logfile(test.testdir, test.name, test.client.kind),
+        'server': self.test_logfile(test.name, test.server.kind),
+        'client': self.test_logfile(test.name, test.client.kind),
       },
     ]
 
@@ -346,7 +346,7 @@
       def add_prog_log(fp, test, prog_kind):
         fp.write('*************************** %s message ***************************\n'
                  % prog_kind)
-        path = self.test_logfile(self.testdir, test.name, prog_kind)
+        path = self.test_logfile(test.name, prog_kind, self.testdir)
         kwargs = {} if sys.version_info[0] < 3 else {'errors': 'replace'}
         with open(path, 'r', **kwargs) as prog_fp:
           fp.write(prog_fp.read())