OSDN Git Service

android-x86/dalvik.git
14 years agoMerge " Add the "-Xgc:[no]overwritefree" flags. When set, the GC will clobber the...
Barry Hayes [Mon, 22 Feb 2010 17:13:28 +0000 (09:13 -0800)]
Merge " Add the "-Xgc:[no]overwritefree" flags. When set, the GC will clobber the memory of freed objects." into dalvik-dev

14 years agoMerge "HTTP headers should be case-insensitive but case-preserving." into dalvik-dev
Elliott Hughes [Wed, 17 Feb 2010 23:51:36 +0000 (15:51 -0800)]
Merge "HTTP headers should be case-insensitive but case-preserving." into dalvik-dev

14 years ago Add the "-Xgc:[no]overwritefree" flags. When set, the GC will clobber the
Barry Hayes [Tue, 2 Feb 2010 22:07:37 +0000 (14:07 -0800)]
 Add the "-Xgc:[no]overwritefree" flags. When set, the GC will clobber the
memory of freed objects.

14 years agoMerge "Eliminate the heap chunk abstraction. This temporarily breaks the hprof featu...
Carl Shapiro [Wed, 17 Feb 2010 22:52:59 +0000 (14:52 -0800)]
Merge "Eliminate the heap chunk abstraction.  This temporarily breaks the hprof feature that allows stack traces to be associated with objects." into dalvik-dev

14 years agoEliminate the heap chunk abstraction. This temporarily breaks the
Carl Shapiro [Wed, 17 Feb 2010 01:40:19 +0000 (17:40 -0800)]
Eliminate the heap chunk abstraction.  This temporarily breaks the
hprof feature that allows stack traces to be associated with objects.

14 years agoMerge "Detect system-wide safe mode and configure the VM accordingly." into dalvik-dev
Ben Cheng [Wed, 17 Feb 2010 20:47:35 +0000 (12:47 -0800)]
Merge "Detect system-wide safe mode and configure the VM accordingly." into dalvik-dev

14 years agoDetect system-wide safe mode and configure the VM accordingly.
Ben Cheng [Mon, 15 Feb 2010 00:17:36 +0000 (16:17 -0800)]
Detect system-wide safe mode and configure the VM accordingly.

Use pthread_cond_wait instead of timed wait for the system_server process to
wait on the go-ahead JIT signal. If the phone is booted under system-wide safe
mode, such signal will never come so all VM instances (including the system
server) will run in the interpreter-only mode.

Bug: 2267590

14 years agoHTTP headers should be case-insensitive but case-preserving.
Elliott Hughes [Wed, 17 Feb 2010 20:18:59 +0000 (12:18 -0800)]
HTTP headers should be case-insensitive but case-preserving.

Bug: http://code.google.com/p/android/issues/detail?id=6684

14 years agoMerge "Densely allocate mspaces. New heaps are started on the page following the...
Carl Shapiro [Wed, 17 Feb 2010 20:15:19 +0000 (12:15 -0800)]
Merge "Densely allocate mspaces.  New heaps are started on the page following the break of the previously allocated heap.  In addition, we shrink the reported size of the previous object bitmap so it covers only the committed range of the heap.  We now separately track the size of the bitmap virtual memory reservation so we may unmap it all at shutdown time." into dalvik-dev

14 years agoJit: Monitor exit, possible fix for Issue 2396073
Bill Buzbee [Tue, 16 Feb 2010 22:40:01 +0000 (14:40 -0800)]
Jit: Monitor exit, possible fix for Issue 2396073

Two problems with monitor-exit:
   1.  The Jit code wasn't checking for exception thrown following
       unlocks of fat locks using dvmUnlockObject().
   2.  The mterp interpreter unlock code branched to handle exceptions
       thrown during dvmUnlockObject() with the wrong dalvik PC (the
       dPC of the unlock, rather than the instruction following the unlock).

Similar issue with the x86 interpreter fixed.  Also, deleted armv7-a
MONITOR_ENTER template, which turned out to be identical to the armv5te
one.

14 years agoFix FindBugs' "high" warnings about java.lang.Class.
Elliott Hughes [Wed, 17 Feb 2010 00:06:37 +0000 (16:06 -0800)]
Fix FindBugs' "high" warnings about java.lang.Class.

14 years agoDensely allocate mspaces. New heaps are started on the page following
Carl Shapiro [Mon, 15 Feb 2010 02:40:47 +0000 (18:40 -0800)]
Densely allocate mspaces.  New heaps are started on the page following
the break of the previously allocated heap.  In addition, we shrink
the reported size of the previous object bitmap so it covers only the
committed range of the heap.  We now separately track the size of the
bitmap virtual memory reservation so we may unmap it all at shutdown
time.

14 years agoEliminate unused variable warnings in the alloc code. In the places
Carl Shapiro [Mon, 15 Feb 2010 07:11:47 +0000 (23:11 -0800)]
Eliminate unused variable warnings in the alloc code.  In the places
where unused attributes have been added, arguably, the return code
should be passed up to the caller or, if the return code indicates an
error, we should fast-fail.

