File: ruby19.rake

package info (click to toggle)
rake 0.8.7-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 808 kB
  • ctags: 877
  • sloc: ruby: 6,912; makefile: 36; ansic: 19
file content (88 lines) | stat: -rw-r--r-- 2,788 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
module Ruby19
  PROG = '/Users/jim/local/ruby19/bin/ruby'
  GEM_HOME = '/Users/jim/local/ruby19.gems'

  RELEASE_FILES = FileList['bin/rake', 'lib/rake.rb', 'lib/rake/**/*']
  RELEASE_FILES.exclude('lib/rake/lib', 'project.rake', 'lib/rake/plugins', 'lib/rake/contrib')

  SVN = "#{ENV['HOME']}/working/svn/software/thirdparty/ruby"

  def run_tests(files, opts='')
    sh "#{PROG} -w -Ilib lib/rake/rake_test_loader.rb #{opts} #{files}"
  end

  extend self
end

namespace "ruby19" do
  desc "Generate a diff file between the primary repo and Ruby 1.9"
  task :diff => [:check_svn] do
    sh %{diff -u #{Ruby19::SVN}/lib/rake.rb lib/rake.rb}
    sh %{diff -u -x .svn -x contrib -x lib #{Ruby19::SVN}/lib/rake lib/rake}
  end

  desc "Ruby Release Files"
  task :release_files do
    puts Ruby19::RELEASE_FILES
  end

  desc "Release Rake Files to Ruby 19 SVN working area"
  task :release => [:check_svn] do
    dirs = Ruby19::RELEASE_FILES.select { |fn| File.directory?(fn) }
    dirs.each do |dir| mkdir_p "#{Ruby19::SVN}/#{dir}" end
    Ruby19::RELEASE_FILES.each do |fn|
      cp fn, "#{Ruby19::SVN}/#{fn}" unless File.directory?(fn)
    end
  end

  desc "Remove Rake from the Ruby 19 SVN"
  task :unrelease => [:check_svn] do
    rm_r "#{Ruby19::SVN}/bin/rake" rescue nil
    rm_r "#{Ruby19::SVN}/lib/rake" rescue nil
    rm_r "#{Ruby19::SVN}/lib/rake.rb" rescue nil
  end

  task :check_svn do
    fail "Cannot find Ruby 1.9 SVN directory: #{Ruby19::SVN}" unless
      File.directory?(Ruby19::SVN) 
  end


  namespace "test" do

    desc "Check the file paths"
    task :check do
      raise "Ruby 1.9 executable not found" unless File.exist?(Ruby19::PROG)
      raise "Ruby 1.9 Gem Home not found"   unless File.exist?(Ruby19::GEM_HOME)
    end

    task :env19 => :check do
      ENV['GEM_HOME'] = Ruby19::GEM_HOME
    end

    desc "Describe the Ruby 1.9 version used for testing"
    task :version => [:env19] do
      sh "#{Ruby19::PROG} --version", :verbose => false
      sh "#{Ruby19::PROG} -rubygems -e 'puts \"Gem Path = \#{Gem.path}\"'", :verbose => false
      sh "#{Ruby19::PROG} -Ilib bin/rake --version"
    end

    desc "Run the unit tests in Ruby 1.9"
    task :units, :opts, :needs => [:env19] do |t, args|
      test_files = FileList['test/**/test_*.rb']
      Ruby19.run_tests(test_files, args.opts)
    end

    desc "Run the functional tests in Ruby 1.9"
    task :functionals, :opts, :needs => [:env19] do |t, args|
      test_files = FileList['test/functional.rb']
      Ruby19.run_tests(test_files, args.opts)
    end

    desc "Run the all the tests in Ruby 1.9"
    task :all, :opts, :needs => [:env19] do |t, args|
      test_files = FileList['test/functional.rb', 'test/**/test_*.rb']
      Ruby19.run_tests(test_files, args.opts)
    end
  end
end