Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
halo
cts
Commits
5cd0b7a5
Commit
5cd0b7a5
authored
9 years ago
by
Treehugger Robot
Committed by
Gerrit Code Review
9 years ago
Browse files
Options
Download
Plain Diff
Merge "Make linker_namespaces test run on a device without webview"
parents
8e776ad7
54fa61c5
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
54 additions
and
33 deletions
+54
-33
tests/tests/jni/libjnitest/android_jni_cts_LinkerNamespacesTest.cpp
...s/jni/libjnitest/android_jni_cts_LinkerNamespacesTest.cpp
+10
-29
tests/tests/jni/src/android/jni/cts/LinkerNamespacesHelper.java
...tests/jni/src/android/jni/cts/LinkerNamespacesHelper.java
+44
-4
No files found.
tests/tests/jni/libjnitest/android_jni_cts_LinkerNamespacesTest.cpp
View file @
5cd0b7a5
...
...
@@ -45,28 +45,6 @@ static const std::string kSystemLibraryPath = "/system/lib";
static
const
std
::
string
kVendorLibraryPath
=
"/vendor/lib"
;
#endif
static
std
::
unordered_set
<
std
::
string
>
kSystemPublicLibraries
=
{
"libandroid.so"
,
"libc.so"
,
"libdl.so"
,
"libEGL.so"
,
"libGLESv1_CM.so"
,
"libGLESv2.so"
,
"libGLESv3.so"
,
"libicui18n.so"
,
"libicuuc.so"
,
"libjnigraphics.so"
,
"liblog.so"
,
"libmediandk.so"
,
"libm.so"
,
"libOpenMAXAL.so"
,
"libOpenSLES.so"
,
"libRS.so"
,
"libstdc++.so"
,
"libwebviewchromium_plat_support.so"
,
"libz.so"
};
// This is not complete list - just a small subset
// of the libraries that should reside in /system/lib
// (in addition to kSystemPublicLibraries)
...
...
@@ -200,13 +178,13 @@ static bool check_libs(const std::string& public_library_path,
return
true
;
}
static
void
load_vendor_libraries
(
JNIEnv
*
env
,
jobjectArray
java_
vendor_public_
libraries
,
std
::
unordered_set
<
std
::
string
>*
libraries
)
{
size_t
size
=
env
->
GetArrayLength
(
java_
vendor_public_
libraries
);
static
void
jobject_array_to_set
(
JNIEnv
*
env
,
jobjectArray
java_libraries
_array
,
std
::
unordered_set
<
std
::
string
>*
libraries
)
{
size_t
size
=
env
->
GetArrayLength
(
java_libraries
_array
);
for
(
size_t
i
=
0
;
i
<
size
;
++
i
)
{
ScopedLocalRef
<
jstring
>
java_soname
(
env
,
(
jstring
)
env
->
GetObjectArrayElement
(
java_
vendor_public_
libraries
,
i
));
env
,
(
jstring
)
env
->
GetObjectArrayElement
(
java_libraries
_array
,
i
));
ScopedUtfChars
soname
(
env
,
java_soname
.
get
());
libraries
->
insert
(
soname
.
c_str
());
...
...
@@ -217,14 +195,17 @@ extern "C" JNIEXPORT jstring JNICALL
Java_android_jni_cts_LinkerNamespacesHelper_runAccessibilityTestImpl
(
JNIEnv
*
env
,
jclass
clazz
__attribute__
((
unused
)),
jobjectArray
java_system_public_libraries
,
jobjectArray
java_vendor_public_libraries
)
{
std
::
string
error
;
std
::
unordered_set
<
std
::
string
>
vendor_public_libraries
;
std
::
unordered_set
<
std
::
string
>
system_public_libraries
;
std
::
unordered_set
<
std
::
string
>
empty_set
;
load_vendor_libraries
(
env
,
java_vendor_public_libraries
,
&
vendor_public_libraries
);
jobject_array_to_set
(
env
,
java_vendor_public_libraries
,
&
vendor_public_libraries
);
jobject_array_to_set
(
env
,
java_system_public_libraries
,
&
system_public_libraries
);
if
(
!
check_libs
(
kSystemLibraryPath
,
kS
ystem
P
ublic
L
ibraries
,
kSystemLibraries
,
&
error
)
||
if
(
!
check_libs
(
kSystemLibraryPath
,
s
ystem
_p
ublic
_l
ibraries
,
kSystemLibraries
,
&
error
)
||
!
check_libs
(
kVendorLibraryPath
,
vendor_public_libraries
,
empty_set
,
&
error
))
{
return
env
->
NewStringUTF
(
error
.
c_str
());
}
...
...
This diff is collapsed.
Click to expand it.
tests/tests/jni/src/android/jni/cts/LinkerNamespacesHelper.java
View file @
5cd0b7a5
...
...
@@ -16,17 +16,45 @@
package
android.jni.cts
;
import
android.content.Context
;
import
android.content.pm.PackageManager
;
import
android.support.test.InstrumentationRegistry
;
import
java.io.BufferedReader
;
import
java.io.IOException
;
import
java.io.File
;
import
java.io.FileReader
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.List
;
class
LinkerNamespacesHelper
{
private
final
static
String
VENDOR_CONFIG_FILE
=
"/vendor/etc/public.libraries.txt"
;
private
final
static
String
[]
PUBLIC_SYSTEM_LIBRARIES
=
{
"libandroid.so"
,
"libc.so"
,
"libdl.so"
,
"libEGL.so"
,
"libGLESv1_CM.so"
,
"libGLESv2.so"
,
"libGLESv3.so"
,
"libicui18n.so"
,
"libicuuc.so"
,
"libjnigraphics.so"
,
"liblog.so"
,
"libmediandk.so"
,
"libm.so"
,
"libOpenMAXAL.so"
,
"libOpenSLES.so"
,
"libRS.so"
,
"libstdc++.so"
,
"libz.so"
};
private
final
static
String
WEBVIEW_PLAT_SUPPORT_LIB
=
"libwebviewchromium_plat_support.so"
;
public
static
String
runAccessibilityTest
()
throws
IOException
{
List
<
String
>
l
ibs
=
new
ArrayList
<>();
List
<
String
>
vendorL
ibs
=
new
ArrayList
<>();
File
file
=
new
File
(
VENDOR_CONFIG_FILE
);
if
(
file
.
exists
())
{
try
(
BufferedReader
br
=
new
BufferedReader
(
new
FileReader
(
file
)))
{
...
...
@@ -36,11 +64,23 @@ class LinkerNamespacesHelper {
if
(
line
.
isEmpty
()
||
line
.
startsWith
(
"#"
))
{
continue
;
}
l
ibs
.
add
(
line
);
vendorL
ibs
.
add
(
line
);
}
}
}
return
runAccessibilityTestImpl
(
libs
.
toArray
(
new
String
[
libs
.
size
()]));
List
<
String
>
systemLibs
=
new
ArrayList
<>();
Collections
.
addAll
(
systemLibs
,
PUBLIC_SYSTEM_LIBRARIES
);
if
(
InstrumentationRegistry
.
getContext
().
getPackageManager
().
hasSystemFeature
(
PackageManager
.
FEATURE_WEBVIEW
))
{
systemLibs
.
add
(
WEBVIEW_PLAT_SUPPORT_LIB
);
}
return
runAccessibilityTestImpl
(
systemLibs
.
toArray
(
new
String
[
systemLibs
.
size
()]),
vendorLibs
.
toArray
(
new
String
[
vendorLibs
.
size
()]));
}
private
static
native
String
runAccessibilityTestImpl
(
String
[]
publicVendorLibs
);
private
static
native
String
runAccessibilityTestImpl
(
String
[]
publicSystemLibs
,
String
[]
publicVendorLibs
);
}
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment