欢迎访问学兔兔标准下载网,学习、交流 分享 !
返回首页 |ICS 49.020 V 07
HB 8575-2020
民用飞机机载嵌入式操作系统与应用软件
接口测试要求
Requirements for test used by civil aircraft airborne embedded operating
system and application interface
2020-09-14 发布 2021-01-01 实施
中华人民共和国工业和信息化部 发 布
前 言
本标准的附录 A 和附录 B 为资料性附录。
本标准由中国航空工业集团有限公司提出。
本标准由中国航空综合技术研究所归口。
本标准起草单位:中国航空工业集团公司西安航空计算技术研究所、中国航空综合技术研究所、中国航空工业集团公司西安飞机设计研究所、中国航空工业集团公司成都飞机设计研究所。
本标准起草人:叶 宏、徐 宁、王 宁(综合所)、崔西宁、张晓红、周南明、魏学杭,母方欣。
民用飞机机载嵌入式操作系统与应用软件
接口测试要求
1 范围
本标准规定了民用飞机机载嵌入式操作系统与应用软件接口测试要求。主要针对 GJB 5357-2005规定的航空电子系统应用软件接口要求,制定功能和健壮性等方面的测试要求,用于指导未来民用飞机航空电子系统操作系统选型所应满足的最小功能、接口等方面的测试要求, 主要包括接口功能测试要求和接口健壮性测试要求等。
本标准适用于 GJB 5357-2005 规定的航空电子系统应用软件接口功能测试和接口健壮性测试。
2 规范性引用文件
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件, 仅所注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GJB 5357-2005 航空电子系统应用软件接口要求
3 术语和定义
3.1
分区 partition
包括代码和数据的程序,它可以被装载到核心模块中的一个独立的地址空间。
3.2
分区窗口 partition windows
一段时间,在这段时间内资源被分配给分区内的进程。
3.3
主时间框架 major frame
核心模块中所有分区窗口的最小公倍数的倍数,每一个主时间框架包括同样的分区时间窗口。
3.4
端口 port
分区定义的资源,用于在指定的通道上发送或接收消息。端口的属性规定了它对消息传输的控制以及所传输消息的特性。
3.5
通道 channel
分区通信的一个途径,它由一组逻辑上相互连接的端口组成。
3.6
优先级队列 priority queue
按优先级的高低确定处理顺序的队列。
3.7
进程 process
分区中包含的程序单元。同一分区内可以有多个进程并发执行。
3.8
分段 segmentation
将消息分成更小的单元(段),以便能够进行传输。
3.9
核心模块 core module
一个至少包含了处理器资源和存储器资源的模块。
4 总则
4.1 硬件平台要求
硬件平台应支持操作系统对每个分区的内存空间、处理时间和 I/O 访问的能力进行限制,以隔离共享资源中的多个分区。
任何硬件中断处理都应该由操作系统提供服务。分区定时中断的产生应该具有确定性。分区的时间特性不应受中断干扰。
对处理机的基本要求:
a) 应提供足够的处理能力,以满足最坏情况下的时间要求;
b) 能够存取指定的 I/O 和存储器资源;
c) 可以访问时间资源以实现时间服务;
d) 在分区试图执行无效操作时,能够将控制权转移给操作系统;
e) 能够为处理控制结构的实现提供原子操作。
4.2 民用飞机机载嵌入式操作系统与应用软件接口测试目的
GJB 5357-2005 定义了机载嵌入式操作系统与应用软件接口基本服务,这些服务分为以下六类:
a) 分区管理:允许不同关键级别的分区时间和空间都互不影响地在同一个核心模块上执行。
b) 进程管理和控制:包括管理不同进程的所有必要资源。例如进程控制和处理调度考虑指定进程的属性和进程状态转换。
c) 时间管理:是多任务系统上操作系统提供的重要关键功能部件。为了符合 APEX 标准,时间独立于进程和分区的执行。所有的时间值只和核心模块时间相关,而不依赖于分区或进程。
d) 进程间通信机制:允许相同或不同核心模块上的两个或多个分区之间进行消息通信。
e) 进程内通信机制:避免全局消息传送处理开销的条件下,允许相同分区内的进程进行消息传递。
f ) 健康监控功能:监视并报告硬件平台/应用程序/软件的错误和故障,有助于错误隔离和故障蔓延。
本接口测试的目的就是根据 GJB 5357-2005 中的上述六类服务需求对既有操作系统及应用软件接口进行符合性验证,证明其接口行为满足 GJB 5357-2005 标准。
4.3 符合性验证
4.3.1 应用级别和范围
任何声明满足 GJB 5357-2005 标准的操作系统都必须支持 GJB 5357-2005 中定义的所有系统服务和数据结构,包括功能行为。
本标准仅用于定义证明操作系统接口行为与接口标准符合性的测试用例。它不包括对接口性能的测试,也不包括对操作系统管理配置参数集成能力的测试。
4.3.2 接口测试的建议流程
图 1 显示了建立接口符合性测试的典型流程。每一测试步骤将在随后的段落中进行描述。
图 1 接口测试的建议流程
操作系统及应用软件接口必须通过一系列专用的测试用例来证明其对于 GJB 5357-2005 的符合性。这些专用测试用例将在本标准中进行详细的定义,定义的根据是 GJB 5357-2005 中第 5 章“接口服务定义”中描述的各项服务需求的接口规格说明。在 GJB 5357-2005 中定义的服务需求与具体的代码实现无关,因此符合性验证标准中的测试用例设计同样应不限制于具体的实现。
测试候选项是运行有已实现的操作系统及 API 接口的处理器平台,可支持测试用例的正常运行。在进行符合性验证的过程中,具体的测试候选项可通过为其配置参数、时间限制、内存分配以及栈大小等指标定义边界值及有效值的方式进行特征描述,此类与测试执行相关的定义条目应在头文件、配置文件等描述文件中进行定义。
根据本接口测试标准定义并编码的测试集将同描述测试候选项的描述文件一起经过编译、链接形成可在测试环境中运行的测试用例。测试用例执行过程的计划和管理应在测试计划中进行详细的定义, 说明如何在具体的测试环境中实现测试集,并根据不同的测试目的完成不同测试用例的安装,安装过程按照测试计划进行。对于一个给定的测试候选项,测试安装过程应包括测试手段及测试细节的定义等,其目的是保证测试用例的可执行性并形成与测试候选项相对应的有效测试结果。
4.4 测试标准和程序实现的指导准则
4.4.1 测试程序定义
测试程序描述记录的测试结果,不描述记录的测试方法,因为测试方法是实现相关的。
在第 5 章中定义的测试程序包括以下内容:
a) 正常状态下功能测试程序:在正常状态下进行要素的测试。测试过程包括一组输入参数和与之对应的预期输出。测试结果通常由返回码组成。
b) 异常状态下的健壮性测试程序:在异常状态下进行要素的测试。异常状态包括参数越界, 特定错误条件下的服务调用,和其他异常执行等。操作系统能够捕获这些错误并能按照预定得处理流程进行处理的能力。这些测试程序包含有目的的错误注入,或模拟特定环境来检查错误处理。
4.4.2 测试描述文件结构说明
本节举例说明,本标准第 5 章针对 GJB 5357-2005 的每个接口服务函数,将由一组说明来描述符合性测试内容。例如某个“服务”对应的章节号为“4.w.x.y ”,将有四个小节,分别描述该服务的“4.w.x.y.1服务需求 ”、“4.w.x.y.2 服务功能测试程序 ”、“4.w.x.y.3 服务健壮性测试程序”和“4.w.x.y.4 服务宏 ”。具体结构如下:
a) 4.w.x.y 服务
b) 4.w.x.y.1 服务需求
该小节的第一部分是在测试和相关类型下,带有服务要求的输入和输出的列表。也对服务的返回码和它的执行环境作了说明。第二个表格带有将被检验的测试论据。这是对测试要求进行继续说明。通常,测试论据通过逻辑条件集合定义,该集合包含在服务伪代码的条件指令中。
c) 4.w.x.y.2 服务功能测试程序
服务功能测试程序小节包括覆盖正常的服务行为相关测试论据的功能测试例程。功能测试例程(Functional Test Procedure FTP)是服务在测试条件对预定行为定义的假定。每个 FTP 指定程序执行的环境条件,执行的动作,需要指定的检验标准和预期结果。
每个 FTP 可以追溯到它实现的测试要求。FTP 和测试要求没有一一对应的关系。一个测试程序实现可以实现不止一个测试要求,反之亦然。
d) 4.w.x.y.3 服务健壮性测试程序
在服务健壮性测试程序小节中包括更多测试程序,他们覆盖考虑带有错误码和执行动作退出的服务条件下的测试论据。
e) 4.w.x.y.4 服务宏
该小节描述测试条件下和服务相关的宏。服务宏是用来简化程序描述的工具。对于每个服务都有一个宏。服务宏将服务输入和预期服务结果作为输入接收。它通过输入调用服务, 比较服务输出和预期结果。根据比较的结果, 服务宏将比较信息和服务本身一起输出。对于不同的测试里程,可能会以带有不同输入参数服务集和预期服务结果调用相同的服务宏,并将会输出不同的错误信息。
为了检查测试是否成功,测试程序中的输出将被评估。
5 民用飞机机载嵌入式操作系统与应用软件接口测试要求
5.1 系统要求
5.1.1 概述
本节描述了一系列从 GJB 5357-2005 中获取的需求定义。为了保证每个需求的可测试性和追踪性,为其指定了唯一标识。并且需求的描述应能够支持符合性验证测试的定义。同时, 每条需求被划分为系统相关和系统无关,这种分类对给定需求的符合性验证方式和时机有直接影响。
每个需求标识的格式定义如表 1 所示。
表 1 需求标识的格式定义
服务函数类型:
GEN:指定一般 API/OS 功能。
PART:指定 API 分区服务功能。
PROC:指定 API 进程服务功能。
TIME:指定 API/时间服务功能。
MEMO:指定 API/内存服务功能。
INTER:指定 API/分区间通信服务功能。
INTRA:指定 API/分区内通信服务功能。
HMON:指定 OSS 健康监控服务功能。
PERF:指定 API 性能服务功能。
例子:API-PART-012:
l PART API 系统服务功能。
l 012 是要求号。
5.1.2 通用管理类型的 API/OS 符合性
该小节描述符合特定规格的一般的 API/OS 标准。
5.1.3 通用 API/OS 管理类型
该小节定义了所有 API 服务公用的通用数据类型标准:
5.2 分区服务
5.2.1 分区管理类型
5.2.1.1 分区管理类型要求
5.2.1.2 分区管理类型测试用例
5.2.2 分区管理服务
5.2.2.1 GET_PARTITION_STATUS
5.2.2.1.1 GET_PARTITON_STATUS 要求
5.2.2.1.2 GET_PARTITION_STATUS 功能测试用例
5.2.2.1.3 GET_PARTITION_STATUS 健壮性测试例程N/A
5.2.2.1.4 GET_PARTITION_STATUS 服务宏
CHECKGET_PARTITION_STATUS
目的:检查 GET_PARTITION_STATUS 服务。
描述:
1. 调用服务 GET_PARTITION_STATUS.
2. 将返回码与预期值进行比较,并将返回码作为输入参数进行传递。
3. 将输出的 PARTITION_STATUS 各字段值与预期值进行比较,并将 PARTITION_STATUS_TYPE作为输入参数进行传递。
4. 使用 1 位数据位表示上述比较测试是否成功。
5. 将 GET_PARTITION_STATUS 的返回值作为输出参数进行返回。
参数表:
5.2.2.2 SET_PARTITION_MODE
5.2.2.2.1 SET_PARTITION_MODE 要求
5.2.2.2.2 SET_PARTITION_MODE 功能测试例程
5.2.2.2.3 SET_PARTITION_MODE 健壮性测试例程
5.2.2.2.4 SET_PARTITION_MODE 服务宏
CHECKSET_PARTITION_MODE
目的:检查SET_PARTITION_MODE服务
描述:
1. 调用 SET_PARTITION_MODE 服务,传入参数为获得的 OPERATING_MODE_TYPE 参数。
2. 通过传递输入参数,检查预期错误码。并对比预期错误码和返回错误码。
3. 通过 SET_PARTITION_STATUS 服务的返回值输出错误码。
4. 返回一个带有显示测试结果的位结构体,made in point 2。
参数:
5.3 进程服务
API/OS 应该依照 IMA 概念,分区相关的特性由进程提供编程单元概念。进程被定义为带有数据,栈空间,程序计数器,栈指针,和其他特性的可执行程序。
5.3.1 进程管理类型
5.3.1.1 进程管理类型要求
该小节描述 API/OS 必须提供的进程管理数据类型。
5.3.1.2 进程管理类型测试例程
5.3.2 进程管理服务
5.3.2.1 GET_PROCESS_ID
5.3.2.1.1 GET_PROCESS_ID 要求
5.3.2.1.2 GET_PROCESS_ID 功能测试例程
5.3.2.1.3 GET_PROCESS_ID 健壮性测试例程
5.3.2.1.4 GET_PROCESS_ID 服务宏CHECKGET_PROCESS_ID
目的:检查 GET_PROCESS_ID 服务
描述:
1 调用 GET_PROCESS_ID 服务,传递给该服务的参数为进程名
2 对比返回错误码和其预期值
3 检查返回进程 ID 是否等于预期值
4 返回持有上面两个比较结果的位结构体另外,通过服务输出错误码,和进程 ID。
参数:
5.3.2.2 GET_PROCESS_STATUS
5.3.2.2.1 GET_PROCESS_STATUS 要求
5.3.2.2.2 GET_PROCESS_STATUS 功能性测试例程
5.3.2.2.3 GET_PROCESS_STATUS 健壮性测试例程
5.3.2.2.4 GET_PROCESS_STATUS 服务宏CHECKGET_PROCESS_STATUS
目的:检查 GET_PROCESS_STATUS 服务
描述:
1 调用 GET_PROCESS_STATUS 服务,输入参数为进程 ID
2 对比预期返回码,检查由服务发送的返回码
3 通过位结构体返回所有检查的结构,结构体的每个字段对应一个比较值。
4 输出有服务输出的参数。
参数:
5.3.2.3 CREATE_PROCESS
5.3.2.3.1 CREATE_PROCESS 要求
条件#1:进程 ATTRIBUTE.NAME
条件#2:enough storage for process, no max. created procs条件#3:ATTRIBUTES.BASE_PRIORITY
条件#4:ATTRIBUTES.STACK_SIZE条件#5:ATTRIBUTES.PERIOD
条件#6:ATTRIBUTES.TIME_CAPACITY
5.3.2.3.2 CREATE_PROCESS 功能性测试例程
5.3.2.3.3 CREATE_PROCESS 健壮性测试例程
5.3.2.3.4 CREATE_PROCESS 服务宏
CHECKCREATE_PROCESS
目的:测试 CREATE_PROCESS 服务
描述:
1 输入进程属性,调用服务 CREATE_PROCESS。
2 对照预期值,检查返回错误码。
3 如果返回错误码为 OK,将返回进程参数作为输入参数,调用 GET_PROCESS_STATUS 服务。
4 检查该方法的返回码是否为 NO_ERROR。
5 如果没有错误发生,对照预期值比较该方法返回的属性值。
6 返回进程 ID(the returned processId),通过服务 GET_PROCESS_STATUS 获得的进程状态,错误码和一个数据结构。该数据结构显示通过调用服务得到的实际值和作为参数传入的预期值的比较结果。
参数:
5.3.2.4 GET_PRIORITY
5.3.2.4.1 SET_PRIORITY 要求
5.3.2.4.2 SET_PRIORITY 功能性测试例程
5.3.2.4.3 SET_PRIORITY 健壮性测试例程
5.3.2.4.4 SET_PRIORITY 服务宏
CHECKSET_PRIORITY
目的:测试 SET_PRIORITY 服务
描述:
1 调用服务 SET_PRIORITY,用获得的进程 ID 作为参数。
2 检查返回码,并将它和预期返回码比较。
3 如果服务调用没有返回错误,则调用服务 GET_PROCESS_STATUS,输入参数为进程 ID
4 对照作为参数输入的预期进程优先级,比较返回当前进程优先级。
5 作为调用 SET_PRIORITY 的结果,返回错误码;作为调用服务 GET_PROCESS_STATUS 的结果返回 PROCESS_STATUS;并且得到一个结构体,该结构体包含三个位域显示可能出现的错误:来自SET_PRIORITY 的错误码,当前优先级,来自 GET_PROCESS_STATUS 的错误码。
参数:
5.3.2.5 SUSPEND_SELF
5.3.2.5.1 SUSPEND_SELF 要求
5.3.2.5.2 SUSPEND_SELF 功能性测试例程
5.3.2.5.3 SUSPEND_SELF 健壮性测试例程
5.3.2.5.4 SUSPEND_SELF 服务宏
CHECKSUSPEND_SELF
目的:测试 SUSPEND_SELF 服务
描述:
1. 调用服务 SUSPEND_SELF,将收到的超时时间值作为参数。
2. 对照作为参数传入的预期返回码值,检查返回码。返回比较结果。
3. 输出由服务返回的错误码。
参数:
5.3.2.6 SUSPEND
5.3.2.6.1 SUSPEND 要求
5.3.2.6.2 SUSPEND 功能性测试例程
5.3.2.6.3 SUSPEND 健壮性测试例程
5.3.2.6.4 SUSPEND 服务宏
CHECK_SUSPEND
目的:测试 SUSPEND 服务
描述:
1. 调用服务 SUSPEND,以获得的进程 ID 作为输入参数
2. 对照预期返回码,比较输出返回码
3. 如果调用服务 GET_PROCESS_STATUS 时没有发生错误,以获得的进程 ID 作为输入参数
4. 检查是否没有错误发生并且进程状态为 WAITING
5. 返回显示如下错误的位结构体:
a. 预期错误码与返回码不同
b. GET_PROCESS_STATUS 失败
c. StatusProcessState 不是 Waiting
6. 通过调用服务 GET_PROCESS_STATUS 输出 PROCESS_STATUS 结构体
7. 通过调用服务 SUSPEND 输出错误码
参数:
5.3.2.7 RESUME
5.3.2.7.1 RESUME 要求
5.3.2.7.2 RESUME 功能性测试例程
5.3.2.7.3 RESUME 健壮性测试例程
5.3.2.7.4 RESUME 服务宏
CHECK_RESUME
目的:测试 RESUME 服务
描述:
1. 调用 RESUME 服务,获得的进程 ID 作为输入参数
2. 对比输入参数预期返回码,检查输出返回码
3. 如果服务调用没有返回错误,以获得的进程 ID 作为参数调用服务 GET_PROCESS_STATUS。
4. 如果调用 GET_PROCESS_STATUS 没有出错,检查进程状态是否为 READY。
5. 返回位结构体,显示如下错误:
a. 返回码和预期错误码不同
b. 进程状态为 READY
c. 调用 GET_PROCESS_STATUS 返回一个错误。
6. 调用服务 RESUME,输出返回进程状态和预期错误码参数:
5.3.2.8 STOP_SELF
5.3.2.8.1 STOP_SELF 要求
5.3.2.8.2 STOP_SELF 功能性测试例程
5.3.2.8.3 STOP_SELF 健壮性测试例程N/A
5.3.2.9 STOP
5.3.2.9.1 STOP 要求
5.3.2.9.2 STOP 功能性测试例程
5.3.2.9.3 STOP 健壮性测试例程
5.3.2.9.4 STOP 服务宏
CHECK_STOP
目的:测试 STOP 服务
描述:
1. 调用 STOP 服务,将获得的进程 ID 值作为输入参数
2. 对照作为参数的预期返回码,检查输出返回码
3. 如果服务调用没有返回错误,以获得的进程 ID 作为参数调用服务 GET_PROCESS_STATUS
4. 如果没有错误发生,检查进程的状态是否为 DORMANT
5. 返回包含如下错误信息的位结构体:
a. 返回错误码和预期值不同
b. 进程状态不是休眠态
c. 调用 GET_PROCESS_STATUS 出现的错误
6. 输出来自调用服务 GET_PROCESS_STATUS 返回的进程状态,输出来自服务 STOP 服务的返回码。参数:
5.3.2.10 START
5.3.2.10.1 START 要求
5.3.2.10.2 START 功能性测试例程
5.3.2.10.3 START 健壮性测试例程
5.3.2.10.4 START 服务宏
CHECK_START
目的:测试 START 服务
描述:
1. 调用服务 START,将获得的进程 ID 作为输入参数
2. 检查作为参数输入的返回码预期值是否等于输出值
3. 如果服务调用没有错误发生,以获得的进程 ID 作为参数调用服务 GET_PROCESS_STATUS
4. 如果服务调用没有错误发生,检查进程状态是否等于 READY
5. 返回一个位结构体,包含如下错误信息:
a. 返回错误码和预期值不同
b. 进程状态不是 READY
c. 调用 GET_PROCESS_STATUS 出错
6. 输出来自调用 GET_PROCESS_STATUS 服务的结构体 PROCESS_STATUS
7. 输出调用 START 服务的返回错误码参数:
5.3.2.11 LOCK_PREEMPTION
5.3.2.11.1 LOCK_PREEMPTION 要求
5.3.2.11.2 LOCK_PREEMPTION 功能性测试例程
5.3.2.11.3 LOCK_PREEMPTION 健壮性测试例程
5.3.2.11.4 LOCK_PREEMPTION 服务宏
CHECKLOCK_PREEMPTION
目的:测试 LOCK_PREEMPTION 服务
描述:
1. 调用 GET_PARTITION_STATUS 服务并保存当前的 LOCK LEVEL(oldLockLevel)
2. 调用 LOCK_PREEMPTION 服务
3. 检查输入错误码是否等于输入的预期值。
4. 检查 newLockLevel 是否等于 oldLockLevel + 1。newLockLevel 是调用 LOCK_PREEMPTION 服务的输出值。
5. 再次调用 GET_PARTITION_STATUS,并检查返回的 lock level 是否等于 newLockLevel。
6. 返回一个位结构体,指示如下可能错误:
a. 返回值不同于预期值。
b. Lock level 没有逐个增加。
c. 调用 LOCK_PREEMPTION 的输出Lock level 值不同于调用 GET_PARTITION_STATUS 服务得到的 lock level 值。
7. 输出返回错误码,服务返回 lock level 值。
参数:
5.3.2.12 UNLOCK_PREEMPTION
5.3.2.12.1 UNLOCK_PREEMPTION 要求
5.3.2.12.2 UNLOCK_PREEMPTION 功能测试例程
5.3.2.12.3 UNLOCK_PREEMPTION 健壮性测试例程N/A
5.3.2.12.4 UNLOCK_PREEMPTION 服务宏
CHECKUNLOCK_PREEMPTION
描述:
1. 调用 GET_PARTITON_STATUS 服务,并且保存当前锁定级别值(oldLockLevel)。
2. 调用 UNLOCK_PREEMPTION 服务。
3. 检查预期错误码和返回的错误码是否相等。
4. 检查 newLockLevel = oldLockLevel -1。newLockLevel 是调用 UNLOCK_PREEMPTION 服务的输出值。
5. 再次调用 GET_PARTITION_STATUS,检查返回锁定级别值是否等于 newLockLevel。
6. 返回一个位结构体,显示如下可能错误:
a. 返回码不同于预期值。
b. 锁定级别没有减 1。
c. 调用 UNLOCK_PREEMPTION 输出的锁定级别值不同于调用 GET_PARTITION_STATUS 服务的锁定级别值。
7. 输出返回错误码和服务返回的锁定级别。
参数:
5.4 时间服务
在 IMA 系统的上下文中,时间管理根据时间应该遵循一定的环境要求。时间管理服务应该为分区控制周期和非周期进程提供途径。
尤其对于周期进程,分区内的每个进程应该能指定运行时间综合,它指定在满足进程要求的基础上,进程允许消耗的最大时间长度。该段包括和时间管理相关的类型和标准。
5.4.1 时间管理类型
在 API_GEN_0040(参见 3.1.2)中描述 SYSTEM_TIME_TYPE 类型,该类型和系统无关。
5.4.2 时间管理服务
5.4.2.1 TIMED_WAIT
5.4.2.1.1 TIMED_WAIT 要求
5.4.2.1.2 TIMED_WAIT 功能性测试例程
5.4.2.1.3 TIMED_WAIT 健壮性测试例程
5.4.2.1.4 TIMED_WAIT 服务宏
CHECKTIMED_WAIT
目的:测试 TIMED_WAIT 服务
描述:
1. 调用服务 TIMED_WAIT,输入参数为时间的输入值。
2. 检查返回码是否为 NO_ERROR。
3. 返回位结构体,显示来自 TIMED_WAIT 服务调用的错误。参数:
5.4.2.2 PERIODIC_WAIT
5.4.2.2.1 PERIODIC_WAIT 要求
5.4.2.2.2 PERIODIC_WAIT 功能性测试例程
5.4.2.2.3 PERIODIC_WAIT 健壮性测试例程
5.4.2.2.4 PERIODIC_WAIT 服务宏
CHECKPERIODIC_WAIT
目的:测试 PERIODIC_WAIT 服务
描述:
1. 调用服务 PERIODIC_WAIT。
2. 返回一个位结构体,显示预期返回码和实际值之间是否没有差异。参数:
5.4.2.3 GET_TIME
5.4.2.3.1 GET_TIME 要求
5.4.2.3.2 GET_TIME 功能性测试例程
5.4.2.3.3 GET_TIME 健壮性测试例程N/A
5.4.2.3.4 GET_TIME 服务宏
CHECKGET_TIME
目的:测试 GET_TIME 服务
描述:
1 调用服务 GET_TIME。
2 检查返回错误码是否等于 NO_ERROR。
3 通过服务返回输出时间值。
4 返回位结构体,其中一个区域显示调用服务的返回错误码是否等于 NO_ERROR。
5.5 内存管理服务要求
因为分区和它们相关的内存空间应该在系统配置时间定义,所以API/OS不应该提供内存管理服务。
5.6 分区间通信服务
IMA (Integrated Modular Avionics)环境下的分区间通信是指运行在同一核心模块或不同核心模块上的两个或多个分区之间的消息通信。本章节描述了与分区间通信相关的数据类型与标准。通过消息连接分区的基本机制是通道。通道定义了一个源与一个或多个目的地之间的逻辑连接关系。分区通过已定义的访问点访问通道,访问点称为端口。
5.6.1 分区间通信类型
5.6.1.1 分区间通信类型需求
该部分描述了API/OS必须提供的分区间通信数据类型:
以下数据类型仅适用于采样端口服务:
以下数据类型仅适用于队列端口服务:
5.6.1.2 分区间通信类型测试过程
5.6.2 分区间通信服务
5.6.2.1 采样端口服务
5.6.2.1.1 CREATE_SAMPLING_PORT
5.6.2.1.1.1 CREATE_SAMPLING_PORT 要求
用例#1:采样端口创建限制。
用例#2:采样端口名已存在。
用例#3:采样端口已创建。
用例#4:最大消息长度。
用例#5:端口传输方向。
用例#6:刷新周期。
5.6.2.1.1.2 CREATE_SAMPLING_PORT 功能测试程序
5.6.2.1.1.3 CREATE_SAMPLING_PORT 健壮性测试程序
5.6.2.1.1.4 CREATE_SAMPLING_PORT 服务宏
CHECKCREATESAMPLINGPORT
目的:测试 CREATE_SAMPLING_PORT 服务
描述:
1. 调用程序 CREATESAMPLINGPORT ,以端口名,端口大小、端口传输方向类型、端口刷新周期作为输入参数。
2. 检查实际返回值是否等于期望值。
3. 若调用服务返回无错误,则调用 GET_SAMPLING_PORT_STATUS。
4. 若上次调用返回无错误,检查输出端口大小是否等于设置端口大小。
5. 检查输出端口传输方向类型是否等于设置端口传输方向类型。
6. 检查输出刷新周期是否等于设置刷新周期。
7. 调用服务 CREATE_ SAMPLING_ PORT 返回输出端口 ID 值,采样端口状态值。
8. 返回 1bit 结构包含下列错误指示:期望返回值不同于实际值,设置端口大小不等于输出端口大小,设置端口传输方向类型不等于输出端口传输方向类型,调用服务 GET_SAMPLING_ PORT_STATUS 返回错误。
参数:
5.6.2.1.2 WRITE_SAMPLING_MESSAGE
5.6.2.1.2.1 WRITE_SAMPLING_MESSAGE要求
5.6.2.1.2.2 WRITE_SAMPLING_MESSAGE 功能测试例程
5.6.2.1.2.3 WRITE_SAMPLING_MESSAGE 健壮性测试例程
5.6.2.1.2.4 WRITE_SAMPLING_MESSAGE 服务宏
CHECKWRITESAMPLINGMESSAGE
目的:测试 WRITE_SAMPLING_MESSAGE 服务
描述:
调用程序 WRITESAMPLINGMESSAGE ,以端口名,消息及大小作为输入参数。
检查实际返回值是否等于期望值。
若调用服务返回无错误,则调用 GET_SAMPLING_PORT_STATUS 服务,以端口标识作为输入参数。
检查 GET_SAMPLING_PORT_STATUS 服务输出端口大小是否返回无错误。
GET_SAMPLING_PORT_STATUS 返回采样端口状态,WRITE_SAMPLING_ MESSAGE 返回错误码。
返回 1bit 结构包含用于比较 WRITE_SAMPLING_ MESSAGE 服务返回错误码与期望错误码的值,指示调用 GET_SAMPLING_PORT_STATUS 服务返回一个错误。
参数:
5.6.2.1.3 READ_SAMPLING_MESSAGE
5.6.2.1.3.1 READ_SAMPLING_MESSAGE 要求
5.6.2.1.3.2 READ_SAMPLING_MESSAGE 功能测试例程