summaryrefslogtreecommitdiffhomepage
path: root/test/mruby_io_test.c
diff options
context:
space:
mode:
authorAkira Yumiyama <[email protected]>2013-05-12 13:12:57 +0900
committerAkira Yumiyama <[email protected]>2013-05-12 13:15:11 +0900
commitc25d386c419546c31ecf8ae09fb3aeb15d511469 (patch)
tree51a54010d62b482a7d7a9ce68fe795f41d83e201 /test/mruby_io_test.c
parentacc8995060f9972d7cad9e0575619b3f01fd89d1 (diff)
downloadmruby-c25d386c419546c31ecf8ae09fb3aeb15d511469.tar.gz
mruby-c25d386c419546c31ecf8ae09fb3aeb15d511469.zip
Use mkstemp instead of mktemp.
Diffstat (limited to 'test/mruby_io_test.c')
-rw-r--r--test/mruby_io_test.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/test/mruby_io_test.c b/test/mruby_io_test.c
index 7c69d5c24..a6fa32d4f 100644
--- a/test/mruby_io_test.c
+++ b/test/mruby_io_test.c
@@ -5,18 +5,28 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
+#include <sys/stat.h>
static mrb_value
mrb_io_test_io_setup(mrb_state *mrb, mrb_value self)
{
- char rfname[] = "tmp.XXXXXXXX";
- char wfname[] = "tmp.XXXXXXXX";
+ char rfname[] = "tmp.mruby-io-test.XXXXXXXX";
+ char wfname[] = "tmp.mruby-io-test.XXXXXXXX";
char msg[] = "mruby io test";
+ mode_t mask;
+ int fd0 = -1, fd1 = -1;
FILE *fp;
mrb_value ary = mrb_ary_new(mrb);
- mktemp(rfname);
- mktemp(wfname);
+ mask = umask(077);
+ fd0 = mkstemp(rfname);
+ fd1 = mkstemp(wfname);
+ if (fd0 == -1 || fd1 == -1) {
+ mrb_raise(mrb, E_RUNTIME_ERROR, "can't create temporary file");
+ return mrb_nil_value();
+ }
+ umask(mask);
+
mrb_gv_set(mrb, mrb_intern(mrb, "$mrbtest_io_rfname"), mrb_str_new_cstr(mrb, rfname));
mrb_gv_set(mrb, mrb_intern(mrb, "$mrbtest_io_wfname"), mrb_str_new_cstr(mrb, wfname));
mrb_gv_set(mrb, mrb_intern(mrb, "$mrbtest_io_msg"), mrb_str_new_cstr(mrb, msg));