Report abuse

patch for activerecord which allows running rails tests in JRuby (diff)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
From a96d0319871a4910f80c1cc0561fdc33206c4cdb Mon Sep 17 00:00:00 2001
From: Stephen Bannasch <stephen.bannasch@gmail.com>
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

ar_tests_jruby_errors_and_failures.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
echo "\n\njruby -S rake test_jdbcmysql TEST=test/cases/adapter_test.rb\n\n"
jruby -S rake test_jdbcmysql TEST=test/cases/adapter_test.rb
echo "\n\njruby -S rake test_jdbcmysql TEST=test/cases/associations/has_many_through_associations_test.rb\n\n"
jruby -S rake test_jdbcmysql TEST=test/cases/associations/has_many_through_associations_test.rb
echo "\n\njruby -S rake test_jdbcmysql TEST=test/cases/migration_test.rb\n\n"
jruby -S rake test_jdbcmysql TEST=test/cases/migration_test.rb
echo "\n\njruby -S rake test_jdbcmysql TEST=test/cases/query_cache_test.rb\n\n"
jruby -S rake test_jdbcmysql TEST=test/cases/query_cache_test.rb
echo "\n\njruby -S rake test_jdbcmysql TEST=test/cases/schema_dumper_test.rb\n\n"
jruby -S rake test_jdbcmysql TEST=test/cases/schema_dumper_test.rb
echo "\n\njruby -S rake test_jdbcmysql TEST=test/cases/unconnected_test.rb\n\n"
jruby -S rake test_jdbcmysql TEST=test/cases/unconnected_test.rb
echo "\n\njruby -S rake test_jdbcmysql TEST=test/cases/base_test.rb\n\n"
jruby -S rake test_jdbcmysql TEST=test/cases/base_test.rb

test results

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
[activerecord (ar-jdbc)]$ sh ~/Desktop/ar_tests_jruby_errors_and_failures.sh 


jruby -S rake test_jdbcmysql TEST=test/cases/adapter_test.rb


(in /Users/stephen/dev/ruby/src/gems/rails.git/activerecord)
/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/gempackagetask.rb:13:Warning: Gem::manage_gems is deprecated and will be removed on or after March 2009.
/Users/stephen/dev/ruby/src/jruby.git/bin/jruby -Ilib:test:test/connections/jdbc_jdbcmysql "/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/rake_test_loader.rb" "test/cases/adapter_test.rb" 
Using MySQL via JRuby, activerecord-jdbc-adapter and activerecord-jdbcmysql-adapter

ActiveRecord::ConnectionAdapters::JdbcAdapter::Version::VERSION

Loaded suite /Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/rake_test_loader
Started
FF.....
Finished in 0.408968 seconds.

  1) Failure:
test_add_limit_offset_should_sanitize_sql_injection_for_limit_with_comas(AdapterTest)
    [test/cases/adapter_test.rb:129:in `test_add_limit_offset_should_sanitize_sql_injection_for_limit_with_comas'
     ./test/cases/../../../activesupport/lib/active_support/testing/setup_and_teardown.rb:57:in `run']:
<" LIMIT 1,7"> expected but was
<" LIMIT 1, 7 procedure help()">.

  2) Failure:
test_add_limit_offset_should_sanitize_sql_injection_for_limit_without_comas(AdapterTest)
    [test/cases/adapter_test.rb:115:in `test_add_limit_offset_should_sanitize_sql_injection_for_limit_without_comas'
     ./test/cases/../../../activesupport/lib/active_support/testing/setup_and_teardown.rb:57:in `run']:
<" LIMIT 1"> expected but was
<" LIMIT 1 select * from schema">.

7 tests, 17 assertions, 2 failures, 0 errors
rake aborted!
Command failed with status (1): [/Users/stephen/dev/ruby/src/jruby.git/bin/...]

(See full trace by running task with --trace)


jruby -S rake test_jdbcmysql TEST=test/cases/associations/has_many_through_associations_test.rb


(in /Users/stephen/dev/ruby/src/gems/rails.git/activerecord)
/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/gempackagetask.rb:13:Warning: Gem::manage_gems is deprecated and will be removed on or after March 2009.
/Users/stephen/dev/ruby/src/jruby.git/bin/jruby -Ilib:test:test/connections/jdbc_jdbcmysql "/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/rake_test_loader.rb" "test/cases/associations/has_many_through_associations_test.rb" 
Using MySQL via JRuby, activerecord-jdbc-adapter and activerecord-jdbcmysql-adapter

ActiveRecord::ConnectionAdapters::JdbcAdapter::Version::VERSION

Loaded suite /Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/rake_test_loader
Started
.................E.
Finished in 1.58491 seconds.

  1) Error:
