diff options
author | Andrei Homescu <ahomescu@google.com> | 2023-05-10 00:37:52 +0000 |
---|---|---|
committer | Andrei Homescu <ahomescu@google.com> | 2024-04-04 21:49:54 +0000 |
commit | ca96a101736e48047bb75dd418ce4d8e55c27b2f (patch) | |
tree | cabd1e3423498cf843c40d8cbdaddc08a29b4ac4 | |
parent | 8c540c77956b11f42a8ad2a4defa4d6edce4d639 (diff) | |
download | native-ca96a101736e48047bb75dd418ce4d8e55c27b2f.tar.gz |
rust/binder_rpc_test: Build on Trusty
Add rules.mk to build binderRpcTest in Rust on Trusty.
Bug: 242243245
Test: build binderRpcTest on Trusty
Change-Id: I66262b5885db52ef7adc6e58e731f52dc06773bf
-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 \ + |