summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--mrbgems/mruby-io/test/mruby_io_test.c42
1 files changed, 40 insertions, 2 deletions
diff --git a/mrbgems/mruby-io/test/mruby_io_test.c b/mrbgems/mruby-io/test/mruby_io_test.c
index ffaa27ff4..35dce463e 100644
--- a/mrbgems/mruby-io/test/mruby_io_test.c
+++ b/mrbgems/mruby-io/test/mruby_io_test.c
@@ -2,8 +2,46 @@
#include <errno.h>
#if defined(_WIN32) || defined(_WIN64)
- #include <winsock.h>
- #include <io.h>
+
+#include <winsock.h>
+#include <io.h>
+#include <direct.h>
+#include <string.h>
+#include <stdlib.h>
+#include <malloc.h>
+
+typedef int mode_t;
+
+static int
+mkstemp(char *p)
+{
+ char *template, *path;
+ char *path;
+ int fd;
+
+ template = strdup(p);
+ if (template == NULL) return -1;
+ path = _mktemp(template);
+ if (path[0] == 0) {
+ free(path);
+ return -1;
+ }
+ fd = _open(path, _O_CREAT|_O_BINARY|_O_RDWR|_O_TEMPORARY);
+ free(path);
+ return fd;
+}
+
+static char*
+mkdtemp(char *template)
+{
+ char *path = _mktemp(template);
+ if (path[0] == 0) return NULL;
+ if (_mkdir(path) < 0) return NULL;
+ return path;
+}
+
+#define umask(mode) _umask(mode)
+#define rmdir(path) _rmdir(path)
#else
#include <sys/socket.h>
#include <unistd.h>