diff options
| author | Jack Nagel | 2014-03-13 19:51:23 -0500 |
|---|---|---|
| committer | Jack Nagel | 2014-03-13 21:35:41 -0500 |
| commit | bc6e4a189491f0e3f911b879efec3e570029dd8e (patch) | |
| tree | 3a37c4f0a4575d6f1986f5b182e904f59f3255ff /Library/Homebrew/test/test_patch.rb | |
| parent | f36e676bc9e93c4c10d14b3e10e9e2f72bfb25db (diff) | |
| download | brew-bc6e4a189491f0e3f911b879efec3e570029dd8e.tar.bz2 | |
New patch implementation and DSL
This commit introduces a new patch implementation that supports
checksums and caching.
Patches are declared in blocks:
patch do
url ...
sha1 ...
end
A strip level of -p1 is assumed. It can be overridden using a symbol
argument:
patch :p0 do
url ...
sha1 ...
end
Patches can be declared in stable, devel, and head blocks. This form is
preferred over using conditionals.
stable do
# ...
patch do
url ...
sha1 ...
end
end
Embedded (__END__) patches are declared like so:
patch :DATA
patch :p0, :DATA
Patches can also be embedded by passing a string. This makes it possible
to provide multiple embedded patches while making only some of them
conditional.
patch :p0, "..."
Diffstat (limited to 'Library/Homebrew/test/test_patch.rb')
| -rw-r--r-- | Library/Homebrew/test/test_patch.rb | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/Library/Homebrew/test/test_patch.rb b/Library/Homebrew/test/test_patch.rb new file mode 100644 index 000000000..1cc1ac7af --- /dev/null +++ b/Library/Homebrew/test/test_patch.rb @@ -0,0 +1,52 @@ +require 'testing_env' +require 'patch' + +class PatchTests < Test::Unit::TestCase + def test_create_simple + patch = Patch.create(:p2) + assert_kind_of ExternalPatch, patch + assert patch.external? + assert_equal :p2, patch.strip + end + + def test_create_io + patch = Patch.create(:p0, StringIO.new("foo")) + assert_kind_of IOPatch, patch + assert !patch.external? + assert_equal :p0, patch.strip + end + + def test_create_io_without_strip + patch = Patch.create(StringIO.new("foo")) + assert_kind_of IOPatch, patch + assert_equal :p1, patch.strip + end + + def test_create_string + patch = Patch.create(:p0, "foo") + assert_kind_of IOPatch, patch + assert_equal :p0, patch.strip + end + + def test_create_string_without_strip + patch = Patch.create("foo") + assert_kind_of IOPatch, patch + assert_equal :p1, patch.strip + end + + def test_create_DATA + patch = Patch.create(:p0, :DATA) + assert_kind_of IOPatch, patch + assert_equal :p0, patch.strip + end + + def test_create_DATA_without_strip + patch = Patch.create(:DATA) + assert_kind_of IOPatch, patch + assert_equal :p1, patch.strip + end + + def test_raises_for_unknown_values + assert_raises(ArgumentError) { Patch.create(Object.new) } + end +end |
