diff options
Diffstat (limited to 'Library/Homebrew/test')
| -rwxr-xr-x | Library/Homebrew/test/mach/a.out | bin | 0 -> 25072 bytes | |||
| -rw-r--r-- | Library/Homebrew/test/mach/fat.dylib | bin | 0 -> 16452 bytes | |||
| -rw-r--r-- | Library/Homebrew/test/mach/i386.dylib | bin | 0 -> 4164 bytes | |||
| -rw-r--r-- | Library/Homebrew/test/mach/x86_64.dylib | bin | 0 -> 4176 bytes | |||
| -rw-r--r-- | Library/Homebrew/test/test_mach.rb | 140 |
5 files changed, 140 insertions, 0 deletions
diff --git a/Library/Homebrew/test/mach/a.out b/Library/Homebrew/test/mach/a.out Binary files differnew file mode 100755 index 000000000..18e0e982f --- /dev/null +++ b/Library/Homebrew/test/mach/a.out diff --git a/Library/Homebrew/test/mach/fat.dylib b/Library/Homebrew/test/mach/fat.dylib Binary files differnew file mode 100644 index 000000000..6886a6a8b --- /dev/null +++ b/Library/Homebrew/test/mach/fat.dylib diff --git a/Library/Homebrew/test/mach/i386.dylib b/Library/Homebrew/test/mach/i386.dylib Binary files differnew file mode 100644 index 000000000..0304dca01 --- /dev/null +++ b/Library/Homebrew/test/mach/i386.dylib diff --git a/Library/Homebrew/test/mach/x86_64.dylib b/Library/Homebrew/test/mach/x86_64.dylib Binary files differnew file mode 100644 index 000000000..781b41cb4 --- /dev/null +++ b/Library/Homebrew/test/mach/x86_64.dylib diff --git a/Library/Homebrew/test/test_mach.rb b/Library/Homebrew/test/test_mach.rb new file mode 100644 index 000000000..2da4e429a --- /dev/null +++ b/Library/Homebrew/test/test_mach.rb @@ -0,0 +1,140 @@ +require 'testing_env' + +require 'extend/ARGV' # needs to be after test/unit to avoid conflict with OptionsParser +ARGV.extend(HomebrewArgvExtension) + +class MachOPathnameTests < Test::Unit::TestCase + def test_fat_dylib + pn = Pathname.new("#{TEST_FOLDER}/mach/fat.dylib") + assert pn.universal? + assert !pn.i386? + assert !pn.x86_64? + assert !pn.ppc7400? + assert !pn.ppc64? + assert pn.dylib? + assert !pn.mach_o_executable? + assert !pn.text_executable? + assert pn.arch == :universal + assert_match /Mach-O (64-bit )?dynamically linked shared library/, + `/usr/bin/file -h '#{pn}'`.chomp + end + + def test_i386_dylib + pn = Pathname.new("#{TEST_FOLDER}/mach/i386.dylib") + assert !pn.universal? + assert pn.i386? + assert !pn.x86_64? + assert !pn.ppc7400? + assert !pn.ppc64? + assert pn.dylib? + assert !pn.mach_o_executable? + assert !pn.text_executable? + assert_match /Mach-O (64-bit )?dynamically linked shared library/, + `/usr/bin/file -h '#{pn}'`.chomp + end + + def test_x86_64_dylib + pn = Pathname.new("#{TEST_FOLDER}/mach/x86_64.dylib") + assert !pn.universal? + assert !pn.i386? + assert pn.x86_64? + assert !pn.ppc7400? + assert !pn.ppc64? + assert pn.dylib? + assert !pn.mach_o_executable? + assert !pn.text_executable? + assert_match /Mach-O (64-bit )?dynamically linked shared library/, + `/usr/bin/file -h '#{pn}'`.chomp + end + + def test_mach_o_executable + pn = Pathname.new("#{TEST_FOLDER}/mach/a.out") + assert pn.universal? + assert !pn.i386? + assert !pn.x86_64? + assert !pn.ppc7400? + assert !pn.ppc64? + assert !pn.dylib? + assert pn.mach_o_executable? + assert !pn.text_executable? + assert_match /Mach-O (64-bit )?executable/, + `/usr/bin/file -h '#{pn}'`.chomp + end + + def test_non_mach_o + pn = Pathname.new("#{TEST_FOLDER}/tarballs/testball-0.1.tbz") + assert !pn.universal? + assert !pn.i386? + assert !pn.x86_64? + assert !pn.ppc7400? + assert !pn.ppc64? + assert !pn.dylib? + assert !pn.mach_o_executable? + assert !pn.text_executable? + assert pn.arch == :dunno + assert_no_match /Mach-O (64-bit )?dynamically linked shared library/, + `/usr/bin/file -h '#{pn}'`.chomp + assert_no_match /Mach-O [^ ]* ?executable/, + `/usr/bin/file -h '#{pn}'`.chomp + end +end + +class TextExecutableTests < Test::Unit::TestCase + TMPDIR = HOMEBREW_PREFIX/'tmp' + + def setup + FileUtils.mkdir_p TMPDIR + end + + def test_simple_shebang + pn = Pathname.new('foo') + pn.write '#!/bin/sh' + assert !pn.universal? + assert !pn.i386? + assert !pn.x86_64? + assert !pn.ppc7400? + assert !pn.ppc64? + assert !pn.dylib? + assert !pn.mach_o_executable? + assert pn.text_executable? + assert_equal [], pn.archs + assert pn.arch == :dunno + assert_match /text executable/, `/usr/bin/file -h '#{pn}'`.chomp + end + + def test_shebang_with_options + pn = Pathname.new('bar') + pn.write '#! /usr/bin/perl -w' + assert !pn.universal? + assert !pn.i386? + assert !pn.x86_64? + assert !pn.ppc7400? + assert !pn.ppc64? + assert !pn.dylib? + assert !pn.mach_o_executable? + assert pn.text_executable? + assert_equal [], pn.archs + assert pn.arch == :dunno + assert_match /text executable/, `/usr/bin/file -h '#{pn}'`.chomp + end + + def test_malformed_shebang + pn = Pathname.new('baz') + pn.write '#! ' + assert !pn.universal? + assert !pn.i386? + assert !pn.x86_64? + assert !pn.ppc7400? + assert !pn.ppc64? + assert !pn.dylib? + assert !pn.mach_o_executable? + assert !pn.text_executable? + assert_equal [], pn.archs + assert pn.arch == :dunno + assert_match /text executable/, `/usr/bin/file -h '#{pn}'`.chomp + end + + def teardown + TMPDIR.rmtree + end +end |
