【GoogleCts】ApfIntegrationTest fail in CtsNetTestCases.apk 问题分析

问题描述

  • Test: android.net.cts.ApfIntegrationTest#testDropPingReply
  • Suite / Plan: CTS / cts
  • Suite / Build: 15_r2 / 12699308
  • Detail: java.lang.AssertionError: Expected an exception of class java.util.concurrent.TimeoutException to be thrown, but was completed successfully.

CtsNetTestCases.apk,可查询 Android.bp 查看输出的测试apk。

【GoogleCts】ApfIntegrationTest fail in CtsNetTestCases.apk 问题分析_第1张图片 ApfIntegrationTest CtsNetTestCases.apk

Note:

Connecectivity 模块已经被Google Mainline了,在 Android 15 上有关于 mainline 测试的 mcts 模块,在跑测是下载到本地主目录(Linux环境)。就是运行时安装(android-mcts-networking),所以套件包中可能找不到原本的apk。

测试逻辑

packages/modules/Connectivity/tests/cts/net/src/android/net/cts/ApfIntegrationTest.kt

代码释义

testDropPingReply 是用于测试 Android 中的 APF(Android Packet Filter)功能的一个单元测试。这段代码的目的是验证在特定情况下,APF 是否能够正确地处理 ICMP ping 请求并根据设定的规则丢弃它们。

1、注释和要求:

  • 注释解释了测试的背景,提到 APF 在某些情况下(如屏幕关闭时 Wi-Fi 空闲或流量低于 10 Mbps)应被启用。
  • @VsrTest 注解标记此测试必须满足的版本要求(VSR-5.3.12-002 和 VSR-5.3.12-005)。

2、假设条件:

assume().that(getVsrApiLevel()).isAtLeast(34)
assumeApfVersionSupportAtLeast(4)
  • 使用 assume 方法确保测试只在 API 级别至少为 34 且 APF 版本至少为 4 的设备上运行。如果假设条件不成立,测试将被跳过。

3、APF 过滤器的清理和安装:

clearApfMemory()
readProgram() // wait for install completion
  • 在测试开始时,清除任何活动的 APF 过滤器,并等待新程序的安装完成。

4、发送初始 ping 请求:

val data = Byte

你可能感兴趣的:(AOSP,#,Android,Framework,Google,XTS,Google套件测试,自学笔记,问题记录,解决方案,Cts测试,Android)