1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/test
Aaron Patterson 307388ea19 [ruby/fiddle] Add a "pinning" reference (#44)
* Add a "pinning" reference

A `Fiddle::Pinned` objects will prevent the objects they point to from
moving.  This is useful in the case where you need to pass a reference
to a C extension that keeps the address in a global and needs the
address to be stable.

For example:

```ruby
class Foo
  A = "hi" # this is an embedded string

  some_c_function A # A might move!
end
```

If `A` moves, then the underlying string buffer may also move.
`Fiddle::Pinned` will prevent the object from moving:

```ruby
class Foo
  A = "hi" # this is an embedded string

  A_pinner = Fiddle::Pinned.new(A) # :nodoc:

  some_c_function A # A can't move because of `Fiddle::Pinned`
end
```

This is a similar strategy to what Graal uses:

  https://www.graalvm.org/sdk/javadoc/org/graalvm/nativeimage/PinnedObject.html#getObject--

* rename global to match exception name

* Introduce generic Fiddle::Error and rearrange error classes

Fiddle::Error is the generic exception base class for Fiddle exceptions.
This commit introduces the class and rearranges Fiddle exceptions to
inherit from it.

https://github.com/ruby/fiddle/commit/ac52d00223
2020-11-18 09:05:13 +09:00
..
-ext- keep proc on the stack so it does not move 2020-10-16 11:28:52 -07:00
base64
benchmark
bigdecimal bidecimal: improve tests' independence (#3297) 2020-07-12 17:30:29 +09:00
cgi
coverage test/coverage/test_coverage.rb: Add a test for [Bug #16967] 2020-06-20 09:28:03 +09:00
csv [ruby/csv] CSV.generate_line: use the encoding of the first non ASCII field as the expected encoding 2020-07-20 02:32:55 +09:00
date [ruby/date] Fix cannot load complex into simple error when loading marshal dump (Fixes #20) 2020-06-20 18:35:03 +09:00
dbm
did_you_mean Revert "Fixed typo" 2020-10-27 23:26:38 +09:00
digest
drb Explicitly loading with envutil.rb 2020-05-28 14:41:08 +09:00
dtrace
erb Fixup 3292f4d965 2020-08-21 20:40:26 +09:00
etc
excludes
fiber Fix TestFiberMutex#test_condition_variable assertion 2020-11-08 16:49:33 +01:00
fiddle [ruby/fiddle] Add a "pinning" reference (#44) 2020-11-18 09:05:13 +09:00
fileutils Make the test suite pass on real Android/Termux environment 2020-10-12 21:26:05 +09:00
gdbm [ruby/gdbm] Workaround for GitHub Actions 2020-06-09 20:54:52 +09:00
io [ruby/io-console] Fix timeout type error (#18) 2020-10-11 02:00:24 +09:00
irb Remove system method for E2E testing because depends on ruby command 2020-10-05 19:50:31 +09:00
json test/json/json_parser_test.rb: suppress warnings 2020-10-21 23:37:42 +09:00
lib test/lib/jit_support.rb: Let JIT tests skip on centos8 2020-05-12 17:48:31 +09:00
logger [ruby/logger] Let Logger#reopen not raise on nil log devices 2020-06-11 13:54:04 +09:00
matrix
mkmf Make the mkmf methods private in the global [Bug #16896] 2020-07-13 18:44:22 +09:00
monitor Fix MonitorMixin when the super's initialize has kwargs 2020-07-17 16:37:18 -07:00
net test/net/smtp - use TCPSocket when UNIXSocket unavailable 2020-11-18 08:13:10 +09:00
nkf
objspace Fix ObjectSpace.dump(obj, output: :stdout) 2020-10-03 00:00:01 +09:00
open-uri Remove the deprecated override of Kernel#open in open-uri 2020-08-16 07:41:40 -07:00
openssl Revert the related commits about Tempfile.open change. 2020-09-09 21:10:48 +09:00
optparse
ostruct [lib/ostruct] Fix Marshal loading 2020-10-06 17:11:08 -04:00
pathname Make the test suite pass on real Android/Termux environment 2020-10-12 21:26:05 +09:00
psych [ruby/psych] Forward keyword arguments in load_file and load_stream 2020-09-25 13:11:33 +09:00
racc [ruby/racc] skip the failing test with JRuby 2020-11-10 21:21:07 +09:00
rdoc [ruby/rdoc] update all files if any file is newer 2020-09-18 14:57:58 +09:00
readline Suppress bell during the test 2020-07-18 19:33:11 +09:00
reline [ruby/reline] Treat prompt correctly when Reline.prompt_proc isn't set 2020-09-12 08:35:52 +09:00
resolv fe80 should be case insensitive too 2020-11-09 16:16:30 +09:00
rinda Revert "test/rinda/test_rinda.rb: try debugging TestRingServer#test_do_reply" 2020-10-17 15:32:40 +09:00
ripper ripper: Invalid pragma value warning 2020-11-02 22:49:42 +09:00
ruby Fix singleton class cloning 2020-11-16 17:41:17 -05:00
rubygems Merge rubygems-3.2.0.rc.2 2020-10-15 14:12:02 +09:00
socket Add resolve_timeout to TCPSocket [Feature #17134] 2020-09-25 15:19:14 +09:00
stringio [stringio] fix stringio codepoint enumerator off by one error 2020-08-27 23:41:22 +09:00
strscan
syslog
uri
webrick [ruby/webrick] Allow empty POST and PUT requests without content length 2020-11-13 11:35:10 +09:00
win32ole
yaml
zlib [ruby/zlib] Add Zlib::GzipReader.zcat for handling multiple gzip streams in gz file 2020-09-14 17:52:20 +09:00
runner.rb
test_abbrev.rb
test_delegate.rb Add instance_methods to class generated by DelegateClass 2020-07-09 15:01:10 -07:00
test_extlibs.rb Removed win32api 2020-11-11 09:27:36 +09:00
test_find.rb
test_forwardable.rb
test_ipaddr.rb
test_mutex_m.rb
test_observer.rb
test_open3.rb [open3] only close streams if a block is passed 2020-06-18 10:00:20 -07:00
test_pp.rb
test_prettyprint.rb
test_prime.rb
test_pstore.rb
test_pty.rb
test_rbconfig.rb
test_securerandom.rb Use build_message on test_securerandom.rb (#3543) 2020-09-16 07:45:01 +09:00
test_set.rb Make mutating the result of SortedSet#to_a not affect the set 2020-06-11 14:02:00 -07:00
test_shellwords.rb
test_singleton.rb
test_syslog.rb
test_tempfile.rb
test_time.rb
test_timeout.rb
test_tmpdir.rb [ruby/tmpdir] Warn when environment variables skipped (fixes #2) 2020-09-14 18:22:37 +09:00
test_tracer.rb
test_tsort.rb
test_unicode_normalize.rb
test_weakref.rb