Relax expectation on sleep spec.
Added specs for Range#bsearch.
Removed Process.kill spec checking EPERM.

There is no reliable way to guarantee that a specific PID is not killable
by the user running the specs, even when not superuser. On the other hand,
there is no way to make a process that is not killable because to do so would
require escalating privileges.
Adding spec for File#fnmatch's support of braces
Make sure an extra brace doesn't muck things up
Add more cases for File.fnmatch specs
Add examples for creating a Proc using the block from an enclosing method.
Less racy specs for Process.exit!

There would a small chance where the sleep(1) call would complete _before_ the
Thread.new { ... } block finished running. After all, there's no guarantee a
thread starts right away.

By removing the sleep(1) and adding a Thread#join call we can ensure that the
Process.exit!(2) is _only_ called when the @object.exit!(1) call doesn't
immediately terminate the process.

At least I hope, you never know for certain when it comes to multi-threading.
Spec for #2977: Error calling IO.write to a FIFO
Spec for #2977: Improve spec for IO.write on FIFO

Remove unneeded conditional
Use IO.read instead of `cat`
Added new Marshal.load specs for objects with user-defined _dumps

These specs were added after rbx's Marshal broke in an app that had
defined its own _dump and _load methods upon an object -- see
UserDefinedImmediate in marshal/fixtures/marshal_data.rb.
Added specs for Kernel#caller_locations.

This also includes standalone specs for Thread::Backtrace::Location and its
methods.
Updated specs for Kernel#caller

This adds a set of actual specs instead of just checking if the "caller" method
is present.
Added specs for subclassing eg Errno::EMFILE.

Pure crazy town, I know. Thanks, rack!.
Added C-API spec for autoload resolution from rb_class_to_path, rb_class2path.
Added C-API specs for more autoload resolution.