Application Period Boundaries
前台应用时段在切换时结束、在中断后重开
为什么验证
前台应用时段只记下已确认的前台事实。读取失败或采集停顿造成的空白没有确认,必须留在时段之外;其他时间线的状态也不能切开前台时段。
前置条件
使用可以控制时间和应用读数的采集时间线。定时间隔为 1 秒,最大连续间隔为 3 秒。
操作与预期结果
| 输入 | 预期结果 |
|---|---|
| 第 0 秒、第 1 秒连续确认应用 A | 同一份观测从第 0 秒延长到第 1 秒 |
| 第 2 秒确认应用 B | A 结束于第 2 秒,B 从第 2 秒开始 |
| 应用不变,名称或时区变化 | 开始新的时段,旧的观测内容保持不变 |
| 第 1 秒后读取失败,第 2 秒恢复 | 原时段结束于第 1 秒,恢复时开始新的时段 |
| 第 1 秒后直到第 10 秒才恢复采样 | 中间的空白不计入任何时段 |
| 应用和确认间隔不变,另一条时间线记下锁屏、休眠或无输入 | 前台时段照常延续 |
| 两次定时确认之间收到 A → B → C 的激活事件 | 三个时段都保留 |
| 读数中断超过连续确认的阈值后恢复 | 原时段结束于最后一次确认,恢复后新建;不需要判断中断是否由休眠造成 |
| 系统时间倒退,或增量跳变超过 100 毫秒 | 时段断开,原观测不再延长 |
测试实现
ForegroundTimelineTests 和 ForegroundSubmissionTests,使用模拟的读数和事件。
执行结果
Case ID:foreground-application-period-boundaries
报告时间:
报告代码版本:d0ad859f366f8a9bd66443fc7a4fb2262bda1081
以下仅展示此 Case 在该报告中的执行结果。
- 在原报告中定位:RenameAndTimeZoneChangeSplitContentWithoutReplacingApplicationIdentity
- 在原报告中定位:InterruptionsStartNewPeriodWithoutFillingTheGap(long-gap)
- 在原报告中定位:InterruptionsStartNewPeriodWithoutFillingTheGap(read-failure)
- 在原报告中定位:InterruptionsStartNewPeriodWithoutFillingTheGap(clock-backward)
- 在原报告中定位:InterruptionsStartNewPeriodWithoutFillingTheGap(sleep)
- 在原报告中定位:ContinuousConfirmationExtendsSamePeriodAndSwitchClosesAtNewConfirmation
- 在原报告中定位:InterruptionsStartNewPeriodWithoutFillingTheGap(clock-forward)
- 在原报告中定位:EventsBetweenPollsArePreservedAndSleepClosesWithoutExtending
- 测试总数
- 8
- 通过
- 8
- 未成功
- 0
- 运行总耗时
- 未知