jimweirich-rake 0.8.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. data/CHANGES +364 -0
  2. data/MIT-LICENSE +21 -0
  3. data/README +242 -0
  4. data/Rakefile +413 -0
  5. data/TODO +20 -0
  6. data/bin/rake +31 -0
  7. data/doc/example/Rakefile1 +38 -0
  8. data/doc/example/Rakefile2 +35 -0
  9. data/doc/example/a.c +6 -0
  10. data/doc/example/b.c +6 -0
  11. data/doc/example/main.c +11 -0
  12. data/doc/glossary.rdoc +51 -0
  13. data/doc/jamis.rb +591 -0
  14. data/doc/proto_rake.rdoc +127 -0
  15. data/doc/rake.1.gz +0 -0
  16. data/doc/rakefile.rdoc +411 -0
  17. data/doc/rational.rdoc +151 -0
  18. data/doc/release_notes/rake-0.4.14.rdoc +23 -0
  19. data/doc/release_notes/rake-0.4.15.rdoc +35 -0
  20. data/doc/release_notes/rake-0.5.0.rdoc +53 -0
  21. data/doc/release_notes/rake-0.5.3.rdoc +78 -0
  22. data/doc/release_notes/rake-0.5.4.rdoc +46 -0
  23. data/doc/release_notes/rake-0.6.0.rdoc +141 -0
  24. data/doc/release_notes/rake-0.7.0.rdoc +119 -0
  25. data/doc/release_notes/rake-0.7.1.rdoc +59 -0
  26. data/doc/release_notes/rake-0.7.2.rdoc +121 -0
  27. data/doc/release_notes/rake-0.7.3.rdoc +47 -0
  28. data/doc/release_notes/rake-0.8.0.rdoc +114 -0
  29. data/install.rb +88 -0
  30. data/lib/rake/classic_namespace.rb +8 -0
  31. data/lib/rake/clean.rb +33 -0
  32. data/lib/rake/contrib/compositepublisher.rb +24 -0
  33. data/lib/rake/contrib/ftptools.rb +153 -0
  34. data/lib/rake/contrib/publisher.rb +75 -0
  35. data/lib/rake/contrib/rubyforgepublisher.rb +18 -0
  36. data/lib/rake/contrib/sshpublisher.rb +47 -0
  37. data/lib/rake/contrib/sys.rb +209 -0
  38. data/lib/rake/gempackagetask.rb +103 -0
  39. data/lib/rake/loaders/makefile.rb +40 -0
  40. data/lib/rake/packagetask.rb +184 -0
  41. data/lib/rake/rake_test_loader.rb +5 -0
  42. data/lib/rake/rdoctask.rb +147 -0
  43. data/lib/rake/ruby182_test_unit_fix.rb +23 -0
  44. data/lib/rake/runtest.rb +23 -0
  45. data/lib/rake/tasklib.rb +18 -0
  46. data/lib/rake/testtask.rb +161 -0
  47. data/lib/rake.rb +2312 -0
  48. data/test/capture_stdout.rb +26 -0
  49. data/test/contrib/testsys.rb +47 -0
  50. data/test/data/chains/Rakefile +15 -0
  51. data/test/data/default/Rakefile +19 -0
  52. data/test/data/dryrun/Rakefile +22 -0
  53. data/test/data/file_creation_task/Rakefile +30 -0
  54. data/test/data/imports/Rakefile +19 -0
  55. data/test/data/imports/deps.mf +1 -0
  56. data/test/data/multidesc/Rakefile +17 -0
  57. data/test/data/namespace/Rakefile +57 -0
  58. data/test/data/rakelib/test1.rb +3 -0
  59. data/test/data/rbext/rakefile.rb +3 -0
  60. data/test/data/sample.mf +9 -0
  61. data/test/data/statusreturn/Rakefile +8 -0
  62. data/test/data/unittest/Rakefile +1 -0
  63. data/test/filecreation.rb +32 -0
  64. data/test/functional.rb +15 -0
  65. data/test/rake_test_setup.rb +5 -0
  66. data/test/reqfile.rb +3 -0
  67. data/test/reqfile2.rb +3 -0
  68. data/test/session_functional.rb +267 -0
  69. data/test/shellcommand.rb +3 -0
  70. data/test/test_application.rb +504 -0
  71. data/test/test_clean.rb +14 -0
  72. data/test/test_definitions.rb +82 -0
  73. data/test/test_earlytime.rb +35 -0
  74. data/test/test_extension.rb +63 -0
  75. data/test/test_file_creation_task.rb +62 -0
  76. data/test/test_file_task.rb +139 -0
  77. data/test/test_filelist.rb +618 -0
  78. data/test/test_fileutils.rb +239 -0
  79. data/test/test_ftp.rb +59 -0
  80. data/test/test_invocation_chain.rb +75 -0
  81. data/test/test_makefile_loader.rb +23 -0
  82. data/test/test_multitask.rb +45 -0
  83. data/test/test_namespace.rb +36 -0
  84. data/test/test_package_task.rb +116 -0
  85. data/test/test_pathmap.rb +209 -0
  86. data/test/test_rake.rb +34 -0
  87. data/test/test_require.rb +33 -0
  88. data/test/test_rules.rb +347 -0
  89. data/test/test_task_arguments.rb +76 -0
  90. data/test/test_task_manager.rb +148 -0
  91. data/test/test_tasks.rb +372 -0
  92. data/test/test_test_task.rb +75 -0
  93. data/test/test_top_level_functions.rb +84 -0
  94. metadata +173 -0
