ruboto 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +5 -3
- data/README.md +1 -1
- data/RELEASE_CANDICATE_DOC.md +22 -5
- data/RELEASE_DOC.md +58 -26
- data/Rakefile +68 -163
- data/Vagrantfile +46 -0
- data/assets/rakelib/ruboto.device.rb +170 -0
- data/assets/rakelib/ruboto.rake +121 -239
- data/assets/rakelib/ruboto.stdlib.rake +1 -1
- data/assets/src/org/ruboto/JRubyAdapter.java +1 -0
- data/lib/ruboto/sdk_versions.rb +5 -4
- data/lib/ruboto/util/emulator.rb +6 -4
- data/lib/ruboto/util/setup.rb +40 -23
- data/lib/ruboto/util/update.rb +61 -13
- data/lib/ruboto/version.rb +1 -1
- data/test/activity/dir_and_file_activity_test.rb +3 -3
- data/test/activity/json_activity.rb +11 -0
- data/test/activity/navigation_activity_test.rb +2 -1
- data/test/activity/stack_activity_test.rb +16 -12
- data/test/app_test_methods.rb +4 -4
- data/test/arjdbc_test.rb +18 -7
- data/test/broadcast_receiver_test.rb +1 -1
- data/test/gem_test.rb +1 -1
- data/test/git_based_gem_test.rb +1 -1
- data/test/minimal_app_test.rb +7 -5
- data/test/rake_test.rb +3 -3
- data/test/ruboto_activity_test.rb +1 -1
- data/test/ruboto_gen_test.rb +25 -11
- data/test/ruboto_setup_test.rb +1 -1
- data/test/ruboto_update_test.rb +3 -3
- data/test/sample_broadcast_receiver_test.rb +1 -1
- data/test/service_block_test.rb +1 -1
- data/test/service_gen_class_test.rb +1 -1
- data/test/service_infile_class_test.rb +1 -1
- data/test/splash_test.rb +1 -1
- data/test/sqldroid_test.rb +1 -1
- data/test/test_helper.rb +22 -18
- data/test/update_test_methods.rb +1 -1
- data/test/updated_example_test_methods.rb +1 -1
- data/test/uppercase_package_name_test.rb +3 -3
- metadata +20 -3
@@ -163,7 +163,7 @@ def remove_unneeded_parts_of_stdlib
|
|
163
163
|
end
|
164
164
|
|
165
165
|
# Corrects bug in krypt that loads FFI.
|
166
|
-
# Only affects JRuby 1.7.11, 1.7.12, and
|
166
|
+
# Only affects JRuby 1.7.11, 1.7.12, and 9.0.0.0 (until fixed).
|
167
167
|
# FIXME(uwe): Remove when we stop supporting JRuby 1.7.11 and 1.7.12
|
168
168
|
Dir['**/provider.rb'].each do |f|
|
169
169
|
print "patching #{f}..."
|
@@ -126,6 +126,7 @@ public class JRubyAdapter {
|
|
126
126
|
@SuppressWarnings({ "unchecked", "rawtypes" })
|
127
127
|
public static synchronized boolean setUpJRuby(Context appContext, PrintStream out) {
|
128
128
|
if (!initialized) {
|
129
|
+
Log.d("Max memory: " + (Runtime.getRuntime().maxMemory() / (1024 * 1024)) + "MB");
|
129
130
|
// BEGIN Ruboto HeapAlloc
|
130
131
|
// @SuppressWarnings("unused")
|
131
132
|
// byte[] arrayForHeapAllocation = new byte[13 * 1024 * 1024];
|
data/lib/ruboto/sdk_versions.rb
CHANGED
@@ -6,16 +6,17 @@ module Ruboto
|
|
6
6
|
'2.3.3' => 10, '2.3.4' => 10, '2.3.5' => 10, '2.3.6' => 10, '2.3.7' => 10,
|
7
7
|
'3.0' => 11, '3.1' => 12, '3.2' => 13, '4.0.1' => 14, '4.0.3' => 15,
|
8
8
|
'4.0.4' => 15, '4.1' => 16, '4.1.1' => 16, '4.1.2' => 16, '4.2' => 17,
|
9
|
-
'4.2.2' => 17, '4.3' => 18, '4.4.2' => 19,
|
9
|
+
'4.2.2' => 17, '4.3' => 18, '4.3.1' => 18, '4.4.2' => 19, '5.0.1' => 21, '5.1' => 22
|
10
10
|
}
|
11
11
|
API_LEVEL_TO_VERSION = {
|
12
12
|
10 => '2.3.3', 11 => '3.0', 12 => '3.1', 13 => '3.2', 14 => '4.0',
|
13
|
-
15 => '4.0.3', 16 => '4.1.2', 17 => '4.2.2', 18 => '4.3
|
13
|
+
15 => '4.0.3', 16 => '4.1.2', 17 => '4.2.2', 18 => '4.3.1',
|
14
|
+
19 => '4.4.2', 21 => '5.0.1', 22 => '5.1'
|
14
15
|
}
|
15
16
|
|
16
|
-
MINIMUM_SUPPORTED_SDK_LEVEL =
|
17
|
+
MINIMUM_SUPPORTED_SDK_LEVEL = 15
|
17
18
|
MINIMUM_SUPPORTED_SDK = "android-#{MINIMUM_SUPPORTED_SDK_LEVEL}"
|
18
|
-
DEFAULT_TARGET_SDK_LEVEL =
|
19
|
+
DEFAULT_TARGET_SDK_LEVEL = 16
|
19
20
|
DEFAULT_TARGET_SDK = "android-#{DEFAULT_TARGET_SDK_LEVEL}"
|
20
21
|
end
|
21
22
|
end
|
data/lib/ruboto/util/emulator.rb
CHANGED
@@ -113,20 +113,21 @@ module Ruboto
|
|
113
113
|
if sdk_level.to_i == 10
|
114
114
|
abi_opt = '--abi armeabi'
|
115
115
|
elsif has_x86 && (ON_MAC_OS_X || ON_WINDOWS)
|
116
|
+
# FIXME(uwe): Use x86 on Linux?
|
116
117
|
abi_opt = '--abi x86'
|
117
118
|
else
|
118
119
|
abi_opt = '--abi armeabi-v7a'
|
119
120
|
end
|
120
121
|
# EMXIF
|
121
122
|
|
122
|
-
skin_filename = "#{Ruboto::SdkLocations::ANDROID_HOME}/platforms/android
|
123
|
+
skin_filename = "#{Ruboto::SdkLocations::ANDROID_HOME}/platforms/android-#{sdk_level}/skins/HVGA/hardware.ini"
|
123
124
|
if File.exists?(skin_filename)
|
124
125
|
old_skin_config = File.read(skin_filename)
|
125
126
|
new_skin_config = old_skin_config.gsub(/vm.heapSize=([0-9]*)/) { |m| $1.to_i < heap_size ? "vm.heapSize=#{heap_size}" : m }
|
126
127
|
File.write(skin_filename, new_skin_config) if new_skin_config != old_skin_config
|
127
128
|
end
|
128
129
|
|
129
|
-
puts `echo
|
130
|
+
puts `echo no | android create avd -a -n #{avd_name} -t android-#{sdk_level} #{abi_opt} -c 64M -s HVGA -d "Nexus One"`
|
130
131
|
|
131
132
|
if $? != 0
|
132
133
|
puts 'Failed to create AVD.'
|
@@ -134,10 +135,11 @@ module Ruboto
|
|
134
135
|
end
|
135
136
|
# avd_config_file_name = "#{avd_home}/config.ini"
|
136
137
|
# old_avd_config = File.read(avd_config_file_name)
|
137
|
-
# new_avd_config = old_avd_config.
|
138
|
+
# new_avd_config = old_avd_config.dup
|
139
|
+
# new_avd_config.gsub!(/vm.heapSize=([0-9]*)/) { |m| $1.to_i < heap_size ? "vm.heapSize=#{heap_size}" : m }
|
138
140
|
# add_property(new_avd_config, 'hw.device.manufacturer', 'Generic')
|
139
141
|
# add_property(new_avd_config, 'hw.device.name', '3.2" HVGA slider (ADP1)')
|
140
|
-
# add_property(new_avd_config, 'hw.mainKeys', '
|
142
|
+
# add_property(new_avd_config, 'hw.mainKeys', 'no')
|
141
143
|
# add_property(new_avd_config, 'hw.sdCard', 'yes')
|
142
144
|
# File.write(avd_config_file_name, new_avd_config) if new_avd_config != old_avd_config
|
143
145
|
|
data/lib/ruboto/util/setup.rb
CHANGED
@@ -6,7 +6,7 @@ module Ruboto
|
|
6
6
|
module Setup
|
7
7
|
include Ruboto::Util::Verify
|
8
8
|
REPOSITORY_BASE = 'http://dl-ssl.google.com/android/repository'
|
9
|
-
REPOSITORY_URL = "#{REPOSITORY_BASE}/repository-
|
9
|
+
REPOSITORY_URL = "#{REPOSITORY_BASE}/repository-10.xml"
|
10
10
|
SDK_DOWNLOAD_PAGE = 'http://developer.android.com/sdk/index.html?hl=sk'
|
11
11
|
|
12
12
|
RUBOTO_GEM_ROOT = File.expand_path '../../../..', __FILE__
|
@@ -110,7 +110,7 @@ module Ruboto
|
|
110
110
|
require 'open-uri'
|
111
111
|
|
112
112
|
doc = REXML::Document.new(open(REPOSITORY_URL))
|
113
|
-
|
113
|
+
doc.root.elements.to_a("sdk:#{type}/sdk:revision").map do |t|
|
114
114
|
major = t.elements['sdk:major']
|
115
115
|
minor = t.elements['sdk:minor']
|
116
116
|
micro = t.elements['sdk:micro']
|
@@ -122,7 +122,6 @@ module Ruboto
|
|
122
122
|
version += "_rc#{prev.text}" if prev
|
123
123
|
version
|
124
124
|
end.compact.sort_by { |v| Gem::Version.new(v.gsub('_', '.')) }.last
|
125
|
-
version
|
126
125
|
end
|
127
126
|
|
128
127
|
def get_android_sdk_version
|
@@ -145,7 +144,7 @@ module Ruboto
|
|
145
144
|
|
146
145
|
link = page_content.scan(/#{regex}/)
|
147
146
|
raise "SDK link cannot be found on download page: #{SDK_DOWNLOAD_PAGE}" if link.nil?
|
148
|
-
|
147
|
+
|
149
148
|
version = link.to_s.match(/r(\d+.)?(\d+.)?(\d+)/)[0]
|
150
149
|
raise "SDK version cannot be determined from download page: #{SDK_DOWNLOAD_PAGE}" if version.nil?
|
151
150
|
|
@@ -190,9 +189,20 @@ module Ruboto
|
|
190
189
|
when MAC_OS_X
|
191
190
|
@haxm_kext_loc = '/System/Library/Extensions/intelhaxm.kext'
|
192
191
|
found = File.exists?(@haxm_kext_loc)
|
193
|
-
|
194
|
-
|
192
|
+
if found
|
193
|
+
@haxm_kext_version = `kextstat | grep com.intel.kext.intelhaxm`.slice(/\(.*\)/)[1..-2]
|
194
|
+
else
|
195
|
+
@haxm_kext_loc = nil
|
196
|
+
end
|
197
|
+
# FIXME(uwe): Use the system version to choose the right .dmg
|
198
|
+
os_x_version = ENV['_system_version']
|
195
199
|
@haxm_installer_loc = Dir[File.join(android_package_directory, 'extras', 'intel', 'Hardware_Accelerated_Execution_Manager', 'IntelHAXM*.dmg')].first
|
200
|
+
@haxm_installer_version = @haxm_installer_loc.slice(/IntelHAXM_1.1.1_/)[10..-2]
|
201
|
+
if @haxm_kext_version == @haxm_installer_version
|
202
|
+
puts "#{'%-25s' % 'Intel HAXM'}: #{(found ? "Found" : 'Not found')}"
|
203
|
+
else
|
204
|
+
puts "#{'%-25s' % 'Intel HAXM'}: Old #{@haxm_kext_version}/#{@haxm_installer_version}"
|
205
|
+
end
|
196
206
|
when LINUX
|
197
207
|
@haxm_installer_loc = 'Not supported, yet.'
|
198
208
|
@haxm_kext_loc = 'Not supported, yet.'
|
@@ -213,8 +223,9 @@ module Ruboto
|
|
213
223
|
end
|
214
224
|
|
215
225
|
def check_for_build_tools
|
216
|
-
|
217
|
-
|
226
|
+
dx_locations = Dir[File.join android_package_directory, 'build-tools', '*', windows? ? 'dx.bat' : 'dx']
|
227
|
+
sorted_dx_locations = dx_locations.sort_by { |f| Gem::Version.new f[%r{build-tools/[^/]+/}][12..-2] }
|
228
|
+
@dx_loc = check_for('dx', 'Android SDK Command dx', sorted_dx_locations[-1])
|
218
229
|
end
|
219
230
|
|
220
231
|
def check_for_android_sdk
|
@@ -281,19 +292,23 @@ module Ruboto
|
|
281
292
|
puts "#{pretty_name} was not found."
|
282
293
|
installer = package_installer
|
283
294
|
if installer
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
295
|
+
unless accept_all
|
296
|
+
print 'Would you like to and install it? (Y/n): '
|
297
|
+
a = STDIN.gets.chomp.upcase
|
298
|
+
end
|
299
|
+
if accept_all || a == 'Y' || a.empty?
|
300
|
+
puts "sudo #{installer} install -y #{package_name}"
|
301
|
+
IO.popen("sudo #{installer} install -y #{package_name}") do |io|
|
302
|
+
while (l = io.gets)
|
303
|
+
puts l
|
304
|
+
end
|
305
|
+
end
|
306
|
+
else
|
307
|
+
puts
|
308
|
+
puts "You can install #{pretty_name} manually by:"
|
309
|
+
puts "sudo #{installer} install #{package_name}"
|
310
|
+
puts
|
311
|
+
end
|
297
312
|
else
|
298
313
|
puts "Package installer not found. You'll need to install #{pretty_name} manually."
|
299
314
|
end
|
@@ -573,8 +588,10 @@ module Ruboto
|
|
573
588
|
if accept_all || a == 'Y' || a.empty?
|
574
589
|
case android_package_os_id
|
575
590
|
when MAC_OS_X
|
591
|
+
puts "Mounting the HAXM install image"
|
576
592
|
system "hdiutil attach #{@haxm_installer_loc}"
|
577
593
|
fileName = Dir['/Volumes/IntelHAXM*/IntelHAXM*.mpkg'][0]
|
594
|
+
puts "Starting the HAXM installer. Sudo password required."
|
578
595
|
system "sudo -S installer -pkg #{fileName} -target /"
|
579
596
|
when LINUX
|
580
597
|
puts ' HAXM installation on Linux is not supported, yet.'
|
@@ -610,9 +627,9 @@ module Ruboto
|
|
610
627
|
|
611
628
|
def update_sdk(update_cmd, accept_all)
|
612
629
|
if accept_all
|
613
|
-
IO.popen(update_cmd, 'r+') do |cmd_io|
|
630
|
+
IO.popen(update_cmd, 'r+', external_encoding: Encoding::BINARY) do |cmd_io|
|
614
631
|
begin
|
615
|
-
output = ''
|
632
|
+
output = ''.encode(Encoding::BINARY)
|
616
633
|
question_pattern = /.*Do you accept the license '[a-z-]+-[0-9a-f]{8}' \[y\/n\]: /m
|
617
634
|
STDOUT.sync = true
|
618
635
|
cmd_io.each_char do |text|
|
data/lib/ruboto/util/update.rb
CHANGED
@@ -463,7 +463,7 @@ module Ruboto
|
|
463
463
|
raise "Unpacking jruby-core jar failed: #$?" unless $? == 0
|
464
464
|
File.delete jruby_core
|
465
465
|
gem_version = Gem::Version.new(jruby_core_version.to_s.tr('-', '.'))
|
466
|
-
if gem_version >= Gem::Version.new('
|
466
|
+
if gem_version >= Gem::Version.new('9.0.0.0.SNAPSHOT')
|
467
467
|
#noinspection RubyLiteralArrayInspection
|
468
468
|
excluded_core_packages = [
|
469
469
|
|
@@ -507,7 +507,6 @@ module Ruboto
|
|
507
507
|
'org/jruby/ant',
|
508
508
|
# 'org/jruby/compiler', # Needed for initialization, but should not be necessary
|
509
509
|
# 'org/jruby/compiler/impl', # Needed for initialization, but should not be necessary
|
510
|
-
'org/jruby/compiler/util',
|
511
510
|
'org/jruby/demo',
|
512
511
|
'org/jruby/embed/bsf',
|
513
512
|
'org/jruby/embed/jsr223',
|
@@ -519,30 +518,79 @@ module Ruboto
|
|
519
518
|
# 'org/jruby/runtime/invokedynamic', # Should be excluded
|
520
519
|
# 'org/jruby/runtime/opto', # What is this?
|
521
520
|
# 'org/jruby/runtime/opto/OptoFactory*', # What is this?
|
522
|
-
|
523
|
-
# FIXME(uwe): We should filter the whole truffle package...
|
524
|
-
# 'org/jruby/truffle',
|
525
|
-
|
521
|
+
'org/jruby/truffle',
|
526
522
|
'org/jruby/truffle/*.class',
|
527
523
|
'org/jruby/truffle/nodes',
|
528
524
|
'org/jruby/truffle/runtime/control',
|
529
525
|
'org/jruby/truffle/runtime/core',
|
530
|
-
'org/jruby/truffle/runtime/lookup',
|
531
526
|
'org/jruby/truffle/runtime/methods',
|
532
|
-
'org/jruby/truffle/runtime/objectstorage',
|
533
527
|
'org/jruby/truffle/runtime/signal',
|
534
528
|
'org/jruby/truffle/runtime/subsystems',
|
535
529
|
'org/jruby/truffle/runtime/util',
|
536
530
|
'org/jruby/truffle/runtime/*.class',
|
537
531
|
'org/jruby/truffle/translator',
|
538
|
-
|
539
|
-
|
532
|
+
]
|
533
|
+
elsif gem_version >= Gem::Version.new('1.7.20.dev')
|
534
|
+
# TODO(uwe): Remove when we stop supporting jruby-jars 1.7.20
|
535
|
+
excluded_core_packages = [
|
536
|
+
'**/*.sh',
|
537
|
+
'**/*Aix*',
|
538
|
+
'**/*Darwin*',
|
539
|
+
'**/*darwin*',
|
540
|
+
'**/*FreeBSD*',
|
541
|
+
'**/*freebsd*',
|
542
|
+
'**/*MacOS*',
|
543
|
+
'**/*OpenBSD*',
|
544
|
+
'**/*openbsd*',
|
545
|
+
'**/*Solaris*',
|
546
|
+
'**/*sunos*',
|
547
|
+
'**/*Windows*',
|
548
|
+
'**/*windows*',
|
549
|
+
'META-INF',
|
550
|
+
'com/headius/invokebinder',
|
551
|
+
'com/headius/options/example',
|
552
|
+
'com/kenai/constantine',
|
553
|
+
'com/kenai/jffi',
|
554
|
+
'com/kenai/jnr/x86asm',
|
555
|
+
'com/martiansoftware',
|
556
|
+
'jni',
|
557
|
+
'jnr/constants/platform/fake',
|
558
|
+
'jnr/enxio',
|
559
|
+
'jnr/ffi/annotations',
|
560
|
+
'jnr/ffi/byref',
|
561
|
+
'jnr/ffi/mapper',
|
562
|
+
'jnr/ffi/provider',
|
563
|
+
'jnr/ffi/util',
|
564
|
+
'jnr/ffi/Struct$*',
|
565
|
+
'jnr/ffi/types',
|
566
|
+
'jnr/x86asm',
|
567
|
+
'org/jruby/ant',
|
568
|
+
'org/jruby/cext',
|
569
|
+
'org/jruby/compiler/impl/BaseBodyCompiler*',
|
570
|
+
'org/jruby/compiler/util',
|
571
|
+
'org/jruby/demo',
|
572
|
+
'org/jruby/embed/bsf',
|
573
|
+
'org/jruby/embed/jsr223',
|
574
|
+
'org/jruby/embed/osgi',
|
575
|
+
'org/jruby/ext/ffi/AbstractMemory*',
|
576
|
+
'org/jruby/ext/ffi/Enums*',
|
577
|
+
'org/jruby/ext/ffi/io',
|
578
|
+
'org/jruby/ext/ffi/jffi',
|
579
|
+
'org/jruby/javasupport/bsf',
|
540
580
|
'org/yecht',
|
541
|
-
'yaml.rb',
|
581
|
+
'yaml.rb',
|
542
582
|
]
|
543
|
-
elsif gem_version >= Gem::Version.new('1.7.
|
583
|
+
elsif gem_version >= Gem::Version.new('1.7.19')
|
584
|
+
# TODO(uwe): Remove when we stop supporting jruby-jars 1.7.19
|
585
|
+
excluded_core_packages = %w(**/*.sh **/*Darwin* **/*Solaris* **/*windows* **/*Windows* META-INF com/headius/invokebinder com/headius/options/example com/kenai/constantine com/kenai/jffi com/kenai/jnr/x86asm com/martiansoftware jni jnr/constants/platform/darwin jnr/constants/platform/fake jnr/constants/platform/freebsd jnr/constants/platform/openbsd jnr/constants/platform/sunos jnr/enxio jnr/ffi/annotations jnr/ffi/byref jnr/ffi/mapper jnr/ffi/provider jnr/ffi/util jnr/ffi/Struct$* jnr/ffi/types jnr/posix/Aix* jnr/posix/FreeBSD* jnr/posix/MacOS* jnr/posix/OpenBSD* jnr/x86asm org/jruby/ant org/jruby/cext org/jruby/compiler/impl/BaseBodyCompiler* org/jruby/compiler/util org/jruby/demo org/jruby/embed/bsf org/jruby/embed/jsr223 org/jruby/embed/osgi org/jruby/ext/ffi/AbstractMemory* org/jruby/ext/ffi/Enums* org/jruby/ext/ffi/io org/jruby/ext/ffi/jffi org/jruby/javasupport/bsf org/yecht yaml.rb)
|
586
|
+
elsif gem_version >= Gem::Version.new('1.7.18')
|
587
|
+
# TODO(uwe): Remove when we stop supporting jruby-jars 1.7.18
|
588
|
+
excluded_core_packages = %w(**/*Darwin* **/*Solaris* **/*windows* **/*Windows* META-INF com/headius/invokebinder com/headius/options/example com/kenai/constantine com/kenai/jffi com/kenai/jnr/x86asm com/martiansoftware jni jnr/constants/platform/darwin jnr/constants/platform/fake jnr/constants/platform/freebsd jnr/constants/platform/openbsd jnr/constants/platform/sunos jnr/enxio jnr/ffi/annotations jnr/ffi/byref jnr/ffi/mapper jnr/ffi/provider jnr/ffi/util jnr/ffi/Struct$* jnr/ffi/types jnr/posix/Aix* jnr/posix/FreeBSD* jnr/posix/MacOS* jnr/posix/OpenBSD* jnr/x86asm org/jruby/ant org/jruby/cext org/jruby/compiler/impl/BaseBodyCompiler* org/jruby/compiler/util org/jruby/demo org/jruby/embed/bsf org/jruby/embed/jsr223 org/jruby/embed/osgi org/jruby/ext/ffi/AbstractMemory* org/jruby/ext/ffi/Enums* org/jruby/ext/ffi/io org/jruby/ext/ffi/jffi org/jruby/javasupport/bsf org/yecht yaml.rb)
|
589
|
+
elsif gem_version >= Gem::Version.new('1.7.17')
|
590
|
+
# TODO(uwe): Remove when we stop supporting jruby-jars 1.7.17
|
544
591
|
excluded_core_packages = %w(*.sh **/*Darwin* **/*Solaris* **/*windows* **/*Windows* META-INF com/headius/invokebinder com/headius/options/example com/kenai/constantine com/kenai/jffi com/kenai/jnr/x86asm com/martiansoftware jni jnr/constants/platform/darwin jnr/constants/platform/fake jnr/constants/platform/freebsd jnr/constants/platform/openbsd jnr/constants/platform/sunos jnr/enxio jnr/ffi/annotations jnr/ffi/byref jnr/ffi/mapper jnr/ffi/provider jnr/ffi/util jnr/ffi/Struct$* jnr/ffi/types jnr/posix/Aix* jnr/posix/FreeBSD* jnr/posix/MacOS* jnr/posix/OpenBSD* jnr/x86asm org/jruby/ant org/jruby/cext org/jruby/compiler/impl/BaseBodyCompiler* org/jruby/compiler/util org/jruby/demo org/jruby/embed/bsf org/jruby/embed/jsr223 org/jruby/embed/osgi org/jruby/ext/ffi/AbstractMemory* org/jruby/ext/ffi/Enums* org/jruby/ext/ffi/io org/jruby/ext/ffi/jffi org/jruby/javasupport/bsf org/yecht yaml.rb)
|
545
592
|
elsif gem_version >= Gem::Version.new('1.7.12')
|
593
|
+
# TODO(uwe): Remove when we stop supporting jruby-jars 1.7.12
|
546
594
|
excluded_core_packages = %w(**/*Darwin* **/*Solaris* **/*windows* **/*Windows* META-INF com/headius/invokebinder com/headius/options/example com/kenai/constantine com/kenai/jffi com/kenai/jnr/x86asm com/martiansoftware jni jnr/constants/platform/darwin jnr/constants/platform/fake jnr/constants/platform/freebsd jnr/constants/platform/openbsd jnr/constants/platform/sunos jnr/enxio jnr/ffi/annotations jnr/ffi/byref jnr/ffi/mapper jnr/ffi/provider jnr/ffi/util jnr/ffi/Struct$* jnr/ffi/types jnr/posix/Aix* jnr/posix/FreeBSD* jnr/posix/MacOS* jnr/posix/OpenBSD* jnr/x86asm org/jruby/ant org/jruby/cext org/jruby/compiler/impl/BaseBodyCompiler* org/jruby/compiler/util org/jruby/demo org/jruby/embed/bsf org/jruby/embed/jsr223 org/jruby/embed/osgi org/jruby/ext/ffi/AbstractMemory* org/jruby/ext/ffi/Enums* org/jruby/ext/ffi/io org/jruby/ext/ffi/jffi org/jruby/javasupport/bsf org/yecht yaml.rb)
|
547
595
|
elsif gem_version >= Gem::Version.new('1.7.5')
|
548
596
|
# TODO(uwe): Remove when we stop supporting jruby-jars 1.7.5
|
@@ -570,7 +618,7 @@ module Ruboto
|
|
570
618
|
excluded_core_packages.each do |i|
|
571
619
|
if File.directory? i
|
572
620
|
FileUtils.remove_dir(i, true) rescue puts "Failed to remove package: #{i} (#{$!})"
|
573
|
-
elsif Dir
|
621
|
+
elsif Dir.glob(i, File::FNM_CASEFOLD).each { |f| FileUtils.rm_rf f }.empty?
|
574
622
|
print "exclude pattern #{i.inspect} found no files..."
|
575
623
|
end
|
576
624
|
end
|
data/lib/ruboto/version.rb
CHANGED
@@ -11,10 +11,10 @@ setup do |activity|
|
|
11
11
|
end
|
12
12
|
|
13
13
|
test('__FILE__ is set OK') do |activity|
|
14
|
-
assert_matches %r{jar:file:/data/app/org.ruboto.test_app-[
|
14
|
+
assert_matches %r{jar:file:/data/app/org.ruboto.test_app-[123](?:/base)?.apk!/dir_and_file_activity.rb},
|
15
15
|
activity.find_view_by_id(42).text.to_s
|
16
|
-
assert_matches %r{jar:file:/data/app/org.ruboto.test_app-[
|
16
|
+
assert_matches %r{jar:file:/data/app/org.ruboto.test_app-[123](?:/base)?.apk!},
|
17
17
|
activity.find_view_by_id(43).text.to_s
|
18
|
-
assert_matches %r{file:/data/app/org.ruboto.test_app-[
|
18
|
+
assert_matches %r{file:/data/app/org.ruboto.test_app-[123](?:/base)?.apk!/AndroidManifest.xml},
|
19
19
|
activity.find_view_by_id(44).text.to_s
|
20
20
|
end
|
@@ -4,6 +4,17 @@ require 'ruboto/widget'
|
|
4
4
|
|
5
5
|
ruboto_import_widgets :LinearLayout, :TextView
|
6
6
|
|
7
|
+
# I/System.out( 1700): Starting JSON Parser Service
|
8
|
+
# D/dalvikvm( 1700): JIT code cache reset in 102 ms (1048444 bytes 1/0)
|
9
|
+
# F/libc ( 1700): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 1709 (FinalizerDaemon)
|
10
|
+
# D/dalvikvm( 1700): GC_CONCURRENT freed 2352K, 9% free 28484K/30980K, paused 26ms+126ms, total 834ms
|
11
|
+
# D/dalvikvm( 1700): WAIT_FOR_CONCURRENT_GC blocked 673ms
|
12
|
+
# I/DEBUG ( 35): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
|
13
|
+
# I/DEBUG ( 35): Build fingerprint: 'generic/sdk/generic:4.2.2/JB_MR1.1/576024:eng/test-keys'
|
14
|
+
# I/DEBUG ( 35): Revision: '0'
|
15
|
+
# I/DEBUG ( 35): pid: 1700, tid: 1709, name: UNKNOWN >>> org.ruboto.test_app <<<
|
16
|
+
# I/DEBUG ( 35): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
|
17
|
+
|
7
18
|
class JsonActivity
|
8
19
|
def onCreate(bundle)
|
9
20
|
super
|
@@ -90,7 +90,7 @@ def start_activity_by_button(activity, button_id, activity_class_name = 'org.rub
|
|
90
90
|
puts 'waitForIdleSync'
|
91
91
|
waitForIdleSync
|
92
92
|
puts 'wait_for_monitor_with_timeout'
|
93
|
-
current_activity =
|
93
|
+
current_activity = monitor.wait_for_activity_with_timeout(10000)
|
94
94
|
ensure
|
95
95
|
removeMonitor(monitor)
|
96
96
|
end
|
@@ -101,6 +101,7 @@ end
|
|
101
101
|
|
102
102
|
def button_activity_text(button_id, activity, expected_text_id, expected_text_string,
|
103
103
|
activity_class_name = 'org.ruboto.RubotoActivity')
|
104
|
+
puts "Start activity: #{expected_text_string}"
|
104
105
|
current_activity = start_activity_by_button(activity, button_id, activity_class_name)
|
105
106
|
start = Time.now
|
106
107
|
loop do
|
@@ -15,23 +15,27 @@ end
|
|
15
15
|
# ANDROID: 15, PLATFORM: STANDALONE, JRuby: 1.7.0 '[28, 33, 51, 68]' expected, but got '[28, 33, 47, 64]'
|
16
16
|
# ANDROID: 16, PLATFORM: 0.5.6, JRuby: 1.7.3 '[28, 33, 45, 62]' expected, but got '[28, 33, 44, 61]'
|
17
17
|
# ANDROID: 16, PLATFORM: 0.6.0, JRuby: 9000.dev '[28, 33, 45, 62]' expected, but got '[28, 33, 45, 63]'
|
18
|
+
# ANDROID: 19, PLATFORM: STANDALONE, JRuby: 1.7.20-SNAPSHOT '[28, 33, 43, 60]' expected, but got '[28, 33, 44, 61]'
|
18
19
|
# ANDROID: 20, PLATFORM: 1.0.2, JRuby: 1.7.12 '[28, 33, 44, 61]' expected, but got '[28, 33, 43, 60]'
|
20
|
+
# ANDROID: 21, PLATFORM: 1.0.2, JRuby: 1.7.12 '[28, 33, 44, 61]' expected, but got '[28, 33, 43, 60]'
|
21
|
+
# ANDROID: 22, PLATFORM: STANDALONE, JRuby: 1.7.20-SNAPSHOT '[28, 33, 44, 61]' expected, but got '[28, 33, 43, 60]'
|
19
22
|
test('stack depth') do |activity|
|
20
|
-
os_offset =
|
21
|
-
|
22
|
-
13
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
23
|
+
os_offset =
|
24
|
+
case android.os.Build::VERSION::SDK_INT
|
25
|
+
when 13 then [1, 1, 1, 1]
|
26
|
+
when (15..19) then [0, 0, 1, 1]
|
27
|
+
else [0, 0, 0, 0]
|
28
|
+
end
|
29
|
+
jruby_offset =
|
30
|
+
case org.jruby.runtime.Constants::VERSION
|
31
|
+
when /^1\.7/ then [0, 0, 0, -1]
|
32
|
+
else [0, 0, 0, 0]
|
33
|
+
end
|
30
34
|
version_message ="ANDROID: #{android.os.Build::VERSION::SDK_INT}, PLATFORM: #{org.ruboto.JRubyAdapter.uses_platform_apk ? org.ruboto.JRubyAdapter.platform_version_name : 'STANDALONE'}, JRuby: #{org.jruby.runtime.Constants::VERSION}"
|
31
35
|
assert_equal [28 + os_offset[0] + jruby_offset[0],
|
32
36
|
33 + os_offset[1] + jruby_offset[1],
|
33
|
-
|
34
|
-
|
37
|
+
43 + os_offset[2] + jruby_offset[2],
|
38
|
+
61 + os_offset[3] + jruby_offset[3]], [
|
35
39
|
activity.find_view_by_id(42).text.to_i,
|
36
40
|
activity.find_view_by_id(43).text.to_i,
|
37
41
|
activity.find_view_by_id(44).text.to_i,
|
data/test/app_test_methods.rb
CHANGED
@@ -38,11 +38,11 @@ module AppTestMethods
|
|
38
38
|
|
39
39
|
def run_activity_tests(activity_dir)
|
40
40
|
Dir[File.expand_path("#{activity_dir}/*", File.dirname(__FILE__))].each do |file|
|
41
|
-
# FIXME(uwe): Remove when we stop testing JRuby < 1.7.
|
42
|
-
next if file =~ /rss/ && (JRUBY_JARS_VERSION < Gem::Version.new('1.7.
|
41
|
+
# FIXME(uwe): Remove when we stop testing JRuby < 1.7.20.dev
|
42
|
+
next if file =~ /rss/ && (JRUBY_JARS_VERSION < Gem::Version.new('1.7.20.dev'))
|
43
43
|
# EMXIF
|
44
44
|
|
45
|
-
# FIXME(uwe): Remove when we release RubotoCore based on JRuby 1.7.
|
45
|
+
# FIXME(uwe): Remove when we release RubotoCore based on JRuby 1.7.20
|
46
46
|
next if file =~ /rss/ && (RUBOTO_PLATFORM == 'CURRENT' || RUBOTO_PLATFORM == 'FROM_GEM')
|
47
47
|
# EMXIF
|
48
48
|
|
@@ -51,7 +51,7 @@ module AppTestMethods
|
|
51
51
|
next if file =~ /ssl/ && (ANDROID_OS < 16 ||
|
52
52
|
RUBOTO_PLATFORM == 'CURRENT' || RUBOTO_PLATFORM == 'FROM_GEM' ||
|
53
53
|
JRUBY_JARS_VERSION < Gem::Version.new('1.7.13') ||
|
54
|
-
JRUBY_JARS_VERSION < Gem::Version.new('
|
54
|
+
JRUBY_JARS_VERSION < Gem::Version.new('9.0.0.0')) # FIXME(uwe): JRuby 9K should contain the SSLSocket fix.
|
55
55
|
# EMXIF
|
56
56
|
|
57
57
|
# FIXME(uwe): Remove when we stop testing JRuby < 1.7.4.dev
|
data/test/arjdbc_test.rb
CHANGED
@@ -1,11 +1,21 @@
|
|
1
1
|
require File.expand_path('test_helper', File.dirname(__FILE__))
|
2
2
|
|
3
3
|
# FIXME(uwe): Remove check when we stop supporting Android < 4.0.3
|
4
|
-
if RubotoTest::ANDROID_OS >= 15
|
4
|
+
if RubotoTest::ANDROID_OS >= 15 &&
|
5
|
+
# FIXME(uwe): Remove when CURRENT works with ARJDBC
|
6
|
+
RubotoTest::RUBOTO_PLATFORM != 'CURRENT' &&
|
7
|
+
# FIXME(uwe): Remove when CURRENT works with ARJDBC
|
8
|
+
RubotoTest::RUBOTO_PLATFORM != 'FROM_GEM'
|
5
9
|
|
6
|
-
class ArjdbcTest < Test
|
10
|
+
class ArjdbcTest < Minitest::Test
|
7
11
|
def setup
|
8
|
-
|
12
|
+
# FIXME(uwe): Simplify when RubotoCore is released with newer thread_safe
|
13
|
+
generate_app bundle: [
|
14
|
+
[:activerecord, RUBOTO_PLATFORM == 'CURRENT' ? '<4.0.0' : '<4.2.0'],
|
15
|
+
:'activerecord-jdbc-adapter',
|
16
|
+
:sqldroid,
|
17
|
+
]
|
18
|
+
# EMXIF
|
9
19
|
end
|
10
20
|
|
11
21
|
def teardown
|
@@ -17,7 +27,9 @@ class ArjdbcTest < Test::Unit::TestCase
|
|
17
27
|
File.open('src/ruboto_test_app_activity.rb', 'w'){|f| f << <<EOF}
|
18
28
|
require 'ruboto/widget'
|
19
29
|
require 'ruboto/util/stack'
|
30
|
+
|
20
31
|
with_large_stack do
|
32
|
+
require 'rubygems'
|
21
33
|
require 'active_record'
|
22
34
|
end
|
23
35
|
|
@@ -53,15 +65,14 @@ class RubotoTestAppActivity
|
|
53
65
|
def onResume
|
54
66
|
super
|
55
67
|
|
56
|
-
|
68
|
+
db_file = "\#{application_context.files_dir}/sqlite"
|
57
69
|
|
58
70
|
with_large_stack do
|
59
71
|
|
60
72
|
ActiveRecord::Base.establish_connection(
|
61
|
-
:adapter => '
|
73
|
+
:adapter => 'sqlite3',
|
62
74
|
:driver => 'org.sqldroid.SQLDroidDriver',
|
63
|
-
:
|
64
|
-
:database => db_dir,
|
75
|
+
:database => db_file,
|
65
76
|
)
|
66
77
|
|
67
78
|
begin
|