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