mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
c5c05460ac
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. |
||
---|---|---|
.. | ||
ext | ||
fixtures | ||
array_spec.rb | ||
bignum_spec.rb | ||
boolean_spec.rb | ||
class_spec.rb | ||
complex_spec.rb | ||
constants_spec.rb | ||
data_spec.rb | ||
encoding_spec.rb | ||
enumerator_spec.rb | ||
exception_spec.rb | ||
file_spec.rb | ||
fixnum_spec.rb | ||
float_spec.rb | ||
gc_spec.rb | ||
globals_spec.rb | ||
hash_spec.rb | ||
integer_spec.rb | ||
io_spec.rb | ||
kernel_spec.rb | ||
marshal_spec.rb | ||
module_spec.rb | ||
mutex_spec.rb | ||
numeric_spec.rb | ||
object_spec.rb | ||
proc_spec.rb | ||
rake_helper.rb | ||
range_spec.rb | ||
rational_spec.rb | ||
README | ||
regexp_spec.rb | ||
spec_helper.rb | ||
st_spec.rb | ||
string_spec.rb | ||
struct_spec.rb | ||
symbol_spec.rb | ||
thread_spec.rb | ||
time_spec.rb | ||
typed_data_spec.rb | ||
util_spec.rb |
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'