14 years agoMerge "Fix a few of our FindBugs "high" warnings." into dalvik-dev
Elliott Hughes [Sat, 13 Feb 2010 03:52:42 +0000 (19:52 -0800)]
Merge "Fix a few of our FindBugs "high" warnings." into dalvik-dev

14 years agoFix a few of our FindBugs "high" warnings.
Elliott Hughes [Sat, 13 Feb 2010 02:10:26 +0000 (18:10 -0800)]
Fix a few of our FindBugs "high" warnings.

RuleBasedBreakIterator was breaking the equals/hashCode contract.

Various classes were calling toString on arrays, which isn't very useful.

GregorianCalendar was missing a null/instanceof check. (FindBugs complained about
the former, but the super.equals would actually take care of that. The lack of
the explicit "instanceof" did mean that we could throw ClassCastException if you
had a Calendar that wasn't a GregorianCalendar, though. [Not easily testable,
and I hope we'll replace our calendars with ICU4J's before we actually have
another Calendar subclass.])

Collator's cache was broken, but luckily never had anything inserted into it
anyway.

14 years agoMerge "Use one method to create a Locale from a String." into dalvik-dev
Elliott Hughes [Sat, 13 Feb 2010 01:49:41 +0000 (17:49 -0800)]
Merge "Use one method to create a Locale from a String." into dalvik-dev

14 years agoThrow IllegalArgumentException if Currency.getInstance is given an invalid currency...
Elliott Hughes [Sat, 13 Feb 2010 00:51:53 +0000 (16:51 -0800)]
Throw IllegalArgumentException if Currency.getInstance is given an invalid currency code.

This fixes an existing harmony DecimalFormatSymbolsTest failure, but I've added
an explicit test for clarity (and to reduce the likelihood of regression).

14 years agoUse one method to create a Locale from a String.
Elliott Hughes [Fri, 12 Feb 2010 23:33:53 +0000 (15:33 -0800)]
Use one method to create a Locale from a String.

Bug: 2392157

14 years agoMerge "Remove some potential test flakiness." into dalvik-dev
Elliott Hughes [Fri, 12 Feb 2010 21:43:14 +0000 (13:43 -0800)]
Merge "Remove some potential test flakiness." into dalvik-dev

14 years agoRemove some potential test flakiness.
Elliott Hughes [Fri, 12 Feb 2010 19:23:05 +0000 (11:23 -0800)]
Remove some potential test flakiness.

Bug: 2441548

14 years agoMerge "Do not include assert.h in places where it may shadow the definition provided...
Carl Shapiro [Fri, 12 Feb 2010 19:07:52 +0000 (11:07 -0800)]
Merge "Do not include assert.h in places where it may shadow the definition provided by Common.h if WITH_DALVIK_ASSERTS is defined.  The include from HeapBitmap.h was notable as it redefined the Dalvik friendly assert macro with the useless libc macro across all of the GC sources." into dalvik-dev

14 years agoUse HAVE_ANDROID_OS to conditionally include files on a device target.
Dan Bornstein [Fri, 12 Feb 2010 18:04:14 +0000 (10:04 -0800)]
Use HAVE_ANDROID_OS to conditionally include files on a device target.

14 years agoDo not include assert.h in places where it may shadow the definition
Carl Shapiro [Fri, 12 Feb 2010 06:36:02 +0000 (22:36 -0800)]
Do not include assert.h in places where it may shadow the definition
provided by Common.h if WITH_DALVIK_ASSERTS is defined.  The include
from HeapBitmap.h was notable as it redefined the Dalvik friendly
assert macro with the useless libc macro across all of the GC sources.

14 years agoUse ashmem to create the JIT code cache.
Ben Cheng [Thu, 11 Feb 2010 23:03:00 +0000 (15:03 -0800)]
Use ashmem to create the JIT code cache.

14 years agoFree memory associated with the trace descriptor of ALL dropped JIT work orders
Ben Cheng [Thu, 11 Feb 2010 01:21:39 +0000 (17:21 -0800)]
Free memory associated with the trace descriptor of ALL dropped JIT work orders

To further reduce the memory consumption only enable the method vs trace
compile size stats when WITH_JIT_TUNING is configured.

14 years agoMerge "Support per-application switch to execute the VM in safe mode." into dalvik-dev
Ben Cheng [Fri, 12 Feb 2010 00:01:57 +0000 (16:01 -0800)]
Merge "Support per-application switch to execute the VM in safe mode." into dalvik-dev

14 years agoJit: Minor codegen tuning.
Bill Buzbee [Thu, 11 Feb 2010 22:04:53 +0000 (14:04 -0800)]
Jit: Minor codegen tuning.

14 years agoMerge "Allocate a contiguous region of virtual memory to be subdivided among the...
Carl Shapiro [Thu, 11 Feb 2010 22:20:39 +0000 (14:20 -0800)]
Merge "Allocate a contiguous region of virtual memory to be subdivided among the various heaps managed by the garbage collector.  Because we cannot tell how far the break has been advanced by morecore, we over allocate virtual memory and grain each heap on a multiple of the maximum heap size.  If we could reckon the position of the break, we could allocate just as many pages as required.  This requires exporting more state from mspace.c, a refinement I will reserve for a future change list." into dalvik-dev

