aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport
diff options
context:
space:
mode:
authorGeorge Claghorn <george@basecamp.com>2018-01-16 15:12:24 -0500
committerGeorge Claghorn <george@basecamp.com>2018-01-17 01:30:03 -0500
commitf21a6688f7d8afd1172ff0bfc1d75e3e619e2db0 (patch)
treecce910d3cd5e75969288bfe2529435f384f2e979 /activesupport
parent4c0cb1c2c9269c74588da9f114f52ea3707ae8fb (diff)
downloadrails-f21a6688f7d8afd1172ff0bfc1d75e3e619e2db0.tar.gz
rails-f21a6688f7d8afd1172ff0bfc1d75e3e619e2db0.tar.bz2
rails-f21a6688f7d8afd1172ff0bfc1d75e3e619e2db0.zip
Test against the pure-Ruby Redis driver
Diffstat (limited to 'activesupport')
-rw-r--r--activesupport/Rakefile20
-rw-r--r--activesupport/test/cache/stores/redis_cache_store_test.rb6
2 files changed, 26 insertions, 0 deletions
diff --git a/activesupport/Rakefile b/activesupport/Rakefile
index 8672ab1542..f10f19be0a 100644
--- a/activesupport/Rakefile
+++ b/activesupport/Rakefile
@@ -14,10 +14,30 @@ Rake::TestTask.new do |t|
t.ruby_opts = ["--dev"] if defined?(JRUBY_VERSION)
end
+Rake::Task[:test].enhance do
+ Rake::Task["test:cache_stores:redis:ruby"].invoke
+end
+
namespace :test do
task :isolated do
Dir.glob("test/**/*_test.rb").all? do |file|
sh(Gem.ruby, "-w", "-Ilib:test", file)
end || raise("Failures")
end
+
+ namespace :cache_stores do
+ namespace :redis do
+ %w[ ruby hiredis ].each do |driver|
+ task("env:#{driver}") { ENV["REDIS_DRIVER"] = driver }
+
+ Rake::TestTask.new(driver => "env:#{driver}") do |t|
+ t.libs << "test"
+ t.test_files = ["test/cache/stores/redis_cache_store_test.rb"]
+ t.warning = true
+ t.verbose = true
+ t.ruby_opts = ["--dev"] if defined?(JRUBY_VERSION)
+ end
+ end
+ end
+ end
end
diff --git a/activesupport/test/cache/stores/redis_cache_store_test.rb b/activesupport/test/cache/stores/redis_cache_store_test.rb
index 7f684f7a0f..ee79f954ec 100644
--- a/activesupport/test/cache/stores/redis_cache_store_test.rb
+++ b/activesupport/test/cache/stores/redis_cache_store_test.rb
@@ -5,6 +5,12 @@ require "active_support/cache"
require "active_support/cache/redis_cache_store"
require_relative "../behaviors"
+driver_name = %w[ ruby hiredis ].include?(ENV["REDIS_DRIVER"]) ? ENV["REDIS_DRIVER"] : "hiredis"
+driver = Object.const_get("Redis::Connection::#{driver_name.camelize}")
+
+Redis::Connection.drivers.clear
+Redis::Connection.drivers.append(driver)
+
module ActiveSupport::Cache::RedisCacheStoreTests
class LookupTest < ActiveSupport::TestCase
test "may be looked up as :redis_cache_store" do