test_inner_join_with_quoted_table_name(HasManyThroughAssociationsTest):
NameError: uninitialized constant Person::Reference
    ./test/cases/../../../activesupport/lib/active_support/dependencies.rb:102:in `const_missing'
    ./test/cases/../../lib/active_record/base.rb:2167:in `class_eval'
    ./test/cases/../../lib/active_record/base.rb:2167:in `compute_type'
    ./test/cases/../../../activesupport/lib/active_support/core_ext/kernel/reporting.rb:11:in `silence_warnings'
    ./test/cases/../../lib/active_record/base.rb:2163:in `compute_type'
    ./test/cases/../../lib/active_record/reflection.rb:151:in `klass'
    ./test/cases/../../lib/active_record/reflection.rb:244:in `source_reflection'
    ./test/cases/../../lib/active_record/reflection.rb:244:in `collect'
    ./test/cases/../../lib/active_record/reflection.rb:244:in `source_reflection'
    ./test/cases/../../lib/active_record/reflection.rb:275:in `check_validity!'
    ./test/cases/../../lib/active_record/associations/has_many_through_association.rb:5:in `initialize'
    ./test/cases/../../lib/active_record/associations.rb:1303:in `jobs'
    test/cases/associations/has_many_through_associations_test.rb:208:in `test_inner_join_with_quoted_table_name'
    ./test/cases/../../../activesupport/lib/active_support/testing/setup_and_teardown.rb:57:in `run'

19 tests, 60 assertions, 0 failures, 1 errors
rake aborted!
Command failed with status (1): [/Users/stephen/dev/ruby/src/jruby.git/bin/...]

(See full trace by running task with --trace)


jruby -S rake test_jdbcmysql TEST=test/cases/migration_test.rb


(in /Users/stephen/dev/ruby/src/gems/rails.git/activerecord)
/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/gempackagetask.rb:13:Warning: Gem::manage_gems is deprecated and will be removed on or after March 2009.
/Users/stephen/dev/ruby/src/jruby.git/bin/jruby -Ilib:test:test/connections/jdbc_jdbcmysql "/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/rake_test_loader.rb" "test/cases/migration_test.rb" 
Using MySQL via JRuby, activerecord-jdbc-adapter and activerecord-jdbcmysql-adapter

ActiveRecord::ConnectionAdapters::JdbcAdapter::Version::VERSION

Loaded suite /Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/rake_test_loader
Started
........F...................................E.........F......................E...F..........
Finished in 8.935638 seconds.

  1) Failure:
test_integer_creates_integer_column(ChangeTableMigrationsTest)
    [(eval):16:in `integer'
     (eval):5:in `each'
     (eval):5:in `integer'
     test/cases/migration_test.rb:1380:in `test_integer_creates_integer_column'
     test/cases/migration_test.rb:1472:in `with_change_table'
     ./test/cases/../../lib/active_record/connection_adapters/abstract/schema_statements.rb:175:in `change_table'
     test/cases/migration_test.rb:1471:in `with_change_table'
     test/cases/migration_test.rb:1377:in `test_integer_creates_integer_column'
     ./test/cases/../../../activesupport/lib/active_support/testing/setup_and_teardown.rb:57:in `run']:
unexpected invocation: #<ActiveRecord::ConnectionAdapters::JdbcAdapter:0x1100>.add_column(:delete_me, :foo, 'integer(10)', {})
unsatisfied expectations:
- expected exactly once, not yet invoked: #<ActiveRecord::ConnectionAdapters::JdbcAdapter:0x1100>.add_column(:delete_me, :bar, 'integer', {})
- expected exactly once, not yet invoked: #<ActiveRecord::ConnectionAdapters::JdbcAdapter:0x1100>.add_column(:delete_me, :foo, 'integer', {})

  2) Error:
test_create_table_with_defaults(MigrationTest):
ActiveRecord::StatementInvalid: ActiveRecord::ActiveRecordError: BLOB/TEXT column 'five' can't have a default value: CREATE TABLE `testings` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `one` varchar(255) DEFAULT 'hello', `two` tinyint(1) DEFAULT 1, `three` tinyint(1) DEFAULT 0, `four` integer(10) DEFAULT 1, `five` text DEFAULT 'hello') ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin
    ./test/cases/../../lib/active_record/connection_adapters/abstract_adapter.rb:189:in `log'
    /Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/activerecord-jdbc-adapter-0.9/lib/active_record/connection_adapters/jdbc_adapter.rb:581:in `execute'
    ./test/cases/helper.rb:42:in `execute_with_query_record'
    ./test/cases/../../lib/active_record/connection_adapters/abstract/schema_statements.rb:114:in `create_table'
    /Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/activerecord-jdbc-adapter-0.9/lib/jdbc_adapter/jdbc_mysql.rb:173:in `create_table'
    test/cases/migration_test.rb:125:in `test_create_table_with_defaults'
    ./test/cases/../../../activesupport/lib/active_support/testing/setup_and_teardown.rb:57:in `run'

  3) Failure:
