161 Commits

Author SHA1 Message Date
apainintheneck
b7d88225bb Added --changed option to "brew tests" dev cmd
This option allows the user to run tests on all
files that have been changed from the master
branch.
2022-04-19 09:53:45 -07:00
XuehaiPan
9ef52080e3 utils: extract common word "for" in reason 2021-11-23 23:59:09 +08:00
XuehaiPan
d749173adc utils: mark reason as keyword argument in ensure_formula_installed! 2021-11-23 23:31:22 +08:00
XuehaiPan
3376479e95 utils: add method ensure_formula_installed! 2021-11-23 22:48:39 +08:00
Mike McQuaid
41e94afda5
Fix brew style
Fixes for https://github.com/Homebrew/brew/pull/12152.

Extracted into a separate PR so this can be merged immediately.
2021-09-30 10:13:53 +01:00
Mike McQuaid
d490e2a9a7
Fix BuildPulse handling
- be more verbose with output to be clear when we're using/submitting to
  BuildPulse
- remove the duplicate BuildPulse submission step
2021-06-30 09:20:56 +01:00
Mike McQuaid
a4c2e0e1b3
Tweak BuildPulse/rspec-retry logic
BuildPulse is trying to find flaky tests for us but, given the previous
model of using `rspec-retry`, it would rarely find them. Instead, let's
try to always rerun `brew tests` multiple times, report to BuildPulse
each time (by moving the reporting logic into `brew tests`) and disable
`rspec-retry` when using BuildPulse.

While we're here, let's enable `rspec-retry` locally so we don't have
flaky tests biting maintainers/contributors there.
2021-06-29 12:43:47 +01:00
Jason Rudolph
e163eb8650
Enhance test suite to emit JUnit XML test reports
In preparation for detecting flaky tests with BuildPulse, this commit
sets up the rspec_junit_formatter gem to output JUnit XML reports of the
test suite, which is the format used by BuildPulse and various other
tooling that interprets test results.

Because the test suite uses the parallel_tests gem, this commit
incorporates some related changes to make all the parallel_tests gem and
the rspec_junit_formatter gem to cooperate with each other.

rspec_junit_formatter writes everything to a single XML file. That works
fine when there's only one process writing to the file. By default,
whatever process finishes last will write to the file and clobber the
output of all the other processes that wrote to the file. 🙈

