Orisumi

SDK Rejections

被拒绝的版本交给业务代码处理,处理完之前暂停发送

为什么验证

被拒绝的版本可能被后面的版本引用,继续发送只会得到更多拒绝。SDK 要把它和依赖它的版本一起交给业务代码,并在业务代码丢弃、改写或采用已保存的版本后继续发送。约定见 Submission · 被拒绝的版本。

前置条件

SDK 使用独立的 SQLite 文件,后端是记录每次请求、按需拒绝某个位置的 HTTP 处理器。待发送的版本依次是 EntitySchema、业务版本和引用业务版本的 InputSet,业务版本被拒绝。

操作与预期结果

操作预期结果
发送,业务版本因 VERSION-6 被拒绝;再发送一次EntitySchema 已保存;发送状态给出被拒绝的业务版本和依赖它的 InputSet;第二次没有发出请求
重启 SDK被拒绝的版本仍在等待处理
丢弃被拒绝的版本InputSet 一起丢弃,其余版本继续发送
读取实体新的当前版本,基于它改写被拒绝的版本发送改写后的版本和 InputSet
后端的当前版本与被拒绝的版本内容相同,采用已保存的版本InputSet 改为引用当前版本后发送;之后引用这个实体时得到当前版本

测试实现

ObserverSdkTests 中的拒绝处理测试。

执行结果

Case ID:sdk-rejections

报告时间:

报告代码版本:d0ad859f366f8a9bd66443fc7a4fb2262bda1081

查看最新原报告

以下仅展示此 Case 在该报告中的执行结果。

  • TUnit 1.72.16.0
  • runnervmr9t6g
  • Ubuntu 26.04.1 LTS
  • .NET 10.0.14
  • 26 Oct 2026, 05:36:12 UTC
测试总数
3
通过
3
未成功
0
运行总耗时
未知

贡献者

页面历史