summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-io
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2020-04-28 22:36:32 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2020-10-12 16:20:45 +0900
commitd612344e48e4021d82110a95d3603980c2906cc8 (patch)
tree5ff24764a0adb62821cb6c2fbbdd1dfef6bc20ee /mrbgems/mruby-io
parentd7e183bfdf2677774cbcac1ea827deb541cc6d3b (diff)
downloadmruby-d612344e48e4021d82110a95d3603980c2906cc8.tar.gz
mruby-d612344e48e4021d82110a95d3603980c2906cc8.zip
Should not use `assert` with expressions with side-effect; ref #4981
`assert()` can be completely removed when `NDEBUG` is set.
Diffstat (limited to 'mrbgems/mruby-io')
-rw-r--r--mrbgems/mruby-io/test/mruby_io_test.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/mrbgems/mruby-io/test/mruby_io_test.c b/mrbgems/mruby-io/test/mruby_io_test.c
index d8971bccf..eb3f6108c 100644
--- a/mrbgems/mruby-io/test/mruby_io_test.c
+++ b/mrbgems/mruby-io/test/mruby_io_test.c
@@ -111,6 +111,14 @@ mrb_io_test_io_setup(mrb_state *mrb, mrb_value self)
int i;
#if !defined(_WIN32) && !defined(_WIN64)
struct sockaddr_un sun0;
+
+ if(!(socket_available_p = mrb_io_socket_available())) {
+ char *tmpdir;
+ wd_save = open(".", O_DIRECTORY);
+ tmpdir = getenv("TMPDIR");
+ if (tmpdir) chdir(tmpdir);
+ else chdir("/tmp");
+ }
#endif
mrb_gv_set(mrb, mrb_intern_cstr(mrb, "$mrbtest_io_msg"), mrb_str_new_cstr(mrb, msg));
@@ -211,6 +219,13 @@ mrb_io_test_io_cleanup(mrb_state *mrb, mrb_value self)
mrb_gv_set(mrb, mrb_intern_cstr(mrb, "$mrbtest_io_socketname"), mrb_nil_value());
mrb_gv_set(mrb, mrb_intern_cstr(mrb, "$mrbtest_io_msg"), mrb_nil_value());
+#if !defined(_WIN32) && !defined(_WIN64)
+ if(!socket_available_p) {
+ fchdir(wd_save);
+ close(wd_save);
+ }
+#endif
+
return mrb_nil_value();
}