@@ -145,14 +145,6 @@ def check_status_or_print(stdout_and_stderr)
145
145
end
146
146
end
147
147
148
- [ 'RUBYOPT' , 'TRUFFLERUBYOPT' ] . each do |var |
149
- it "should recognize ruby --vm options in #{ var } " do
150
- out = ruby_exe ( 'print Truffle::System.get_java_property("foo")' , env : { var => "--vm.Dfoo=bar" } , args : @redirect )
151
- check_status_and_empty_stderr
152
- out . should == 'bar'
153
- end
154
- end
155
-
156
148
def should_print_full_java_command ( options , env : { } )
157
149
out = ruby_exe ( nil , options : options , env : env , args : @redirect )
158
150
check_status_and_empty_stderr
@@ -410,4 +402,49 @@ def should_print_full_java_command(options, env: {})
410
402
end
411
403
end
412
404
405
+ [ 'RUBYOPT' , 'TRUFFLERUBYOPT' ] . each do |var |
406
+ it "should recognize ruby --vm options in #{ var } " do
407
+ out = ruby_exe ( 'print Truffle::System.get_java_property("foo")' , env : { var => "--vm.Dfoo=bar" } , args : @redirect )
408
+ check_status_and_empty_stderr
409
+ out . should == 'bar'
410
+ end
411
+ end
412
+
413
+ guard -> {
414
+ # GraalVM with both --jvm and --native
415
+ TruffleRuby . graalvm_home and TruffleRuby . native?
416
+ } do
417
+ describe "runtime configuration flags" do
418
+ [ 'RUBYOPT' , 'TRUFFLERUBYOPT' ] . each do |var |
419
+ it "should recognize ruby --vm options in #{ var } when switching to JVM" do
420
+ out = ruby_exe ( 'puts RUBY_DESCRIPTION; puts Truffle::System.get_java_property("foo")' , env : { var => "--jvm --vm.Dfoo=bar" } , args : @redirect )
421
+ check_status_and_empty_stderr
422
+ out = out . lines . map ( &:chomp )
423
+ out [ 0 ] . should =~ /GraalVM (CE|EE) JVM/
424
+ out [ 1 ] . should == 'bar'
425
+ end
426
+ end
427
+
428
+ it "uses --native by default" do
429
+ out = ruby_exe ( nil , options : "--version" , args : @redirect )
430
+ check_status_and_empty_stderr
431
+ out . should =~ /GraalVM (CE|EE) Native/
432
+ end
433
+
434
+ it "switches to JVM with --jvm as a Ruby argument" do
435
+ out = ruby_exe ( nil , options : "--jvm --version" , args : @redirect )
436
+ check_status_and_empty_stderr
437
+ out . should =~ /GraalVM (CE|EE) JVM/
438
+ end
439
+
440
+ it "keeps --jvm as an application argument if given as an application argument" do
441
+ script = fixture ( __FILE__ , "argv.rb" )
442
+ out = ruby_exe ( nil , options : "-v" , args : "#{ script } --jvm 1 2 #{ @redirect } " )
443
+ check_status_and_empty_stderr
444
+ out = out . lines . map ( &:chomp )
445
+ out [ 0 ] . should =~ /GraalVM (CE|EE) Native/
446
+ out . should . include? ( '["--jvm", "1", "2"]' )
447
+ end
448
+ end
449
+ end
413
450
end
0 commit comments