xref: /illumos-gate/usr/src/test/nvme-tests/cmd/destruct-ocp.ksh (revision 564eeb7d65973f1d64a5390ff477b689707e9daf)
1*564eeb7dSRobert Mustacchi#!/usr/bin/ksh
2*564eeb7dSRobert Mustacchi
3*564eeb7dSRobert Mustacchi#
4*564eeb7dSRobert Mustacchi# This file and its contents are supplied under the terms of the
5*564eeb7dSRobert Mustacchi# Common Development and Distribution License ("CDDL"), version 1.0.
6*564eeb7dSRobert Mustacchi# You may only use this file in accordance with the terms of version
7*564eeb7dSRobert Mustacchi# 1.0 of the CDDL.
8*564eeb7dSRobert Mustacchi#
9*564eeb7dSRobert Mustacchi# A full copy of the text of the CDDL should have accompanied this
10*564eeb7dSRobert Mustacchi# source.  A copy of the CDDL is also available via the Internet at
11*564eeb7dSRobert Mustacchi# http://www.illumos.org/license/CDDL.
12*564eeb7dSRobert Mustacchi#
13*564eeb7dSRobert Mustacchi
14*564eeb7dSRobert Mustacchi#
15*564eeb7dSRobert Mustacchi# Copyright 2026 Oxide Computer Company
16*564eeb7dSRobert Mustacchi#
17*564eeb7dSRobert Mustacchi
18*564eeb7dSRobert Mustacchi#
19*564eeb7dSRobert Mustacchi# Run tests that can wreak havoc on a device with OCP features (e.g.
20*564eeb7dSRobert Mustacchi# error injection, changing the PLP Health window, etc.)
21*564eeb7dSRobert Mustacchi#
22*564eeb7dSRobert Mustacchi
23*564eeb7dSRobert Mustacchi#
24*564eeb7dSRobert Mustacchi# Environment sanitization.
25*564eeb7dSRobert Mustacchi#
26*564eeb7dSRobert Mustacchiexport LC_ALL=C.UTF-8
27*564eeb7dSRobert Mustacchiexport LD_PRELOAD=libumem.so
28*564eeb7dSRobert Mustacchiexport UMEM_DEBUG=default
29*564eeb7dSRobert Mustacchiunalias -a
30*564eeb7dSRobert Mustacchiset -o pipefail
31*564eeb7dSRobert Mustacchi
32*564eeb7dSRobert Mustacchide_arg0=$(basename $0)
33*564eeb7dSRobert Mustacchide_rundir="$(dirname $0)/../runfiles"
34*564eeb7dSRobert Mustacchide_file="destruct-ocp.run"
35*564eeb7dSRobert Mustacchide_runfile="$de_rundir/$de_file"
36*564eeb7dSRobert Mustacchide_runner="/opt/test-runner/bin/run"
37*564eeb7dSRobert Mustacchide_nvmeadm="/usr/sbin/nvmeadm"
38*564eeb7dSRobert Mustacchi
39*564eeb7dSRobert Mustacchifunction fatal
40*564eeb7dSRobert Mustacchi{
41*564eeb7dSRobert Mustacchi        typeset msg="$*"
42*564eeb7dSRobert Mustacchi        [[ -z "$msg" ]] && msg="failed"
43*564eeb7dSRobert Mustacchi        echo "$de_arg0: $msg" >&2
44*564eeb7dSRobert Mustacchi        exit 1
45*564eeb7dSRobert Mustacchi}
46*564eeb7dSRobert Mustacchi
47*564eeb7dSRobert Mustacchi
48*564eeb7dSRobert Mustacchiif (( $# == 0 )); then
49*564eeb7dSRobert Mustacchi	fatal "missing required device name"
50*564eeb7dSRobert Mustacchifi
51*564eeb7dSRobert Mustacchi
52*564eeb7dSRobert Mustacchiif ! $de_nvmeadm list "$1" > /dev/null; then
53*564eeb7dSRobert Mustacchi	fatal "failed to find device $1"
54*564eeb7dSRobert Mustacchifi
55*564eeb7dSRobert Mustacchi
56*564eeb7dSRobert Mustacchiexport NVME_TEST_DEVICE=$1
57*564eeb7dSRobert Mustacchi$de_runner -c "$de_runfile"
58