xref: /spdk/test/accel/accel_rpc.sh (revision cedcbfc31ad754902731c937718c4df27b7d2799)
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