test_keeping_default_and_notnull_constaint_on_change(MigrationTest)
    [test/cases/migration_test.rb:753:in `test_keeping_default_and_notnull_constaint_on_change'
     ./test/cases/../../../activesupport/lib/active_support/testing/setup_and_teardown.rb:57:in `run']:
<false> expected but was
<true>.

  4) Error:
test_rename_column_preserves_default_value_not_null(MigrationTest):
NoMethodError: undefined method `[]' for nil:NilClass
    /Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/activerecord-jdbc-adapter-0.9/lib/jdbc_adapter/jdbc_mysql.rb:202:in `rename_column'
    test/cases/migration_test.rb:536:in `test_rename_column_preserves_default_value_not_null'
    ./test/cases/../../../activesupport/lib/active_support/testing/setup_and_teardown.rb:57:in `run'

  5) Failure:
test_rename_nonexistent_column(MigrationTest)
    [test/cases/migration_test.rb:550:in `test_rename_nonexistent_column'
     ./test/cases/../../../activesupport/lib/active_support/testing/setup_and_teardown.rb:57:in `run']:
<ActiveRecord::ActiveRecordError> exception expected but was
Class: <NoMethodError>
Message: <"undefined method `[]' for nil:NilClass">
---Backtrace---
/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/activerecord-jdbc-adapter-0.9/lib/jdbc_adapter/jdbc_mysql.rb:202:in `rename_column'
test/cases/migration_test.rb:551:in `test_rename_nonexistent_column'
test/cases/migration_test.rb:550:in `test_rename_nonexistent_column'
./test/cases/../../../activesupport/lib/active_support/testing/setup_and_teardown.rb:57:in `run'
---------------

92 tests, 230 assertions, 3 failures, 2 errors
rake aborted!
Command failed with status (1): [/Users/stephen/dev/ruby/src/jruby.git/bin/...]

(See full trace by running task with --trace)


jruby -S rake test_jdbcmysql TEST=test/cases/query_cache_test.rb


(in /Users/stephen/dev/ruby/src/gems/rails.git/activerecord)
/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/gempackagetask.rb:13:Warning: Gem::manage_gems is deprecated and will be removed on or after March 2009.
/Users/stephen/dev/ruby/src/jruby.git/bin/jruby -Ilib:test:test/connections/jdbc_jdbcmysql "/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/rake_test_loader.rb" "test/cases/query_cache_test.rb" 
Using MySQL via JRuby, activerecord-jdbc-adapter and activerecord-jdbcmysql-adapter

ActiveRecord::ConnectionAdapters::JdbcAdapter::Version::VERSION

Loaded suite /Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/rake_test_loader
Started
........F...
Finished in 0.782492 seconds.

  1) Failure:
