summaryrefslogtreecommitdiff
path: root/libs/utils/tests
AgeCommit message (Collapse)Author
2013-07-31remove libutils Alex Ray
libutils is being moved from frameworks/native/ to system/core/ in order to facilitate native C++ platform (non-frameworks) code. Change-Id: I44089fb960591a40b8a9c30faabb10459d107d71
2013-07-31Fix BlobCache_test Brian Carlstrom
Change-Id: I5b20aeb4dcff80f1e18e1165b8461d20034dc1ac
2013-05-30Added bitwise-or and bitwise-and to BitSet Michael Wright
Change-Id: I9bbf41f9d2d4a2593b0e6d7d8be7e283f985bade
2013-05-07libutils clean-up Mathias Agopian
Change-Id: I6ff4cfc736751de2912c697f954e45e275f2d386
2012-10-26Add an LRU cache plus hashing primitives Raph Levien
This patch adds a hashtable-based LRU cache. This should be significantly higher performance than the GenerationCache it is intended to replace. It is a large part of the fix for bug 7271109 TextLayoutCache low-level performance issues. We added a new method to BasicHashtable to detect when rehashing is needed, because the internal linked list pointers would get invalidated by that rehashing. Also, the hash_type specialized to pointers had a small flaw. Change-Id: I950c2083f96519777b851dbe157100e0a334caec
2012-10-02Update tests for new build target Kenny Root
Change-Id: Ia1740d1b2c0b611c4559c5c846b12fb5c3e81b07
2012-05-17fix a corruption in Vector<> when adding new items Mathias Agopian
would happen when vectors are copied and new items is added in both vectors. we didn't duplicate the underlying storage when adding items in vectors. Bug: 6515797 Change-Id: If544c07d96c05821e088d7f2c9b5736f7e306c31
2012-03-22frameworks/native: move Zip* from libandroidfw to libutils Colin Cross
ZipUtils is needed by build/tools, move it from libandroidfw (frameworks/base) to libutils (frameworks/native). Change-Id: Ib8c41134ccdec6d6aa8d49860f8dddef49a24783
2012-02-20frameworks/base refactoring Mathias Agopian
create the new libandroidfw from parts of libui and libutils Change-Id: I1584995616fff5d527a2aba63921b682a6194d58
2012-02-17frameworks/base refactoring. Mathias Agopian
step 2: move libutils headers to their new home: androidfw Change-Id: I14624ba23db92a81f2cb929f104386e1fab293ef
2012-01-03Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGE Steve Block
See https://android-git.corp.google.com/g/156016 Bug: 5449033 Change-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298
2011-11-22Add a basic hashtable data structure, with tests! Jeff Brown
The basic hashtable is intended to be used to support a variety of different datastructures such as map, set, multimap, multiset, linkedmap, generationcache, etc. Consequently its interface is fairly primitive. The basic hashtable supports copy-on-write style functionality using SharedBuffer. The change introduces a simple generic function in TypeHelpers for specifying hash functions. The idea is to add template specializations of hash_type<T> next to the relevant data structures such as String8, String16, sp<T>, etc. Change-Id: I2c479229e9d4527b4fbfe3b8b04776a2fd32c973
2011-10-31BlobCache: implement cache serialization Jamie Gennis
This change adds serialization and deserialization functionality to BlobCache, conforming to the Flattenable interface. Change-Id: Ibc99cb1c3d015f363d57d0713eabccec07ff975e
2011-07-26Move extract native libraries to JNI code Kenny Root
The built-in ZipFile class was quite a long time to find an unpack libraries. Move everything to using the libutils ZipFileRO class that goes quite a bit faster. Initial measurements are 6 times faster than the Java code. Also, read files off the disk and compare their CRC against the APK's CRC to see if we need to write the new file to disk. This also cuts down the bootup time by up to a second per APK that has native files. Change-Id: Ic464a7969a17368fb6a6b81d026888c4136c7603
2011-07-11Remove the simulator target from all makefiles. Jeff Brown
Bug: 5010576 Change-Id: I04d722f258951a3078fe07899f5bbe8aac02a8e8
2011-05-17libutils: add a binary blob cache implementation. Jamie Gennis
This change adds an implementation of a cache that stores key/value pairs of unstructured binary blobs. Change-Id: Idd01fdabedfa3aed6d359a6efb0592967af52651
2011-03-02Fade out the mouse pointer after inactivity or other events. Jeff Brown
Fades out the mouse pointer: - after 15 seconds of inactivity normally - after 3 seconds of inactivity in lights out mode - after a non-modifier key down - after a touch down Extended the native Looper to support enqueuing time delayed messages. This is used by the PointerController to control pointer fade timing. Change-Id: I87792fea7dbe2d9376c78cf354fe3189a484d9da
2010-11-12Split UTF functions from String8/16 Kenny Root
Split out all the UTF-8/16/32 handling code from String8/16 to its own file to allow better reuse of code. Change-Id: If9ce63920edc75472c38da4adce0d13cda9ad2f7
2010-10-13OBB: use PBKDF2 for key generation. Kenny Root
Switch to using PBKDF2 for the key generation for OBBs. Any previously generated OBBs will stop being read correctly. A small pbkdf2gen program is available to allow generation of appropriate keys with the salts. Bug: 3059950 Change-Id: If4305c989fd692fd1150eb270dbf751e09c37295
2010-10-07Switch Looper back to using poll() instead of epoll(). Jeff Brown
Added a couple of micro-optimizations to avoid calling wake() unnecessarily and reduce JNI overhead slightly. Fixed a minor issue where we were not clearing the "next" field of Messages returned by the MessageQueue so the Message would hold on to its successor and potentially prevent the GC from collecting it if the message were leaked somehow. Change-Id: I488d29417ce0cdd7d0e447cda76ec978ef7f811c
2010-09-14Replace epoll() with poll() and rename PollLoop to Looper. Jeff Brown
As part of this change, consolidated and cleaned up the Looper API so that there are fewer distinctions between the NDK and non-NDK declarations (no need for two callback types, etc.). Removed the dependence on specific constants from sys/poll.h such as POLLIN. Instead looper.h defines events like LOOPER_EVENT_INPUT for the events that it supports. That should help make any future under-the-hood implementation changes easier. Fixed a couple of compiler warnings along the way. Change-Id: I449a7ec780bf061bdd325452f823673e2b39b6ae
2010-08-06Fix String8::operator+ Kenny Root
The LHS was ignored when using: String8 + String8 String8 + (const char*) Add unit tests for above. Bug: 2898473 Change-Id: Ic8fe7be668b665c36aaaa3fc3c3ffdfff0fbba25
2010-07-14Don't build framework tests for simulator target. Jeff Brown
Change-Id: I70f29c7eb307e4f3ec5702f4eb9d97b4342e2f36
2010-07-12Merge changes I2337051b,I19b426cb into gingerbread Kenny Root
* changes: Tweak ObbFile class Allow things that can install packages to set Obb paths
2010-07-12Tweak ObbFile class Kenny Root
* Move error messages around to clarify the errors. * Add extra error check when reading a file. * Seek to the end of a file when writing the signature so the users of the API don't have to remember to do it. Change-Id: I2337051b9f9fa8147c5900237deec790dcd92436
2010-07-08Add new glue code for writing native apps. Dianne Hackborn
This factors out the boiler-plate code from the sample app to a common glue code that can be used for everyone writing this style of app: a dedicated app thread that takes care of waiting for events and processing them. As part of doing this, ALooper has a new facility to allow registration of fds that cause ALooper_pollOnce() to return the fd that has data, allowing the app to drive the loop without callbacks. Hopefully this makes some people feel better. :) Also do some other cleanup of the ALooper API, plus some actual documentation. Change-Id: Ic53bd56bdf627e3ba28a3c093faa06a92be522b8
2010-07-07Add OBB file helper class Kenny Root
ObbFile is a binary blob that will be used in packaging large files with smaller APKs. Change-Id: Ib1594346cfa2f49113de6565af77c24efbd89d63
2010-06-17Even more native input dispatch work in progress. Jeff Brown
Added more tests. Fixed a regression in Vector. Fixed bugs in pointer tracking. Fixed a starvation issue in PollLoop when setting or removing callbacks. Fixed a couple of policy nits. Modified the internal representation of MotionEvent to be more efficient and more consistent. Added code to skip/cancel virtual key processing when there are multiple pointers down. This helps to better disambiguate virtual key presses from stray touches (such as cheek presses). Change-Id: I2a7d2cce0195afb9125b23378baa94fd2fc6671c
2010-06-14Support for multiple tests Jeff Brown
The build system enforces some invariants that were being ignored before. Change-Id: Ie7675042af7f961a507386c13b2a0b592b591af8
2010-06-13Native input dispatch rewrite work in progress. Jeff Brown
The old dispatch mechanism has been left in place and continues to be used by default for now. To enable native input dispatch, edit the ENABLE_NATIVE_DISPATCH constant in WindowManagerPolicy. Includes part of the new input event NDK API. Some details TBD. To wire up input dispatch, as the ViewRoot adds a window to the window session it receives an InputChannel object as an output argument. The InputChannel encapsulates the file descriptors for a shared memory region and two pipe end-points. The ViewRoot then provides the InputChannel to the InputQueue. Behind the scenes, InputQueue simply attaches handlers to the native PollLoop object that underlies the MessageQueue. This way MessageQueue doesn't need to know anything about input dispatch per-se, it just exposes (in native code) a PollLoop that other components can use to monitor file descriptor state changes. There can be zero or more targets for any given input event. Each input target is specified by its input channel and some parameters including flags, an X/Y coordinate offset, and the dispatch timeout. An input target can request either synchronous dispatch (for foreground apps) or asynchronous dispatch (fire-and-forget for wallpapers and "outside" targets). Currently, finding the appropriate input targets for an event requires a call back into the WindowManagerServer from native code. In the future this will be refactored to avoid most of these callbacks except as required to handle pending focus transitions. End-to-end event dispatch mostly works! To do: event injection, rate limiting, ANRs, testing, optimization, etc. Change-Id: I8c36b2b9e0a2d27392040ecda0f51b636456de25