应用 waPC (rust) 做软件测试工具第三届中国 Rust 开发者大会 应用 waPC (rust) 做软件测试工具 Alan poon 潘泳权 大家好! @rustropy_gaming ruito_89 PhoTto / image / chart Webassembly Procedures Call waPC 协议标准化了本机代码调用 WebAssembly 和 WebAssembly 调用本机代码的通信 (messaging) (messaging) 和 错误处理 (error handling) 。 什么是 waPC? WASM 外部函数 接口 FFI Input type Return type Platform 底层 I32 I32 Unknown waPC &[u8] Result,error > Linux x86_64, macOS x86_64 ,Wi ndows modified request • 模拟数据规则 • 自动化测试 • https://github.com/wasmmock/ wasm_mock_server • 用 rust 打包所有测试需求 Wasm mock server Why use rust ? Software testing tool • 模拟数据规则 • 自动化测试 • Company's own protocol • 0 码力 | 30 页 | 2.50 MB | 1 年前3
Comprehensive Rust(简体中文) 202412. . . . . . . . . . . . . . . . . 152 4 27 测试 156 27.1 单元测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 27.2 其他类型的测试 . . . . . . . . . . . . . . . . . . . . . . /** Birthday service interface. */ . . . . . . . . . . . . . . . . . . . . . . . . . 191 34.1.1 AIDL 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 34.1.2 Generated Service API . . . . . . . . . . . . . . . . . . 229 44 测试 230 44.1 rust_gtest_interop 库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 6 44.2 Rust 测试的 GN 规则 . . . . . . . . . . . . . . . . . . .0 码力 | 359 页 | 1.33 MB | 11 月前3
Rust 语言学习笔记...................................... 107 第九章 测试与评测 ................................................................................ 108 9.1 函数级测试 ................................................ 109 9.2 模块级测试 ............................................................................... 110 9.3 工程级测试(黑盒集成测试) ........................................................ 110 9.4 基准测试 .......... 行文件)。 外部测试源代码文件位于 tests 目录下。 示例程序源代码文件位于 examples。 基准测试源代码文件位于 benches 目录下。 cargo.toml 是 cargo 特有的项目数据描述文件,对于猿们而言,cargo.toml 文 件存储了项目的所有信息,它直接面向 rustacean,如果想让自己的 rust 项目 能够按照期望的方式进行构建、测试和运行,那么,必须按照合理的方式构建0 码力 | 117 页 | 2.24 MB | 1 年前3
Rust 程序设计语言 简体中文版 1.85.0程序设计语言 简体中文版 11. 编写自动化测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 11.1. 如何编写测试 . . . . . . . . . . . . . . . 220 11.2. 控制测试如何运行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 11.3. 测试的组织结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 12.4. 采用测试驱动开发完善库的功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 562 页 | 3.23 MB | 1 月前3
Rust 程序设计语言简体中文版..... 226 11. 编写自动化测试 ................................................................................................................. 240 2/600 Rust 程序设计语言 简体中文版 11.1. 如何编写测试 ................... .......................... 241 11.2. 控制测试如何运行 ...................................................................................................... 259 11.3. 测试的组织结构 ................................. 重构以改进模块化与错误处理 ................................................................................... 278 12.4. 采用测试驱动开发完善库的功能 ................................................................................ 293 12.50 码力 | 600 页 | 12.99 MB | 1 年前3
新一代分布式高性能图数据库的构建 - 沈游人索引 LSM-Tree 容灾保障 ( BR ) 元数据层 事务管理 MVOCC 计算层 Cypher AST 优化器 图计算 内存加速引 擎 服务接口 HTTP/RPC Spark 连接器 Python UDF 执行器 索引管理 一致性存储 RAFT 分片管理 元数据 集群管理 用户权限 GNN 应用层 Atlas 图平台 例如,对于属性的存储,可以通过自行序列化 / 反序列化大幅节省内存 • 而自定义存储格式往往需要内存的精细操作,由于 Rust 允许在 unsafe 下访问裸指针, 可以实现零开销读取 • 将 Unsafe 包裹,对外提供足够的接口 i32 i64 u32 u32 string string 定长 变长 高可用技术方案 基于 Chain Replication ( CRAQ ) 算法实现,进行数据副本处理,头 结点写,多结点读,支持读写分离 强大的跨平台能力,在不同架构 下可以准确的控制代码行为 编译期间对生命周期检查确保内 存安全,无 GC 和运行时损耗 01 完善的测试类型支持,包括单元 测试、集成测试、基准测试等 02 03 和文档系统以及 CI/CD 工具的良 好集成 完整的断言系统 异步协程 零成本抽象 强大的测试框架 REPL 命令行客户端 WebUI 面向分析师,提供图模型定义、数据管理、图查询分析、服务状态监控、用户管理能力0 码力 | 38 页 | 24.68 MB | 1 年前3
简谈 Rust 与国密 TLS - 王江桐若消息长度过长,需要进行分组,如果消息长度不足,则要进行填充。 • 保证数据机密性。 • 算法安全保密强度及相关软硬件实现性能与 AES 相当,该算法不公开,仅以 IP 核的形式存在于芯片 中,调用该算法时,需要通过加密芯片的接口进行调用。 • 采用该算法已经研制了系列芯片、智能 IC 卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应 用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。 ü 支持自定义内存分配器 Rust性能基本和C、C++持平,适用于系统级编程领域 ü 强大编译器 ü 全开源方式运作 ü Cargo ü Crates.io ü Docs.rs ü 自带测试框架 ü 支持跨平台 ü 多编程范式 ü 丰富的文档手册 高性能 高生产力 国密实现生态 Overview of Shangmi Cryptography Implementation Rust 单证书机制 • Resumption + Ticket机制 • SM4GCMSM3 • Sm2国密单证书 • Sm2 IEEE ECDHE ylong_tls 支持版本以及特性 提供C-API接口方便C语言使用 ylong_tls Rust Adapt C-API (.h + so\.a) C APP Rust APP Rust纯软件实现 指令加速(X86、ARM) no_std版本0 码力 | 44 页 | 3.70 MB | 1 年前3
Rust并行编译的挑战与突破基于条件编译的共享数据结构实现 缺点:用户需自行生成编译器 挑战:消减共享数据结构效率损失 Specailization —— 基于GAT的共享数据结构实现 接口 入口 非共享 数据结构 共享 数据结构 接口 实现 接口 实现 执行结果 同一份代码 线程数为1 线程数大于1 同一份代码 缺点:业务代码带有泛型参数 挑战:消减共享数据结构效率损失 动态线程安全检查 —— 挑战:缓存系统访问热点效率瓶颈 Sharded —— 接口统一,存储分离 cache1 cache2 cache3 cacheM ... thread1 thread2 thread3 threadN ... 根据Key哈希值决定索引 Sharded数据结构设计 Rust并行编译的未来 · 抹平共享数据结构造成的性能差距 · 多线程环境下的编译器度量方案 · 针对并行环境的编译器测试 · 深化编译器并行化0 码力 | 25 页 | 4.60 MB | 1 年前3
洛佳 组件化驱动、ROM运行环境与RustSBI通常的嵌入式开发等功能。 # ROM运行环境 # 2023年的RustSBI 作为RISC-V SBI固件的RustSBI,2023年 将与UEFI、LinuxBoot擦出火花。在驱 动、环境和SBI接口的基础上,提供快速 实现具体引导流程的解决方案。 目录 组件化驱动 第 01 部分 什么是组件化驱动? 运 用 生 命 周 期 、可 变 性 等 最 新 的 编 程 语 言 理 论 成 果 在这方面,Dramforever的项目1提 供了很好的例子。 • LARVa2项目是固件充当模拟器的例 子,这里RustSBI被编译到RISC-V之 外的指令集。 • YdrMaster设计的sbi-testing3测试 框架可轻松检查SBI实现的正确性。 1 https://github.com/dramforever/opensbi-h 2 LARVa: https://github.com/xen0n/larva0 码力 | 21 页 | 3.12 MB | 1 年前3
Rust 异步并发框架在移动端的应用 - 陈明煜移动端诉求:易用性 • IO 密集性任务与 CPU 密集型任务融合 异步并发框架如 tokio 大多用于处理大量 异步 IO 场景,而 CPU 密集型任务一般 使用 rayon 。 当前单框架提供的接口无法使用户在一个 任务中同时处理 IO 任务以及 CPU 任 务。 Incompatibility of the third party Runtime with Mobile 现有框架无法完美适配移动端(二) queue task New task Global queue New task take & run take & run Worker take & run Steal & run 两种接口拥有两套割裂的调度模式和线程池 华为 Ylong 异步并发框架 Ylong Runtime 并发框架 华为 Rust 异步并发框架,近期计划在 OpenHarmony 上开源。与 Tokio 类似,同样为事 类似,同样为事 件驱动型调度框架,提供异步 IO 、定时器、同步原 语等功能。但额外提供: 任务优先级调度 异步并行迭代器 结构化并发 Ylong Runtime 对外 接口 APP/SA 调度器 提 交 任 务 Async function CPU Task CPU Task IO Task IO Task Executor 高 中 低 线程池 Reactor0 码力 | 25 页 | 1.64 MB | 1 年前3
共 28 条
- 1
- 2
- 3













