diff options
Diffstat (limited to 'ruby_1_9_3/ext/-test-/win32')
-rw-r--r-- | ruby_1_9_3/ext/-test-/win32/dln/dlntest.c | 17 | ||||
-rw-r--r-- | ruby_1_9_3/ext/-test-/win32/dln/extconf.rb | 36 | ||||
-rw-r--r-- | ruby_1_9_3/ext/-test-/win32/dln/libdlntest.c | 4 | ||||
-rw-r--r-- | ruby_1_9_3/ext/-test-/win32/dln/libdlntest.def | 2 | ||||
-rw-r--r-- | ruby_1_9_3/ext/-test-/win32/fd_setsize/depend | 2 | ||||
-rw-r--r-- | ruby_1_9_3/ext/-test-/win32/fd_setsize/extconf.rb | 3 | ||||
-rw-r--r-- | ruby_1_9_3/ext/-test-/win32/fd_setsize/fd_setsize.c | 55 |
7 files changed, 119 insertions, 0 deletions
diff --git a/ruby_1_9_3/ext/-test-/win32/dln/dlntest.c b/ruby_1_9_3/ext/-test-/win32/dln/dlntest.c new file mode 100644 index 0000000000..3e6037ac07 --- /dev/null +++ b/ruby_1_9_3/ext/-test-/win32/dln/dlntest.c @@ -0,0 +1,17 @@ +#include <ruby.h> + +extern __declspec(dllimport) void dlntest_ordinal(void); + +static VALUE +dln_dlntest(VALUE self) +{ + dlntest_ordinal(); + return self; +} + +void +Init_dln(void) +{ + VALUE m = rb_define_module_under(rb_define_module("Bug"), "Win32"); + rb_define_module_function(m, "dlntest", dln_dlntest, 0); +} diff --git a/ruby_1_9_3/ext/-test-/win32/dln/extconf.rb b/ruby_1_9_3/ext/-test-/win32/dln/extconf.rb new file mode 100644 index 0000000000..0b5089af14 --- /dev/null +++ b/ruby_1_9_3/ext/-test-/win32/dln/extconf.rb @@ -0,0 +1,36 @@ +if $mingw or $mswin + $objs = ["dlntest.o"] + testdll = "$(topdir)/dlntest.dll" + $cleanfiles << testdll + config_string('cleanobjs') {|t| $cleanfiles.concat(t.gsub(/\$\*/, 'dlntest').split)} + + create_makefile("-test-/win32/dln") + m = File.read("Makefile") + dlntestlib = "dlntest.#{$LIBEXT}" + m.sub!(/^OBJS =.*/) {"#{$&} #{dlntestlib}"} + FileUtils.rm_f(RbConfig.expand(testdll.dup)) + open("Makefile", "wb") do |mf| + mf.puts m, "\n" + sodir = $extout ? "$(RUBYARCHDIR)/" : '' + mf.print "#{sodir}$(DLLIB): #{dlntestlib}" + mf.puts + mf.puts "#{dlntestlib}: $(topdir)/dlntest.dll" + mf.puts + if $mingw + mf.puts "$(topdir)/dlntest.dll: DEFFILE := $(srcdir)/libdlntest.def" + mf.puts "$(topdir)/dlntest.dll: DLDFLAGS += -Wl,--out-implib,#{dlntestlib}" + end + mf.puts depend_rules("$(topdir)/dlntest.dll: libdlntest.o libdlntest.def") + mf.puts "\t$(ECHO) linking shared-object $(@F)\n" + mf.print "\t-$(Q)$(RM) $@\n" + mf.print "\t-$(Q)$(MAKEDIRS) $(@D)\n" if $extout + link_so = LINK_SO.gsub(/^/, "\t$(Q) ") + link_so.sub!(/\$\(LOCAL_LIBS\)/, '') + link_so.gsub!(/-\$\(arch\)/, '') + link_so.gsub!(/:.so=/, ':.dll=') + link_so.sub!(/\$\(OBJS\)/, "libdlntest.#{$OBJEXT}") + link_so.sub!(/\$\(DEFFILE\)/, "$(srcdir)/libdlntest.def") + mf.puts link_so + mf.puts + end +end diff --git a/ruby_1_9_3/ext/-test-/win32/dln/libdlntest.c b/ruby_1_9_3/ext/-test-/win32/dln/libdlntest.c new file mode 100644 index 0000000000..040ae8125d --- /dev/null +++ b/ruby_1_9_3/ext/-test-/win32/dln/libdlntest.c @@ -0,0 +1,4 @@ +extern __declspec(dllexport) void +dlntest_ordinal(void) +{ +} diff --git a/ruby_1_9_3/ext/-test-/win32/dln/libdlntest.def b/ruby_1_9_3/ext/-test-/win32/dln/libdlntest.def new file mode 100644 index 0000000000..85bc9c7a55 --- /dev/null +++ b/ruby_1_9_3/ext/-test-/win32/dln/libdlntest.def @@ -0,0 +1,2 @@ +EXPORTS +dlntest_ordinal @1 NONAME diff --git a/ruby_1_9_3/ext/-test-/win32/fd_setsize/depend b/ruby_1_9_3/ext/-test-/win32/fd_setsize/depend new file mode 100644 index 0000000000..4936d6b28c --- /dev/null +++ b/ruby_1_9_3/ext/-test-/win32/fd_setsize/depend @@ -0,0 +1,2 @@ +fd_setsize.o: $(top_srcdir)/win32/win32.c \ + $(hdrdir)/ruby/ruby.h diff --git a/ruby_1_9_3/ext/-test-/win32/fd_setsize/extconf.rb b/ruby_1_9_3/ext/-test-/win32/fd_setsize/extconf.rb new file mode 100644 index 0000000000..ed40f8b1d7 --- /dev/null +++ b/ruby_1_9_3/ext/-test-/win32/fd_setsize/extconf.rb @@ -0,0 +1,3 @@ +if $mingw or $mswin + create_makefile("-test-/win32/fd_setsize") +end diff --git a/ruby_1_9_3/ext/-test-/win32/fd_setsize/fd_setsize.c b/ruby_1_9_3/ext/-test-/win32/fd_setsize/fd_setsize.c new file mode 100644 index 0000000000..8da8b1eaa0 --- /dev/null +++ b/ruby_1_9_3/ext/-test-/win32/fd_setsize/fd_setsize.c @@ -0,0 +1,55 @@ +#undef FD_SETSIZE +/* redefine smaller size then default 64 */ +#define FD_SETSIZE 32 +#include <ruby.h> + +static VALUE +test_select(VALUE self) +{ + int sd = socket(AF_INET, SOCK_DGRAM, 0); + struct timeval zero; + fd_set read; + fd_set write; + fd_set error; + + zero.tv_sec = 0; + zero.tv_usec = 0; + + FD_ZERO(&read); + FD_ZERO(&write); + FD_ZERO(&error); + + FD_SET(sd, &read); + FD_SET(sd, &write); + FD_SET(sd, &error); + + select(sd+1, &read, &write, &error, &zero); + + return Qtrue; +} + +static VALUE +test_fdset(VALUE self) +{ + int i; + fd_set set; + + FD_ZERO(&set); + + for (i = 0; i < FD_SETSIZE * 2; i++) { + int sd = socket(AF_INET, SOCK_DGRAM, 0); + FD_SET(sd, &set); + if (set.fd_count > FD_SETSIZE) { + return Qfalse; + } + } + return Qtrue; +} + +void +Init_fd_setsize(void) +{ + VALUE m = rb_define_module_under(rb_define_module("Bug"), "Win32"); + rb_define_module_function(m, "test_select", test_select, 0); + rb_define_module_function(m, "test_fdset", test_fdset, 0); +} |