From a96d0319871a4910f80c1cc0561fdc33206c4cdb Mon Sep 17 00:00:00 2001 From: Stephen Bannasch Date: Sat, 27 Dec 2008 15:37:47 -0500 Subject: [PATCH] initial work to get AR tests working with JRuby and jdbc --- activerecord/Rakefile | 37 ++++++++++++++----- .../test/connections/jdbc_jdbcmysql/connection.rb | 25 +++++++++++++ 2 files changed, 52 insertions(+), 10 deletions(-) create mode 100644 activerecord/test/connections/jdbc_jdbcmysql/connection.rb diff --git a/activerecord/Rakefile b/activerecord/Rakefile index f47674d..7e9012a 100644 --- a/activerecord/Rakefile +++ b/activerecord/Rakefile @@ -32,16 +32,33 @@ task :default => :test desc 'Run mysql, sqlite, and postgresql tests' task :test => %w(test_mysql test_sqlite3 test_postgresql) -for adapter in %w( mysql postgresql sqlite sqlite3 firebird db2 oracle sybase openbase frontbase ) - Rake::TestTask.new("test_#{adapter}") { |t| - t.libs << "test" << "test/connections/native_#{adapter}" - adapter_short = adapter == 'db2' ? adapter : adapter[/^[a-z]+/] - t.test_files=Dir.glob( "test/cases/**/*_test{,_#{adapter_short}}.rb" ).sort - t.verbose = true - } - - namespace adapter do - task :test => "test_#{adapter}" +JRUBY = RUBY_PLATFORM =~ /java/ && RUBY_ENGINE == "jruby" + +if JRUBY + for adapter in %w( jdbcmysql ) + Rake::TestTask.new("test_#{adapter}") { |t| + t.libs << "test" << "test/connections/jdbc_#{adapter}" + adapter_short = adapter == 'db2' ? adapter : adapter[/^[a-z]+/] + t.test_files=Dir.glob( "test/cases/**/*_test{,_#{adapter_short}}.rb" ).sort + t.verbose = true + } + + namespace adapter do + task :test => "test_#{adapter}" + end + end +else + for adapter in %w( mysql postgresql sqlite sqlite3 firebird db2 oracle sybase openbase frontbase ) + Rake::TestTask.new("test_#{adapter}") { |t| + t.libs << "test" << "test/connections/native_#{adapter}" + adapter_short = adapter == 'db2' ? adapter : adapter[/^[a-z]+/] + t.test_files=Dir.glob( "test/cases/**/*_test{,_#{adapter_short}}.rb" ).sort + t.verbose = true + } + + namespace adapter do + task :test => "test_#{adapter}" + end end end diff --git a/activerecord/test/connections/jdbc_jdbcmysql/connection.rb b/activerecord/test/connections/jdbc_jdbcmysql/connection.rb new file mode 100644 index 0000000..b05065e --- /dev/null +++ b/activerecord/test/connections/jdbc_jdbcmysql/connection.rb @@ -0,0 +1,25 @@ +print "Using MySQL via JRuby, activerecord-jdbc-adapter and activerecord-jdbcmysql-adapter\n" +require_dependency 'models/course' +require 'logger' + +ActiveRecord::Base.logger = Logger.new("debug.log") + +# GRANT ALL PRIVILEGES ON activerecord_unittest.* to 'rails'@'localhost'; +# GRANT ALL PRIVILEGES ON activerecord_unittest2.* to 'rails'@'localhost'; + +ActiveRecord::Base.configurations = { + 'arunit' => { + :adapter => 'jdbcmysql', + :username => 'rails', + :encoding => 'utf8', + :database => 'activerecord_unittest', + }, + 'arunit2' => { + :adapter => 'jdbcmysql', + :username => 'rails', + :database => 'activerecord_unittest2' + } +} + +ActiveRecord::Base.establish_connection 'arunit' +Course.establish_connection 'arunit2' -- 1.6.0.1