SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause copyrights: - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) enabled-by: true functional-type: action links: - role: interface-function uid: ../if/delete post-conditions: - name: Status states: - name: Ok test-code: | T_rsc_success( ctx->status ); ctx->id_value = 0xffffffff; id = 0xffffffff; sc = rtems_partition_ident( PART_NAME, RTEMS_SEARCH_LOCAL_NODE, &id ); T_rsc( sc, RTEMS_INVALID_NAME ); T_eq_u32( id, 0xffffffff ); text: | The status shall be RTEMS_SUCCESSFUL. The deleted partition object shall be inactive. - name: InvId test-code: | T_rsc( ctx->status, RTEMS_INVALID_ID ); id = 0xffffffff; sc = rtems_partition_ident( PART_NAME, RTEMS_SEARCH_LOCAL_NODE, &id ); T_rsc_success( sc); T_eq_u32( id, ctx->id_value ); text: | The status shall be RTEMS_INVALID_ID. - name: InUse test-code: | T_rsc( ctx->status, RTEMS_RESOURCE_IN_USE ); id = 0xffffffff; sc = rtems_partition_ident( PART_NAME, RTEMS_SEARCH_LOCAL_NODE, &id ); T_rsc_success( sc); T_eq_u32( id, ctx->id_value ); text: | The status shall be RTEMS_RESOURCE_IN_USE. test-epilogue: null test-prologue: | rtems_status_code sc; rtems_id id; pre-conditions: - name: Id states: - name: Id test-code: | ctx->id = ctx->id_value; text: | The id parameter shall reference a partition object. - name: Invalid test-code: | ctx->id = 0; text: | The id parameter shall not reference a partition object. test-epilogue: null test-prologue: null - name: InUse states: - name: 'Yes' test-code: | ctx->buffer = NULL; sc = rtems_partition_get_buffer( ctx->id_value, &ctx->buffer ); T_rsc_success( sc ); T_not_null( ctx->buffer ); text: | The partition shall have at least one buffer in use. - name: 'No' test-code: | ctx->buffer = NULL; text: | The partition shall have no buffer in use. test-epilogue: null test-prologue: | rtems_status_code sc; rationale: null references: [] requirement-type: functional skip-reasons: {} test-action: | ctx->status = rtems_partition_delete( ctx->id ); test-brief: null test-cleanup: | rtems_status_code sc; if ( ctx->buffer != NULL ) { sc = rtems_partition_return_buffer( ctx->id_value, ctx->buffer ); T_rsc_success( sc ); } if ( ctx->id_value != 0xffffffff ) { sc = rtems_partition_delete( ctx->id_value ); T_rsc_success( sc ); } test-context: - brief: null description: null member: rtems_status_code status - brief: null description: null member: rtems_id id - brief: null description: null member: rtems_id id_value - brief: null description: null member: void *buffer test-context-support: null test-description: null test-header: null test-includes: - rtems.h test-local-includes: [] test-prepare: | rtems_status_code sc; sc = rtems_partition_create( PART_NAME, buffers, sizeof( buffers ), sizeof( buffers[ 0 ] ), RTEMS_DEFAULT_ATTRIBUTES, &ctx->id_value ); T_rsc_success( sc ); test-setup: null test-stop: null test-support: | #define PART_NAME rtems_build_name( 'N', 'A', 'M', 'E' ) #define BUFFER_COUNT 1 #define BUFFER_SIZE ( 2 * sizeof( void * ) ) static RTEMS_ALIGNED( RTEMS_PARTITION_ALIGNMENT ) uint8_t buffers[ BUFFER_COUNT ][ BUFFER_SIZE ]; test-target: testsuites/validation/tc-part-delete.c test-teardown: null text: ${.:text-template} transition-map: - enabled-by: true post-conditions: Status: Ok pre-conditions: Id: - Id InUse: - 'No' - enabled-by: true post-conditions: Status: InvId pre-conditions: Id: - Invalid InUse: all - enabled-by: true post-conditions: Status: InUse pre-conditions: Id: - Id InUse: - 'Yes' type: requirement