14 years agoAllocate a contiguous region of virtual memory to be subdivided among
Carl Shapiro [Wed, 10 Feb 2010 00:26:30 +0000 (16:26 -0800)]
Allocate a contiguous region of virtual memory to be subdivided among
the various heaps managed by the garbage collector.  Because we cannot
tell how far the break has been advanced by morecore, we over allocate
virtual memory and grain each heap on a multiple of the maximum heap
size.  If we could reckon the position of the break, we could allocate
just as many pages as required.  This requires exporting more state
from mspace.c, a refinement I will reserve for a future change list.

14 years agoAdded LDMIA/STMIA support to Self Verification mode.
jeffhao [Wed, 10 Feb 2010 18:51:02 +0000 (10:51 -0800)]
Added LDMIA/STMIA support to Self Verification mode.

14 years agoSupport per-application switch to execute the VM in safe mode.
Ben Cheng [Tue, 9 Feb 2010 00:03:42 +0000 (16:03 -0800)]
Support per-application switch to execute the VM in safe mode.

This is the implementation on the VM side to consume the android:safeMode=true
attribute and force the application to run in interpreter-only mode (the
current safe mode).

Bug: 2267583

14 years agoAdded missing break statements and improved debugging in SelfVerification.
jeffhao [Tue, 9 Feb 2010 22:55:47 +0000 (14:55 -0800)]
Added missing break statements and improved debugging in SelfVerification.

14 years agoJit: Phase 1 of register utility cleanup/rewrite - the great renaming
Bill Buzbee [Tue, 9 Feb 2010 19:16:15 +0000 (11:16 -0800)]
Jit: Phase 1 of register utility cleanup/rewrite - the great renaming

Renaming of all of those register utilities which used to be local because
of our include mechanism to the standard dvmCompiler prefix scheme.

14 years agoCleaned up uninitialized variable use warnings in Self Verification mode.
jeffhao [Fri, 5 Feb 2010 23:08:23 +0000 (15:08 -0800)]
Cleaned up uninitialized variable use warnings in Self Verification mode.

14 years agoFree the memory associated with the trace descriptor of dropped JIT work orders.
Ben Cheng [Tue, 9 Feb 2010 04:57:59 +0000 (20:57 -0800)]
Free the memory associated with the trace descriptor of dropped JIT work orders.

14 years agoEnable JIT parameters to be initialized in an architecture dependent way.
Ben Cheng [Fri, 5 Feb 2010 00:15:59 +0000 (16:15 -0800)]
Enable JIT parameters to be initialized in an architecture dependent way.

The search for optimial value is still ongoing. The current settings are:

                         v5    v7
JIT profile table       512  2048
JIT code cache         512K    1M
JIT threshold           200    40

14 years agoJit: Startup/Shutdown cleanup
Bill Buzbee [Tue, 9 Feb 2010 01:08:15 +0000 (17:08 -0800)]
Jit: Startup/Shutdown cleanup

A legacy of early parallel Jit development was separate Startup & Shutdown
code for the interpreter half of the jit (dvmJitStartup/dvmJitShutdown)
and the compiler half (dvmCompilerStartup/dvmCompilerShutdown).  This cl
eliminates the dvmJit pair.  Additionally, guard coded added to the
framework callback to return immediately if the Jit isn't active.

14 years agoJit: Remove references to interpState from C interpreter
Bill Buzbee [Mon, 8 Feb 2010 18:41:32 +0000 (10:41 -0800)]
Jit: Remove references to interpState from C interpreter

Fix for Issue 2157987:
   Eventual isssue with interpState->jitState in <dalvik/vm/mterp/c/header.c

14 years agoFix a bug I introduced to SimpleTimeZone with my Calendar.setTimeZone fix.
Elliott Hughes [Sat, 6 Feb 2010 01:36:23 +0000 (17:36 -0800)]
Fix a bug I introduced to SimpleTimeZone with my Calendar.setTimeZone fix.

Our implementations of SimpleTimeZone and Calendar became mutually recursive
for custom time zones when I changed GregorianCalendar.computeFields to use
TimeZone.inDaylightTime --- SimpleTimeZone's implementation of inDaylightTime
creates a GregorianCalendar leading to a stack overflow looking something
like this...

at java.util.SimpleTimeZone.inDaylightTime(SimpleTimeZone.java:599)
at java.util.GregorianCalendar.computeFields(GregorianCalendar.java:595)
at java.util.Calendar.complete(Calendar.java:819)
at java.util.Calendar.setTimeInMillis(Calendar.java:1319)
at java.util.GregorianCalendar.<init>(GregorianCalendar.java:339)
at java.util.GregorianCalendar.<init>(GregorianCalendar.java:325)
at java.util.SimpleTimeZone.inDaylightTime(SimpleTimeZone.java:599)

