Commit Graph

525 Commits

Author SHA1 Message Date
Frederico Benevides a3cbde0bb3 Fixed the cli to include --skip-cask-deps to skip all casks dependencies 2016-06-03 21:09:19 -04:00
Claudia d10d2c8f7e Fix deadlock in `Hbc::SystemCommand` (#21665)
* Write failing tests for issue #18638

* Fix `Hbc::SystemCommand` to avoid deadlocks; ref #18638

The current implementation of `Hbc::SystemCommand` uses the `Open3` library in a way that causes a deadlock in cases where `STDERR` grows beyond a certain size.

This commit fixes the issue by following the practice suggested in the Ruby documentation, i. e. choosing a stream selection method that avoids deadlocks.
2016-06-03 21:01:34 -04:00
Matt Wean 47383169de [WIP] Change artifact behavior to moving instead of symlinking (#13966)
* Change app artifact to move instead of link

First step towards change in installation behavior mentioned in [13201]

* Fix handling of binaries linked from inside of app bundles

Also adds `appdir` method for interpolation in stanzas

* Change appdir to root Applications directory

* Update 2-app tests

* Refactor: add options, ivars to `Installer`, `Download`

In preparation for upcoming changes, this commit cleans up some code. The commit includes:

- In order to reduce unnecessary object passing, make both the `force` and `skip_cask_deps` option into instance variables of the `Installer` class

- Introduce options hashes to initializers of both the `Installer` and `Download` class

- When the `install --force` command enters the fetch phase, make it explicit in the code that fetching is never enforced in that case.

- Update tests

* Force overwrite artifacts on `--force` reinstall

This commit changes the behavior of a `Moved` artifact such that if the target already exists, `brew cask install --force` will remove the existing target before moving the staged artifact.

In that case, the warning message will say *overwriting* instead of *not moving*.

The behavior of plain `brew cask install` remains unchanged; the same goes for the warning message for that case.

* Change remaining artifacts to move instead of symlink

* Update casks to use appdir in binary paths

* Forcibly overwrite artifacts, modifying flags and using `sudo` if needed

- This commit implements [the proposed behavior for `install --force`](https://github.com/caskroom/homebrew-cask/pull/13966#issuecomment-220830387) when a target already exists and has either permission problems or is not owned by the user.

- The changes apply only when the `force` option is given.

- Reused the existing safeguard from the `.pkg` artifact to prevent deleting important directories by bug or mistake

- The two existing blacklists `SYSTEM_DIRS` and `UNDELETABLE_DIRS` have been consolidated into the `Hbc::MacOS` module.

- `UNDELETABLE_DIRS` now also contains all the entries from `SYSTEM_DIRS` which was a to-do anyway.

- The two blacklists are now also frozen for good measure.

- The utility method `permissions_rmtree` was moved to `Hbc::Utils`.

- The `tried_permissions` part in `Utils` now falls back correctly when there are also ownership issues at the same time.

- Introduced a separate `current_user` method for mocking.

- Added an optional feature to `FakeSystemCommand` so it can now act as a proxy to `SystemCommand`.

- Added tests for various `permissions_rmtree` cases.
2016-05-31 15:23:21 -04:00
Josh Hagins 6e24680086 Require target for generic artifact (#21549)
* Require target for generic artifact

* Add audit check for generic artifacts
2016-05-31 07:30:08 -04:00
Josh Hagins 17dbe16236 Include informative messages when skipping tests 2016-05-26 15:43:20 -04:00
Aditya Dalal b875470889 Revert "layout_test.rb: Add vendor to ignored dirs" (#21344) 2016-05-20 23:40:44 -04:00
Aditya Dalal fdd497d2cb layout_test.rb: Add vendor to ignored dirs (#20972)
Add `vendor` to ignore dirs, allowing tests to pass
2016-05-04 09:28:14 -04:00
Tom Janson 56279abb27 fix whitespace in caveats test cask
as mentioned in #1876
2016-04-02 15:13:42 -04:00
Aditya Dalal a7a5c21d20 Allow .github as a top level directory
Fixes failing tests
2016-04-02 14:45:32 -04:00
Steven Willis eeaac15b5d Fix argument separator passed to chmod
* Place argument separator '--' before all arguments to chmod where it had
   been incorrectly placed after the permissions argument.
 * The separator should be after any options (like '-R' or '-N') but before
   any permissions, even when they look like options, like '-r'.
 * Add '--' to calls to chmod where it was missing for consistency.
2016-03-08 11:53:29 -05:00
Josh Hagins b0f91f49db Merge pull request #17279 from jawshooah/fix-optionparser-help
Intercept --help flag, treat as help cmd
2016-01-19 00:42:53 -05:00
Josh Hagins b307a87b4e Use Ruby 1.9 hash syntax in test casks 2016-01-17 22:27:13 -05:00
Josh Hagins 003bbb14ba Intercept --help flag, treat as help cmd 2016-01-17 22:09:49 -05:00
Josh Hagins d6ef018d3d Ignore .rubocop.yml in Casks directory 2016-01-16 18:19:31 -05:00
Josh Hagins dfe5cc2a04 Symlink to base Casks .rubocop.yml in test cask directories 2016-01-16 18:19:30 -05:00
Josh Hagins ca8b390443 Replace `full_name` with `name`
Casks are no longer classes, so there's no conflict for `name` anymore
2016-01-06 10:33:03 -05:00
Josh Hagins 99c96c0fc1 Fix tests broken by changing casks from classes to instances 2016-01-06 10:33:03 -05:00
Vítor Galvão 4e66a8418f Merge pull request #16390 from vitorgalvao/fix-broken-test
fix partial matches test
2016-01-05 21:33:46 +00:00
Vítor Galvão 552f717c42 fix partial matches 2016-01-05 18:37:27 +00:00
Josh Hagins 07c5266e54 Use all-caps TODO in generated comment for license :unknown 2016-01-05 01:37:51 -05:00
Josh Hagins 5ade99688c Ensure all casks with 'license :unknown' have TODO comments 2016-01-05 01:22:41 -05:00
Josh Hagins 89242ea150 Merge pull request #16368 from jawshooah/error-suggestions
Improve error message suggestions
2016-01-05 01:04:28 -05:00
Josh Hagins 3058ed94ab Print error message with suggestions if header parse failed 2016-01-04 17:40:51 -05:00
Josh Hagins 0c548100fd Reorganize rake testing tasks
* Move 'rspec' and 'minitest' tasks under the 'test' namespace
* Create separate 'coverage' task for generating coverage reports
  from tests
2016-01-04 16:59:13 -05:00
Josh Hagins 2f95d5717c Disable LiteralInCondition cop for with-conditional-caveats test cask 2016-01-04 05:26:12 -05:00
Josh Hagins 36e915b826 Apply RuboCop to test casks 2016-01-04 05:26:11 -05:00
Josh Hagins e1e13497c3 Implement uninstall_test refactorings in zap_test 2016-01-03 16:29:09 -05:00
Josh Hagins 0e9660d67c Add tests for uninstall :signal 2016-01-03 16:29:09 -05:00
Josh Hagins f186f86082 Remove redundant tests 2016-01-03 16:29:09 -05:00
Josh Hagins fd717965e5 Extract tests specific to uninstall :login_item 2016-01-03 16:29:09 -05:00
Josh Hagins b4774934a8 Add tests for uninstall :trash 2016-01-03 16:29:09 -05:00
Josh Hagins b63baa8e1f Extract tests specific to uninstall :script and :early_script 2016-01-03 16:29:09 -05:00
Josh Hagins 606d0da394 Make uninstall_early_script delegate to uninstall_script 2016-01-03 16:29:09 -05:00
Josh Hagins 8bd88ecec8 Extract tests specific to uninstall :rmdir 2016-01-03 16:29:09 -05:00
Josh Hagins 096a2fbc0f Extract tests specific to uninstall :delete 2016-01-03 16:29:09 -05:00
Josh Hagins 970a221def Teach sudo helper to flatten argument list 2016-01-03 16:29:09 -05:00
Josh Hagins c1bb87e2ac Extract tests specific to uninstall :quit 2016-01-03 16:29:09 -05:00
Josh Hagins fd9650d875 Extract tests specific to uninstall :kext 2016-01-03 16:29:09 -05:00
Josh Hagins b1fccc4ee7 Extract tests specific to uninstall :pkgutil 2016-01-03 16:29:09 -05:00
Josh Hagins 6f115757ed Extract tests specific to uninstall :launchctl 2016-01-03 16:29:09 -05:00
Josh Hagins ba88ea2a70 Clean up uninstall_test.rb 2016-01-03 16:29:09 -05:00
Josh Hagins 97ec11fb58 Add `sudo` test helper to prepend command args with `/usr/bin/sudo -E --` 2016-01-03 16:29:09 -05:00
Josh Hagins b4c8ac8e87 Ensure user's HOMEBREW_CASK_OPTS has no effect on tests 2016-01-02 14:43:47 -05:00
Josh Hagins 7cbe4262b3 Add Hbc::DSL::Version wrapper class 2015-12-31 12:06:16 -05:00
Josh Hagins 54ee86afa0 Extract travis build logic into scripts 2015-12-31 02:54:22 -05:00
Josh Hagins 77377bda2c Fix with-suite test cask header 2015-12-28 18:16:14 -05:00
Vítor Galvão 7f6949cb02 tests: reduce spacing in unknown license comment 2015-12-28 16:01:04 +00:00
Josh Hagins cd80f86afb Colorize minitest output with minitest-reporters gem 2015-12-27 23:20:54 -05:00
Josh Hagins 8c0d54a71a Add name to test cask with-suite 2015-12-27 19:06:58 -05:00
Tommy Sparber 18f1402dc1 Switch to HTTPS for 360 Casks
Every changed URL was reachable using valid HTTPS and returned a
StatusCode of 200.
2015-12-27 10:11:04 +11:00