From: "José Expósito" <jose.exposito89@gmail.com>
To: Louis Chauvet <louis.chauvet@bootlin.com>
Cc: igt-dev@lists.freedesktop.org, zbigniew.kempczynski@intel.com
Subject: Re: [PATCH i-g-t v3 16/41] lib/vkms: Test connector invalid values
Date: Tue, 5 Aug 2025 14:42:56 +0200 [thread overview]
Message-ID: <aJH8UBa8-AkoeSwO@fedora> (raw)
In-Reply-To: <6a005b36-4bb9-4798-9b91-ffdd9165ceba@bootlin.com>
Hi again Louis,
On Wed, Jul 16, 2025 at 11:41:56AM +0200, Louis Chauvet wrote:
>
>
> Le 15/07/2025 à 12:24, José Expósito a écrit :
> > For a VKMS connector, it is only possible to set invalid values in the
> > connector status.
> >
> > Test that setting wrong values fails and that the connector is not
> > accidentally changed.
> >
> > Signed-off-by: José Expósito <jose.exposito89@gmail.com>
> > ---
> > lib/igt_vkms.c | 24 ++++++++++++++++++
> > lib/igt_vkms.h | 2 ++
> > tests/vkms/vkms_configfs.c | 50 ++++++++++++++++++++++++++++++++++++++
> > 3 files changed, 76 insertions(+)
> >
> > diff --git a/lib/igt_vkms.c b/lib/igt_vkms.c
> > index c8b0dd071..1cd560038 100644
> > --- a/lib/igt_vkms.c
> > +++ b/lib/igt_vkms.c
> > @@ -614,3 +614,27 @@ int igt_vkms_connector_get_status(igt_vkms_t *dev, const char *name)
> > return read_int(path);
> > }
> > +
> > +/**
> > + * igt_vkms_connector_set_status:
> > + * @dev: Device the connector belongs to
> > + * @name: Connector name
> > + * @type: DRM_MODE_CONNECTED, DRM_MODE_DISCONNECTED or
> > + * DRM_MODE_UNKNOWNCONNECTION
> > + *
> > + * Set a new status for the connector
> > + */
> > +void igt_vkms_connector_set_status(igt_vkms_t *dev, const char *name,
> > + int status)
> > +{
> > + char path[PATH_MAX];
> > +
> > + if (status != DRM_MODE_CONNECTED &&
> > + status != DRM_MODE_DISCONNECTED &&
> > + status != DRM_MODE_UNKNOWNCONNECTION)
> > + igt_assert(!"Cannot be reached: Unknown connector status");
>
> Do we really need this? It is already checked by vkms.
We do not *need* it, but, since we shouldn't use other values in
our tests, it can help find bugs during development.
I think it is nice to have, but I don't oppose removing it if we
really don't like it.
Jose
> > + igt_vkms_get_connector_status_path(dev, name, path, sizeof(path));
> > +
> > + write_int(path, status);
> > +}
> > diff --git a/lib/igt_vkms.h b/lib/igt_vkms.h
> > index 3d27bfebb..df64bde9d 100644
> > --- a/lib/igt_vkms.h
> > +++ b/lib/igt_vkms.h
> > @@ -58,5 +58,7 @@ void igt_vkms_device_add_encoder(igt_vkms_t *dev, const char *name);
> > void igt_vkms_device_add_connector(igt_vkms_t *dev, const char *name);
> > int igt_vkms_connector_get_status(igt_vkms_t *dev, const char *name);
> > +void igt_vkms_connector_set_status(igt_vkms_t *dev, const char *name,
> > + int status);
> > #endif /* __IGT_VKMS_H__ */
> > diff --git a/tests/vkms/vkms_configfs.c b/tests/vkms/vkms_configfs.c
> > index d7ce4aa17..c74bbc15f 100644
> > --- a/tests/vkms/vkms_configfs.c
> > +++ b/tests/vkms/vkms_configfs.c
> > @@ -486,6 +486,55 @@ static void test_connector_default_values(void)
> > igt_vkms_device_destroy(dev);
> > }
> > +/**
> > + * SUBTEST: connector-wrong-values
> > + * Description: Check that setting unexpected values doesn't work.
> > + */
> > +
> > +static void test_connector_wrong_values(void)
> > +{
> > + struct invalid_value invalid_status_values[] = {
> > + { "", 0 },
> > + { "\0", 1 },
> > + { "-1", 2 },
> > + { "0", 1 },
> > + { "4", 1 },
> > + { "connected", 10 },
> > + };
> > + igt_vkms_t *dev;
> > + char path[PATH_MAX];
> > + int fd;
> > + int ret;
> > +
> > + /* Create a device with a disconnected connector */
> > + dev = igt_vkms_device_create(__func__);
> > + igt_assert(dev);
> > +
> > + igt_vkms_device_add_connector(dev, "connector0");
> > + igt_vkms_connector_set_status(dev, "connector0", DRM_MODE_DISCONNECTED);
> > + igt_assert_eq(igt_vkms_connector_get_status(dev, "connector0"),
> > + DRM_MODE_DISCONNECTED);
> > + igt_vkms_get_connector_status_path(dev, "connector0", path, sizeof(path));
> > +
> > + /* Test invalid values for "status" */
> > + for (int i = 0; i < ARRAY_SIZE(invalid_status_values); i++) {
> > + struct invalid_value v = invalid_status_values[i];
> > +
> > + fd = open(path, O_WRONLY);
> > + igt_assert_f(fd >= 0, "Error opening '%s'\n", path);
> > +
> > + ret = write(fd, v.value, v.size);
> > + igt_assert(ret <= 0);
> > +
> > + close(fd);
> > + }
> > +
> > + igt_assert_eq(igt_vkms_connector_get_status(dev, "connector0"),
> > + DRM_MODE_DISCONNECTED);
> > +
> > + igt_vkms_device_destroy(dev);
> > +}
> > +
> > igt_main
> > {
> > struct {
> > @@ -506,6 +555,7 @@ igt_main
> > { "encoder-default-files", test_encoder_default_files },
> > { "connector-default-files", test_connector_default_files },
> > { "connector-default-values", test_connector_default_values },
> > + { "connector-wrong-values", test_connector_wrong_values },
> > };
> > igt_fixture {
>
> --
> Louis Chauvet, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
>
next prev parent reply other threads:[~2025-08-05 12:43 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-15 10:24 [PATCH i-g-t v3 00/41] VKMS configfs tests José Expósito
2025-07-15 10:24 ` [PATCH i-g-t v3 01/41] lib/drmtest: Add VKMS as a known driver type José Expósito
2025-07-16 9:22 ` Louis Chauvet
2025-07-15 10:24 ` [PATCH i-g-t v3 02/41] lib/vkms: Add minimal VKMS library and test device default files José Expósito
2025-07-16 9:22 ` Louis Chauvet
2025-08-05 9:20 ` José Expósito
2025-08-05 16:29 ` Kamil Konieczny
2025-08-06 8:38 ` José Expósito
2025-08-07 4:40 ` Karthik B S
2025-08-07 7:48 ` José Expósito
2025-08-07 8:25 ` Louis Chauvet
2025-07-21 16:33 ` Kamil Konieczny
2025-07-23 6:40 ` Karthik B S
2025-07-15 10:24 ` [PATCH i-g-t v3 03/41] lib/vkms: Allow to enable/disable VKMS devices José Expósito
2025-07-16 9:22 ` Louis Chauvet
2025-07-15 10:24 ` [PATCH i-g-t v3 04/41] tests/vkms_configfs: Test device invalid values José Expósito
2025-07-16 9:22 ` Louis Chauvet
2025-07-15 10:24 ` [PATCH i-g-t v3 05/41] lib/vkms: Test plane default files José Expósito
2025-07-16 9:22 ` Louis Chauvet
2025-07-15 10:24 ` [PATCH i-g-t v3 06/41] lib/vkms: Test plane default values José Expósito
2025-07-15 10:24 ` [PATCH i-g-t v3 07/41] lib/vkms: Test plane invalid values José Expósito
2025-07-15 10:24 ` [PATCH i-g-t v3 08/41] tests/vkms_configfs: Test plane valid values José Expósito
2025-07-16 9:24 ` Louis Chauvet
2025-07-15 10:24 ` [PATCH i-g-t v3 09/41] lib/vkms: Test CRTC default files José Expósito
2025-07-15 10:24 ` [PATCH i-g-t v3 10/41] lib/vkms: Test CRTC default values José Expósito
2025-07-15 10:24 ` [PATCH i-g-t v3 11/41] lib/vkms: Test CRTC invalid values José Expósito
2025-07-15 10:24 ` [PATCH i-g-t v3 12/41] tests/vkms_configfs: Test CRTC valid values José Expósito
2025-07-16 9:26 ` Louis Chauvet
2025-07-15 10:24 ` [PATCH i-g-t v3 13/41] lib/vkms: Test encoder default files José Expósito
2025-07-16 9:28 ` Louis Chauvet
2025-07-21 16:35 ` Kamil Konieczny
2025-07-15 10:24 ` [PATCH i-g-t v3 14/41] lib/vkms: Test connector " José Expósito
2025-07-16 9:34 ` Louis Chauvet
2025-07-15 10:24 ` [PATCH i-g-t v3 15/41] lib/vkms: Test connector default values José Expósito
2025-07-16 9:39 ` Louis Chauvet
2025-07-15 10:24 ` [PATCH i-g-t v3 16/41] lib/vkms: Test connector invalid values José Expósito
2025-07-16 9:41 ` Louis Chauvet
2025-08-05 12:42 ` José Expósito [this message]
2025-07-15 10:24 ` [PATCH i-g-t v3 17/41] tests/vkms_configfs: Test connector valid values José Expósito
2025-07-16 9:42 ` Louis Chauvet
2025-07-15 10:24 ` [PATCH i-g-t v3 18/41] lib/vkms: Test attaching planes to CRTCs José Expósito
2025-07-16 9:48 ` Louis Chauvet
2025-07-15 10:24 ` [PATCH i-g-t v3 19/41] lib/vkms: Test attaching encoders " José Expósito
2025-07-16 9:49 ` Louis Chauvet
2025-07-15 10:24 ` [PATCH i-g-t v3 20/41] lib/vkms: Test attaching connectors to encoders José Expósito
2025-07-16 9:49 ` Louis Chauvet
2025-07-15 10:24 ` [PATCH i-g-t v3 21/41] lib/igt_device_scan: Allow to find device by sysname José Expósito
2025-07-16 9:51 ` Louis Chauvet
2025-07-15 10:24 ` [PATCH i-g-t v3 22/41] tests/vkms_configfs: Test enablement without pipeline items José Expósito
2025-07-16 9:53 ` Louis Chauvet
2025-07-15 10:24 ` [PATCH i-g-t v3 23/41] lib/vkms: Create VKMS device from static config José Expósito
2025-07-15 10:24 ` [PATCH i-g-t v3 24/41] tests/vkms_configfs: Test adding too many planes José Expósito
2025-07-15 10:24 ` [PATCH i-g-t v3 25/41] tests/vkms_configfs: Test not adding a primary plane José Expósito
2025-07-15 10:24 ` [PATCH i-g-t v3 26/41] tests/vkms_configfs: Test adding multiple primary planes José Expósito
2025-07-15 10:24 ` [PATCH i-g-t v3 27/41] tests/vkms_configfs: Test adding multiple cursor planes José Expósito
2025-07-15 10:25 ` [PATCH i-g-t v3 28/41] tests/vkms_configfs: Test adding a plane without possible CRTCs José Expósito
2025-07-15 10:25 ` [PATCH i-g-t v3 29/41] tests/vkms_configfs: Test enabling a device without CRTCs José Expósito
2025-07-16 9:54 ` Louis Chauvet
2025-07-15 10:25 ` [PATCH i-g-t v3 30/41] tests/vkms_configfs: Test enabling a device with too many CRTCs José Expósito
2025-07-15 10:25 ` [PATCH i-g-t v3 31/41] tests/vkms_configfs: Test enabling a device without encoders José Expósito
2025-07-16 9:55 ` Louis Chauvet
2025-07-15 10:25 ` [PATCH i-g-t v3 32/41] tests/vkms_configfs: Test enabling a device with too many encoders José Expósito
2025-07-15 10:25 ` [PATCH i-g-t v3 33/41] tests/vkms_configfs: Test adding an encoder without possible CRTCs José Expósito
2025-07-15 10:25 ` [PATCH i-g-t v3 34/41] tests/vkms_configfs: Test adding a CRTC without encoders José Expósito
2025-07-15 10:25 ` [PATCH i-g-t v3 35/41] tests/vkms_configfs: Test enabling a device without connectors José Expósito
2025-07-15 10:25 ` [PATCH i-g-t v3 36/41] tests/vkms_configfs: Test enabling a device with too many connectors José Expósito
2025-07-15 10:25 ` [PATCH i-g-t v3 37/41] lib/vkms: Test changing enabled device planes José Expósito
2025-07-16 12:07 ` Louis Chauvet
2025-07-15 10:25 ` [PATCH i-g-t v3 38/41] lib/vkms: Test changing enabled device CRTCs José Expósito
2025-07-16 12:07 ` Louis Chauvet
2025-07-15 10:25 ` [PATCH i-g-t v3 39/41] lib/vkms: Test changing enabled device encoders José Expósito
2025-07-16 12:08 ` Louis Chauvet
2025-07-15 10:25 ` [PATCH i-g-t v3 40/41] lib/vkms: Test changing enabled device connectors José Expósito
2025-07-16 12:08 ` Louis Chauvet
2025-07-15 10:25 ` [PATCH i-g-t v3 41/41] tests/vkms_configfs: Test connector hot-plug José Expósito
2025-07-16 12:08 ` Louis Chauvet
2025-07-15 22:34 ` ✓ Xe.CI.BAT: success for VKMS configfs tests (rev6) Patchwork
2025-07-15 22:37 ` ✓ i915.CI.BAT: " Patchwork
2025-07-16 9:14 ` ✗ Xe.CI.Full: failure " Patchwork
2025-07-16 14:20 ` ✗ i915.CI.Full: " Patchwork
2025-07-21 16:16 ` Kamil Konieczny
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aJH8UBa8-AkoeSwO@fedora \
--to=jose.exposito89@gmail.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=louis.chauvet@bootlin.com \
--cc=zbigniew.kempczynski@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.