diff options
author | Guo Xiang Tan <tgx_world@hotmail.com> | 2018-08-22 21:00:01 +0800 |
---|---|---|
committer | Guo Xiang Tan <tgx_world@hotmail.com> | 2018-08-22 22:06:08 +0800 |
commit | 20bb397e00dad9dfdb38d0c8dd73062b448c31e3 (patch) | |
tree | 1c78f25256c8cd1353097f35edaf848db304e6a0 /activerecord/test/cases | |
parent | 96ac7e4cdee004bcd19cb63b3e3396329e3b39ed (diff) | |
download | rails-20bb397e00dad9dfdb38d0c8dd73062b448c31e3.tar.gz rails-20bb397e00dad9dfdb38d0c8dd73062b448c31e3.tar.bz2 rails-20bb397e00dad9dfdb38d0c8dd73062b448c31e3.zip |
Add database configuration to disable advisory locks.
https://github.com/rails/rails/issues/31190
Diffstat (limited to 'activerecord/test/cases')
3 files changed, 41 insertions, 0 deletions
diff --git a/activerecord/test/cases/adapters/helpers/test_supports_advisory_locks.rb b/activerecord/test/cases/adapters/helpers/test_supports_advisory_locks.rb new file mode 100644 index 0000000000..4905e17725 --- /dev/null +++ b/activerecord/test/cases/adapters/helpers/test_supports_advisory_locks.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +require "support/connection_helper" + +module TestSupportsAdvisoryLocks + include ConnectionHelper + + def test_supports_advisory_locks? + assert ActiveRecord::Base.connection.supports_advisory_locks? + + run_without_connection do |orig_connection| + ActiveRecord::Base.establish_connection( + orig_connection.merge(advisory_locks: false) + ) + + assert_not ActiveRecord::Base.connection.supports_advisory_locks? + + ActiveRecord::Base.establish_connection( + orig_connection.merge(advisory_locks: true) + ) + + assert ActiveRecord::Base.connection.supports_advisory_locks? + end + end +end diff --git a/activerecord/test/cases/adapters/mysql2/test_advisory_locks_disabled_test.rb b/activerecord/test/cases/adapters/mysql2/test_advisory_locks_disabled_test.rb new file mode 100644 index 0000000000..4857900820 --- /dev/null +++ b/activerecord/test/cases/adapters/mysql2/test_advisory_locks_disabled_test.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +require "cases/helper" +require "cases/adapters/helpers/test_supports_advisory_locks" + +class Mysql2AdvisoryLocksDisabledTest < ActiveRecord::Mysql2TestCase + include TestSupportsAdvisoryLocks +end diff --git a/activerecord/test/cases/adapters/postgresql/advisory_locks_disabled_test.rb b/activerecord/test/cases/adapters/postgresql/advisory_locks_disabled_test.rb new file mode 100644 index 0000000000..f14e9baeb9 --- /dev/null +++ b/activerecord/test/cases/adapters/postgresql/advisory_locks_disabled_test.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +require "cases/helper" +require "cases/adapters/helpers/test_supports_advisory_locks" + +class PostgresqlAdvisoryLocksDisabledTest < ActiveRecord::PostgreSQLTestCase + include TestSupportsAdvisoryLocks +end |