I've cut the knot by introducing "Grego" from ICU4J, and rewriting our
SimpleTimeZone.inDaylightTime in the style of ICU4J's implementation.

Maybe we'll be using the ICU4J calendar implementation sooner than I thought!

14 years agoMerge "JIT: Replace missing ending comment marker MONITOR_ENTER template" into dalvik-dev
Bill Buzbee [Sat, 6 Feb 2010 00:46:20 +0000 (16:46 -0800)]
Merge "JIT: Replace missing ending comment marker MONITOR_ENTER template" into dalvik-dev

14 years agoJIT: Replace missing ending comment marker MONITOR_ENTER template
Bill Buzbee [Sat, 6 Feb 2010 00:08:38 +0000 (16:08 -0800)]
JIT: Replace missing ending comment marker MONITOR_ENTER template

...which, luckily, was followed by a debug version of the same handler
so everything magically worked anyway.  I should buy a lottery ticket today.

14 years agoMerge "Track upstream fixes to two broken tests." into dalvik-dev
Elliott Hughes [Sat, 6 Feb 2010 00:44:59 +0000 (16:44 -0800)]
Merge "Track upstream fixes to two broken tests." into dalvik-dev

14 years agoJit: Start the Jit when framework signals on first screen draw
Bill Buzbee [Fri, 5 Feb 2010 00:09:55 +0000 (16:09 -0800)]
Jit: Start the Jit when framework signals on first screen draw

Cleanup of delayed start - introduce dvmRelativeCondWait in Sync.c.
Additionally, support for deadman timer to start Jit when no screen draws
happen, and to start immediately when running stand-alone.

Fixed bug in assert variant of libdvm - recent MONITOR change had neglected
to add a new type of exit to the exit stats.

14 years agoEliminate the post-zygote heap and reuse the zygote allocation heap
Carl Shapiro [Fri, 5 Feb 2010 03:12:55 +0000 (19:12 -0800)]
Eliminate the post-zygote heap and reuse the zygote allocation heap
for application allocations.  Previously, applications were given
their own heap separate from the zygote.  However, the zygote never
allocates more than 10s of objects most of which quickly become
garbage.  After an application fork, these objects are reclaimed,
dirtying the pages they and their malloc structures reside on.  This
is a further win for the GC as it results in one fewer mspace to
considered for range checks and bitmap traversals.

14 years agoTrack upstream fixes to two broken tests.
Elliott Hughes [Fri, 5 Feb 2010 21:51:27 +0000 (13:51 -0800)]
Track upstream fixes to two broken tests.

14 years agoFix accidental API pollution in java.util.zip.
Elliott Hughes [Fri, 5 Feb 2010 08:03:03 +0000 (00:03 -0800)]
Fix accidental API pollution in java.util.zip.

Package-private interface ZipConstants turns out to be implemented by
all the public Zip* classes in the package, so they can uselessly
expose duplicate copies of the constants. This means I can't add my
own constants there because they'll leak.

This didn't break the build because we lose the "implements ZipConstants"
and ZipConstants.class somewhere around the apicheck part of the build.
See http://b/2421864 for that.

Anyway, let's mop up the spill before anyone can see it...

14 years agoMerge "Fix decoding of filenames in zip files, when read by ZipFile." into dalvik-dev
Elliott Hughes [Fri, 5 Feb 2010 06:52:56 +0000 (22:52 -0800)]
Merge "Fix decoding of filenames in zip files, when read by ZipFile." into dalvik-dev

14 years agoFix decoding of filenames in zip files, when read by ZipFile.
Elliott Hughes [Fri, 5 Feb 2010 01:44:29 +0000 (17:44 -0800)]
Fix decoding of filenames in zip files, when read by ZipFile.

Java always writes UTF-8 filenames in zip files, but harmony cunningly
always reads them back as ISO-8859-1. Fix that, and also set the flag
that says "these filenames are UTF-8" (the RI will do this from Java 7
on).

Note that this patch doesn't actually touch ZipFile because the bug is
in the package-private ZipEntry constructor that's used by
ZipFile.readCentralDirectory.

Bug: http://code.google.com/p/android/issues/detail?id=4690

14 years agoMade Self Verification mode's memory interface less intrusive.
jeffhao [Wed, 3 Feb 2010 18:24:05 +0000 (10:24 -0800)]
Made Self Verification mode's memory interface less intrusive.

14 years agoMerge "Minimal fix for Calendar.setTimeZone." into dalvik-dev
Elliott Hughes [Thu, 4 Feb 2010 22:40:56 +0000 (14:40 -0800)]
Merge "Minimal fix for Calendar.setTimeZone." into dalvik-dev

14 years agoMinimal fix for Calendar.setTimeZone.
Elliott Hughes [Thu, 4 Feb 2010 21:57:51 +0000 (13:57 -0800)]
Minimal fix for Calendar.setTimeZone.

The interpretation of Calendar's competing member variables when the time,
time zone, and fields[] don't agree is confusing, and led to
Calendar.setTimeZone having no effect. I've improved the documentation
based on my reverse-engineering and fixed this bug. I noticed a lot of
other code that looks incorrect though, and I've raised http://b/2419810
suggesting that we switch to icu4j's calendars in the longer term.

