Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

resync #1

Open
wants to merge 194 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
194 commits
Select commit Hold shift + click to select a range
d70ee8f
Documentation `disable!` typo
Aug 4, 2021
ef07109
Allow access to `let_it_be` defined variables in after(:context)
cbarton Jul 30, 2021
d46ded4
feature: Add support for (process) parallelized tests to before_all f…
May 15, 2021
4d7eb36
fix: call deactivate on the correct before_all_executor for parallel …
Jun 25, 2021
f91c5c3
fix: deactivate before_all_executor after last test file per process
Jul 6, 2021
b338412
fix: fix Rubocop warning and before_all test cases
Jul 10, 2021
cd7e7fa
fix: check that Rails is present, i.e. the including class supports #…
Jul 14, 2021
cc6a844
Bump 1.0.7
palkan Aug 30, 2021
6bec4dc
upd: suggest using d3-flamegraph for stack_prof
palkan Sep 27, 2021
12cdc12
Update BACKERS.md
palkan Nov 9, 2021
7b89b54
style: rubocop upgrade
palkan Nov 11, 2021
2335ab5
Updates spec to confirm newlines work
sbader Dec 10, 2021
51c3abd
Adds functionality in sqlite and postgresql to support newlines
sbader Dec 10, 2021
25dbdf6
JRuby is cat friendly
headius Jan 7, 2022
bcddd55
spec: fix time helpers loading in Rails 7+
palkan Jan 11, 2022
09135ac
chore: add missing requires and use require instead of require_relative
palkan Feb 9, 2022
e47c9ee
fix(specs): kwargs -> hash for RubyProf::Profile.new stub
palkan Feb 9, 2022
98537da
Thanks @pennylane-hq!
palkan Feb 24, 2022
abcb7e7
Respect the printer on the configure block (#237)
grillermo-everlyhealth Feb 28, 2022
09fa3e5
restore the lock_thread value after rollback (#236)
cou929 Feb 28, 2022
78b0a50
Make defaults threadsafe
thewatts Mar 3, 2022
9a9922c
fix: revert rubocop fixture
palkan Mar 11, 2022
d394e47
Bump 1.0.8
palkan Mar 11, 2022
fd399f4
typo(changelog): unrealeased -> unreleased
palkan Mar 11, 2022
8a69b9b
feat: implement AnyFixture.before_reset and AnyFixture.after_reset
ruslanshakirov Mar 23, 2022
7fac159
chore: update docs and changelog
ruslanshakirov Mar 23, 2022
524d065
chore: rename AnyFixture callbacks
ruslanshakirov Mar 23, 2022
44b136b
lint: fix Layout/CaseIndentation offense
ruslanshakirov Mar 24, 2022
53eded1
fix: fix AnyFixture after_fixtures_reset spec
ruslanshakirov Mar 25, 2022
c9b6740
fix: raise meaningful error on a missing any fixture
palkan Apr 12, 2022
408e72c
Thank you, Charles! @charly
palkan Apr 12, 2022
f45fb41
Fix Postgres dump with ActiveRecord 6.1
markedmondson May 2, 2022
9720f70
Bump 1.0.9
palkan May 6, 2022
8becefe
fix option name
toydestroyer Jun 2, 2022
2b49a02
Thanks, @github!
palkan Jun 24, 2022
b35b4e0
Reset colors before newline
nate-at-gusto Aug 12, 2022
709e1b3
fix: style
palkan Aug 12, 2022
87a1b93
ci: upgrade jruby
palkan Aug 12, 2022
1768d8d
fix(tests): fabrication setup
palkan Aug 12, 2022
728cf0e
feat: improve logging
palkan Aug 12, 2022
e90f2d5
ci: add Ruby 3.1 and Rails 7
palkan Aug 12, 2022
dda8b4f
Bump 1.0.10
palkan Aug 12, 2022
417f040
Fix typo in event TestProf::EventProf code comment
splattael Sep 14, 2022
4c71360
don't overwrite saved lock_thread value in nested contexts
ygelfand Sep 19, 2022
8542567
changelog
ygelfand Sep 19, 2022
09e7859
Disable GC frames with TEST_STACK_PROF_IGNORE_GC=1
cbliard Oct 5, 2022
04d840c
ci: liche -> lychee
palkan Oct 27, 2022
a972a28
fix: stack_prof_spec
palkan Oct 27, 2022
35f9e3b
style: ignore md indentation
palkan Oct 27, 2022
a5d8d02
fix(event_prof): monitor methods with kwargs in Ruby 2.7+
palkan Oct 27, 2022
12b785a
ci: use latest jruby
palkan Oct 27, 2022
8c1b71b
Bump 1.0.11
palkan Oct 27, 2022
be5a3eb
feat(factory_default): allow skipping defaults
palkan Nov 26, 2022
4611b72
feat(factory_default): add preserve_attributes support
palkan Nov 26, 2022
03dacfb
refactor(factory_default): add configuration object
palkan Nov 26, 2022
1a67ad3
feat: make factory default before_all-compatible
palkan Nov 26, 2022
0faa354
feat(factory_default): add stats
palkan Nov 27, 2022
cacd8f5
feat(factory_default): per-trait defaults
palkan Nov 28, 2022
5d3502f
feat: add factory_default profiling
palkan Nov 28, 2022
9dd50b5
fix(factory_default): refind default records created outside of examples
palkan Nov 28, 2022
4a4ba70
fix: style
palkan Nov 28, 2022
f13ee70
fix(let_it_be): array-like records detection
palkan Nov 28, 2022
bc938cb
ci: jruby-9.3
palkan Nov 29, 2022
d5054b3
fix: freeze let_it_be objects on initialization
palkan Nov 29, 2022
74351b6
feat: add global before_all tags
maxshend Nov 25, 2022
0c47cd6
feat: add more specs for global before_all tags
maxshend Nov 29, 2022
620feaa
Bump 1.1.0
palkan Dec 6, 2022
153c102
chore(any_fixture): drop deprecated reporting_enabled
palkan Dec 6, 2022
18deb96
Fix typo
ursm Dec 7, 2022
a0a5285
Add support for multiple databases
rutgerw Nov 24, 2022
026faae
update before_all documentation
rutgerw Nov 28, 2022
bce283b
Use database adapter for retrieving connection
rutgerw Dec 2, 2022
b04553f
Use multiple databases
rutgerw Dec 20, 2022
14aef7a
Ensure ActiveRecord 5 is supported
rutgerw Dec 20, 2022
fa560f7
Run rspec with MULTI_DB=true for ActiveRecord 7 specs
rutgerw Dec 27, 2022
1aea7b3
Remove duplicate empty line
rutgerw Dec 27, 2022
0cb123d
Reset available connections when transaction is started
rutgerw Dec 27, 2022
28be359
fix(ci): install latest postgres
palkan Jan 4, 2023
7d0f838
fix: style
palkan Jan 4, 2023
7fb00f6
For multi db, use ApplicationRecord to create connection
rutgerw Jan 5, 2023
8e30fa3
Fix ArgumentError
rutgerw Jan 5, 2023
841dc69
feat: allow specifying let_it_be ivar prefix
palkan Feb 7, 2023
9334054
style: upd rubocop config
palkan Feb 7, 2023
1d01b2f
ci: add jobs timeout
palkan Feb 7, 2023
5cd75f1
changelog: fix links
palkan Feb 7, 2023
b4f702d
fix(specs): stuck postgres connections in before_all
palkan Feb 8, 2023
dadfe0b
Bump 1.2.0
palkan Feb 8, 2023
ff50404
fix: upgrade to ruby-prof 1.4+
palkan Mar 22, 2023
5701ad8
specs: add before_all + rails fixture spec
palkan Mar 22, 2023
deb83e6
ci: run tests against rspec-rails 4.x
palkan Mar 22, 2023
80e2324
fix: use RSpec.current_scope if available
palkan Mar 22, 2023
28a8f7f
fix(specs): set RAILS_ENV=test
palkan Mar 22, 2023
b34ebdb
ci: upgrade jruby gemfile to Rails 7
palkan Mar 22, 2023
f1790fe
fix(specs): use transactional tests with fixtures
palkan Mar 22, 2023
ae7b6db
changelog: setup_fixtures fix
palkan Mar 22, 2023
5d26319
Bump 1.2.1
palkan Mar 22, 2023
f82c22e
fix: rubocop compatibility
palkan Jun 20, 2023
ea1bdfb
feat: easily ignore pools which cannot cannot
bf4 Jun 16, 2023
7ac65ae
style: :cop:
palkan Jun 21, 2023
cff8245
chore: test against mysql
palkan Jun 21, 2023
3e13123
ci: increase jruby timeout
palkan Jun 26, 2023
2c32f4d
Bump 1.2.2
palkan Jun 27, 2023
dbf4169
chore: Change "haven's" to "haven't" in warning messages.
ramblex Jul 3, 2023
17d674d
chore: extract test_prof/core.rb
palkan Jul 11, 2023
4203616
fix: set ruby-prof measure mode via Profile
palkan Sep 12, 2023
4505ac7
fix: Minitest::Unit becomes ancient
palkan Sep 12, 2023
095edc3
style: upgrade rubocop
palkan Sep 12, 2023
bd8502e
Bump 1.2.3
palkan Sep 12, 2023
bda0d76
Rename FactoryGirl to FactoryBot in AnyFixture Docs
Samsinite Nov 2, 2023
ffd4729
ci: use Rails 7.0 with JRuby
palkan Nov 3, 2023
2c8ff66
fix(before_all): select connections with :writing role only
palkan Nov 3, 2023
34c63c1
docs: playbook
palkan Nov 14, 2023
049b577
forspell: upd
palkan Nov 14, 2023
f2bf816
fix(docs): rb -> sh
palkan Nov 14, 2023
2666957
ci: migrate docs-lint to anycable action
palkan Nov 14, 2023
51376f6
fix(docs): indent style in playbook
palkan Nov 14, 2023
0ae6814
fix(style): more md and spell fixes
palkan Nov 14, 2023
67eeb49
Introduce MemoryProf for detecting test examples that cause memory sp…
vankiru Sep 26, 2023
5ded8f9
docs: memory prof
palkan Nov 14, 2023
37770c2
fix: guard negative numbers in exponent
palkan Nov 14, 2023
3dfe1cf
docs: merge stack_prof/ruby_prof pages into a single ruby profilers page
palkan Nov 14, 2023
df15a58
feat: vernier integration
palkan Nov 15, 2023
fea6c5c
docs: sponsor link
palkan Nov 15, 2023
91095d4
Bump 1.3.0
palkan Nov 21, 2023
0a7e82c
docs: update resources
palkan Nov 22, 2023
f761495
docs: update coggle image
palkan Nov 23, 2023
55629e4
FactoryProf results to a JSON file
uzushino Dec 6, 2023
506aaad
Update CHANGELOG.md
uzushino Dec 6, 2023
4a2bde1
Fix lint
uzushino Dec 6, 2023
2861592
Update factory_prof.md
uzushino Dec 12, 2023
02d8f35
Bump 1.3.1
palkan Dec 12, 2023
a98edb5
Add Minitest support to TagProf (#283)
lioneldebauge Mar 7, 2024
23b516f
ci: upgrade (add Ruby 3.3, update lint workflow)
palkan Mar 7, 2024
bd7027e
Bump 1.3.2
palkan Mar 8, 2024
6c8f17a
refactor: avoid using activesupport's present? method
ngarbezza Apr 15, 2024
531a4d1
fix: use stable ids in memprof tracker
palkan Apr 18, 2024
6397746
ci: fix sqlite3 version
palkan Apr 18, 2024
8e30a1f
fix: memprof print 0 rss %
palkan Apr 18, 2024
a52da81
ci: add release job
palkan Apr 19, 2024
3593d3e
Bump 1.3.3
palkan Apr 19, 2024
98323b9
docs: use absolute paths for assets
palkan Apr 29, 2024
95eb073
fix(docs): use HTML for asset images
palkan Apr 30, 2024
0d30e99
docs: add helvetic talk to resources
palkan May 7, 2024
cdf4b82
docs: add mastodon to users
palkan May 7, 2024
545464e
fix: make minitest sampling work
palkan May 8, 2024
6575956
refactor: minitest sampling
palkan May 8, 2024
4ffe217
add threshold config parameter for FactoryProf (#294)
lHydra May 22, 2024
29e6ac8
add hooks parameter to vernier (#295)
lHydra May 23, 2024
ff76320
fix: handle Timecop patching Process.clock_gettime
palkan Jun 4, 2024
2284816
add report_duplicates config option for let_it_be
May 17, 2024
dcb835c
remove excess memoization & change setter logic
lHydra Jun 5, 2024
f1ee78b
track traits and overrides with FactoryProf
May 19, 2024
a7ff4ee
fix spec
lHydra Jun 3, 2024
1fb2ed5
make factory_prof variations opt-in
palkan Jun 5, 2024
ac88eb8
Add FactoryBot.get_factory_default
john-h-k Feb 8, 2023
7b2356c
Fixes
john-h-k Feb 8, 2023
f29ef96
Improve set_factory_default/get_factory_default
palkan Jun 5, 2024
f4353b9
chore: drop Ruby <2.7 and Rails <6 support
palkan Jun 5, 2024
58f38d0
tests: test database state after before_all
palkan Jun 6, 2024
8fe54fa
tests: add before_all + fixtures + threads examples
palkan Jun 6, 2024
c390478
chore: ActiveRecord 7.2 compatibility
palkan Jun 6, 2024
2209fd7
chore: upgrade before_all to use upcoming pinning API
palkan Jun 8, 2024
78880ba
ci: test Rails 7.2 against stable branch for now
palkan Jun 8, 2024
1b76204
Bump 1.4.0.rc.1
palkan Jun 13, 2024
b891e72
style: fix new rubocop offense
palkan Jun 29, 2024
0259a76
Fixed typo in documentation about factory default
iwdt Jul 14, 2024
9ab4368
feat: factory default for fabrication
palkan Jul 23, 2024
1a2edc5
Bump 1.4.0.rc.2
palkan Jul 23, 2024
0e7968b
feat: add tps profiler
palkan Jul 25, 2024
e730216
fix: ensure factory_bot is required in factory_default patch
palkan Jul 25, 2024
1eebcbb
Bump 1.4.0.rc.3
palkan Jul 25, 2024
ab7c9aa
feat: add no boot profiling mode for RubyProf
palkan Jul 26, 2024
643ac6a
fix(factory_prof): consider threshold for variations; add empty varia…
palkan Jul 26, 2024
065ca24
Bump 1.4.0.rc.4
palkan Jul 26, 2024
b428807
feat(any_fixture): refind by default, disable cache when clean
palkan Aug 1, 2024
18c0433
forspell: refind
palkan Aug 1, 2024
3b4c463
docs: add RailsConf workshop links
palkan Aug 7, 2024
d4d8bab
Bump 1.4.0
palkan Aug 12, 2024
bc95266
fix: isolator integration
palkan Aug 12, 2024
f9b5743
fix: multi db before_all tests
palkan Aug 12, 2024
2b1e745
Typo (EVEN_PROF_STAMP => EVENT_PROF_STAMP)
mculp Aug 23, 2024
87858b7
fix: dont load active record connection in dry-run
devinburnette Aug 20, 2024
07f6204
tests: add dry-run integration test
palkan Aug 23, 2024
56bf28e
style: use 2.7 in .rubocop.yml
palkan Aug 23, 2024
e6a3483
fix: ignore scopes in #refind
palkan Sep 3, 2024
7d18051
fix(ci): use latest factory_bot with rails master
palkan Sep 3, 2024
d722d9f
fix: active_support vs. factory_bot
palkan Sep 3, 2024
830e454
Bump 1.4.2
palkan Sep 3, 2024
83971c9
Migrates to rubocop v1
aseroff Oct 15, 2024
95d3c7f
changelog entry, revert change made to get rubocop to pass
aseroff Oct 15, 2024
b19f5b9
style: rubocop
palkan Oct 23, 2024
deb2a04
backers: @Jwaterhouse052
palkan Dec 2, 2024
c73b64d
fix: handle new connection pools in before_all
palkan Dec 14, 2024
dc3a0f6
Bump 1.4.3
palkan Dec 18, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
chore: test against mysql
palkan committed Jun 27, 2023
commit cff8245acf23540f88ca67810a919d65bc614c4f
51 changes: 30 additions & 21 deletions .github/workflows/rspec.yml
Original file line number Diff line number Diff line change
@@ -13,13 +13,24 @@ jobs:
env:
BUNDLE_JOBS: 4
BUNDLE_RETRY: 3
BUNDLE_GEMFILE: ${{ matrix.gemfile }}
CI: true
POSTGRES_URL: postgres://postgres:postgres@localhost:5432
MYSQL_URL: mysql2://rails:rails@127.0.0.1:3306
DB: ${{ matrix.db }}
MULTI_DB: ${{ matrix.multi_db }}
# Use postgres for all DB to avoid dealing with PG db creation
DB_NAME: postgres
strategy:
fail-fast: false
matrix:
ruby: [2.7]
gemfile: ["gemfiles/activerecord6.gemfile"]
db: ["postgres"]
include:
- ruby: 3.2
gemfile: "gemfiles/railsmaster.gemfile"
db: "mysql"
- ruby: 3.1
gemfile: "gemfiles/activerecord7.gemfile"
db: "sqlite"
@@ -31,6 +42,7 @@ jobs:
- ruby: 3.0
gemfile: "gemfiles/activerecord6.gemfile"
db: "sqlite"
db_url: ~
- ruby: 3.0
gemfile: "gemfiles/rspecrails4.gemfile"
db: "sqlite"
@@ -57,33 +69,30 @@ jobs:
--health-interval 10s
--health-timeout 5s
--health-retries 5
mysql:
image: mysql:8
ports: ["3306:3306"]
env:
MYSQL_PASSWORD: rails
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: postgres
MYSQL_USER: rails
options: >-
--health-cmd "mysqladmin ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v1
with:
path: /home/runner/bundle
key: bundle-${{ matrix.ruby }}-${{ matrix.gemfile }}-${{ hashFiles(matrix.gemfile) }}-${{ hashFiles('**/*.gemspec') }}
restore-keys: |
bundle-${{ matrix.ruby }}-${{ matrix.gemfile }}-
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
- uses: actions/checkout@v3
- name: Install system deps
run: |
sudo apt-get update
sudo apt-get install libsqlite3-dev libpq-dev postgresql-client
- name: Bundle install
run: |
bundle config path /home/runner/bundle
bundle config --global gemfile ${{ matrix.gemfile }}
bundle install
bundle update
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Run RSpec
env:
DB: ${{ matrix.db }}
MULTI_DB: ${{ matrix.multi_db }}
DATABASE_URL: postgres://postgres:postgres@localhost:5432
DB_NAME: postgres
run: |
bundle exec rspec --force-color

2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -11,5 +11,5 @@
gemfiles/*.lock
spec/integrations/fixtures/rspec/tmp/
spec/integrations/fixtures/rspec/gemfiles/*.lock
Gemfile.local
Gemfile.local*
tmp/
6 changes: 3 additions & 3 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -15,11 +15,11 @@ else
end

platform :jruby do
gem "activerecord-jdbcsqlite3-adapter", "~> 60.0"
gem "activerecord", "~> 6.0"
gem "activerecord-jdbcsqlite3-adapter"
gem "activerecord", "~> 7.0"
end

gem "activerecord", "~> 6.0"
gem "activerecord", "~> 7.0"
gem "actionview"
gem "actionpack"
gem "activerecord-import"
1 change: 1 addition & 0 deletions gemfiles/railsmaster.gemfile
Original file line number Diff line number Diff line change
@@ -8,5 +8,6 @@ gem "sqlite3", "~> 1.4.0"
gem "sidekiq", "~> 4.0"
gem "timecop", "~> 0.9.1"
gem "pg"
gem "mysql2"

gemspec path: ".."
28 changes: 28 additions & 0 deletions spec/bugs/fixtures/let_it_be_savepoint_fixture.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# frozen_string_literal: true

require "action_controller/railtie"
require "action_view/railtie"
require "active_record/railtie"
require "rspec/rails"

require_relative "../../support/ar_models"

RSpec.configure do |config|
config.fixture_path = File.join(__dir__, "fixtures")
config.use_transactional_fixtures = true
end

require "test_prof/recipes/rspec/let_it_be"

RSpec.configure do |config|
config.include TestProf::FactoryBot::Syntax::Methods
end

describe "let_it_be no-op" do
context "without db calls" do
let_it_be(:foo) { 1 }

specify { expect(1).to eq 1 }
specify { expect(foo).to eq 1 }
end
end
13 changes: 13 additions & 0 deletions spec/bugs/let_it_be_savepoint_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# frozen_string_literal: true

# https://github.com/test-prof/test-prof/issues/265
describe "let_it_be + mysql + savepoints", type: :integration do
specify "works" do
output = run_rspec(
"let_it_be_savepoint",
chdir: File.join(__dir__, "fixtures")
)

expect(output).to include("0 failures")
end
end
14 changes: 12 additions & 2 deletions spec/support/ar_models.rb
Original file line number Diff line number Diff line change
@@ -29,12 +29,21 @@ def multi_db?
db_path = File.join(TestProf.config.output_dir, "testdb.sqlite")
FileUtils.rm(db_path) if File.file?(db_path)
{adapter: "sqlite3", database: db_path}
elsif ENV["DB"] == "postgres"
elsif ENV["DB"] == "postgres" || ENV["DB"] == "mysql"
require "active_record/database_configurations"
url = ENV.fetch("DATABASE_URL") do
case ENV["DB"]
when "postgres"
ENV.fetch("POSTGRES_URL")
when "mysql"
ENV.fetch("MYSQL_URL")
end
end

config = ActiveRecord::DatabaseConfigurations::UrlConfig.new(
"test",
"primary",
ENV.fetch("DATABASE_URL"),
url,
{"database" => ENV.fetch("DB_NAME", "test_prof_test")}
)
config.respond_to?(:configuration_hash) ? config.configuration_hash : config.config
@@ -120,6 +129,7 @@ class Comment < ApplicationRecord
else
Logger.new(IO::NULL)
end

class User < ApplicationRecord
validates :name, presence: true
has_many :posts, dependent: :destroy
4 changes: 4 additions & 0 deletions spec/test_prof/any_fixture_spec.rb
Original file line number Diff line number Diff line change
@@ -93,6 +93,10 @@
User.delete_all
end

before do
skip unless ActiveRecord::Base.connection.adapter_name.match?(/(sqlite|postgres)/i)
end

after do
subject.reset
# Reset manually data populated via CLI tools