Refactor derive_sdk to be more testable
Refactor the code into a reusable library that is used from the
derive_sdk binary as well as a newly added cc_test.
The code now accepts an argument for which dir to scan for mounted
modules.
Add a simple test for the current system image R SDK version for now.
Bug: 173188089
Test: atest derive_sdk_test
Change-Id: If7442d515d55b35174d396cc579ee2c9865da2b5
diff --git a/derive_sdk/Android.bp b/derive_sdk/Android.bp
index 3e030e8..dc4e352 100644
--- a/derive_sdk/Android.bp
+++ b/derive_sdk/Android.bp
@@ -14,10 +14,6 @@
cc_defaults {
name: "derive_sdk-defaults",
- srcs: [
- "derive_sdk.cpp",
- "sdk.proto",
- ],
proto: {
type: "lite",
static: true,
@@ -29,26 +25,56 @@
static_libs: [
"libbase",
"libmodules-utils-build",
+ "libprotobuf-cpp-lite",
],
}
+cc_library {
+ name: "libderive_sdk",
+ srcs: [
+ "derive_sdk.cpp",
+ "sdk.proto",
+ ],
+ defaults: ["derive_sdk-defaults"],
+ apex_available: ["com.android.sdkext"],
+}
+
+cc_defaults {
+ name: "derive_sdk_binary-defaults",
+ defaults: ["derive_sdk-defaults"],
+ srcs: ["main.cpp"],
+ static_libs: ["libderive_sdk"],
+
+}
cc_binary {
name: "derive_sdk",
- defaults: [ "derive_sdk-defaults" ],
- apex_available: [ "com.android.sdkext" ],
+ defaults: ["derive_sdk_binary-defaults"],
+ apex_available: ["com.android.sdkext"],
}
// Work around testing using a 64-bit test suite on 32-bit test device by
// using a prefer32 version of derive_sdk in testing.
cc_binary {
name: "derive_sdk_prefer32",
- defaults: [ "derive_sdk-defaults" ],
+ defaults: ["derive_sdk_binary-defaults"],
compile_multilib: "prefer32",
stem: "derive_sdk",
- apex_available: [ "test_com.android.sdkext" ],
+ apex_available: ["test_com.android.sdkext"],
installable: false,
}
+cc_test {
+ name: "derive_sdk_test",
+ defaults: ["derive_sdk-defaults"],
+ srcs: [
+ "derive_sdk_test.cpp",
+ "sdk.proto",
+ ],
+ require_root: true,
+ static_libs: ["libderive_sdk"],
+ test_suites: ["device-tests"],
+}
+
prebuilt_etc {
name: "derive_sdk.rc",
src: "derive_sdk.rc",