4 #include "mruby/error.h"
6 #if defined(_WIN32) || defined(_WIN64)
10 #if defined(_MSC_VER) || \
11 (defined(MRB_MINGW32_VERSION) && MRB_MINGW32_VERSION < 3021) || \
12 (defined(MRB_MINGW64_VERSION) && MRB_MINGW64_VERSION < 4000)
18 #define unlink _unlink
24 char* fname = _mktemp(p);
27 fd = open(fname, O_RDWR | O_CREAT | O_EXCL, _S_IREAD | _S_IWRITE);
41 mrb_sockettest_tmppath(mrb_state *mrb, mrb_value klass)
43 char name[] = "mruby-socket.XXXXXXXX";
44 int fd = mkstemp(name);
48 if (close(fd) == -1) {
51 if (unlink(name) == -1) {
54 return mrb_str_new_cstr(mrb, name);
58 mrb_sockettest_win_p(mrb_state *mrb, mrb_value klass)
61 return mrb_true_value();
63 return mrb_false_value();
68 mrb_sockettest_cygwin_p(mrb_state *mrb, mrb_value klass)
70 #if defined(__CYGWIN__) || defined(__CYGWIN32__)
71 return mrb_true_value();
73 return mrb_false_value();
78 mrb_mruby_socket_gem_test(mrb_state* mrb)
80 struct RClass *c = mrb_define_module(mrb, "SocketTest");
81 mrb_define_class_method(mrb, c, "tmppath", mrb_sockettest_tmppath, MRB_ARGS_NONE());
82 mrb_define_class_method(mrb, c, "win?", mrb_sockettest_win_p, MRB_ARGS_NONE());
83 mrb_define_class_method(mrb, c, "cygwin?", mrb_sockettest_cygwin_p, MRB_ARGS_NONE());