mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-07 16:06:25 +00:00
tests/core_prop_blob: Add multiple blobs per connection
This should hit the bug fixed in: commit 8731b269f01e16193390c7276e70530366b8d626 Author: Maneet Singh <mmaneetsingh@nvidia.com> Date: Thu Oct 8 10:10:24 2015 -0400 drm: Correct arguments to list_tail_add in create blob ioctl Arguments passed to list_add_tail were reversed resulting in deletion of old blob property everytime the new one is added. Fixes commit e2f5d2ea479b9b2619965d43db70939589afe43a Author: Daniel Stone <daniels@collabora.com> Date: Fri May 22 13:34:51 2015 +0100 drm/mode: Add user blob-creation ioctl Signed-off-by: Maneet Singh <mmaneetsingh@nvidia.com> [seanpaul tweaked commit subject a little] Signed-off-by: Sean Paul <seanpaul@chromium.org> Cc: stable@kernel.org # v4.2 Reviewed-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Dave Airlie <airlied@gmail.com> which was introduced with the initial blob support in: commit e2f5d2ea479b9b2619965d43db70939589afe43a Author: Daniel Stone <daniels@collabora.com> Date: Fri May 22 13:34:51 2015 +0100 drm/mode: Add user blob-creation ioctl Add an ioctl which allows users to create blob properties from supplied data. Currently this only supports modes, creating a drm_display_mode from the userspace drm_mode_modeinfo. v2: Removed size/type checks. Rebased on new patches to allow error propagation from create_blob, as well as avoiding double-allocation. Signed-off-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@intel.com> Tested-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Daniel Stone <daniels@collabora.com>
This commit is contained in:
parent
de7ccdd083
commit
b7a555e997
@ -207,6 +207,43 @@ test_lifetime(int fd)
|
||||
igt_assert_eq(validate_prop(fd, prop_id), ENOENT);
|
||||
}
|
||||
|
||||
static void
|
||||
test_multiple(int fd)
|
||||
{
|
||||
uint32_t prop_ids[5];
|
||||
int fd2;
|
||||
int i;
|
||||
|
||||
fd2 = drm_open_driver(DRIVER_ANY);
|
||||
igt_assert_fd(fd2);
|
||||
|
||||
/* Ensure destroying multiple properties explicitly works as needed. */
|
||||
for (i = 0; i < ARRAY_SIZE(prop_ids); i++) {
|
||||
prop_ids[i] = create_prop(fd2);
|
||||
igt_assert_eq(validate_prop(fd, prop_ids[i]), 0);
|
||||
igt_assert_eq(validate_prop(fd2, prop_ids[i]), 0);
|
||||
}
|
||||
for (i = 0; i < ARRAY_SIZE(prop_ids); i++) {
|
||||
igt_assert_eq(destroy_prop(fd2, prop_ids[i]), 0);
|
||||
igt_assert_eq(validate_prop(fd2, prop_ids[i]), ENOENT);
|
||||
}
|
||||
igt_assert_eq(close(fd2), 0);
|
||||
|
||||
fd2 = drm_open_driver(DRIVER_ANY);
|
||||
igt_assert_fd(fd2);
|
||||
|
||||
/* Ensure that multiple properties get cleaned up on fd close. */
|
||||
for (i = 0; i < ARRAY_SIZE(prop_ids); i++) {
|
||||
prop_ids[i] = create_prop(fd2);
|
||||
igt_assert_eq(validate_prop(fd, prop_ids[i]), 0);
|
||||
igt_assert_eq(validate_prop(fd2, prop_ids[i]), 0);
|
||||
}
|
||||
igt_assert_eq(close(fd2), 0);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(prop_ids); i++)
|
||||
igt_assert_eq(validate_prop(fd, prop_ids[i]), ENOENT);
|
||||
}
|
||||
|
||||
static void
|
||||
test_core(int fd)
|
||||
{
|
||||
@ -256,6 +293,9 @@ igt_main
|
||||
igt_subtest("blob-prop-lifetime")
|
||||
test_lifetime(fd);
|
||||
|
||||
igt_subtest("blob-multiple")
|
||||
test_multiple(fd);
|
||||
|
||||
igt_fixture
|
||||
close(fd);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user