diff --git a/src/main.cc b/src/main.cc
index 1a93791dd413f46a023ff96d7339acaa84ce9b03..697c7d0ffc630d476bb7e723620d767c71c02ac5 100644
--- a/src/main.cc
+++ b/src/main.cc
@@ -541,13 +541,12 @@ main(int argc, char **argv)
 	__libc_stack_end = (void*) &argv;
 #endif
 	start_time = ev_time();
-#ifndef __APPLE__
 	/* set locale to make iswXXXX function work */
 	if (setlocale(LC_CTYPE, "C.UTF-8") == NULL &&
 	    setlocale(LC_CTYPE, "en_US.UTF-8") == NULL &&
 	    setlocale(LC_CTYPE, "en_US.utf8") == NULL)
 		fprintf(stderr, "Failed to set locale to C.UTF-8\n");
-#endif
+
 	if (argc > 1 && access(argv[1], R_OK) != 0) {
 		if (argc == 2 && argv[1][0] != '-') {
 			/*
diff --git a/test/box/alter.result b/test/box/alter.result
index 53f7dfb64fdcca637e18344855ede0e2d1953971..5af47e145ce9f4d43e0f08356db3df7774cf3c98 100644
--- a/test/box/alter.result
+++ b/test/box/alter.result
@@ -299,7 +299,14 @@ box.schema.space.create('_5'):drop()
 box.schema.space.create('valid_identifier'):drop()
 ---
 ...
-box.schema.space.create('ынтыпрайзный_空間'):drop() -- unicode
+-- some OS-es ship incomplete locales, breaking ID validation
+weird_chars=''
+---
+...
+if jit.os~='OSX' and jit.os~='BSD' then weird_chars='空間' end
+---
+...
+box.schema.space.create('ынтыпрайзный_'..weird_chars):drop() -- unicode
 ---
 ...
 box.schema.space.create('utf8_наше_Фсё'):drop() -- unicode
diff --git a/test/box/alter.test.lua b/test/box/alter.test.lua
index 316f7d480ec6e9f4bf2469bcb64dcbe1c15a6c9c..5b5bc4ebe79c3f5cbb45eaf0f189540ebc616396 100644
--- a/test/box/alter.test.lua
+++ b/test/box/alter.test.lua
@@ -106,7 +106,10 @@ box.schema.space.create('')
 box.schema.space.create('_Abcde'):drop()
 box.schema.space.create('_5'):drop()
 box.schema.space.create('valid_identifier'):drop()
-box.schema.space.create('ынтыпрайзный_空間'):drop() -- unicode
+-- some OS-es ship incomplete locales, breaking ID validation
+weird_chars=''
+if jit.os~='OSX' and jit.os~='BSD' then weird_chars='空間' end
+box.schema.space.create('ынтыпрайзный_'..weird_chars):drop() -- unicode
 box.schema.space.create('utf8_наше_Фсё'):drop() -- unicode
 
 space = box.schema.space.create('test')
diff --git a/test/box/bsdsocket.result b/test/box/bsdsocket.result
index 1e2f905354f43363164f67f8715e1deb50034bbc..763617fe2aaa50b07b4e41746090e4f0e013933b 100644
--- a/test/box/bsdsocket.result
+++ b/test/box/bsdsocket.result
@@ -603,7 +603,7 @@ sc:nonblock(true)
 ---
 - true
 ...
-sc:sysconnect('127.0.0.1', 3458) or errno() == errno.EINPROGRESS
+sc:sysconnect('127.0.0.1', 3458) or errno() == errno.EINPROGRESS or errno() == errno.ECONNREFUSED
 ---
 - true
 ...
@@ -619,9 +619,12 @@ string.match(tostring(sc), ', peer') == nil
 ---
 - true
 ...
-require('errno').strerror(sc:getsockopt('SOL_SOCKET', 'SO_ERROR'))
+socket_error = sc:getsockopt('SOL_SOCKET', 'SO_ERROR')
 ---
-- Connection refused
+...
+socket_error == errno.ECONNREFUSED or socket_error == 0
+---
+- true
 ...
 --# setopt delimiter ';'
 socket.getaddrinfo('127.0.0.1', '80', { type = 'SOCK_DGRAM',
diff --git a/test/box/bsdsocket.test.lua b/test/box/bsdsocket.test.lua
index 1a431295f0d67dc9bbcfaa495acf2de5f892e867..0a8da452f234b4e74818221b9cadab5c752b4749 100644
--- a/test/box/bsdsocket.test.lua
+++ b/test/box/bsdsocket.test.lua
@@ -201,11 +201,12 @@ sc = socket('PF_INET', 'SOCK_STREAM', 'tcp')
 sc ~= nil
 sc:getsockopt('SOL_SOCKET', 'SO_ERROR')
 sc:nonblock(true)
-sc:sysconnect('127.0.0.1', 3458) or errno() == errno.EINPROGRESS
+sc:sysconnect('127.0.0.1', 3458) or errno() == errno.EINPROGRESS or errno() == errno.ECONNREFUSED
 string.match(tostring(sc), ', peer') == nil
 sc:writable()
 string.match(tostring(sc), ', peer') == nil
-require('errno').strerror(sc:getsockopt('SOL_SOCKET', 'SO_ERROR'))
+socket_error = sc:getsockopt('SOL_SOCKET', 'SO_ERROR')
+socket_error == errno.ECONNREFUSED or socket_error == 0
 
 --# setopt delimiter ';'
 socket.getaddrinfo('127.0.0.1', '80', { type = 'SOCK_DGRAM',
diff --git a/test/box/net.box.result b/test/box/net.box.result
index 391de7170253fe668104fd5ca2bcb49a99b32339..bdc2ea18b4a7eaa3af4ab6e5a429fddb63caa7f8 100644
--- a/test/box/net.box.result
+++ b/test/box/net.box.result
@@ -446,6 +446,12 @@ cn.space.net_box_test_space:get(354)
 cn:_fatal('Test fatal error')
 ---
 ...
+-- We expect the connection to enter 'closed' state due to 'reconnect_after'
+-- option missing, however 'error'->'closed' transition happens in some
+-- unrelated fiber, scheduling quirks bite (again) (sigh)
+fiber.sleep(0)
+---
+...
 cn.state
 ---
 - closed
diff --git a/test/box/net.box.test.lua b/test/box/net.box.test.lua
index 28281fafa9527c78f18a76fd39d8d8b6c125ba7f..6f0d769c41f4cb452d4abaabb0ad155458c94189 100644
--- a/test/box/net.box.test.lua
+++ b/test/box/net.box.test.lua
@@ -170,6 +170,10 @@ cn.space.net_box_test_space:get(354)
 
 -- -- 1. no reconnect
 cn:_fatal('Test fatal error')
+-- We expect the connection to enter 'closed' state due to 'reconnect_after'
+-- option missing, however 'error'->'closed' transition happens in some
+-- unrelated fiber, scheduling quirks bite (again) (sigh)
+fiber.sleep(0)
 cn.state
 cn:ping()
 cn:call('test_foo')
diff --git a/test/box/snapshot_daemon.result b/test/box/snapshot_daemon.result
index 11bc61955b0db21b030ad3374d942d02213660f2..4d75b71d7ef778469de8b93df1cdbef04cbe3d39 100644
--- a/test/box/snapshot_daemon.result
+++ b/test/box/snapshot_daemon.result
@@ -10,37 +10,7 @@ fiber = require 'fiber'
 PERIOD = 0.03
 ---
 ...
---# setopt delimiter ';'
-ffi = require 'ffi'
-ffi.cdef[[int uname(char *buf)]]
-
-function uname()
-    local name = ffi.new('char[?]', 4096)
-    ffi.C.uname(name)
-    return ffi.string(name)
-end
-
-if uname() ~= 'Linux' then
-    PERIOD = 1.5
-end
-
----
-...
---# setopt delimiter ''
-ffi = require 'ffi'
-ffi.cdef[[int uname(char *buf)]]
-
-function uname()
-    local name = ffi.new('char[?]', 4096)
-    ffi.C.uname(name)
-    return ffi.string(name)
-end
-
-if uname() ~= 'Linux' then
-    PERIOD = 1.5
-end
-
-
+if jit.os ~= 'Linux' then PERIOD = 1.5 end
 ---
 ...
 space = box.schema.space.create('snapshot_daemon')
@@ -108,10 +78,6 @@ box.cfg{snapshot_period = 3600 * 4, snapshot_count = 4 }
 space:drop()
 ---
 ...
-PERIOD
----
-- 0.03
-...
 box.cfg{ snapshot_count = .2 }
 ---
 - error: 'Incorrect value for option ''snapshot_count'': must be an integer'
diff --git a/test/box/snapshot_daemon.test.lua b/test/box/snapshot_daemon.test.lua
index 29b0904dc0be8c05ce11242eb40c7e8ada784132..c78e958e875c3f05a0e129326c79cc6fc0483286 100644
--- a/test/box/snapshot_daemon.test.lua
+++ b/test/box/snapshot_daemon.test.lua
@@ -4,23 +4,7 @@ fiber = require 'fiber'
 
 
 PERIOD = 0.03
-
---# setopt delimiter ';'
-
-ffi = require 'ffi'
-ffi.cdef[[int uname(char *buf)]]
-
-function uname()
-    local name = ffi.new('char[?]', 4096)
-    ffi.C.uname(name)
-    return ffi.string(name)
-end
-
-if uname() ~= 'Linux' then
-    PERIOD = 1.5
-end
-
---# setopt delimiter ''
+if jit.os ~= 'Linux' then PERIOD = 1.5 end
 
 
 space = box.schema.space.create('snapshot_daemon')
@@ -68,8 +52,6 @@ fio.basename(snaps[1], '.snap') >= fio.basename(xlogs[1], '.xlog')
 box.cfg{snapshot_period = 3600 * 4, snapshot_count = 4 }
 space:drop()
 
-PERIOD
-
 box.cfg{ snapshot_count = .2 }
 
 daemon = box.internal.snapshot_daemon