From nobody Mon Mar 27 20:11:38 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4PlkVL6KGzz420hH; Mon, 27 Mar 2023 20:11:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4PlkVL5qSpz3Kgm; Mon, 27 Mar 2023 20:11:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1679947898; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WecYCkfxX4nopEFNKY9Dknf1LXNZfXBlGI5g6RMbqmU=; b=V8DdYolLNtPDf7b/1QJQa5mjZ5KEzDH82M312cWIKZpWy6CJISaJe6C5gkacZQz2Mf5NMw q1OT4uFzGd3+y68y2+JV4sDqjRoT2R9cBfrmHkfdhjvAemDrJMWmv9Vp7bvGERS8nf1mI1 5iwXDiNotDryJLCvAjMEFpEtpB4Nw/dPE+zBU8owiX4bjNyc4BZSZZzVBbJ30wHj03njKz dSQwhbfKNCWinVN5lcggrAHudJXZsIv44vPNNKIhlxx4QE/8hPjeh3F80++4Or4B10oaie fxNAxWOj6w+DeZpwVvA8NXFdtgtSrx3i8WlJsZ4jJ73lfnIXXqEPSt08cZ6EOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1679947898; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WecYCkfxX4nopEFNKY9Dknf1LXNZfXBlGI5g6RMbqmU=; b=vgVkrWfg54HVdieawA6bbzR43EhUJ35/4U5W1QFoPUtawYXcgXfT/Qx/lI35X6TWPJD7Oh 4oFVkFCAhPtPNiFcokF/eT/+esC6kW95WmGY3mr0zYLWaA6omFRLS7kA++KKACwXwOTQCu Sp4aKi94F7rVh55b7pnq+11E6SAkslImCGNqbRaIS6Nvum8shEw82XWCerfm8d5O25QPkm SgYN63ns8RKq2R250BXIsUFinnL5qvbxvd3c/1opDwWTrupflvFiusODCJ2l8Yo0jMbUlM LQo3AWC0EJvRpwEQlsCyUsvHoJlLIu89cHEhcWtdLQ+oww9pET/LarffSVQwvg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1679947898; a=rsa-sha256; cv=none; b=hKfp4NdW8LA28NgJFpRQvv1ax2HX31Isvp1N+tMwDOptCjS+uz8h9/Z0gDwPe/y7yBnKpm OlQ70rYIR2OiBOaqii6/8WNtlBLcfWWBg11IF9V8bewV2B5N7VjCb5LeiSL6jwBsdqrhRN XjHnBuMBL/tkRMX468jUbIFQb94pKd5H6IcjinwtBT9uiJQKtkCmXDpEilaODLGR1v6/Cz me8X6Km/fKEbPyyvmxBS7WCScbXAvkSpvZpyNE4LcfNm252kXGGEJX/tYrUEiCeZ9oyHLN aeGIFNIDLezC+6puHeSp2yrsBnt+znjC6tlGV/ocD496uxAkj/P83paGoisr1Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4PlkVL4t7ZzZqC; Mon, 27 Mar 2023 20:11:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 32RKBcAW028599; Mon, 27 Mar 2023 20:11:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 32RKBc1m028598; Mon, 27 Mar 2023 20:11:38 GMT (envelope-from git) Date: Mon, 27 Mar 2023 20:11:38 GMT Message-Id: <202303272011.32RKBc1m028598@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Alan Somers Subject: git: b37d1deb045d - main - ses: cleanup ses tests List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: asomers X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b37d1deb045d7bc7877fb1d9afdb39d43130dcc4 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by asomers: URL: https://cgit.FreeBSD.org/src/commit/?id=b37d1deb045d7bc7877fb1d9afdb39d43130dcc4 commit b37d1deb045d7bc7877fb1d9afdb39d43130dcc4 Author: Alan Somers AuthorDate: 2022-01-19 21:33:43 +0000 Commit: Alan Somers CommitDate: 2023-03-27 20:06:51 +0000 ses: cleanup ses tests Address mav's feedback RE eea7c61590ae See also: https://reviews.freebsd.org/D31809 Reported by: mav MFC after: 2 weeks MFC with: eea7c61590ae8968b3f1f609cf0bc8633222a94f Sponsored by: Axcient Reviewed by: mav Differential Revision: https://reviews.freebsd.org/D33954 --- tests/sys/ses/destructive.c | 33 ++++++++++++++++-------- tests/sys/ses/nondestructive.c | 58 +++++++++++++++++++++++++++--------------- 2 files changed, 60 insertions(+), 31 deletions(-) diff --git a/tests/sys/ses/destructive.c b/tests/sys/ses/destructive.c index 9b83009280cf..935cc7cff2cb 100644 --- a/tests/sys/ses/destructive.c +++ b/tests/sys/ses/destructive.c @@ -66,7 +66,9 @@ for_one_ses_dev(ses_cb cb) globfree(&g); } -static bool do_setelmstat(const char *devname __unused, int fd) { +static bool +do_setelmstat(const char *devname __unused, int fd) +{ encioc_element_t *map; unsigned elm_idx; unsigned nobj; @@ -96,6 +98,8 @@ static bool do_setelmstat(const char *devname __unused, int fd) { { r = ioctl(fd, ENCIOC_GETELMSTAT, (caddr_t)&elmstat); ATF_REQUIRE_EQ(r, 0); + ses_status_to_ctrl(map[elm_idx].elm_type, + &elmstat.cstat[0]); cslot = (struct ses_ctrl_dev_slot*)&elmstat.cstat[0]; @@ -110,7 +114,8 @@ static bool do_setelmstat(const char *devname __unused, int fd) { last_elm_type = -1; for (elm_idx = 0; elm_idx < nobj; elm_idx++) { encioc_elm_status_t elmstat; - struct ses_status_dev_slot *sslot; + struct ses_status_dev_slot *sslot = + (struct ses_status_dev_slot*)&elmstat.cstat[0]; if (last_elm_type != map[elm_idx].elm_type) { /* skip overall elements */ @@ -123,11 +128,6 @@ static bool do_setelmstat(const char *devname __unused, int fd) { { int i; - r = ioctl(fd, ENCIOC_GETELMSTAT, (caddr_t)&elmstat); - ATF_REQUIRE_EQ(r, 0); - - sslot = (struct ses_status_dev_slot*)&elmstat.cstat[0]; - for (i = 0; i < 10; i++) { r = ioctl(fd, ENCIOC_GETELMSTAT, (caddr_t)&elmstat); @@ -153,7 +153,8 @@ static bool do_setelmstat(const char *devname __unused, int fd) { * Instead, we'll just clear every ident bit. */ static bool -do_setelmstat_cleanup(const char *devname __unused, int fd __unused) { +do_setelmstat_cleanup(const char *devname __unused, int fd __unused) +{ encioc_element_t *map; unsigned elm_idx; unsigned nobj; @@ -166,6 +167,7 @@ do_setelmstat_cleanup(const char *devname __unused, int fd __unused) { map = calloc(nobj, sizeof(encioc_element_t)); ATF_REQUIRE(map != NULL); r = ioctl(fd, ENCIOC_GETELMMAP, (caddr_t) map); + ATF_REQUIRE_EQ(r, 0); /* Clear the IDENT bit for every disk slot */ for (elm_idx = 0; elm_idx < nobj; elm_idx++) { @@ -181,11 +183,17 @@ do_setelmstat_cleanup(const char *devname __unused, int fd __unused) { if (map[elm_idx].elm_type == ELMTYP_DEVICE || map[elm_idx].elm_type == ELMTYP_ARRAY_DEV) { + r = ioctl(fd, ENCIOC_GETELMSTAT, (caddr_t)&elmstat); + ATF_REQUIRE_EQ(r, 0); + ses_status_to_ctrl(map[elm_idx].elm_type, + &elmstat.cstat[0]); + cslot = (struct ses_ctrl_dev_slot*)&elmstat.cstat[0]; ses_ctrl_common_set_select(&cslot->common, 1); ses_ctrl_dev_slot_set_rqst_ident(cslot, 0); r = ioctl(fd, ENCIOC_SETELMSTAT, (caddr_t)&elmstat); + ATF_REQUIRE_EQ(r, 0); } } @@ -215,7 +223,9 @@ ATF_TC_CLEANUP(setelmstat, tc) } -static bool do_setencstat(const char *devname __unused, int fd) { +static bool +do_setencstat(const char *devname __unused, int fd) +{ unsigned char encstat; int r, i; bool worked = false; @@ -245,7 +255,9 @@ static bool do_setencstat(const char *devname __unused, int fd) { return (true); } -static bool do_setencstat_cleanup(const char *devname __unused, int fd) { +static bool +do_setencstat_cleanup(const char *devname __unused, int fd) +{ unsigned char encstat; /* @@ -290,7 +302,6 @@ ATF_TP_ADD_TCS(tp) */ ATF_TP_ADD_TC(tp, setelmstat); ATF_TP_ADD_TC(tp, setencstat); - // TODO ENCIOC_SETELMSTAT return (atf_no_error()); } diff --git a/tests/sys/ses/nondestructive.c b/tests/sys/ses/nondestructive.c index 47c7e5067239..4a731487b290 100644 --- a/tests/sys/ses/nondestructive.c +++ b/tests/sys/ses/nondestructive.c @@ -42,7 +42,9 @@ #include "common.h" -static bool do_getelmdesc(const char *devname, int fd) { +static bool +do_getelmdesc(const char *devname, int fd) +{ regex_t re; FILE *pipe; char cmd[256]; @@ -125,11 +127,13 @@ ATF_TC_BODY(getelmdesc, tc) for_each_ses_dev(do_getelmdesc, O_RDONLY); } -static bool do_getelmdevnames(const char *devname __unused, int fd) { +static bool +do_getelmdevnames(const char *devname __unused, int fd) +{ encioc_element_t *map; unsigned nobj; const size_t namesize = 128; - int r; + int r, status; char *namebuf; unsigned elm_idx; @@ -164,8 +168,10 @@ static bool do_getelmdevnames(const char *devname __unused, int fd) { elmdn.elm_devnames = namebuf; namebuf[0] = '\0'; r = ioctl(fd, ENCIOC_GETELMDEVNAMES, (caddr_t) &elmdn); - if (e_status.cstat[0] != SES_OBJSTAT_UNSUPPORTED && - e_status.cstat[0] != SES_OBJSTAT_NOTINSTALLED && + status = ses_status_common_get_element_status_code( + (struct ses_status_common*)&e_status.cstat[0]); + if (status != SES_OBJSTAT_UNSUPPORTED && + status != SES_OBJSTAT_NOTINSTALLED && (map[elm_idx].elm_type == ELMTYP_DEVICE || map[elm_idx].elm_type == ELMTYP_ARRAY_DEV)) { @@ -176,8 +182,7 @@ static bool do_getelmdevnames(const char *devname __unused, int fd) { if (r == 0) { size_t z = 0; - int da = 0, ada = 0, pass = 0, nvd = 0; - int nvme = 0, unknown = 0; + int da = 0, ada = 0, pass = 0, nda = 0, unknown = 0; while(elmdn.elm_devnames[z] != '\0') { size_t e; @@ -193,16 +198,14 @@ static bool do_getelmdevnames(const char *devname __unused, int fd) { ada++; else if (0 == strncmp("pass", s, e)) pass++; - else if (0 == strncmp("nvd", s, e)) - nvd++; - else if (0 == strncmp("nvme", s, e)) - nvme++; + else if (0 == strncmp("nda", s, e)) + nda++; else unknown++; z += strcspn(elmdn.elm_devnames + z, ","); } /* There should be one pass dev for each non-pass dev */ - ATF_CHECK_EQ(pass, da + ada + nvd + nvme); + ATF_CHECK_EQ(pass, da + ada + nda); ATF_CHECK_EQ_MSG(0, unknown, "Unknown device names %s", elmdn.elm_devnames); } @@ -229,7 +232,8 @@ ATF_TC_BODY(getelmdevnames, tc) } static int -elm_type_name2int(const char *name) { +elm_type_name2int(const char *name) +{ const char *elm_type_names[] = ELM_TYPE_NAMES; int i; @@ -241,7 +245,9 @@ elm_type_name2int(const char *name) { return (-1); } -static bool do_getelmmap(const char *devname, int fd) { +static bool +do_getelmmap(const char *devname, int fd) +{ encioc_element_t *map; FILE *pipe; char cmd[256]; @@ -320,7 +326,9 @@ ATF_TC_BODY(getelmmap, tc) for_each_ses_dev(do_getelmmap, O_RDONLY); } -static bool do_getelmstat(const char *devname, int fd) { +static bool +do_getelmstat(const char *devname, int fd) +{ encioc_element_t *map; unsigned elm_idx; unsigned nobj; @@ -391,7 +399,9 @@ ATF_TC_BODY(getelmstat, tc) for_each_ses_dev(do_getelmstat, O_RDONLY); } -static bool do_getencid(const char *devname, int fd) { +static bool +do_getencid(const char *devname, int fd) +{ encioc_string_t stri; FILE *pipe; char cmd[256]; @@ -441,7 +451,9 @@ ATF_TC_BODY(getencid, tc) for_each_ses_dev(do_getencid, O_RDONLY); } -static bool do_getencname(const char *devname, int fd) { +static bool +do_getencname(const char *devname, int fd) +{ encioc_string_t stri; FILE *pipe; char cmd[256]; @@ -487,7 +499,9 @@ ATF_TC_BODY(getencname, tc) for_each_ses_dev(do_getencname, O_RDONLY); } -static bool do_getencstat(const char *devname, int fd) { +static bool +do_getencstat(const char *devname, int fd) +{ FILE *pipe; char cmd[256]; unsigned char e, estat, invop, info, noncrit, crit, unrecov; @@ -530,7 +544,9 @@ ATF_TC_BODY(getencstat, tc) for_each_ses_dev(do_getencstat, O_RDONLY); } -static bool do_getnelm(const char *devname, int fd) { +static bool +do_getnelm(const char *devname, int fd) +{ FILE *pipe; char cmd[256]; char line[256]; @@ -578,7 +594,9 @@ ATF_TC_BODY(getnelm, tc) for_each_ses_dev(do_getnelm, O_RDONLY); } -static bool do_getstring(const char *devname, int fd) { +static bool +do_getstring(const char *devname, int fd) +{ FILE *pipe; char cmd[256]; char *sg_ses_buf, *ses_buf;