Bug: http://code.google.com/p/android/issues/detail?id=6184

14 years agoJit: Fix deadlock in method tracing.
Bill Buzbee [Thu, 4 Feb 2010 02:13:57 +0000 (18:13 -0800)]
Jit: Fix deadlock in method tracing.

14 years agoFix performance issues related to chaining and unchaining.
Ben Cheng [Wed, 27 Jan 2010 00:46:15 +0000 (16:46 -0800)]
Fix performance issues related to chaining and unchaining.

1) Patching requests for predicted chaining cells (used by virtual/interface
methods) are now batched in a queue and processed when the VM is paused for GC.

2) When the code cache is full the reset operation is also conducted at the
end of GC pauses so this totally eliminates the need for the compiler thread
to issue suspend-all requests. This is a very rare event and when happening it
takes less than 5ms to finish.

3) Change the initial value of the branch in a predicted chaining cell from 0
(ie lsl r0, r0, #0) to 0xe7fe (ie branch to self) so that initializing a
predicted chaining cell doesn't need to suspend all threads. Together with 1)
seeing 20% speedup on some benchmarks.

4) Add TestCompability.c where defining "TEST_VM_IN_ECLAIR := true" in
buildspec.mk will activate dummy symbols needed to run libdvm.so in older
releases.

Bug: 2397689
Bug: 2396513
Bug: 2331313

14 years agoMerge "Remove obviously bogus @KnownFailure annotations." into dalvik-dev
Elliott Hughes [Thu, 4 Feb 2010 00:40:41 +0000 (16:40 -0800)]
Merge "Remove obviously bogus @KnownFailure annotations." into dalvik-dev

14 years agoMerge "Jit: Rework monitor enter/exit to simplify thread suspension" into dalvik-dev
Bill Buzbee [Thu, 4 Feb 2010 00:02:36 +0000 (16:02 -0800)]
Merge "Jit: Rework monitor enter/exit to simplify thread suspension" into dalvik-dev

14 years agoRemove obviously bogus @KnownFailure annotations.
Elliott Hughes [Thu, 4 Feb 2010 00:02:33 +0000 (16:02 -0800)]
Remove obviously bogus @KnownFailure annotations.

We've already agreed @KnownFailure Must Die (to be replaced by expectations for
DalvikRunner), but some are -- I think -- obviously in need of investigation.
This patch removes @KnownFailure for all cases where the reason looks bogus.
I've left the @KnownFailure annotations in cases where I it looks "reasonable"
in that we simply haven't implemented the functionality (pack200, say), and
a few other cases. Those should probably be done in a separate patch that adds
expectations at the same time.

But these ones, I think, all need investigating. (There's a scary number of
Arabic-related bugs in here, given that we're supposed to be shipping Arabic
in froyo.)

14 years agoRemove a workaround for an openssl bug that's been fixed upstream.
Elliott Hughes [Wed, 3 Feb 2010 23:23:07 +0000 (15:23 -0800)]
Remove a workaround for an openssl bug that's been fixed upstream.