To prevent this issue, the parallel_tests wiki recommends adding a
`.rspec_parallel` file to specify its RSpec options
(https://github.com/grosser/parallel_tests/wiki#with-rspec_junit_formatter----by-jgarber),
then the project can specify different files for each process to write
to like so:

  --format RspecJunitFormatter
  --out tmp/rspec<%= ENV['TEST_ENV_NUMBER'] %>.xml

However, prior to this commit, the Homebrew/brew test suite specified
its RSpec options via the command line. Unfortunately though, there's no
way (AFAICT) to set the equivalent of these options via the command
line:

  --format RspecJunitFormatter
  --out tmp/rspec<%= ENV['TEST_ENV_NUMBER'] %>.xml

So, we need to use a `.rspec_parallel` file to specify these options ☝️.

However, it appears that RSpec allows you to specify formatters _either_
in an options file (like `.rspec_parallel`) _or_ via command-line args.
But if you specify any formatters via command-line args, then all
formatters in the options file are ignored.  (I suspect that's somehow
related to this bit of code in rspec-core:
https://github.com/rspec/rspec-core/blob/v3.10.0/lib/rspec/core/configuration_options.rb#L64.)

With that in mind, in order to have the RspecJunitFormatter configured
 in `.rspec_parallel`, we need to move the other formatters into
 `.rpsec_parallel` as well, instead of passing them as command-line
 args. Therefore, this commit moves all the formatters into a
 `.rspec_parallel` file.
2021-06-21 13:14:18 -04:00
Bo Anderson
a06d136d2c
Move Sorbet gems into an optional group 2021-06-11 08:10:30 +01:00
hyuraku
a3063882e6 tests: fix a option bug 2021-04-08 20:23:50 +09:00
hyuraku
3c308aa031 create different tests log with each options 2021-04-06 09:38:37 +09:00
hyuraku
7fbe08e857 add a directory for test log 2021-04-03 19:03:35 +09:00
hyuraku
854b898856 change test log path 2021-04-03 18:45:46 +09:00
hyuraku
7f5a97d1f3 change directory for log 2021-04-03 18:45:46 +09:00
hyuraku
0ebc90ee67 cache paralell tests log on ci 2021-04-03 18:45:46 +09:00
Mike McQuaid
4fe86661ac
tests: cleanup user configuration. 2021-01-28 10:54:26 +00:00
Mike McQuaid
da94957b01
tests: verbose tests with --verbose or --debug.
The `VERBOSE_TESTS` variable was from cask and never gets set (and
is unset by `bin/brew`). Replace it with `HOMEBREW_VERBOSE_TESTS` and
set it by `--verbose` or `--debug`.

While we're here, remove an unneeded `VERBOSE` delete (as it's already
done by `bin/brew`).
2021-01-27 15:04:13 +00:00
Rylan Polster
d1f3e39b7b
Update commands to generate usage banner 2021-01-18 21:20:11 -05:00
Rylan Polster
da811373d3 Add named_args DSL for commands 2021-01-13 17:09:42 -05:00
Markus Reiter
f438fa98be Avoid reinstalling bundler in integration tests. 2020-11-30 20:52:27 +01:00
Mike McQuaid
74264b8582
Big Sur cleanup
Remove `HOMEBREW_BIG_SUR_TESTING` variable as it is no longer needed.
2020-11-18 10:15:53 +00:00
Markus Reiter
7904cfd122
Merge pull request #9183 from reitermarkus/fix-tests
Unset `HOMEBREW_BAT` in tests.
2020-11-18 08:06:58 +01:00
Markus Reiter
dfeb1b4d08 Unset HOMEBREW_BAT in tests. 2020-11-18 07:03:39 +01:00
Markus Reiter
f87c9c5dc4 Fix tests failing locally. 2020-11-18 05:54:42 +01:00
Markus Reiter
da9289eff0 Add more type signatures. 2020-11-13 12:26:36 +01:00
Markus Reiter
24ae318a3d Move type annotations into files. 2020-10-10 14:59:39 +02:00
Markus Reiter
d36df37099 Replace custom stubs with sorbet-runtime-stub. 2020-10-09 16:45:13 +02:00
Markus Reiter
4d8dcb1d81 Add RSpec formatter for Github Actions. 2020-09-07 23:50:44 +02:00
Markus Reiter
d4c2ffd705 Refactor CLI::Parser. 2020-07-31 15:07:17 +02:00
vidusheeamoli
4f1e9f44a1 set up byebug debugger 2020-05-18 16:28:43 +05:30
EricFromCanada
aea6d79d21 option parser: check for extra named args 2019-12-15 00:04:45 -05:00
EricFromCanada
8a8359cdd4 manpages: sentence rewording for readability
Use active voice when applicable, better verbs & adjectives, preposition usage, proper tense, etc.
2019-08-20 09:05:45 -04:00
Mike McQuaid
c4f72312ce
Fixup brew style failures. 2019-04-30 09:19:18 +01:00
Mike McQuaid
36dbad3922
Add frozen_string_literal to all files. 2019-04-20 13:27:36 +09:00
Mike McQuaid
e40b171127
Rename cli_parser to cli/parser. 2019-04-17 22:16:50 +09:00
EricFromCanada
fa6404e0f5 grammar fixes 2019-04-13 21:29:32 -04:00
Mike McQuaid
17f3ee1957
Improve Bundler cleanup
Rather than trying to be smart and doing this ourselves in `brew cleanup` let’s just installed Bundler somewhere it doesn’t try to clean itself up and use `bundle install --cleanup` when we need cleanup done.

Also, use `ohai` and `odie` when possible as they look nicer.
2019-02-27 14:02:46 +00:00
Mike McQuaid
97958410f4
dev-cmd/tests: improve parallel args naming. 2019-02-27 14:02:46 +00:00
Mike McQuaid
6b326f4465
Move all gems to vendor/bundle, remove vendor/bundle-standlone. 2019-02-21 16:34:20 +00:00
Markus Reiter
c74799fe8a
tests: Use system_command rather than popen_read
Co-Authored-By: sjackman <sjackman@gmail.com>
2019-02-20 11:33:00 -08:00
Shaun Jackman
cb0fe44af3 tests: Set environment variable USER if not set
These two tests fail if the enivornment variable USER is not set:

./test/utils/user_spec.rb:6 # User should eq nil
./test/utils/user_spec.rb:22 # User#gui? when the current user is in a
console session gui? should equal true
2019-02-20 09:38:29 -08:00
Mike McQuaid
bbea109926
dev-cmd: remove --help headers and tweak docs. 2019-01-30 21:39:28 +00:00
Mike McQuaid
eed1444d61
Update deprecations and cleanup
- Move `odeprecated` to `odisabled`
- Remove `odisabled`
- Enable automatic cleanup on install/reinstall/upgrade.
2019-01-23 21:57:40 +00:00
Mike McQuaid
efc3c0c4c0
Use bundle install in more places.
This provides a more consistent version for `rubocop` than relying on
`Homebrew.install_gem_setup_path!` (and we really want `brew style` to
provide consistent output).
2019-01-08 15:08:21 +00:00
Mike McQuaid
5b7404a0d2
Install Bundler <2.
Newer versions require the systems RubyGems to be updated.
2019-01-03 16:43:56 +00:00
Mike McQuaid
438939cea5
tests: delete HOMEBREW_INSTALL_CLEANUP for test consistency. 2018-12-30 20:05:29 +00:00
EricFromCanada
388781f6a7 dev-cmd/: remove colons from command specs.
These aren't needed when converting Parser-based help text to man page or Markdown formats.
Includes regenerated docs.
2018-10-19 13:12:55 -04:00
EricFromCanada
ddf057f3dd dev-cmd/: edit help text and descriptions. 2018-10-19 13:12:11 -04:00
Gautham Goli
a03d2e0cd1
man: Correct option synopsis 2018-10-03 19:49:46 +05:30
Gautham Goli
f60582ca48
man: Remove [] from command synopsis 2018-10-03 19:49:45 +05:30