469 Commits

Author SHA1 Message Date
Adam Vandenberg
f4f54b79b7 Skip test on Xcode only systems 2013-06-26 09:45:32 -07:00
Jack Nagel
783f29fccb Uniqify tags when merging dependencies 2013-06-25 10:12:14 -05:00
Jack Nagel
553b1a0dbb Requirement: callers are responsible for invoking #satisfied?
This hack was necessary since requirements were not checked again
in the forked build process, but now they are, and calling it again
after the build environment has been set up can produce incorrect
results. In fact, if it happens to return false the second time,
the env modification will be skipped altogether.
2013-06-24 10:42:43 -05:00
Jack Nagel
59e6249862 Actually make the assertion we care about 2013-06-24 08:52:41 -05:00
Jack Nagel
6b5e73a2c3 Copy env_proc when merging deps 2013-06-24 08:52:41 -05:00
Jack Nagel
d6929f96a5 Use OkJson directly 2013-06-22 21:34:03 -05:00
Jack Nagel
083b3c84d0 Add Utils::JSON to wrap the JSON implementation 2013-06-22 21:34:02 -05:00
Jack Nagel
c4272a25cc Homebrew has an actual license, remove stale comment 2013-06-22 15:01:59 -05:00
Mike McQuaid
c59800011a Don't use cats in bottle tag tests (thanks 10.9). 2013-06-22 11:13:59 +01:00
Mike McQuaid
01e5e428eb perforce: add version detection regex. 2013-06-20 13:07:59 +01:00
Jack Nagel
e9d245cf3a Avoid unnecessary float to string conversion 2013-06-15 10:13:20 -05:00
Jack Nagel
2e2d922190 Run tests under actual OS version 2013-06-14 19:19:26 -05:00
Jack Nagel
50db35e5d3 Use Hardware::CPU module 2013-06-14 10:34:17 -05:00
Jack Nagel
0f314f9808 Remove unused variable 2013-06-12 17:25:29 -05:00
Jack Nagel
fdaea3189d Check method existence rather than Ruby version 2013-06-11 17:05:44 -05:00
Jack Nagel
784c9670f1 Add failing test for a misdetected version 2013-06-10 14:55:23 -05:00
Misty De Meo
c9c5e56363 Add :ld64 dependency
This allows formulae which won't build with Tiger's ld to conditionally
request a dependency on the ld64 formula. This modifies the build
environment appropriately, and will only be active on Tiger.
2013-06-08 19:10:38 -05:00
Jack Nagel
8cb861c695 Merge repeated deps with differing options
When expanding dependencies, repeated deps are treated as equal and all
but the first are discarded when #uniq is called on the resulting array.
However, they may have different sets of options attached, so we cannot
assume they are the same.

After the initial expansion, we group them by name and then create a new
Dependency object for each name, merging the options from each group.

Fixes Homebrew/homebrew#20335.
2013-06-08 12:23:15 -05:00
Jack Nagel
80745a97e2 Add Enumerable#group_by 2013-06-08 12:23:14 -05:00
Jack Nagel
3d66808c0e test_dependency_expansion: dep names should always be strings 2013-06-07 21:54:27 -05:00
Jack Nagel
e5ee7d59f5 Fix failing test 2013-06-07 20:57:07 -05:00
Jack Nagel
79a769215f Decouple bottle tags from MacOS.cat 2013-06-06 16:02:27 -05:00
Jack Nagel
28acfbba51 Improve tokenization of version strings
Tokens like "b4", "beta1", "p195", &c. are now treated as atoms rather
than being broken down even further. Additionally, we enable support for
padding in the middle of versions strings, so we can successfully
compare something like "2.1-p195" with "2.1.0-p194" by inferring that
"2.1" is really "2.1.0".

This fixes the comparison "9.9.3-P1" > "9.9.3" which previously has not
been handled correctly.
2013-06-05 22:03:58 -05:00
Jack Nagel
1deeb1c7ef Add failing test for patchlevel version comparisons 2013-06-05 10:06:37 -05:00
Jack Nagel
b97b013fce Extract attr_rw from Formula for reuse
Closes Homebrew/homebrew#20239.
2013-06-04 11:06:18 -05:00
Jack Nagel
873d9766ae Allow explicit conversion of requirements to deps
Fixes Homebrew/homebrew#19857.
2013-06-03 16:52:00 -05:00
Jack Nagel
7995363771 Remove empty test file
This breaks my test runner in weird ways.
2013-06-03 15:05:00 -05:00
Samuel John
c524895666 Python 2.x and 3.x support
New `depends_on :python` Dependency.
New `depends_on :python3` Dependency.

