From nobody Tue May 13 09:27:03 2025 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 4ZxWMX1bNFz5wbQ1; Tue, 13 May 2025 09:27:04 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZxWMW4qzXz3l3y; Tue, 13 May 2025 09:27:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747128423; 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=DhC7nENNFGC5poDLm86xVDkTEAXr7XPvZSrXydMomi8=; b=eohQeNGCu7/k2pBndZRhVl9EqDzK0q9BtUmovokSOn7O2WMIQkmV9zLj36Y/rPhaPVBRD7 rtuzg1XYXBldX+Q7zAmFI2+x6CXbjMS0FpezTTKOUEqhCatbSBYjuJY1xCEfBXLYcn7wZl G3EmCFJJ3k5T5/9cjXN4VqAZLj0IxpwnVM0Iz6ZkXxKFEV6GGD3dMJ1ZFyinZ1E7D5tbzm G/FpbaA861LyaR87deshEFDqK0+4D3Uahc5xw74CXPA+DkTvP4RI/exNh2vpuzd52ZqaGA vlBsiNCp8llWkii+N3n3DQ9TJhI0gmZBzyste9bAXeewSKoBJOf4zrXVbh2lVQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747128423; 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=DhC7nENNFGC5poDLm86xVDkTEAXr7XPvZSrXydMomi8=; b=OB+uR6ZLDoRTdEo8LCMUa39nGgsp7oK5bZa0MP8OIxcqH6m5gMHML8fnw4HYOf+gwmab9z orCAc0D/UhqZ87iBiF+jtoRx0P4+urXGG1dxGu9PyWSQdYpr3sJxK0kZfOoPAzni2ejUXd pFIxRPLPxB4D1xy8wSmIElce5dQTueaJjntojQI7z5ZhI0FR7G4e9KLgLWSabxvIOLXH/Y RHUFuzQKutFHN27p4nScF6ZDSaWM17j8rfJvm8yn2rJZ7Y/qvTCM465PZ8ONuSa/P7cI9U Gzai7XXMqtsqLhoM1QRhlaaB2D7tQnBs47l+Z6Ta9AZPlyZr99C/aS/QjmNlFA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747128423; a=rsa-sha256; cv=none; b=bOeqYyFXv3VI9CrJXodQ12L9Lryvuqcg2sjwg2fjUerIsNeGQ+TChu6LzJdi0V2Mfy+cOK efUcrIb8WIAGNrIAUVViYTSMs3ncs0DTDOwUGQot281mA/tMmuYWqxDDvuFpqm9lBytm0Z 4IIvzXf3p18kJORTFQVBv7/2Qv1VlPSgcmeSMwlr/IDFY2t4QBbXrkPY94xZxPL+4bdjws GswfPecug9MsfxC93LXCZ9yqG0tvMRmScqPPAsKQBOr/bUdvO2e2ROACpGpWOBvmvW/sbX ANle11QUNYsJBjRZuYehV8KgpP8cjxPwXA55vEPt9Y5syi1goHuIfPWlpao0dg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZxWMW4LtTzhCn; Tue, 13 May 2025 09:27:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54D9R3id097915; Tue, 13 May 2025 09:27:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54D9R3ab097912; Tue, 13 May 2025 09:27:03 GMT (envelope-from git) Date: Tue, 13 May 2025 09:27:03 GMT Message-Id: <202505130927.54D9R3ab097912@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 11716164c1fe - stable/14 - queue(3): Add a test for STAILQ_REVERSE() 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: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 11716164c1fef0dd00522e64cc6b578e61bb620f Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=11716164c1fef0dd00522e64cc6b578e61bb620f commit 11716164c1fef0dd00522e64cc6b578e61bb620f Author: Olivier Certner AuthorDate: 2025-05-05 09:50:28 +0000 Commit: Olivier Certner CommitDate: 2025-05-13 09:26:47 +0000 queue(3): Add a test for STAILQ_REVERSE() Reviewed by: kib, markj MFC after: 1 week MFC with: e8286eb29516 ("sys/queue.h: add STAILQ_REVERSE") Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D50165 (cherry picked from commit 0285c2428780cdb94bfb7d2dc1806a4bd129324e) --- tests/sys/sys/queue_test.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/tests/sys/sys/queue_test.c b/tests/sys/sys/queue_test.c index 75974ad8d792..7f8738751b85 100644 --- a/tests/sys/sys/queue_test.c +++ b/tests/sys/sys/queue_test.c @@ -165,6 +165,34 @@ ATF_TC_BODY(type ## _split_after_and_concat, tc) \ type ## _destroy(type); \ } +#define QUEUE_TESTS_CHECK_REVERSED(type, TYPE) \ +/* \ + * Checks that some tailq/list is reversed. \ + */ \ +static void \ +type ## _check_reversed(const struct type ## _ids *const type, \ + const u_int nb, const u_int id_shift) \ +{ \ + struct type ## _id_elem *e; \ + u_int i = 0; \ + \ + TYPE ## _FOREACH(e, type, ie_entry) { \ + const u_int expected_id = nb - 1 - i + id_shift; \ + \ + ATF_REQUIRE_MSG(i < nb, \ + #type " %p has more than %u elements", \ + type, nb); \ + ATF_REQUIRE_MSG(e->ie_id == expected_id, \ + #type " %p element %p, idx %u: Found ID %u, " \ + "expected %u", \ + type, e, i, e->ie_id, expected_id); \ + ++i; \ + } \ + ATF_REQUIRE_MSG(i == nb, \ + #type " %p has only %u elements, expected %u", \ + type, i, nb); \ +} + /* * Paper over the *_CONCAT() signature differences. */ @@ -216,11 +244,40 @@ ATF_TC_BODY(type ## _split_after_and_concat, tc) \ * Meat. */ +/* Common tests. */ QUEUE_TESTS_COMMON(tailq, TAILQ); QUEUE_TESTS_COMMON(list, LIST); QUEUE_TESTS_COMMON(stailq, STAILQ); QUEUE_TESTS_COMMON(slist, SLIST); +/* STAILQ_REVERSE(). */ +QUEUE_TESTS_CHECK_REVERSED(stailq, STAILQ); +ATF_TC(stailq_reverse); +ATF_TC_HEAD(stailq_reverse, tc) +{ + atf_tc_set_md_var(tc, "descr", "Test STAILQ_REVERSE"); +} +ATF_TC_BODY(stailq_reverse, tc) +{ + const u_int size = 100; + struct stailq_ids *const stailq = stailq_create(size, 0); + struct stailq_ids *const empty_stailq = stailq_create(0, 0); + const struct stailq_id_elem *last; + + stailq_check(stailq, size, 0); + STAILQ_REVERSE(stailq, stailq_id_elem, ie_entry); + stailq_check_reversed(stailq, size, 0); + last = STAILQ_LAST(stailq, stailq_id_elem, ie_entry); + ATF_REQUIRE_MSG(last->ie_id == 0, + "Last element of stailq %p has id %u, expected 0", + stailq, last->ie_id); + stailq_destroy(stailq); + + STAILQ_REVERSE(empty_stailq, stailq_id_elem, ie_entry); + stailq_check(empty_stailq, 0, 0); + stailq_destroy(empty_stailq); +} + /* * Main. */ @@ -230,6 +287,7 @@ ATF_TP_ADD_TCS(tp) QUEUE_TESTS_REGISTRATION(tp, list); QUEUE_TESTS_REGISTRATION(tp, stailq); QUEUE_TESTS_REGISTRATION(tp, slist); + ATF_TP_ADD_TC(tp, stailq_reverse); return (atf_no_error()); }