test_count_queries_with_cache(QueryCacheTest)
    [./test/cases/../../lib/active_record/test_case.rb:30:in `assert_queries'
     test/cases/query_cache_test.rb:25:in `test_count_queries_with_cache'
     ./test/cases/../../lib/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache'
     ./test/cases/../../lib/active_record/query_cache.rb:9:in `cache'
     test/cases/query_cache_test.rb:24:in `test_count_queries_with_cache'
     ./test/cases/../../../activesupport/lib/active_support/testing/setup_and_teardown.rb:57:in `run']:
2 instead of 1 queries were executed.
Queries:
SELECT count(*) AS count_all FROM `tasks` 
SELECT count(*) AS count_all FROM `tasks` .
<1> expected but was
<2>.

12 tests, 20 assertions, 1 failures, 0 errors
rake aborted!
Command failed with status (1): [/Users/stephen/dev/ruby/src/jruby.git/bin/...]

(See full trace by running task with --trace)


jruby -S rake test_jdbcmysql TEST=test/cases/schema_dumper_test.rb


(in /Users/stephen/dev/ruby/src/gems/rails.git/activerecord)
/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/gempackagetask.rb:13:Warning: Gem::manage_gems is deprecated and will be removed on or after March 2009.
/Users/stephen/dev/ruby/src/jruby.git/bin/jruby -Ilib:test:test/connections/jdbc_jdbcmysql "/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/rake_test_loader.rb" "test/cases/schema_dumper_test.rb" 
Using MySQL via JRuby, activerecord-jdbc-adapter and activerecord-jdbcmysql-adapter

ActiveRecord::ConnectionAdapters::JdbcAdapter::Version::VERSION

Loaded suite /Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/rake_test_loader
Started
......F....
Finished in 5.939464 seconds.

  1) Failure:
test_schema_dump_includes_limit_constraint_for_integer_columns(SchemaDumperTest)
    [test/cases/schema_dumper_test.rb:113:in `test_schema_dump_includes_limit_constraint_for_integer_columns'
     ./test/cases/../../../activesupport/lib/active_support/testing/setup_and_teardown.rb:57:in `run']:
<"# This file is auto-generated from the current state of the database. Instead of editing this file, \n# please use the migrations feature of Active Record to incrementally modify your database, and\n# then regenerate this schema definition.\n#\n# Note that this schema.rb definition is the authoritative source for your database schema. If you need\n# to create the application database on another system, you should be using db:schema:load, not running\n# all the migrations from scratch. The latter is a flawed and unsustainable approach (the more migrations\n# you'll amass, the slower it'll run and the greater likelihood for issues).\n#\n# It's strongly recommended to check this file into your version control system.\n\nActiveRecord::Schema.define(:version => 0) do\n\n  create_table \"integer_limits\", :force => true do |t|\n    t.integer \"c_int_without_limit\"\n    t.integer \"c_int_1\",             :limit => 1\n    t.integer \"c_int_2\",             :limit => 2\n    t.integer \"c_int_3\",             :limit => 3\n    t.integer \"c_int_4\",             :limit => 4\n    t.integer \"c_int_5\",             :limit => 5\n    t.integer \"c_int_6\",             :limit => 6\n    t.integer \"c_int_7\",             :limit => 7\n    t.integer \"c_int_8\",             :limit => 8\n  end\n\nend\n"> expected to be =~
</c_int_5.*:limit => 8/>.

11 tests, 325 assertions, 1 failures, 0 errors
rake aborted!
Command failed with status (1): [/Users/stephen/dev/ruby/src/jruby.git/bin/...]

(See full trace by running task with --trace)


jruby -S rake test_jdbcmysql TEST=test/cases/unconnected_test.rb


(in /Users/stephen/dev/ruby/src/gems/rails.git/activerecord)
/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/gempackagetask.rb:13:Warning: Gem::manage_gems is deprecated and will be removed on or after March 2009.
/Users/stephen/dev/ruby/src/jruby.git/bin/jruby -Ilib:test:test/connections/jdbc_jdbcmysql "/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/rake_test_loader.rb" "test/cases/unconnected_test.rb" 
Using MySQL via JRuby, activerecord-jdbc-adapter and activerecord-jdbcmysql-adapter

ActiveRecord::ConnectionAdapters::JdbcAdapter::Version::VERSION

Loaded suite /Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/rake_test_loader
Started
.F
Finished in 0.125912 seconds.

  1) Failure:
test_underlying_adapter_no_longer_active(TestUnconnectedAdapter)
    [test/cases/unconnected_test.rb:30:in `test_underlying_adapter_no_longer_active'
     ./test/cases/../../../activesupport/lib/active_support/testing/setup_and_teardown.rb:57:in `run']:
Removed adapter should no longer be active.
<false> is not true.

2 tests, 3 assertions, 1 failures, 0 errors
rake aborted!
Command failed with status (1): [/Users/stephen/dev/ruby/src/jruby.git/bin/...]

(See full trace by running task with --trace)


jruby -S rake test_jdbcmysql TEST=test/cases/base_test.rb


(in /Users/stephen/dev/ruby/src/gems/rails.git/activerecord)
/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/gempackagetask.rb:13:Warning: Gem::manage_gems is deprecated and will be removed on or after March 2009.
/Users/stephen/dev/ruby/src/jruby.git/bin/jruby -Ilib:test:test/connections/jdbc_jdbcmysql "/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/rake_test_loader.rb" "test/cases/base_test.rb" 
Using MySQL via JRuby, activerecord-jdbc-adapter and activerecord-jdbcmysql-adapter

ActiveRecord::ConnectionAdapters::JdbcAdapter::Version::VERSION

Loaded suite /Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/rake_test_loader
Started
...............................................................................................................................F......................................F...F.......F............
Finished in 4.514707 seconds.

  1) Failure:
test_read_attributes_before_type_cast_on_datetime(BasicsTest)
    [test/cases/base_test.rb:148:in `test_read_attributes_before_type_cast_on_datetime'
     ./test/cases/../../../activesupport/lib/active_support/testing/setup_and_teardown.rb:57:in `run']:
<"2008-12-31 15:01:28"> expected but was
<"2008-12-31 15:01:28.0">.

  2) Failure:
test_to_xml_including_methods(BasicsTest)
    [test/cases/base_test.rb:1969:in `test_to_xml_including_methods'
     ./test/cases/../../../activesupport/lib/active_support/testing/setup_and_teardown.rb:57:in `run']:
<false> is not true.

  3) Failure:
test_to_xml_with_block(BasicsTest)
    [test/cases/base_test.rb:1978:in `test_to_xml_with_block'
     ./test/cases/../../../activesupport/lib/active_support/testing/setup_and_teardown.rb:57:in `run']:
<false> is not true.

  4) Failure:
test_update_all_with_order_and_limit_updates_subset_only(BasicsTest)
    [test/cases/base_test.rb:686:in `test_update_all_with_order_and_limit_updates_subset_only'
     ./test/cases/../../../activesupport/lib/active_support/testing/setup_and_teardown.rb:57:in `run']:
Exception raised:
Class: <ActiveRecord::StatementInvalid>
Message: <"ActiveRecord::ActiveRecordError: This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery': UPDATE `posts` SET body = 'bulk update!' WHERE `id` IN (SELECT `id` FROM `posts` WHERE (`posts`.author_id = 1)  ORDER BY posts.id LIMIT 1)">
---Backtrace---
./test/cases/../../lib/active_record/connection_adapters/abstract_adapter.rb:189:in `log'
/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/activerecord-jdbc-adapter-0.9/lib/active_record/connection_adapters/jdbc_adapter.rb:581:in `execute'
./test/cases/helper.rb:42:in `execute_with_query_record'
/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/activerecord-jdbc-adapter-0.9/lib/active_record/connection_adapters/jdbc_adapter.rb:600:in `jdbc_update'
./test/cases/../../lib/active_record/connection_adapters/abstract/query_cache.rb:25:in `update_with_query_dirty'
./test/cases/../../lib/active_record/base.rb:849:in `update_all'
./test/cases/../../lib/active_record/associations/association_collection.rb:374:in `method_missing'
./test/cases/../../lib/active_record/base.rb:2111:in `with_scope'
./test/cases/../../lib/active_record/associations/association_proxy.rb:206:in `with_scope'
./test/cases/../../lib/active_record/associations/association_collection.rb:370:in `method_missing'
test/cases/base_test.rb:689:in `test_update_all_with_order_and_limit_updates_subset_only'
test/cases/base_test.rb:686:in `test_update_all_with_order_and_limit_updates_subset_only'
./test/cases/../../../activesupport/lib/active_support/testing/setup_and_teardown.rb:57:in `run'
---------------

191 tests, 559 assertions, 4 failures, 0 errors
rake aborted!
Command failed with status (1): [/Users/stephen/dev/ruby/src/jruby.git/bin/...]

(See full trace by running task with --trace)
[activerecord (ar-jdbc)]$