5 #include "mruby/error.h"
7 #if defined(_WIN32) || defined(_WIN64)
17 #define unlink _unlink
23 char* fname = _mktemp(p);
26 fd = open(fname, O_RDWR | O_CREAT | O_EXCL, _S_IREAD | _S_IWRITE);
40 mrb_sockettest_tmppath(mrb_state *mrb, mrb_value klass)
42 char name[] = "mruby-socket.XXXXXXXX";
43 int fd = mkstemp(name);
47 if (close(fd) == -1) {
50 if (unlink(name) == -1) {
53 return mrb_str_new_cstr(mrb, name);
57 mrb_sockettest_win_p(mrb_state *mrb, mrb_value klass)
60 return mrb_true_value();
62 return mrb_false_value();
67 mrb_sockettest_cygwin_p(mrb_state *mrb, mrb_value klass)
69 #if defined(__CYGWIN__) || defined(__CYGWIN32__)
70 return mrb_true_value();
72 return mrb_false_value();
77 mrb_mruby_socket_gem_test(mrb_state* mrb)
79 struct RClass *c = mrb_define_module(mrb, "SocketTest");
80 mrb_define_class_method(mrb, c, "tmppath", mrb_sockettest_tmppath, MRB_ARGS_NONE());
81 mrb_define_class_method(mrb, c, "win?", mrb_sockettest_win_p, MRB_ARGS_NONE());
82 mrb_define_class_method(mrb, c, "cygwin?", mrb_sockettest_cygwin_p, MRB_ARGS_NONE());