-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
reworked frames management and longjumps
- Loading branch information
1 parent
f83d458
commit b9cd86a
Showing
28 changed files
with
308 additions
and
228 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,24 @@ | ||
namespace :rubyspec do | ||
env = 'PATCH_EVAL=1 DISABLE_TRACES=1 DISABLE_BREAKPOINTS=1' | ||
|
||
def each_spec | ||
Dir['./rubyspec/language/**/*_spec.rb'].sort.each do |f| | ||
yield f | ||
rescue Exception => e | ||
puts "#{f} failed with #{e}" | ||
end | ||
end | ||
|
||
task :run_and_record_failures do | ||
sh 'DISABLE_BREAKPOINTS=1 bin/my.rb ./mspec/bin/mspec-tag ./rubyspec/language/ -- --int-spec' | ||
sh 'rm -rf tags' | ||
each_spec do |f| | ||
sh "#{env} bin/my.rb ./mspec/bin/mspec-tag #{f} -- --int-spec" | ||
end | ||
end | ||
|
||
task :run_passing do | ||
sh 'DISABLE_BREAKPOINTS=1 ./mspec/bin/mspec -t bin/my.rb ./rubyspec/language/ -- --excl-tag=fails' | ||
each_spec do |f| | ||
sh "#{env} ./mspec/bin/mspec -t bin/my.rb #{f} -- --excl-tag=fails" | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -165,6 +165,7 @@ def test | |
ensure | ||
p 3 | ||
end | ||
p 4 | ||
RUBY | ||
|
||
assert_evaluates_like_mri(<<-RUBY) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,11 @@ | ||
fails:The break statement in a block returns nil to method invoking the method yielding to the block when not passed an argument | ||
fails:The break statement in a block returns a value to the method invoking the method yielding to the block | ||
fails:The break statement in a block yielded inside a while breaks out of the block | ||
fails:The break statement in a block captured and delegated to another method repeatedly breaks out of the block | ||
fails:The break statement in a captured block when the invocation of the scope creating the block is still active raises a LocalJumpError when invoking the block from the scope creating the block | ||
fails:The break statement in a captured block when the invocation of the scope creating the block is still active raises a LocalJumpError when invoking the block from a method | ||
fails:The break statement in a captured block when the invocation of the scope creating the block is still active raises a LocalJumpError when yielding to the block | ||
fails:The break statement in a captured block from a scope that has returned raises a LocalJumpError when calling the block from a method | ||
fails:The break statement in a captured block from a scope that has returned raises a LocalJumpError when yielding to the block | ||
fails:The break statement in a captured block from another thread raises a LocalJumpError when getting the value from another thread | ||
fails:The break statement in a lambda returns from the lambda | ||
fails:The break statement in a lambda returns from the call site if the lambda is passed as a block | ||
fails:The break statement in a lambda when the invocation of the scope creating the lambda is still active returns nil when not passed an argument | ||
fails:The break statement in a lambda when the invocation of the scope creating the lambda is still active returns a value to the scope creating and calling the lambda | ||
fails:The break statement in a lambda when the invocation of the scope creating the lambda is still active returns a value to the method scope below invoking the lambda | ||
fails:The break statement in a lambda when the invocation of the scope creating the lambda is still active returns a value to a block scope invoking the lambda in a method below | ||
fails:The break statement in a lambda when the invocation of the scope creating the lambda is still active returns from the lambda | ||
fails:The break statement in a lambda from a scope that has returned returns a value to the method scope invoking the lambda | ||
fails:The break statement in a lambda from a scope that has returned returns a value to the block scope invoking the lambda in a method | ||
fails:The break statement in a lambda from a scope that has returned raises a LocalJumpError when yielding to a lambda passed as a block argument | ||
fails:Break inside a while loop causes a call with a block to return when run | ||
fails:Break inside a while loop with a value passes the value returned by a method with omitted parenthesis and passed block | ||
fails:Executing break from within a block returns from the original invoking method even in case of chained calls | ||
fails:Executing break from within a block runs ensures when continuing upward | ||
fails:Executing break from within a block doesn't run ensures in the destination method |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,14 @@ | ||
fails:An ensure block inside a begin block is executed when an exception is raised and rescued in it's corresponding begin block | ||
fails:An ensure block inside a begin block is executed when an exception is raised in it's corresponding begin block | ||
fails:An ensure block inside a begin block is executed even when a symbol is thrown in it's corresponding begin block | ||
fails:An ensure block inside a begin block sets exception cause if raises exception in block and in ensure | ||
fails:The value of an ensure expression, when an exception is rescued, is the value of the rescuing block | ||
fails:An ensure block inside a method is executed when an exception is raised in the method | ||
fails:An ensure block inside a method is executed even when a symbol is thrown in the method | ||
fails:An ensure block inside a method has an impact on the method's explicit return value from rescue if returns explicitly | ||
fails:An ensure block inside a method has no impact on the method's explicit return value from rescue if returns implicitly | ||
fails:An ensure block inside a method suppresses exception raised in method if returns value explicitly | ||
fails:An ensure block inside a method suppresses exception raised in rescue if returns value explicitly | ||
fails:An ensure block inside a method overrides exception raised in rescue if raises exception itself | ||
fails:An ensure block inside a method suppresses exception raised in method if raises exception itself | ||
fails:An ensure block inside a class is executed when an exception is raised | ||
fails:An ensure block inside a class is executed even when a symbol is thrown | ||
fails:An ensure block inside 'do end' block is executed when an exception is raised in it's corresponding begin block | ||
fails:An ensure block inside 'do end' block is executed even when a symbol is thrown in it's corresponding begin block |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1 @@ | ||
fails:The for expression breaks out of a loop upon 'break', returning nil | ||
fails:The for expression allows 'break' to have an argument which becomes the value of the for expression |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1 @@ | ||
fails:The loop expression repeats the given block until a break is called | ||
fails:The loop expression executes code in its own scope | ||
fails:The loop expression returns the value passed to break if interrupted by break | ||
fails:The loop expression returns nil if interrupted by break with no arguments | ||
fails:The loop expression skips to end of body with next | ||
fails:The loop expression restarts the current iteration with redo | ||
fails:The loop expression uses a spaghetti nightmare of redo, next and break |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1 @@ | ||
fails:The || operator has a higher precedence than 'break' in 'break true || false' | ||
fails:The || operator has a higher precedence than 'return' in 'return true || false' |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.