Skip to content

Commit

Permalink
Showing 3 changed files with 8 additions and 10 deletions.
7 changes: 2 additions & 5 deletions test/truffle/coverage/test.rb
Original file line number Diff line number Diff line change
@@ -4,10 +4,7 @@

require_relative 'subject.rb'

data = Coverage.result.values.first
expected = [1, 1, nil, 1, 0, nil, nil, 1, nil, 1, 1, nil, nil, 1, 2, nil, nil, 1, 1, nil, 1]
#[1, 1, nil, 1, 10, nil, nil, 1, nil, 1, 1, nil, nil, 1, 2, nil, nil, 1, 1, nil, 1]

p data
data = Coverage.result[File.join(File.dirname(__FILE__), 'subject.rb')]
expected = [1, 1, nil, 1, 10, nil, nil, 1, nil, 1, 1, nil, nil, 1, 2, nil, nil, 1, 1, nil, 1]

raise 'failed' unless data == expected
4 changes: 2 additions & 2 deletions test/truffle/integration-tests.sh
Original file line number Diff line number Diff line change
@@ -44,5 +44,5 @@ test_server
#bin/jruby -X+T -Ilib/ruby/gems/shared/gems/rack-1.6.4/lib -Ilib/ruby/gems/shared/gems/tilt-2.0.1/lib -Ilib/ruby/gems/shared/gems/rack-protection-1.5.3/lib -Ilib/ruby/gems/shared/gems/sinatra-1.4.6/lib test/truffle/simple-sinatra-server.rb &
#test_server

#echo "Coverage..."
#bin/jruby -X+T -Xtruffle.coverage=true test/truffle/coverage/test.rb
echo "Coverage..."
bin/jruby -X+T -Xtruffle.coverage=true test/truffle/coverage/test.rb
Original file line number Diff line number Diff line change
@@ -107,22 +107,23 @@ public BlockDefinitionNode compileBlockNode(SourceSection sourceSection, String
NodeUtil.cloneNode(loadArguments));

// Procs
final RubyNode bodyProc = new CatchForProcNode(context, sourceSection, composeBody(preludeProc, body));
final RubyNode bodyProc = new CatchForProcNode(context, sourceSection, composeBody(preludeProc, (RubyNode) body.deepCopy()));

final RubyRootNode newRootNodeForProcs = new RubyRootNode(context, sourceSection, environment.getFrameDescriptor(), environment.getSharedMethodInfo(),
bodyProc, environment.needsDeclarationFrame());

// Lambdas
final RubyNode bodyLambda = new CatchForLambdaNode(context, sourceSection, composeBody(preludeLambda, body), environment.getReturnID());
final RubyNode bodyLambda = new CatchForLambdaNode(context, sourceSection, composeBody(preludeLambda, (RubyNode) body.deepCopy()), environment.getReturnID());

final RubyRootNode newRootNodeForLambdas = new RubyRootNode(
context, sourceSection,
environment.getFrameDescriptor(), environment.getSharedMethodInfo(),
bodyLambda,
environment.needsDeclarationFrame());

final CallTarget callTargetAsProc = Truffle.getRuntime().createCallTarget(newRootNodeForProcs);
// TODO CS 23-Nov-15 only the second one will get instrumented properly!
final CallTarget callTargetAsLambda = Truffle.getRuntime().createCallTarget(newRootNodeForLambdas);
final CallTarget callTargetAsProc = Truffle.getRuntime().createCallTarget(newRootNodeForProcs);

return new BlockDefinitionNode(context, sourceSection, type, environment.getSharedMethodInfo(),
callTargetAsProc, callTargetAsLambda, environment.getBreakID());

0 comments on commit f24e0ac

Please sign in to comment.