1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/spec/ruby/optional/capi
Jeremy Evans c5c05460ac Warn on access/modify of $SAFE, and remove effects of modifying $SAFE
This removes the security features added by $SAFE = 1, and warns for access
or modification of $SAFE from Ruby-level, as well as warning when calling
all public C functions related to $SAFE.

This modifies some internal functions that took a safe level argument
to no longer take the argument.

rb_require_safe now warns, rb_require_string has been added as a
version that takes a VALUE and does not warn.

One public C function that still takes a safe level argument and that
this doesn't warn for is rb_eval_cmd.  We may want to consider
adding an alternative method that does not take a safe level argument,
and warn for rb_eval_cmd.
2019-11-18 01:00:25 +02:00
..
ext Update to ruby/spec@28a728b 2019-10-26 20:53:01 +02:00
fixtures
array_spec.rb Update to ruby/spec@875a09e 2019-07-27 12:40:09 +02:00
bignum_spec.rb Update to ruby/spec@875a09e 2019-07-27 12:40:09 +02:00
boolean_spec.rb
class_spec.rb Update to ruby/spec@875a09e 2019-07-27 12:40:09 +02:00
complex_spec.rb
constants_spec.rb
data_spec.rb Update to ruby/spec@875a09e 2019-07-27 12:40:09 +02:00
encoding_spec.rb Update to ruby/spec@875a09e 2019-07-27 12:40:09 +02:00
enumerator_spec.rb
exception_spec.rb Update to ruby/spec@875a09e 2019-07-27 12:40:09 +02:00
file_spec.rb Update to ruby/spec@875a09e 2019-07-27 12:40:09 +02:00
fixnum_spec.rb Update to ruby/spec@875a09e 2019-07-27 12:40:09 +02:00
float_spec.rb
gc_spec.rb
globals_spec.rb Update to ruby/spec@875a09e 2019-07-27 12:40:09 +02:00
hash_spec.rb Update to ruby/spec@875a09e 2019-07-27 12:40:09 +02:00
integer_spec.rb
io_spec.rb Update to ruby/spec@875a09e 2019-07-27 12:40:09 +02:00
kernel_spec.rb Update to ruby/spec@875a09e 2019-07-27 12:40:09 +02:00
marshal_spec.rb
module_spec.rb Update to ruby/spec@e69a14c 2019-09-29 18:01:32 +02:00
mutex_spec.rb Update to ruby/spec@875a09e 2019-07-27 12:40:09 +02:00
numeric_spec.rb Update to ruby/spec@875a09e 2019-07-27 12:40:09 +02:00
object_spec.rb Update to ruby/spec@875a09e 2019-07-27 12:40:09 +02:00
proc_spec.rb Update to ruby/spec@875a09e 2019-07-27 12:40:09 +02:00
rake_helper.rb
range_spec.rb Update to ruby/spec@875a09e 2019-07-27 12:40:09 +02:00
rational_spec.rb
README
regexp_spec.rb
spec_helper.rb
st_spec.rb
string_spec.rb Warn on access/modify of $SAFE, and remove effects of modifying $SAFE 2019-11-18 01:00:25 +02:00
struct_spec.rb Update to ruby/spec@875a09e 2019-07-27 12:40:09 +02:00
symbol_spec.rb
thread_spec.rb Fixed a typo [ci skip] 2019-10-20 02:58:32 +09:00
time_spec.rb Update to ruby/spec@875a09e 2019-07-27 12:40:09 +02:00
typed_data_spec.rb Update to ruby/spec@875a09e 2019-07-27 12:40:09 +02:00
util_spec.rb Fix or suppress keyword argument separation warnings in util_spec 2019-09-29 10:34:07 -07:00

C-API Specs

These specs test the C-API from Ruby. The following are conventions for the
specs:

1.  Put specs for functions related to a Ruby class in a file named according
    to the class. For example, for rb_ary_new function, put the specs in
    optional/capi/array_spec.rb
2.  Put the C file containing the C functions for array_spec.rb in
    optional/capi/ext/array_spec.c
3.  Add a '#define HAVE_RB_ARY_NEW  1' to rubyspec.h
4.  Name the C extension class 'CApiArraySpecs'.
5.  Name the C functions 'array_spec_rb_ary_new'.
6.  Wrap the code in the optional/capi/ext/array_spec.c in
    '#ifdef HAVE_RB_ARY_NEW'
7.  Attach the C function to the class using the name 'rb_ary_new'