Schemas

Schemas are based on the format defined by Cerberus

Global Parameters

# importable test/task package name, consumed on use
task_package:
    type: string
    required: True
    default: null
    nullable: True
# PIP compatible version string IE: >=1.0.0, consumed on use
package_version:
    type: string
    default: null
    nullable: True
# test groups to execute, consumed on use
test_groups:
    type: list
    schema:
        type: string
    default: []
# ATS client for communication with the ATS resource manager, consumed on use
ats_client:
    type: string
    default: null
    nullable: True
# any string not listed here will be considered a failure
valid_result:
    type: list
    schema:
        type: string
    default: [Passed, Completed, Skipped]
    required: True
# Max number of threads to use in threading mode, consumed on use
thread_limit:
    type: integer
    default: 5
    required: True
# Max number of processes to use in sub_process mode, consumed on use
process_limit:
    type: integer
    default: 5
    required: True
# Resource reservation mode, consumed on use
resource_mode:
    type: string
    allowed: [all, per_task_separate, per_task_combine, custom_all, custom_separate, custom_combine]
    default: all
    required: True
# The Automated Test System
ats:
    type: string
    required: True
    default: null
    nullable: True
# The Device Under Test
dut:
    type: string
    required: True
    default: null
    nullable: True
# When ignore_prereq is set, all prereq checking will be ignored
ignore_prereq:
    type: boolean
    required: True
    default: False
# kwargs to be passed to an auto ATS client
ats_client_kwargs:
    type: dict
    required: True
    default: null
    nullable: True

Task Parameters

# task name, typicly the module __name__
name:
    type: string
    required: True
# short description of the task
description:
    type: string
    required: True
# if this task fails, stop all further testsing
stop_suite_on_fail:
    type: boolean
    default: True
    required: True
#
exclusive_resources:
    type: list
    default: []
    schema:
        type: string
    required: True
#
shared_resources:
    type: list
    default: []
    schema:
        type: string
    required: True
# configurations to be passed to the resource manager
# for each resource. Key name must match a resource,
# the value will be passed to the resource manager
resource_configs:
    type: dict
    default: {}
    required: True
# if resources are busy, max number of times to retry
max_resource_retry:
    type: integer
    default: 5
    required: True
#
thread_safe:
    type: boolean
    default: False
    required: True
#
process_safe:
    type: boolean
    default: False
    required: True
#
valid_ats:
    type: list
    default: [any]
    schema:
        type: string
    required: True
# 
valid_duts:
    type: list
    default: [any]
    schema:
        type: string
    required: True
# keys required to be present in the global 
# parameter dictionary
req_param_keys:
    type: list
    default: []
    schema:
        type: string
    required: True
# optional keys that will be used if present
# in the global parameter dictionary
optional_param_keys:
    type: list
    default: []
    schema:
        type: string
    required: True
# tasks that must successfully run before this task can run
prereq_tasks:
    type: list
    default: []
    schema:
        type: string
    required: True
# All prereq_tasks must have been run in the same thread/process
prereq_same_thread:
    type: boolean
    default: True
    required: True
# estimated test time in seconds (including optional
# task_setup and task_teardown execution time)
est_task_time:
    type: integer
    default: 3600
    required: True
# if true, will always run teardown regardless of completion
# status of setup or run
always_teardown:
    type: boolean
    default: False
    required: True
# other data to pass to the class, must be JSON
# serializable if thread_safe or process_safe are true
extra_metadata:
    type: dict
    default: null
    nullable: True
# priorty level of the task, lower is given more
# prefence in multiprocess and threading modes
priority:
    type: integer
    default: 5
    required: True

Task Return

# result of the task, see global param 
# schema for default non-failure strings
result:
    type: string
    required: True
# optional dictionary of extra metadata to be reported
metadata:
    type: dict
    required: True
    default: {}
    schema:
        message:
            type: string
            required: True
            empty: True
            default: ''
# optional key for reporting multiple test results
# via the registered reporting function
multi_result:
    type: list
    schema:
        type: dict
        schema:
            name:
                type: string
                required: True
            description:
                type: string
                required: True
                default: ''
            result:
                type: string
                required: True
            metadata:
                type: dict
                required: True
                default: {}
                schema:
                    message:
                        type: string
                        required: True
                        empty: True
                        default: ''

Reporting

name:
    type: string
    required: True
description:
    type: string
    required: True
result:
    type: string
    required: True
metadata:
    type: dict
    schema:
        run_time:
            type: float
            default: 0
            required: True
        est_task_time:
            type: float
            default: 0
            required: True
        run_time_delta:
            type: float
            default: 0
            required: True
    required: True