mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	ruby.c: no -r when dump
* ruby.c (process_options, load_file_internal2): should not require other files when dump option is given. [ruby-dev:48712] [Bug #10435] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48175 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									c98b8d622b
								
							
						
					
					
						commit
						4079a35447
					
				
					 3 changed files with 51 additions and 4 deletions
				
			
		|  | @ -1,3 +1,9 @@ | |||
| Tue Oct 28 16:22:41 2014  Nobuyoshi Nakada  <nobu@ruby-lang.org> | ||||
| 
 | ||||
| 	* ruby.c (process_options, load_file_internal2): should not | ||||
| 	  require other files when dump option is given. | ||||
| 	  [ruby-dev:48712] [Bug #10435] | ||||
| 
 | ||||
| Tue Oct 28 14:51:38 2014  NARUSE, Yui  <naruse@ruby-lang.org> | ||||
| 
 | ||||
| 	* configure.in: remove apple-gcc4.2 from CC candidates. | ||||
|  |  | |||
							
								
								
									
										12
									
								
								ruby.c
									
										
									
									
									
								
							
							
						
						
									
										12
									
								
								ruby.c
									
										
									
									
									
								
							|  | @ -1415,8 +1415,10 @@ process_options(int argc, char **argv, struct cmdline_options *opt) | |||
| 	    eenc = lenc; | ||||
| 	} | ||||
| 	rb_enc_associate(opt->e_script, eenc); | ||||
|         ruby_set_script_name(opt->script_name); | ||||
| 	require_libraries(&opt->req_list); | ||||
| 	if (!(opt->dump & ~DUMP_BIT(version_v))) { | ||||
| 	    ruby_set_script_name(opt->script_name); | ||||
| 	    require_libraries(&opt->req_list); | ||||
| 	} | ||||
|         ruby_set_script_name(progname); | ||||
| 
 | ||||
| 	PREPARE_PARSE_MAIN({ | ||||
|  | @ -1612,8 +1614,10 @@ load_file_internal2(VALUE argp_v) | |||
| 	    if (f != rb_stdin) rb_io_close(f); | ||||
| 	    f = Qnil; | ||||
| 	} | ||||
|         ruby_set_script_name(opt->script_name); | ||||
| 	require_libraries(&opt->req_list);	/* Why here? unnatural */ | ||||
| 	if (!(opt->dump & ~DUMP_BIT(version_v))) { | ||||
| 	    ruby_set_script_name(opt->script_name); | ||||
| 	    require_libraries(&opt->req_list);	/* Why here? unnatural */ | ||||
| 	} | ||||
|     } | ||||
|     if (opt->src.enc.index >= 0) { | ||||
| 	enc = rb_enc_from_index(opt->src.enc.index); | ||||
|  |  | |||
|  | @ -710,4 +710,41 @@ class TestRubyOptions < Test::Unit::TestCase | |||
|     bug7157 = '[ruby-core:47967]' | ||||
|     assert_in_out_err(['-p', '-e', 'sub(/t.*/){"TEST"}'], %[test], %w[TEST], [], bug7157) | ||||
|   end | ||||
| 
 | ||||
|   def assert_norun_with_rflag(opt) | ||||
|     bug10435 = "[ruby-dev:48712] [Bug #10435]: should not run with #{opt} option" | ||||
|     stderr = [] | ||||
|     Tempfile.create(%w"bug10435- .rb") do |script| | ||||
|       dir, base = File.split(script.path) | ||||
|       script.puts "abort ':run'" | ||||
|       script.close | ||||
|       opts = ['-C', dir, '-r', "./#{base}", opt] | ||||
|       assert_in_out_err([*opts, '-ep']) do |_, e| | ||||
|         stderr.concat(e) | ||||
|       end | ||||
|       stderr << "---" | ||||
|       assert_in_out_err([*opts, base]) do |_, e| | ||||
|         stderr.concat(e) | ||||
|       end | ||||
|     end | ||||
|     assert_not_include(stderr, ":run", bug10435) | ||||
|   end | ||||
| 
 | ||||
|   def test_dump_syntax_with_rflag | ||||
|     assert_norun_with_rflag('-c') | ||||
|     assert_norun_with_rflag('--dump=syntax') | ||||
|   end | ||||
| 
 | ||||
|   def test_dump_yydebug_with_rflag | ||||
|     assert_norun_with_rflag('-y') | ||||
|     assert_norun_with_rflag('--dump=yydebug') | ||||
|   end | ||||
| 
 | ||||
|   def test_dump_parsetree_with_rflag | ||||
|     assert_norun_with_rflag('--dump=parsetree') | ||||
|   end | ||||
| 
 | ||||
|   def test_dump_insns_with_rflag | ||||
|     assert_norun_with_rflag('--dump=insns') | ||||
|   end | ||||
| end | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 nobu
						nobu