mod sm_14 {
include!(concat!(env!("OUT_DIR"), "/service_manager_14.rs"));
}
mod sm_15 {
include!(concat!(env!("OUT_DIR"), "/service_manager_15.rs"));
}
use crate::FIRST_CALL_TRANSACTION;
use sm_14::android::os::IServiceManager::transactions as prev;
use sm_15::android::os::IServiceManager::transactions;
#[test]
fn transaction_codes_are_the_r6_numbering() {
assert_eq!(transactions::r#getService, FIRST_CALL_TRANSACTION);
assert_eq!(transactions::r#getService2, FIRST_CALL_TRANSACTION + 1);
assert_eq!(transactions::r#checkService, FIRST_CALL_TRANSACTION + 2);
assert_eq!(transactions::r#addService, FIRST_CALL_TRANSACTION + 3);
assert_eq!(transactions::r#listServices, FIRST_CALL_TRANSACTION + 4);
assert_eq!(
transactions::r#registerForNotifications,
FIRST_CALL_TRANSACTION + 5
);
assert_eq!(
transactions::r#unregisterForNotifications,
FIRST_CALL_TRANSACTION + 6
);
assert_eq!(transactions::r#isDeclared, FIRST_CALL_TRANSACTION + 7);
assert_eq!(
transactions::r#getDeclaredInstances,
FIRST_CALL_TRANSACTION + 8
);
assert_eq!(transactions::r#updatableViaApex, FIRST_CALL_TRANSACTION + 9);
assert_eq!(
transactions::r#getUpdatableNames,
FIRST_CALL_TRANSACTION + 10
);
assert_eq!(
transactions::r#getConnectionInfo,
FIRST_CALL_TRANSACTION + 11
);
assert_eq!(
transactions::r#registerClientCallback,
FIRST_CALL_TRANSACTION + 12
);
assert_eq!(
transactions::r#tryUnregisterService,
FIRST_CALL_TRANSACTION + 13
);
assert_eq!(
transactions::r#getServiceDebugInfo,
FIRST_CALL_TRANSACTION + 14
);
}
#[test]
fn probe_code_14_separates_the_two_interfaces() {
let probe = FIRST_CALL_TRANSACTION + super::ANDROID_15_PROBE_CODE;
assert_eq!(
transactions::r#getServiceDebugInfo,
probe,
"the probe must be a method on r6+, or it reads `UnknownTransaction` \
on both interfaces"
);
assert_eq!(
prev::r#getServiceDebugInfo,
probe - 1,
"the probe must be one past the end of the Android 14 interface, or it \
gets an answer on both"
);
assert_eq!(transactions::r#checkService, prev::r#checkService + 1);
assert_eq!(transactions::r#addService, prev::r#addService + 1);
assert_eq!(
transactions::r#registerClientCallback,
prev::r#registerClientCallback + 1
);
assert_eq!(
transactions::r#tryUnregisterService,
prev::r#tryUnregisterService + 1
);
assert_eq!(transactions::r#getService, prev::r#getService);
}