diff options
author | Sutou Kouhei <[email protected]> | 2021-04-20 10:58:23 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <[email protected]> | 2021-07-13 19:37:45 +0900 |
commit | d1eeb9fec953c41ebaf312d7a56948bca43e9f93 (patch) | |
tree | 5c641f616448af0adee318b860edd6002c40e4d8 /test | |
parent | c0f9191ab6691b2fc526cd099e27cd4f53c45525 (diff) |
[ruby/fiddle] windows: use GetLastError() for win32_last_error
Ruby: [Bug #11579]
Patch by cremno phobia. Thanks!!!
https://github.com/ruby/fiddle/commit/760a8f9b14
Diffstat (limited to 'test')
-rw-r--r-- | test/fiddle/test_function.rb | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/test/fiddle/test_function.rb b/test/fiddle/test_function.rb index a5284e093a..ea5f054dd2 100644 --- a/test/fiddle/test_function.rb +++ b/test/fiddle/test_function.rb @@ -9,6 +9,7 @@ module Fiddle def setup super Fiddle.last_error = nil + Fiddle.win32_last_error = nil if WINDOWS end def test_default_abi @@ -94,6 +95,19 @@ module Fiddle refute_nil Fiddle.last_error end + if WINDOWS + def test_win32_last_error + kernel32 = dlopen('kernel32') + args = [kernel32['SetLastError'], [TYPE_LONG], TYPE_VOID] + args << Function::STDCALL if Function.const_defined?(:STDCALL) + set_last_error = Function.new(*args) + assert_nil(Fiddle.win32_last_error) + n = 1 << 29 | 1 + set_last_error.call(n) + assert_equal(n, Fiddle.win32_last_error) + end + end + def test_strcpy f = Function.new(@libc['strcpy'], [TYPE_VOIDP, TYPE_VOIDP], TYPE_VOIDP) buff = +"000" |