The >= versus > bug was fixed in openssl somewhere between .98g and .98k (we
don't have _all_ versions conveniently lying around), and our removal of
the disjunct was irrelevant. Call the now-correct upstream code instead of
manually inlining and hacking it.

Also rename BN_lshift to BN_shift, since it handles both left and right shifts.

14 years agoJit: Rework monitor enter/exit to simplify thread suspension
Bill Buzbee [Tue, 2 Feb 2010 19:04:33 +0000 (11:04 -0800)]
Jit: Rework monitor enter/exit to simplify thread suspension

The Jit must stop all threads in order to flush the translation cache (and
other tables).  Threads which are blocked in a monitor wait cause some
headache here because they effectively hold a references to the translation
cache (though the return address on the native stack).  The new model
introduced in this CL is that for the fast path of monitor enter, control
is allowed to resume in the translation cache.  However, if we need to do a
heavyweight lock (which may cause us to block) control does not return to the
translation cache but instead bails out to the interpreter.  This allows us to
safely clear the code cache even if some threads are in THREAD_MONITOR state.

14 years agoFix two compiler warnings.
Elliott Hughes [Wed, 3 Feb 2010 20:42:27 +0000 (12:42 -0800)]
Fix two compiler warnings.

Signed/unsigned comparison in "File.cpp", and && and || without parentheses
in "OpenSSLSocketImpl.cpp". There's another signed/unsigned comparison in
"ifaddrs-android.h" but that isn't fixable (http://b/2417132), which is
going to stand in the way of turning on -Werror.

14 years agoRemove RuleBasedNumberFormat from our icu4jni fork, since we don't need it.
Elliott Hughes [Wed, 3 Feb 2010 19:14:01 +0000 (11:14 -0800)]
Remove RuleBasedNumberFormat from our icu4jni fork, since we don't need it.

This is ICU API not used by Java, so there's no point pretending to maintain it.

Bug: http://b/2377457

14 years agoSilence "note: the mangling of 'va_list' has changed in GCC 4.4".
Elliott Hughes [Wed, 3 Feb 2010 07:06:12 +0000 (23:06 -0800)]
Silence "note: the mangling of 'va_list' has changed in GCC 4.4".

Not strictly necessary for turning on -Werror for libcore, but worth doing
anyway.

14 years agoMerge "A new test suite for our XSLT transforms."
Jesse Wilson [Tue, 2 Feb 2010 20:48:06 +0000 (12:48 -0800)]
Merge "A new test suite for our XSLT transforms."

14 years agoA new test suite for our XSLT transforms.
Jesse Wilson [Tue, 2 Feb 2010 02:33:00 +0000 (18:33 -0800)]
A new test suite for our XSLT transforms.

Currently the test suite isn't wired-in to run automatically. Before
that can happen I need to devise a way for the device to grab the
OASIS test .zip from the Internet (or distribute it with Android).

In the interim the test can be run by hand by manually copying the
test suite to the device ("adb push") and running the test suite's
main method. This approach might be workable in our continuous
build.

Note that the RI does horribly at this test suite - in my run it
reports the following:
   FAILURES!!!
   Tests run: 3173,  Failures: 338,  Errors: 730

14 years agoRestore our ability to parse an XML Document given a File argument
Jesse Wilson [Tue, 2 Feb 2010 19:18:33 +0000 (11:18 -0800)]
Restore our ability to parse an XML Document given a File argument
directly, rather than via a stream.

When I updated DocumentBuilder but not its subclass DocumentBuilderImpl,
some of the assumptions by DocumentBuilderImpl were violated.

14 years agoMerge "Move a test I wrote under our wing."
Elliott Hughes [Tue, 2 Feb 2010 17:02:51 +0000 (09:02 -0800)]
Merge "Move a test I wrote under our wing."

14 years agoReduce VM shutdown verbosity.
Andy McFadden [Tue, 2 Feb 2010 00:56:53 +0000 (16:56 -0800)]
Reduce VM shutdown verbosity.

Adds -verbose:shutdown flag, defaulted to "false".  Cuts out most of the
log noise associated with shell commands.

14 years agoMove a test I wrote under our wing.
Elliott Hughes [Tue, 2 Feb 2010 03:45:41 +0000 (19:45 -0800)]
Move a test I wrote under our wing.

I put this in amongst the harmony tests before we started our own little
tree of tests.

14 years agoAdd a missing "static", found by FindBugs.
Elliott Hughes [Tue, 2 Feb 2010 02:19:28 +0000 (18:19 -0800)]
Add a missing "static", found by FindBugs.

14 years agoMerge "Fix BigDecimalTest.test_stripTrailingZero."
Elliott Hughes [Tue, 2 Feb 2010 01:35:21 +0000 (17:35 -0800)]
Merge "Fix BigDecimalTest.test_stripTrailingZero."

14 years agoFix BigDecimalTest.test_stripTrailingZero.
Elliott Hughes [Tue, 2 Feb 2010 00:25:40 +0000 (16:25 -0800)]
Fix BigDecimalTest.test_stripTrailingZero.

jessewilson reverted an upstream change (https://issues.apache.org/jira/browse/HARMONY-4623)
that caused an RI incompatibility. Although it seems like the RI behavior is
wrong, the poor design of BigDecimal.equals (which checks both value *and*
scale) probably means we should remain compatible.

This patch changes the test expectation to match the RI's behavior and adds
a comment in both the code and its test explaining that this is deliberate.

14 years agoMerge "Jit: MethodTrace + Jit fix"
Bill Buzbee [Tue, 2 Feb 2010 00:14:52 +0000 (16:14 -0800)]
Merge "Jit: MethodTrace + Jit fix"

14 years agoMerge "Remove @KnownFailure from tests that now pass."
Elliott Hughes [Tue, 2 Feb 2010 00:08:02 +0000 (16:08 -0800)]
Merge "Remove @KnownFailure from tests that now pass."

14 years agoMerge "FindBugs didn't like setInternalField, and neither do I."
Elliott Hughes [Tue, 2 Feb 2010 00:07:42 +0000 (16:07 -0800)]
Merge "FindBugs didn't like setInternalField, and neither do I."

14 years agoRemove @KnownFailure from tests that now pass.
Elliott Hughes [Mon, 1 Feb 2010 23:38:16 +0000 (15:38 -0800)]
Remove @KnownFailure from tests that now pass.

One of these tests still doesn't pass, but for a different reason know the
known failure is fixed, so I've removed that test's annotation too:

16) test_parseLjava_io_InputStreamLorg_xml_sax_helpers_DefaultHandlerLjava_lang_String(tests.api.javax.xml.parsers.SAXParserTest)junit.framework.AssertionFailedError
at tests.api.javax.xml.parsers.SAXParserTest.test_parseLjava_io_InputStreamLorg_xml_sax_helpers_DefaultHandlerLjava_lang_String(SAXParserTest.java:680)
at java.lang.reflect.Method.invokeNative(Native Method)
at com.google.coretests.CoreTestRunnable.runInternally(CoreTestRunnable.java:129)
at com.google.coretests.CoreTestRunnable.run(CoreTestRunnable.java:92)
at com.google.coretests.CoreTestResult.runProtected(CoreTestResult.java:148)
at com.google.coretests.CoreTestSuite.run(CoreTestSuite.java:278)
at com.google.coretests.CoreTestRunner.doRun(CoreTestRunner.java:141)
at com.google.coretests.CoreTestRunner.start(CoreTestRunner.java:317)
at com.google.coretests.CoreTestRunner.main(CoreTestRunner.java:110)
at com.google.coretests.Main.main(Main.java:45)
at dalvik.system.NativeStart.main(Native Method)

14 years agoFindBugs didn't like setInternalField, and neither do I.
Elliott Hughes [Mon, 1 Feb 2010 23:32:27 +0000 (15:32 -0800)]
FindBugs didn't like setInternalField, and neither do I.

"Exception is caught when Exception is not thrown in java.text.DecimalFormat$1.run()"

Since it will always fail anyway, because those fields don't exist, let's
just junk it.

It turns out that getInternalField is similarly useless, so junk it too.

I've tidied the whole readObject method so it's somewhat readable now.

I also fixed this FindBugs warning in passing:

"Method java.text.DecimalFormat.parse(String, ParsePosition) invokes inefficient
new Long(long) constructor; use Long.valueOf(long) instead"

14 years agoMerge "Minor clarification."
Andy McFadden [Mon, 1 Feb 2010 23:12:03 +0000 (15:12 -0800)]
Merge "Minor clarification."

14 years agoMinor clarification.
Andy McFadden [Mon, 1 Feb 2010 22:39:21 +0000 (14:39 -0800)]
Minor clarification.

People seem tempted to skip past the introductory material and jump
straight to the meaty bits, but the introduction tells you some
important things (like how you need to stop/start the framework).

14 years agoJit: MethodTrace + Jit fix
Bill Buzbee [Mon, 1 Feb 2010 02:53:15 +0000 (18:53 -0800)]
Jit: MethodTrace + Jit fix

Add checks for debug & trace mode to avoid re-entering Jit'd code.
This is the conversative solution - we'll eventually want the Jit
to integrate support for tracing and debug into Jit'd code.

14 years agoMerge "Bump up the max stack depth."
Andy McFadden [Mon, 1 Feb 2010 22:54:05 +0000 (14:54 -0800)]
Merge "Bump up the max stack depth."

14 years agoBump up the max stack depth.
Andy McFadden [Mon, 1 Feb 2010 22:32:35 +0000 (14:32 -0800)]
Bump up the max stack depth.

This increases the maximum stack depth in the DDMS "allocation tracker"
tab from 8 to 16.  Adds about 32KB to the static size, plus a variable
amount as the data is prepared for transmission to DDMS.

For bug 2345675.

14 years agoMerge "Update with froyo change."
Andy McFadden [Mon, 1 Feb 2010 20:33:39 +0000 (12:33 -0800)]
Merge "Update with froyo change."

14 years agoFix "unmappable character for ascii" warnings in libcore tests.
Elliott Hughes [Mon, 1 Feb 2010 19:40:36 +0000 (11:40 -0800)]
Fix "unmappable character for ascii" warnings in libcore tests.

The libcore "core" and "core-test" builds are now warning-free. (For Java.)

14 years agoFix varargs warnings in libcore tests.
Elliott Hughes [Mon, 1 Feb 2010 19:14:45 +0000 (11:14 -0800)]
Fix varargs warnings in libcore tests.

14 years agoMerge "Fix warnings in the new XML code."
Elliott Hughes [Mon, 1 Feb 2010 19:13:46 +0000 (11:13 -0800)]
Merge "Fix warnings in the new XML code."

14 years agoFix warnings in the new XML code.
Elliott Hughes [Mon, 1 Feb 2010 18:40:34 +0000 (10:40 -0800)]
Fix warnings in the new XML code.

14 years agoUpdate with froyo change.
Andy McFadden [Mon, 1 Feb 2010 18:24:39 +0000 (10:24 -0800)]
Update with froyo change.

This refers to Froyo as "2.x", because nobody seems to know what the
actual numbering will be.

14 years agoFix fallback in Currency.getSymbol(Locale).
Elliott Hughes [Sat, 30 Jan 2010 05:32:17 +0000 (21:32 -0800)]
Fix fallback in Currency.getSymbol(Locale).

If ICU doesn't have any localized symbol for a currency, we're supposed to
return the currency code, not null.

I introduced this bug in my recent changes. The Currency tests don't find it,
but DecimalFormatTest.test_setCurrencyLjava_util_Currency does, by accident.
I've added an explicit test.

14 years agoFix more harmony tests.
Elliott Hughes [Sat, 30 Jan 2010 02:28:23 +0000 (18:28 -0800)]
Fix more harmony tests.

"HMG" means "heure du méridien de Greenwich" to the French. ICU thinks --
and the web seems to agree -- that the French actually say UTC instead.
(And you'd hope so, after it was called UTC instead of the more sensible UCT
just to keep them happy!) The RI thinks the French say "PST" rather than
"UTC-08:00", but that's hard to believe, and means that this test was never
testing RI compatibility anyway.

Relatedly, ICU thinks that "heure normale du Pacifique" is more French than
"Heure normale du Pacifique", and who am I to argue?

Fixing these turns up a real bug in TimeZone; this patch contains a fix to
the exception thrown by the test case, but not a fix for the bug (which is
overflow in inDaylightTime for the year 292278994, so there's plenty of
time to fix that one).

14 years agoMerge "Fix all the harmony java.util.Formatter tests."
Elliott Hughes [Sat, 30 Jan 2010 01:49:30 +0000 (17:49 -0800)]
Merge "Fix all the harmony java.util.Formatter tests."

14 years agoFix all the harmony java.util.Formatter tests.
Elliott Hughes [Sat, 30 Jan 2010 01:28:06 +0000 (17:28 -0800)]
Fix all the harmony java.util.Formatter tests.

ICU thinks that German short weekday names should be "So." et seq rather than
"So". This brings us into line with frameworks/base, which I'm depressed to find
has its own copy of the CLDR data in XML form (and its own date/time
formatters).

Also fix TestEnvironment to not clobber "user.name", which we need in order to
set our expectations in cases where being root affects what we can/can't do.
(This also fixes a few other harmony tests.)

14 years agoMerge "Fixing a critical regression in our SAX parsing."
Jesse Wilson [Sat, 30 Jan 2010 01:27:24 +0000 (17:27 -0800)]
Merge "Fixing a critical regression in our SAX parsing."

14 years agoFixing a critical regression in our SAX parsing.
Jesse Wilson [Sat, 30 Jan 2010 01:06:44 +0000 (17:06 -0800)]
Fixing a critical regression in our SAX parsing.

We weren't correctly covering the case where namespaces were off, but
elements contained namespaces. See bug 2400596.

14 years agoMerge "Add support for streaming hprof dumps."
Andy McFadden [Sat, 30 Jan 2010 00:33:14 +0000 (16:33 -0800)]
Merge "Add support for streaming hprof dumps."

14 years agoMerge "Change DalvikRunner to use newly added OptionParser."
Brian Carlstrom [Fri, 29 Jan 2010 23:50:24 +0000 (15:50 -0800)]
Merge "Change DalvikRunner to use newly added OptionParser."

14 years agoChange DalvikRunner to use newly added OptionParser.
Brian Carlstrom [Fri, 29 Jan 2010 18:51:56 +0000 (10:51 -0800)]
Change DalvikRunner to use newly added OptionParser.

--skip-clean is now --no-clean
--java-home now defaults to 1.5
--mode is now used to specify to run on host's java-home

DalvikRunner page examples are updated with new --mode and --java-home

Fixes junit tests to work on host by using changing classpath to be absolute paths

Some minor scaffolding to prepare for running tests within an android.app.Activity.

(Patchset 2 adds default --java-home location to usage output)
(Patchset 3 address reviewer comments, mostly newbie style issues)
(Patchset 4 address enh OptionParser issues, adds short/byte as well)
(Patchset 5 address enh OptionParser issues, work with "java" from PATH, change deviceRunnerDir to File)

14 years agoMerge "Remove an obsolete assertion."
Carl Shapiro [Fri, 29 Jan 2010 23:33:55 +0000 (15:33 -0800)]
Merge "Remove an obsolete assertion."

14 years agoMerge "Change NumberFormatTest to match ICU's behavior."
Elliott Hughes [Fri, 29 Jan 2010 22:57:57 +0000 (14:57 -0800)]
Merge "Change NumberFormatTest to match ICU's behavior."

14 years agoMerge "Jit: Fix for [Issue 2406862] Compiler thread preventing VM from shutting down"
Bill Buzbee [Fri, 29 Jan 2010 22:52:18 +0000 (14:52 -0800)]
Merge "Jit: Fix for [Issue 2406862] Compiler thread preventing VM from shutting down"

14 years agoChange NumberFormatTest to match ICU's behavior.
Elliott Hughes [Fri, 29 Jan 2010 22:02:10 +0000 (14:02 -0800)]
Change NumberFormatTest to match ICU's behavior.

ICU uses a non-breaking space after the euro sign in its currency formats,
where the RI uses ASCII space. ICU's behavior seems more reasonable (to
the extent that any kind of space after a currency symbol is reasonable).

Also uncomment the Arabic tests --- I fixed right-to-left number formats
a few weeks ago.

14 years agoJit: Fix for [Issue 2406862] Compiler thread preventing VM from shutting down
Bill Buzbee [Fri, 29 Jan 2010 21:44:19 +0000 (13:44 -0800)]
Jit: Fix for [Issue 2406862] Compiler thread preventing VM from shutting down

Replace placeholder sleep with timed condition wait that will start
the jit either when the framework signals that the first screen has been
drawn or a fixed time has elapsed.