1# Copyright (C) 2024 The Android Open Source Project 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15from mobly import asserts 16from mobly.controllers import android_device 17 18 19def assume_mdns_test_preconditions( 20 advertising_device: android_device, discovery_device: android_device 21) -> None: 22 advertising = advertising_device.connectivity_multi_devices_snippet 23 discovery = discovery_device.connectivity_multi_devices_snippet 24 25 asserts.skip_if( 26 not advertising.isAtLeastT(), "Advertising device SDK is lower than T." 27 ) 28 asserts.skip_if( 29 not discovery.isAtLeastT(), "Discovery device SDK is lower than T." 30 ) 31 32 33def register_mdns_service_and_discover_resolve( 34 advertising_device: android_device, discovery_device: android_device 35) -> None: 36 """Test mdns advertising, discovery and resolution 37 38 One device registers an mDNS service, and another device discovers and 39 resolves that service. 40 """ 41 advertising = advertising_device.connectivity_multi_devices_snippet 42 discovery = discovery_device.connectivity_multi_devices_snippet 43 44 # Register a mDns service 45 advertising.registerMDnsService() 46 47 # Ensure the discovery and resolution of the mDNS service 48 discovery.ensureMDnsServiceDiscoveryAndResolution() 49 50 51def cleanup_mdns_service( 52 advertising_device: android_device, discovery_device: android_device 53) -> None: 54 # Unregister the mDns service 55 advertising_device.connectivity_multi_devices_snippet.unregisterMDnsService() 56 # Stop discovery 57 discovery_device.connectivity_multi_devices_snippet.stopMDnsServiceDiscovery() 58