diff options
| author | Akira Yumiyama <[email protected]> | 2013-05-12 13:12:57 +0900 |
|---|---|---|
| committer | Akira Yumiyama <[email protected]> | 2013-05-12 13:15:11 +0900 |
| commit | c25d386c419546c31ecf8ae09fb3aeb15d511469 (patch) | |
| tree | 51a54010d62b482a7d7a9ce68fe795f41d83e201 /test/mruby_io_test.c | |
| parent | acc8995060f9972d7cad9e0575619b3f01fd89d1 (diff) | |
| download | mruby-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.c | 18 |
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)); |
