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"
       ]
