THRIFT-3482 Haskell JSON protocol does not encode binary field as Base64
diff --git a/test/crossrunner/report.py b/test/crossrunner/report.py
index defc486..3f91002 100644
--- a/test/crossrunner/report.py
+++ b/test/crossrunner/report.py
@@ -57,7 +57,7 @@
     fails = known
   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:
+    with logfile_open(os.path.join(testdir, FAIL_JSON % platform.system()), 'w+') as fp:
       fp.write(fails_json)
     sys.stdout.write('Successfully updated known failures.\n')
   if out:
@@ -180,7 +180,7 @@
     return False
 
   def _open(self):
-    self.out = open(self.logpath, 'w+')
+    self.out = logfile_open(self.logpath, 'w+')
 
   def _close(self):
     self.out.close()
@@ -324,7 +324,7 @@
   def _write_html_data(self):
     """Writes JSON data to be read by result html"""
     results = [self._render_result(r) for r in self._tests]
-    with open(self.out_path, 'w+') as fp:
+    with logfile_open(self.out_path, 'w+') as fp:
       fp.write(json.dumps({
         'date': self._format_date(),
         'revision': str(self._revision),
@@ -343,7 +343,7 @@
           with logfile_open(path, 'r') as prog_fp:
             print(prog_fp.read(), file=fp)
       filename = title.replace(' ', '_') + '.log'
-      with open(os.path.join(self.logdir, filename), 'w+') as fp:
+      with logfile_open(os.path.join(self.logdir, filename), 'w+') as fp:
         for test in map(self._tests.__getitem__, indexes):
           fp.write('TEST: [%s]\n' % test.name)
           add_prog_log(fp, test, test.server.kind)
diff --git a/test/hs/DebugProtoTest_Main.hs b/test/hs/DebugProtoTest_Main.hs
old mode 100755
new mode 100644
diff --git a/test/hs/TestClient.hs b/test/hs/TestClient.hs
index 0ebc0fd..d1ebb3c 100644
--- a/test/hs/TestClient.hs
+++ b/test/hs/TestClient.hs
@@ -168,13 +168,13 @@
                       }
   putStrLn "testNest"
   nestOut <- Client.testNest prot nestIn
-  when (nestIn /= nestOut) exitSuccess
+  when (nestIn /= nestOut) exitFailure
 
   -- Map Test
   let mapIn = Map.fromList $ map (\i -> (i, i-10)) [1..5]
   putStrLn "testMap"
   mapOut <- Client.testMap prot mapIn
-  when (mapIn /= mapOut) exitSuccess
+  when (mapIn /= mapOut) exitFailure
 
   -- Set Test
   let setIn = Set.fromList [-2..3]
diff --git a/test/hs/TestServer.hs b/test/hs/TestServer.hs
old mode 100755
new mode 100644
diff --git a/test/hs/ThriftTest_Main.hs b/test/hs/ThriftTest_Main.hs
old mode 100755
new mode 100644
diff --git a/test/known_failures_Linux.json b/test/known_failures_Linux.json
index 3e9240f..be51ecc 100644
--- a/test/known_failures_Linux.json
+++ b/test/known_failures_Linux.json
@@ -7,9 +7,6 @@
   "cpp-cpp_json_http-ip",
   "cpp-dart_binary_http-ip",
   "cpp-dart_json_http-ip",
-  "cpp-hs_json_buffered-ip",
-  "cpp-hs_json_framed-ip",
-  "cpp-hs_json_http-ip",
   "cpp-java_binary_http-ip",
   "cpp-java_binary_http-ip-ssl",
   "cpp-java_compact_http-ip",
@@ -65,8 +62,6 @@
   "hs-csharp_json_framed-ip",
   "hs-dart_binary_framed-ip",
   "hs-dart_json_framed-ip",
-  "hs-nodejs_json_buffered-ip",
-  "hs-nodejs_json_framed-ip",
   "hs-py3_json_buffered-ip",
   "hs-py3_json_framed-ip",
   "hs-py_json_buffered-ip",
@@ -74,12 +69,6 @@
   "java-perl_binary_buffered-ip-ssl",
   "java-perl_binary_fastframed-framed-ip-ssl",
   "java-perl_binary_framed-ip-ssl",
-  "nodejs-hs_binary_buffered-ip",
-  "nodejs-hs_binary_framed-ip",
-  "nodejs-hs_compact_buffered-ip",
-  "nodejs-hs_compact_framed-ip",
-  "nodejs-hs_json_buffered-ip",
-  "nodejs-hs_json_framed-ip",
   "nodejs-perl_binary_buffered-ip-ssl",
   "nodejs-perl_binary_framed-ip-ssl",
   "perl-perl_binary_buffered-ip-ssl",
diff --git a/test/tests.json b/test/tests.json
index be7d52b..c816d6e 100644
--- a/test/tests.json
+++ b/test/tests.json
@@ -181,6 +181,7 @@
       "timeout": 10,
       "command": [
         "TestClient.py",
+        "--verbose",
         "--host=localhost",
         "--genpydir=gen-py"
       ]