Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mruby
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Libraries
mruby
Commits
07ceb138
Commit
07ceb138
authored
Dec 01, 2015
by
takahashim
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
build on Win32
parent
07f1ebd2
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
24 additions
and
4 deletions
+24
-4
src/io.c
src/io.c
+5
-1
test/mruby_io_test.c
test/mruby_io_test.c
+19
-3
No files found.
src/io.c
View file @
07ceb138
...
@@ -149,6 +149,7 @@ mrb_fd_cloexec(mrb_state *mrb, int fd)
...
@@ -149,6 +149,7 @@ mrb_fd_cloexec(mrb_state *mrb, int fd)
#endif
#endif
}
}
#ifndef _WIN32
static
int
static
int
mrb_cloexec_pipe
(
mrb_state
*
mrb
,
int
fildes
[
2
])
mrb_cloexec_pipe
(
mrb_state
*
mrb
,
int
fildes
[
2
])
{
{
...
@@ -175,7 +176,6 @@ mrb_pipe(mrb_state *mrb, int pipes[2])
...
@@ -175,7 +176,6 @@ mrb_pipe(mrb_state *mrb, int pipes[2])
return
ret
;
return
ret
;
}
}
#ifndef _WIN32
static
int
static
int
mrb_proc_exec
(
const
char
*
pname
)
mrb_proc_exec
(
const
char
*
pname
)
{
{
...
@@ -670,6 +670,7 @@ mrb_io_read_data_pending(mrb_state *mrb, mrb_value io)
...
@@ -670,6 +670,7 @@ mrb_io_read_data_pending(mrb_state *mrb, mrb_value io)
return
0
;
return
0
;
}
}
#ifndef _WIN32
static
mrb_value
static
mrb_value
mrb_io_s_pipe
(
mrb_state
*
mrb
,
mrb_value
klass
)
mrb_io_s_pipe
(
mrb_state
*
mrb
,
mrb_value
klass
)
{
{
...
@@ -705,6 +706,7 @@ mrb_io_s_pipe(mrb_state *mrb, mrb_value klass)
...
@@ -705,6 +706,7 @@ mrb_io_s_pipe(mrb_state *mrb, mrb_value klass)
return
mrb_assoc_new
(
mrb
,
r
,
w
);
return
mrb_assoc_new
(
mrb
,
r
,
w
);
}
}
#endif
static
mrb_value
static
mrb_value
mrb_io_s_select
(
mrb_state
*
mrb
,
mrb_value
klass
)
mrb_io_s_select
(
mrb_state
*
mrb
,
mrb_value
klass
)
...
@@ -987,7 +989,9 @@ mrb_init_io(mrb_state *mrb)
...
@@ -987,7 +989,9 @@ mrb_init_io(mrb_state *mrb)
mrb_define_class_method
(
mrb
,
io
,
"for_fd"
,
mrb_io_s_for_fd
,
MRB_ARGS_ANY
());
mrb_define_class_method
(
mrb
,
io
,
"for_fd"
,
mrb_io_s_for_fd
,
MRB_ARGS_ANY
());
mrb_define_class_method
(
mrb
,
io
,
"select"
,
mrb_io_s_select
,
MRB_ARGS_ANY
());
mrb_define_class_method
(
mrb
,
io
,
"select"
,
mrb_io_s_select
,
MRB_ARGS_ANY
());
mrb_define_class_method
(
mrb
,
io
,
"sysopen"
,
mrb_io_s_sysopen
,
MRB_ARGS_ANY
());
mrb_define_class_method
(
mrb
,
io
,
"sysopen"
,
mrb_io_s_sysopen
,
MRB_ARGS_ANY
());
#ifndef _WIN32
mrb_define_class_method
(
mrb
,
io
,
"_pipe"
,
mrb_io_s_pipe
,
MRB_ARGS_NONE
());
mrb_define_class_method
(
mrb
,
io
,
"_pipe"
,
mrb_io_s_pipe
,
MRB_ARGS_NONE
());
#endif
mrb_define_method
(
mrb
,
io
,
"initialize"
,
mrb_io_initialize
,
MRB_ARGS_ANY
());
/* 15.2.20.5.21 (x)*/
mrb_define_method
(
mrb
,
io
,
"initialize"
,
mrb_io_initialize
,
MRB_ARGS_ANY
());
/* 15.2.20.5.21 (x)*/
mrb_define_method
(
mrb
,
io
,
"sync"
,
mrb_io_sync
,
MRB_ARGS_NONE
());
mrb_define_method
(
mrb
,
io
,
"sync"
,
mrb_io_sync
,
MRB_ARGS_NONE
());
...
...
test/mruby_io_test.c
View file @
07ceb138
#include <sys/types.h>
#include <sys/types.h>
#include <sys/socket.h>
#if defined(_WIN32) || defined(_WIN64)
#include <winsock.h>
#include <io.h>
#else
#include <sys/socket.h>
#include <unistd.h>
#include <sys/un.h>
#endif
#include <sys/stat.h>
#include <sys/stat.h>
#include <sys/un.h>
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
#include <unistd.h>
#include "mruby.h"
#include "mruby.h"
#include "mruby/array.h"
#include "mruby/array.h"
...
@@ -22,13 +29,18 @@ mrb_io_test_io_setup(mrb_state *mrb, mrb_value self)
...
@@ -22,13 +29,18 @@ mrb_io_test_io_setup(mrb_state *mrb, mrb_value self)
mode_t
mask
;
mode_t
mask
;
int
fd0
,
fd1
,
fd2
,
fd3
;
int
fd0
,
fd1
,
fd2
,
fd3
;
FILE
*
fp
;
FILE
*
fp
;
#ifndef _WIN32
struct
sockaddr_un
sun0
;
struct
sockaddr_un
sun0
;
#endif
mask
=
umask
(
077
);
mask
=
umask
(
077
);
fd0
=
mkstemp
(
rfname
);
fd0
=
mkstemp
(
rfname
);
fd1
=
mkstemp
(
wfname
);
fd1
=
mkstemp
(
wfname
);
#ifndef _WIN32
fd2
=
mkstemp
(
symlinkname
);
fd2
=
mkstemp
(
symlinkname
);
fd3
=
mkstemp
(
socketname
);
fd3
=
mkstemp
(
socketname
);
#endif
if
(
fd0
==
-
1
||
fd1
==
-
1
||
fd2
==
-
1
||
fd3
==
-
1
)
{
if
(
fd0
==
-
1
||
fd1
==
-
1
||
fd2
==
-
1
||
fd3
==
-
1
)
{
mrb_raise
(
mrb
,
E_RUNTIME_ERROR
,
"can't create temporary file"
);
mrb_raise
(
mrb
,
E_RUNTIME_ERROR
,
"can't create temporary file"
);
return
mrb_nil_value
();
return
mrb_nil_value
();
...
@@ -56,6 +68,7 @@ mrb_io_test_io_setup(mrb_state *mrb, mrb_value self)
...
@@ -56,6 +68,7 @@ mrb_io_test_io_setup(mrb_state *mrb, mrb_value self)
}
}
fclose
(
fp
);
fclose
(
fp
);
#ifndef _WIN32
unlink
(
symlinkname
);
unlink
(
symlinkname
);
close
(
fd2
);
close
(
fd2
);
if
(
symlink
(
"hoge"
,
symlinkname
)
==
-
1
)
{
if
(
symlink
(
"hoge"
,
symlinkname
)
==
-
1
)
{
...
@@ -74,6 +87,7 @@ mrb_io_test_io_setup(mrb_state *mrb, mrb_value self)
...
@@ -74,6 +87,7 @@ mrb_io_test_io_setup(mrb_state *mrb, mrb_value self)
mrb_raise
(
mrb
,
E_RUNTIME_ERROR
,
"can't make a socket bi"
);
mrb_raise
(
mrb
,
E_RUNTIME_ERROR
,
"can't make a socket bi"
);
}
}
close
(
fd3
);
close
(
fd3
);
#endif
return
mrb_true_value
();
return
mrb_true_value
();
}
}
...
@@ -112,9 +126,11 @@ static mrb_value
...
@@ -112,9 +126,11 @@ static mrb_value
mrb_io_test_file_setup
(
mrb_state
*
mrb
,
mrb_value
self
)
mrb_io_test_file_setup
(
mrb_state
*
mrb
,
mrb_value
self
)
{
{
mrb_value
ary
=
mrb_io_test_io_setup
(
mrb
,
self
);
mrb_value
ary
=
mrb_io_test_io_setup
(
mrb
,
self
);
#ifndef _WIN32
if
(
symlink
(
"/usr/bin"
,
"test-bin"
)
==
-
1
)
{
if
(
symlink
(
"/usr/bin"
,
"test-bin"
)
==
-
1
)
{
mrb_raise
(
mrb
,
E_RUNTIME_ERROR
,
"can't make a symbolic link"
);
mrb_raise
(
mrb
,
E_RUNTIME_ERROR
,
"can't make a symbolic link"
);
}
}
#endif
return
ary
;
return
ary
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment