platform_build/tools/aconfig/TEST_MAPPING
Dennis Shen e5dd91bca7 aconfig: create first implementation of aconfig storage java read api
1, See AconfigStorageReadAPI.java to see java APIs to map storage files
and read flag values. It is using fast native annotation, in theory it
should be faster than regular JNI without much of the overhead.

2, The java api calls into Rust wrapper in srcs/lib.rs, note that
MappedByteBuffer is not copied during JNI. In the rust side
implementation we get the underlying raw pointer and buffer size and
reconstruct a rust slice. However, at current implmentation, the string
input such as package name and flag name are most likely copied. They
are converted from JStirng to JavaStr first without copy, then the
into() call to convert it to Rust string. We could potentially optimize
it to without copy.

3, Add an android_test target to lock down the API behaviors.

Bug: b/321077378
Test: atest -c
Change-Id: I8915fe70e8eb341be563c70f85e19e644e8aa6be
2024-05-30 00:32:42 +00:00

109 lines
3.1 KiB
Text

{
"presubmit": [
{
// aconfig unit tests
"name": "aconfig.test"
},
{
// aconfig Java integration tests (host)
"name": "AconfigJavaHostTest"
},
{
// aconfig Java integration tests
"name": "aconfig.test.java"
},
{
// aconfig C++ integration tests (production mode auto-generated code)
"name": "aconfig.test.cpp"
},
{
// aconfig C++ integration tests (test mode auto-generated code)
"name": "aconfig.test.cpp.test_mode"
},
// TODO(b/327420679): Enable export mode for native flag library
// {
// // aconfig C++ integration tests (exported mode auto-generated code)
// "name": "aconfig.test.cpp.exported_mode"
// },
{
// aconfig Rust integration tests (production mode auto-generated code)
"name": "aconfig.prod_mode.test.rust"
},
{
// aconfig Rust integration tests (test mode auto-generated code)
"name": "aconfig.test_mode.test.rust"
},
// TODO(b/327420679): Enable export mode for native flag library
// {
// // aconfig Rust integration tests (exported mode auto-generated code)
// "name": "aconfig.exported_mode.test.rust"
// },
{
// aflags CLI unit tests
"name": "aflags.test"
},
{
// printflags unit tests
"name": "printflags.test"
},
{
// aconfig_protos unit tests
"name": "aconfig_protos.test"
},
{
// aconfig_storage_file unit tests
"name": "aconfig_storage_file.test"
},
{
// Ensure changes on aconfig auto generated library is compatible with
// test testing filtering logic. Breakage on this test means all tests
// that using the flag annotations to do filtering will get affected.
"name": "FlagAnnotationTests",
"options": [
{
"include-filter": "android.cts.flags.tests.FlagAnnotationTest"
}
]
},
{
// Ensure changes on aconfig auto generated library is compatible with
// test testing filtering logic. Breakage on this test means all tests
// that using the flag macros to do filtering will get affected.
"name": "FlagMacrosTests"
},
{
// aconfig_storage_write_api unit tests
"name": "aconfig_storage_write_api.test"
},
{
// aconfig_storage_read_api unit tests
"name": "aconfig_storage_read_api.test"
},
{
// aconfig_storage write api rust integration tests
"name": "aconfig_storage_write_api.test.rust"
},
{
// aconfig_storage write api cpp integration tests
"name": "aconfig_storage_write_api.test.cpp"
},
{
// aconfig_storage read api rust integration tests
"name": "aconfig_storage_read_api.test.rust"
},
{
// aconfig_storage read api cpp integration tests
"name": "aconfig_storage_read_api.test.cpp"
},
{
// aconfig_storage file cpp integration tests
"name": "aconfig_storage_file.test.cpp"
}
],
"postsubmit": [
{
// aconfig_storage read api java integration tests
"name": "aconfig_storage_read_api.test.java"
}
]
}