To avoid having multiple formulae with endings -py2 and -py3,
we will handle support for different pythons (2.x vs. 3.x)
in the same formula.
Further brewed vs. external python will be transparently supported.

The formula also gets a new object `python`, which is false if
no Python is available or the user has disabled it. Otherwise
it is defined and provides several support methods:

python.site_packages # the site-packages in the formula's Cellar
python.global_site_packages
python.binary # the full path to the python binary
python.prefix
python.version
python.version.major
python.version.minor
python.xy # => e.g. "python2.7"
python.incdir # includes of python
python.libdir # the python dylib library
python.pkg_config_path # used internally by brew
python.from_osx?
python.framework?
python.universal?
python.pypy?
python.standard_caveats # Text to set PYTHONPATH for python.from_osx?
python.if3then3 # => "" for 2.x and to "3" for 3.x.

Further, to avoid code duplication, `python` takes an optional
block that is run twice if the formula defines depends_on
:python AND :python3.

python do
  system python, 'setup.py', "--prefix=#{prefix}"
end

Read more in the Homebrew wiki.
2013-06-03 17:29:43 +02:00
Jack Nagel
a886a1b3e3 test_mach: move helper method out of global namespace 2013-06-01 19:40:26 -05:00
Jack Nagel
41af459205 Require hardware where it is needed 2013-06-01 19:38:48 -05:00
Jack Nagel
8407ad2356 Add tests for Formula#installed_prefix 2013-05-25 17:19:19 -05:00
Jack Nagel
4adecd73b6 tests: extract common formula helper 2013-05-25 17:19:18 -05:00
Jack Nagel
0147ac70c6 Fix CompilerSelector tests on systems that have gcc 4.0 2013-05-21 22:44:23 -05:00
Misty De Meo
4fdbb2d685 CompilerSelector: raise when no compatible compiler
This replaces the old behaviour of falling back to the original
compiler with no messaging.

Fixes Homebrew/homebrew#19170.
Fixes mistydemeo/tigerbrew#45.
2013-05-20 23:25:15 -05:00
Jack Nagel
863d2b253a Add test for ARGV.flag? 2013-05-20 22:34:53 -05:00
Jack Nagel
e0c4fd5b72 test_keg: reduce noise by including FileUtils 2013-05-14 16:29:36 -05:00
Jack Nagel
cf2b0f88e6 test_keg: make mode an ivar 2013-05-14 16:29:36 -05:00
Jack Nagel
2d93935e6a Add type accessors to Dependencies 2013-05-10 23:45:06 -05:00
Jack Nagel
12f4ccd7f3 Refactor Dependency.expand 2013-05-10 23:45:05 -05:00
Jack Nagel
3be67f7252 Reorganize compat 2013-05-10 23:27:28 -05:00
Desmond Brand
ba93e6d363 Overwrite broken symlinks with --overwrite
Closes Homebrew/homebrew#19480.

Signed-off-by: Misty De Meo <mistydemeo@gmail.com>
2013-05-09 09:21:34 -05:00
Jack Nagel
b322020338 Reduce allocations in dependency construction
By always passing around a single, unnested array rather than splatting
and then defensively flattening and compacting things, we can avoid
allocating a bunch of unnecessary arrays. This gives a performance boost
of roughly 4% when enumerating 2500 formulae, and has the side effect of
cleaning up the dependency API.
2013-05-06 16:08:50 -05:00
Jack Nagel
894a6c9776 TypeError is appropriate here 2013-05-06 16:08:49 -05:00
Jack Nagel
bffe090b21 Don't test error message
Now that we are testing for a custom exception type, we don't need to
make any assertion about the message.
2013-04-27 14:50:35 -05:00
Jack Nagel
9b5cb6cfb6 Allow brew versions to work with underspecified formulae 2013-04-27 14:44:48 -05:00
Mike McQuaid
17667c03d0 Add deps target to tests Rakefile for needed gems. 2013-04-26 22:32:26 +01:00
Jack Nagel
b7066b6e74 Add a couple more version tests 2013-04-24 15:02:05 -05:00
Jack Nagel
be32a3ee88 Split up big version detection test 2013-04-24 15:01:54 -05:00
Jack Nagel
3a0726406b Add tests for FormulaPin and simplify implementation 2013-04-16 01:58:11 -05:00
Jack Nagel
d504d50dcb Don't create MacOS.version multiple times 2013-04-15 16:04:35 -05:00