1f3244a4fSKrzysztof Sprzaczkowski#!/usr/bin/env bash 2f3244a4fSKrzysztof Sprzaczkowski# SPDX-License-Identifier: BSD-3-Clause 3f3244a4fSKrzysztof Sprzaczkowski# Copyright (C) 2023 Intel Corporation 4f3244a4fSKrzysztof Sprzaczkowski# All rights reserved. 5f3244a4fSKrzysztof Sprzaczkowski# 6f3244a4fSKrzysztof Sprzaczkowski 7f3244a4fSKrzysztof Sprzaczkowskitestdir=$(readlink -f $(dirname $0)) 8f3244a4fSKrzysztof Sprzaczkowskirootdir=$(readlink -f $testdir/../..) 9f3244a4fSKrzysztof Sprzaczkowskisource $rootdir/test/common/autotest_common.sh 10f3244a4fSKrzysztof Sprzaczkowski 11f3244a4fSKrzysztof Sprzaczkowskitrap 'killprocess $spdk_tgt_pid; exit 1' ERR 12f3244a4fSKrzysztof Sprzaczkowski 13f3244a4fSKrzysztof Sprzaczkowski$SPDK_BIN_DIR/spdk_tgt --wait-for-rpc & 14f3244a4fSKrzysztof Sprzaczkowskispdk_tgt_pid=$! 15f3244a4fSKrzysztof Sprzaczkowskiwaitforlisten $spdk_tgt_pid 16f3244a4fSKrzysztof Sprzaczkowski 17f3244a4fSKrzysztof Sprzaczkowski# The RPC dsa_scan_accel_module method may be performed to use the DSA Module 18f3244a4fSKrzysztof Sprzaczkowski# before starting the framework. 19f3244a4fSKrzysztof Sprzaczkowski# Should FAIL - double-calling of this function is not allowed. 20f3244a4fSKrzysztof Sprzaczkowskifunction accel_scan_dsa_modules_test_suite() { 21f3244a4fSKrzysztof Sprzaczkowski $rpc_py dsa_scan_accel_module 22f3244a4fSKrzysztof Sprzaczkowski NOT $rpc_py dsa_scan_accel_module 23f3244a4fSKrzysztof Sprzaczkowski} 24f3244a4fSKrzysztof Sprzaczkowski 25*cedcbfc3SKrzysztof Sprzaczkowski# The RPC iaa_scan_accel_module method may be performed to use the IAA Module 26*cedcbfc3SKrzysztof Sprzaczkowski# before starting the framework. 27*cedcbfc3SKrzysztof Sprzaczkowski# Should FAIL - double-calling of this function is not allowed. 28*cedcbfc3SKrzysztof Sprzaczkowskifunction accel_scan_iaa_modules_test_suite() { 29*cedcbfc3SKrzysztof Sprzaczkowski $rpc_py iaa_scan_accel_module 30*cedcbfc3SKrzysztof Sprzaczkowski NOT $rpc_py iaa_scan_accel_module 31*cedcbfc3SKrzysztof Sprzaczkowski} 32*cedcbfc3SKrzysztof Sprzaczkowski 33f3244a4fSKrzysztof Sprzaczkowski# The RPC accel_assign_opc method may be performed to override the operation code 34f3244a4fSKrzysztof Sprzaczkowski# assignments to modules before starting the framework. 35f3244a4fSKrzysztof Sprzaczkowski# Should PASS - opcode assignments can be verified after starting the framework. 36f3244a4fSKrzysztof Sprzaczkowskifunction accel_assign_opcode_test_suite() { 37ef849696STomasz Zawadzki # Assign opc twice, to test replacing the assignment 38ef849696STomasz Zawadzki $rpc_py accel_assign_opc -o copy -m incorrect 39ef849696STomasz Zawadzki 40f3244a4fSKrzysztof Sprzaczkowski $rpc_py accel_assign_opc -o copy -m software 41f3244a4fSKrzysztof Sprzaczkowski $rpc_py framework_start_init 42f3244a4fSKrzysztof Sprzaczkowski $rpc_py accel_get_opc_assignments | jq -r '.copy' | grep software 43f3244a4fSKrzysztof Sprzaczkowski} 44f3244a4fSKrzysztof Sprzaczkowski 45f3244a4fSKrzysztof Sprzaczkowskiif [[ $CONFIG_IDXD == y && $SPDK_TEST_ACCEL_DSA -gt 0 ]]; then 46f3244a4fSKrzysztof Sprzaczkowski run_test "accel_scan_dsa_modules" accel_scan_dsa_modules_test_suite 47f3244a4fSKrzysztof Sprzaczkowskifi 48f3244a4fSKrzysztof Sprzaczkowski 49*cedcbfc3SKrzysztof Sprzaczkowskiif [[ $CONFIG_IDXD == y && $SPDK_TEST_ACCEL_IAA -gt 0 ]]; then 50*cedcbfc3SKrzysztof Sprzaczkowski run_test "accel_scan_iaa_modules" accel_scan_iaa_modules_test_suite 51*cedcbfc3SKrzysztof Sprzaczkowskifi 52*cedcbfc3SKrzysztof Sprzaczkowski 53f3244a4fSKrzysztof Sprzaczkowskirun_test "accel_assign_opcode" accel_assign_opcode_test_suite 54f3244a4fSKrzysztof Sprzaczkowski 55f3244a4fSKrzysztof Sprzaczkowskikillprocess $spdk_tgt_pid 56