Skip to content

Commit 2d36691

Browse files
committed
[GR-17457] Enable assertions and other flags for subprocess in MRI tests
PullRequest: truffleruby/2762
2 parents 2943255 + 973ba7c commit 2d36691

File tree

3 files changed

+15
-7
lines changed

3 files changed

+15
-7
lines changed

src/main/java/org/truffleruby/core/array/ArrayAppendOneNode.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import com.oracle.truffle.api.profiles.ConditionProfile;
2626

2727
@NodeChild(value = "array", type = RubyNode.class)
28-
@NodeChild(value = "value", type = RubyNode.class)
28+
@NodeChild(value = "valueNode", type = RubyNode.class)
2929
@ImportStatic(ArrayGuards.class)
3030
public abstract class ArrayAppendOneNode extends RubyContextSourceNode {
3131

@@ -37,6 +37,8 @@ public static ArrayAppendOneNode create() {
3737

3838
public abstract RubyArray executeAppendOne(RubyArray array, Object value);
3939

40+
public abstract RubyNode getValueNode();
41+
4042
// Append of the correct type
4143

4244
@Specialization(

src/main/java/org/truffleruby/language/dispatch/RubyCallNode.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
import org.truffleruby.RubyContext;
1313
import org.truffleruby.RubyLanguage;
14+
import org.truffleruby.core.array.ArrayAppendOneNode;
1415
import org.truffleruby.core.array.ArrayToObjectArrayNode;
1516
import org.truffleruby.core.array.ArrayToObjectArrayNodeGen;
1617
import org.truffleruby.core.array.AssignableNode;
@@ -100,8 +101,8 @@ public Object execute(VirtualFrame frame) {
100101

101102
@Override
102103
public void assign(VirtualFrame frame, Object value) {
103-
assert getLastArgumentNode() instanceof NilLiteralNode &&
104-
((NilLiteralNode) getLastArgumentNode()).isImplicit() : getLastArgumentNode();
104+
assert (getLastArgumentNode() instanceof NilLiteralNode &&
105+
((NilLiteralNode) getLastArgumentNode()).isImplicit()) : getLastArgumentNode();
105106

106107
final Object receiverObject = receiver.execute(frame);
107108
if (isSafeNavigation && nilProfile.profile(receiverObject == nil)) {
@@ -195,7 +196,11 @@ public boolean hasLiteralBlock() {
195196
}
196197

197198
private RubyNode getLastArgumentNode() {
198-
return arguments[arguments.length - 1];
199+
final RubyNode lastArg = arguments[arguments.length - 1];
200+
if (isSplatted && lastArg instanceof ArrayAppendOneNode) {
201+
return ((ArrayAppendOneNode) lastArg).getValueNode();
202+
}
203+
return lastArg;
199204
}
200205

201206
@Override

tool/jt.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1166,14 +1166,15 @@ def test(*args)
11661166

11671167
truffle_args = []
11681168
if truffleruby?
1169-
truffle_args += %w(--reveal --vm.Xmx2G)
1169+
vm_args, ruby_args, _parsed_options = ruby_options({}, %w[--vm.Xmx2G --reveal --experimental-options --testing-rubygems])
1170+
truffle_args = vm_args + ruby_args
11701171
end
11711172

11721173
env_vars = {
11731174
'EXCLUDES' => 'test/mri/excludes',
11741175
'RUBYGEMS_TEST_PATH' => "#{MRI_TEST_PREFIX}/rubygems",
11751176
'RUBYOPT' => [*ENV['RUBYOPT'], '--disable-gems'].join(' '),
1176-
'TRUFFLERUBYOPT' => [*ENV['TRUFFLERUBYOPT'], '--experimental-options', '--testing-rubygems'].join(' '),
1177+
'TRUFFLERUBYOPT' => [*ENV['TRUFFLERUBYOPT'], *truffle_args].join(' '),
11771178
}
11781179
compile_env = {
11791180
# MRI C-ext tests expect to be built with $extmk = true.
@@ -1217,7 +1218,7 @@ def test(*args)
12171218

12181219
command = %w[test/mri/tests/runner.rb -v --color=never --tty=no -q]
12191220
command.unshift("-I#{TRUFFLERUBY_DIR}/.ext") if !cext_tests.empty?
1220-
run_ruby(env_vars, *truffle_args, *extra_args, *command, *test_files, *runner_args, run_options)
1221+
run_ruby(env_vars, *extra_args, *command, *test_files, *runner_args, run_options)
12211222
end
12221223

12231224
def retag(*args)

0 commit comments

Comments
 (0)