@@ -0,0 +1,62 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'test/unit'
4
+ require 'fileutils'
5
+ require 'rake'
6
+ require 'test/filecreation'
7
+
8
+ ######################################################################
9
+ class TestFileCreationTask < Test::Unit::TestCase
10
+ include Rake
11
+ include FileCreation
12
+
13
+ DUMMY_DIR = 'testdata/dummy_dir'
14
+
15
+ def setup
16
+ Task.clear
17
+ end
18
+
19
+ def teardown
20
+ FileUtils.rm_rf DUMMY_DIR
21
+ end
22
+
23
+ def test_file_needed
24
+ create_dir DUMMY_DIR
25
+ fc_task = Task[DUMMY_DIR]
26
+ assert_equal DUMMY_DIR, fc_task.name
27
+ FileUtils.rm_rf fc_task.name
28
+ assert fc_task.needed?, "file should be needed"
29
+ FileUtils.mkdir fc_task.name
30
+ assert_equal nil, fc_task.prerequisites.collect{|n| Task[n].timestamp}.max
31
+ assert ! fc_task.needed?, "file should not be needed"
32
+ end
33
+
34
+ def test_directory
35
+ directory DUMMY_DIR
36
+ fc_task = Task[DUMMY_DIR]
37
+ assert_equal DUMMY_DIR, fc_task.name
38
+ assert FileCreationTask === fc_task
39
+ end
40
+
41
+ def test_no_retriggers_on_filecreate_task
42
+ create_timed_files(OLDFILE, NEWFILE)
43
+ t1 = Rake.application.intern(FileCreationTask, OLDFILE).enhance([NEWFILE])
44
+ t2 = Rake.application.intern(FileCreationTask, NEWFILE)
45
+ assert ! t2.needed?, "Should not need to build new file"
46
+ assert ! t1.needed?, "Should not need to rebuild old file because of new"
47
+ end
48
+
49
+ def test_no_retriggers_on_file_task
50
+ create_timed_files(OLDFILE, NEWFILE)
51
+ t1 = Rake.application.intern(FileCreationTask, OLDFILE).enhance([NEWFILE])
52
+ t2 = Rake.application.intern(FileCreationTask, NEWFILE)
53
+ assert ! t2.needed?, "Should not need to build new file"
54
+ assert ! t1.needed?, "Should not need to rebuild old file because of new"
55
+ end
56
+
57
+ def test_very_early_timestamp
58
+ t1 = Rake.application.intern(FileCreationTask, OLDFILE)
59
+ assert t1.timestamp < Time.now
60
+ assert t1.timestamp < Time.now - 1000000
61
+ end
62
+ end
@@ -0,0 +1,139 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'test/unit'
4
+ require 'fileutils'
5
+ require 'rake'
6
+ require 'test/filecreation'
7
+
8
+ ######################################################################
9
+ class TestFileTask < Test::Unit::TestCase
10
+ include Rake
11
+ include FileCreation
12
+
13
+ def setup
14
+ Task.clear
15
+ @runs = Array.new
16
+ FileUtils.rm_f NEWFILE
17
+ FileUtils.rm_f OLDFILE
18
+ end
19
+
20
+ def test_file_need
21
+ name = "testdata/dummy"
22
+ file name
23
+ ftask = Task[name]
24
+ assert_equal name.to_s, ftask.name
25
+ File.delete(ftask.name) rescue nil
26
+ assert ftask.needed?, "file should be needed"
27
+ open(ftask.name, "w") { |f| f.puts "HI" }
28
+ assert_equal nil, ftask.prerequisites.collect{|n| Task[n].timestamp}.max
29
+ assert ! ftask.needed?, "file should not be needed"
30
+ File.delete(ftask.name) rescue nil
31
+ end
32
+
33
+ def test_file_times_new_depends_on_old
34
+ create_timed_files(OLDFILE, NEWFILE)
35
+
36
+ t1 = Rake.application.intern(FileTask, NEWFILE).enhance([OLDFILE])
37
+ t2 = Rake.application.intern(FileTask, OLDFILE)
38
+ assert ! t2.needed?, "Should not need to build old file"
39
+ assert ! t1.needed?, "Should not need to rebuild new file because of old"
40
+ end
41
+
42
+ def test_file_times_old_depends_on_new
43
+ create_timed_files(OLDFILE, NEWFILE)
44
+
45
+ t1 = Rake.application.intern(FileTask,OLDFILE).enhance([NEWFILE])
46
+ t2 = Rake.application.intern(FileTask, NEWFILE)
47
+ assert ! t2.needed?, "Should not need to build new file"
48
+ preq_stamp = t1.prerequisites.collect{|t| Task[t].timestamp}.max
49
+ assert_equal t2.timestamp, preq_stamp
50
+ assert t1.timestamp < preq_stamp, "T1 should be older"
51
+ assert t1.needed?, "Should need to rebuild old file because of new"
52
+ end
53
+
54
+ def test_file_depends_on_task_depend_on_file
55
+ create_timed_files(OLDFILE, NEWFILE)
56
+
57
+ file NEWFILE => [:obj] do |t| @runs << t.name end
58
+ task :obj => [OLDFILE] do |t| @runs << t.name end
59
+ file OLDFILE do |t| @runs << t.name end
60
+
61
+ Task[:obj].invoke
62
+ Task[NEWFILE].invoke
63
+ assert ! @runs.include?(NEWFILE)
64
+ end
65
+
66
+ def test_existing_file_depends_on_non_existing_file
67
+ create_file(OLDFILE)
68
+ delete_file(NEWFILE)
69
+ file NEWFILE
70
+ file OLDFILE => NEWFILE
71
+ assert_nothing_raised do Task[OLDFILE].invoke end
72
+ end
73
+
74
+ # I have currently disabled this test. I'm not convinced that
75
+ # deleting the file target on failure is always the proper thing to
76
+ # do. I'm willing to hear input on this topic.
77
+ def ztest_file_deletes_on_failure
78
+ task :obj
79
+ file NEWFILE => [:obj] do |t|
80
+ FileUtils.touch NEWFILE
81
+ fail "Ooops"
82
+ end
83
+ assert Task[NEWFILE]
84
+ begin
85
+ Task[NEWFILE].invoke
86
+ rescue Exception
87
+ end
88
+ assert( ! File.exist?(NEWFILE), "NEWFILE should be deleted")
89
+ end
90
+
91
+ end
92
+
93
+ ######################################################################
94
+ class TestDirectoryTask < Test::Unit::TestCase
95
+ include Rake
96
+
97
+ def setup
98
+ rm_rf "testdata", :verbose=>false
99
+ end
100
+
101
+ def teardown
102
+ rm_rf "testdata", :verbose=>false
103
+ end
104
+
105
+ def test_directory
106
+ desc "DESC"
107
+ directory "testdata/a/b/c"
108
+ assert_equal FileCreationTask, Task["testdata"].class
109
+ assert_equal FileCreationTask, Task["testdata/a"].class
110
+ assert_equal FileCreationTask, Task["testdata/a/b/c"].class
111
+ assert_nil Task["testdata"].comment
112
+ assert_equal "DESC", Task["testdata/a/b/c"].comment
113
+ assert_nil Task["testdata/a/b"].comment
114
+ verbose(false) {
115
+ Task['testdata/a/b'].invoke
116
+ }
117
+ assert File.exist?("testdata/a/b")
118
+ assert ! File.exist?("testdata/a/b/c")
119
+ end
120
+
121
+ def test_directory_win32
122
+ desc "WIN32 DESC"
123
+ FileUtils.mkdir_p("testdata")
124
+ Dir.chdir("testdata") do
125
+ directory 'c:/testdata/a/b/c'
126
+ assert_equal FileCreationTask, Task['c:/testdata'].class
127
+ assert_equal FileCreationTask, Task['c:/testdata/a'].class
128
+ assert_equal FileCreationTask, Task['c:/testdata/a/b/c'].class
129
+ assert_nil Task['c:/testdata'].comment
130
+ assert_equal "WIN32 DESC", Task['c:/testdata/a/b/c'].comment
131
+ assert_nil Task['c:/testdata/a/b'].comment
132
+ verbose(false) {
133
+ Task['c:/testdata/a/b'].invoke
134
+ }
135
+ assert File.exist?('c:/testdata/a/b')
136
+ assert ! File.exist?('c:/testdata/a/b/c')
137
+ end
138
+ end
139
+ end