diff options
| -rw-r--r-- | libs/binder/trusty/build-config-usertests | 1 | ||||
| -rw-r--r-- | libs/binder/trusty/rust/binder_rpc_test/aidl/rules.mk | 34 | ||||
| -rw-r--r-- | libs/binder/trusty/rust/binder_rpc_test/main.rs | 36 | ||||
| -rw-r--r-- | libs/binder/trusty/rust/binder_rpc_test/manifest.json | 9 | ||||
| -rw-r--r-- | libs/binder/trusty/rust/binder_rpc_test/rules.mk | 35 | ||||
| -rw-r--r-- | libs/binder/trusty/usertests-inc.mk | 3 |
6 files changed, 118 insertions, 0 deletions
diff --git a/libs/binder/trusty/build-config-usertests b/libs/binder/trusty/build-config-usertests index d0a1fbca49..72e5ff9b2a 100644 --- a/libs/binder/trusty/build-config-usertests +++ b/libs/binder/trusty/build-config-usertests @@ -16,4 +16,5 @@ [ porttest("com.android.trusty.binderRpcTest"), + porttest("com.android.trusty.rust.binder_rpc_test.test"), ] diff --git a/libs/binder/trusty/rust/binder_rpc_test/aidl/rules.mk b/libs/binder/trusty/rust/binder_rpc_test/aidl/rules.mk new file mode 100644 index 0000000000..1b0dca09f4 --- /dev/null +++ b/libs/binder/trusty/rust/binder_rpc_test/aidl/rules.mk @@ -0,0 +1,34 @@ +# Copyright (C) 2023 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +LOCAL_DIR := $(GET_LOCAL_DIR) +LIBBINDER_TESTS_DIR := $(LOCAL_DIR)/../../../../tests + +MODULE := $(LOCAL_DIR) + +MODULE_AIDL_LANGUAGE := rust + +MODULE_CRATE_NAME := binder_rpc_test_aidl + +MODULE_AIDLS := \ + $(LIBBINDER_TESTS_DIR)/BinderRpcTestClientInfo.aidl \ + $(LIBBINDER_TESTS_DIR)/BinderRpcTestServerConfig.aidl \ + $(LIBBINDER_TESTS_DIR)/BinderRpcTestServerInfo.aidl \ + $(LIBBINDER_TESTS_DIR)/IBinderRpcCallback.aidl \ + $(LIBBINDER_TESTS_DIR)/IBinderRpcSession.aidl \ + $(LIBBINDER_TESTS_DIR)/IBinderRpcTest.aidl \ + $(LIBBINDER_TESTS_DIR)/ParcelableCertificateData.aidl \ + +include make/aidl.mk diff --git a/libs/binder/trusty/rust/binder_rpc_test/main.rs b/libs/binder/trusty/rust/binder_rpc_test/main.rs new file mode 100644 index 0000000000..a71ce2c26e --- /dev/null +++ b/libs/binder/trusty/rust/binder_rpc_test/main.rs @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#![cfg(test)] + +use binder::{IBinder, Strong}; +use binder_rpc_test_aidl::aidl::IBinderRpcTest::IBinderRpcTest; +use rpcbinder::RpcSession; +use trusty_std::ffi::{CString, FallibleCString}; + +test::init!(); + +const SERVICE_PORT: &str = "com.android.trusty.binderRpcTestService.V1"; + +fn get_service() -> Strong<dyn IBinderRpcTest> { + let port = CString::try_new(SERVICE_PORT).expect("Failed to allocate port name"); + RpcSession::new().setup_trusty_client(port.as_c_str()).expect("Failed to create session") +} + +#[test] +fn ping() { + let srv = get_service(); + assert_eq!(srv.as_binder().ping_binder(), Ok(())); +} diff --git a/libs/binder/trusty/rust/binder_rpc_test/manifest.json b/libs/binder/trusty/rust/binder_rpc_test/manifest.json new file mode 100644 index 0000000000..c2ecaa4fe3 --- /dev/null +++ b/libs/binder/trusty/rust/binder_rpc_test/manifest.json @@ -0,0 +1,9 @@ +{ + "uuid": "91eed949-8a9e-4569-9c83-5935fb624025", + "app_name": "rust_binder_rpc_test", + "min_heap": 16384, + "min_stack": 16384, + "mgmt_flags": { + "non_critical_app": true + } +} diff --git a/libs/binder/trusty/rust/binder_rpc_test/rules.mk b/libs/binder/trusty/rust/binder_rpc_test/rules.mk new file mode 100644 index 0000000000..192a1591ae --- /dev/null +++ b/libs/binder/trusty/rust/binder_rpc_test/rules.mk @@ -0,0 +1,35 @@ +# Copyright (C) 2023 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +LOCAL_DIR := $(GET_LOCAL_DIR) +LIBBINDER_DIR := $(LOCAL_DIR)/../../.. + +MODULE := $(LOCAL_DIR) + +MODULE_SRCS := $(LOCAL_DIR)/main.rs + +MODULE_CRATE_NAME := binder_rpc_test + +MODULE_LIBRARY_DEPS += \ + $(LIBBINDER_DIR)/trusty/rust \ + $(LIBBINDER_DIR)/trusty/rust/rpcbinder \ + $(LOCAL_DIR)/aidl \ + trusty/user/base/lib/trusty-std \ + +MODULE_RUST_TESTS := true + +MANIFEST := $(LOCAL_DIR)/manifest.json + +include make/library.mk diff --git a/libs/binder/trusty/usertests-inc.mk b/libs/binder/trusty/usertests-inc.mk index 13001219d4..241e6683e7 100644 --- a/libs/binder/trusty/usertests-inc.mk +++ b/libs/binder/trusty/usertests-inc.mk @@ -17,3 +17,6 @@ TRUSTY_USER_TESTS += \ frameworks/native/libs/binder/trusty/binderRpcTest \ frameworks/native/libs/binder/trusty/binderRpcTest/service \ +TRUSTY_RUST_USER_TESTS += \ + frameworks/native/libs/binder/trusty/rust/binder_rpc_test \ + |