Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ca96a101 authored by Andrei Homescu's avatar Andrei Homescu
Browse files

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
parent 8c540c77
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -16,4 +16,5 @@

[
    porttest("com.android.trusty.binderRpcTest"),
    porttest("com.android.trusty.rust.binder_rpc_test.test"),
]
+34 −0
Original line number Diff line number Diff line
# 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
+36 −0
Original line number Diff line number Diff line
/*
 * 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(()));
}
+9 −0
Original line number Diff line number Diff line
{
    "uuid": "91eed949-8a9e-4569-9c83-5935fb624025",
    "app_name": "rust_binder_rpc_test",
    "min_heap": 16384,
    "min_stack": 16384,
    "mgmt_flags": {
        "non_critical_app": true
    }
}
+35 −0
Original line number Diff line number Diff line
# 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
Loading