Changeset 5863

Show
Ignore:
Timestamp:
10/10/06 19:41:18
Author:
jan
Message:

jerbil

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/java_task.rb

    r5858 r5863  
    9292         
    9393        if @fork 
    94           ret = Kernel.fork {  
    95             exec "java", *parms 
    96           } 
    97             
    98           exit! if ret.nil? 
    99           Process.wait 
    100           raise unless $?.exitstatus == 0       
    101         else 
    102                 sh "java", *parms 
    103                 #exec "java", *parms 
    104         end 
    105         
     94          sh "java", *parms                   
     95        else           
     96          exec "java", *parms 
     97        end        
    10698       end 
    10799     end 
  • trunk/sample/Rakefile

    r5846 r5863  
    4646Rake::JavaTask.new(:run, "jerbil.sample.Main") do |t| 
    4747  t.classpath = CLASSPATH 
    48   t.parameters = [ "50", "50" ] 
     48  t.parameters = [ "20", "50" ] 
    4949  t.depends_on :compile 
     50end 
     51 
     52Rake::JavaTask.new(:run_forked, "jerbil.sample.Main") do |t| 
     53  t.classpath = CLASSPATH 
     54  t.parameters = [ "50", "-50" ] 
     55  t.depends_on :compile 
     56  t.fork = true 
     57end 
     58 
     59Rake::JavaTask.new(:run_forked_fail, "jerbil.sample.Main") do |t| 
     60  t.classpath = CLASSPATH 
     61  t.parameters = [ "0", "20" ] 
     62  t.depends_on :compile 
     63  t.fork = true 
    5064end 
    5165 
  • trunk/sample/src/jerbil/sample/Main.java

    r5844 r5863  
    1515        } 
    1616 
    17         System.exit(sum == 100 ? 0 : 1); 
     17        System.exit(sum); 
    1818    } 
    1919} 
  • trunk/test/test_build.rb

    r5858 r5863  
    1010class TestBuild < Test::Unit::TestCase 
    1111  def test_compile 
    12     run_rake(:clean, :compile) do 
     12    run_rake(:clean, :compile) do |ok,res| 
     13      assert ok 
    1314      assert_files_exist(JAVA_FILES.to_classfiles) 
    1415    end 
     
    1617   
    1718  def test_javadoc 
    18     run_rake(:clean, :javadoc) do 
     19    run_rake(:clean, :javadoc) do |ok,res| 
     20      assert ok 
    1921      assert File.exists?(File.join(JAVADOC_DIR, "index.html")) 
    2022    end 
     
    2224   
    2325  def test_test_compile 
    24     run_rake(:clean, :test_compile) do 
     26    run_rake(:clean, :test_compile) do |ok,res| 
     27      assert ok 
    2528      assert_files_exist(JAVA_FILES.to_classfiles) 
    2629      assert_files_exist(JAVA_TEST_FILES.to_classfiles) 
     
    2932   
    3033  def test_jar 
    31     run_rake(:clean, :jar) do 
     34    run_rake(:clean, :jar) do |ok,res| 
     35      assert ok 
    3236      assert File.exists?(DISTJAR) 
    3337    end 
     
    3539   
    3640  def test_test 
    37     run_rake(:clean, :test) do 
     41    run_rake(:clean, :test) do |ok,res| 
     42      assert ok 
    3843      assert File.directory?(TESTOUTPUTDIR) 
    3944      assert File.exists?(File.join(TESTOUTPUTDIR, "Command line suite", "index.html")) 
     
    4247   
    4348  def test_find_annotations 
    44     run_rake(:clean, :find_annotations) do 
     49    run_rake(:clean, :find_annotations) do |ok,res| 
     50      assert ok 
    4551      assert File.exists?(ANNOTATED_CLASSES) 
    4652      classes = YAML.load_file(ANNOTATED_CLASSES) 
    4753       
    48       assert classes.length == 1 
     54      assert_equal 1, classes.length 
    4955      assert_equal ["jerbil.sample.Jerbiliser"], classes 
    5056    end 
    5157  end 
    5258   
    53   def test_run 
     59  def test_run_no_fork 
    5460    run_rake(:clean, :run) do |ok,res| 
    55         #res.status                   
     61      assert !ok 
     62      assert_equal 70, res.exitstatus 
     63    end 
     64  end 
     65   
     66  def test_run_forked_ok 
     67    run_rake(:clean, :run_forked) do |ok,res| 
     68      assert ok          
     69    end 
     70  end 
     71   
     72  def test_run_forked_fail 
     73    run_rake(:clean, :run_forked_fail) do |ok,res| 
     74      assert !ok             
     75      assert_equal 1, res.exitstatus  
    5676    end 
    5777  end 
     
    5979  def test_clean 
    6080    run_rake(:clean, :compile, :jar, :test) 
    61     run_rake(:clean) do 
     81    run_rake(:clean) do |ok,res| 
     82      assert ok 
    6283      assert !File.directory?(TESTOUTPUTDIR)   
    6384      assert !File.directory?(BUILD_DIR) 
     
    7192  end 
    7293   
    73   def run_rake(*args
     94  def run_rake(*args, &block
    7495    Dir.chdir("sample") do 
    7596      #sh "rake --quiet #{args.join(' ')}" do |ok,res| 
    7697      cmd = args.join(" ") 
    7798      #on windows, exec invokes a subshell which does not inherit environment variables, 
    78       #therefore we cannot invoke directly 
    79       ruby %{-rubygems -e "require 'rake'; Rake.application.run" #{cmd} --quiet} do |ok,res| 
    80         flunk "could not invoke rake" if res.nil? 
    81         flunk "rake failed: #{res}" unless ok  
    82         yield(ok, res) if block_given?      
     99      #therefore we cannot invoke rake directly 
     100       
     101      unless block_given? 
     102        block = lambda {|ok,res| flunk "rake failed: #{res}" unless ok } 
     103      end 
     104       
     105      ruby %{-rubygems -e "require 'rake'; Rake.application.run" #{cmd} --quiet} do |ok,res|             
     106        flunk "could not invoke rake" if res.nil? 
     107        block.call(ok, res) 
    83108      end 
    84109    end