1require File.expand_path('../helper', __FILE__) 2require 'rake/loaders/makefile' 3 4class TestRakeMakefileLoader < Rake::TestCase 5 include Rake 6 7 def test_parse 8 Dir.chdir @tempdir 9 10 open 'sample.mf', 'w' do |io| 11 io << <<-'SAMPLE_MF' 12# Comments 13a: a1 a2 a3 a4 14b: b1 b2 b3 \ 15 b4 b5 b6\ 16# Mid: Comment 17b7 18 19 a : a5 a6 a7 20c: c1 21d: d1 d2 \ 22 23e f : e1 f1 24 25g\ 0: g1 g\ 2 g\ 3 g4 26 SAMPLE_MF 27 end 28 29 Task.clear 30 loader = Rake::MakefileLoader.new 31 loader.load 'sample.mf' 32 %w(a b c d).each do |t| 33 assert Task.task_defined?(t), "#{t} should be a defined task" 34 end 35 assert_equal %w(a1 a2 a3 a4 a5 a6 a7).sort, Task['a'].prerequisites.sort 36 assert_equal %w(b1 b2 b3 b4 b5 b6 b7).sort, Task['b'].prerequisites.sort 37 assert_equal %w(c1).sort, Task['c'].prerequisites.sort 38 assert_equal %w(d1 d2).sort, Task['d'].prerequisites.sort 39 assert_equal %w(e1 f1).sort, Task['e'].prerequisites.sort 40 assert_equal %w(e1 f1).sort, Task['f'].prerequisites.sort 41 assert_equal ["g1", "g 2", "g 3", "g4"].sort, Task['g 0'].prerequisites.sort 42 assert_equal 7, Task.tasks.size 43 end 44end 45