diff --git a/test/v4l2_device/buffer_sharing.cpp b/test/v4l2_device/buffer_sharing.cpp
index 09695239ee4b9e80..e63ddff856894130 100644
--- a/test/v4l2_device/buffer_sharing.cpp
+++ b/test/v4l2_device/buffer_sharing.cpp
@@ -23,9 +23,8 @@ class BufferSharingTest : public V4L2DeviceTest
 {
 public:
 	BufferSharingTest()
-		: output_(nullptr), framesCaptured_(0), framesOutput_(0)
-	{
-	}
+		: V4L2DeviceTest("vivid", "vivid-000-vid-cap"),
+		  output_(nullptr), framesCaptured_(0), framesOutput_(0) {}
 
 protected:
 	int init()
diff --git a/test/v4l2_device/capture_async.cpp b/test/v4l2_device/capture_async.cpp
index 2a41b11e95e77dac..fd428ff909f32999 100644
--- a/test/v4l2_device/capture_async.cpp
+++ b/test/v4l2_device/capture_async.cpp
@@ -18,7 +18,7 @@ class CaptureAsyncTest : public V4L2DeviceTest
 {
 public:
 	CaptureAsyncTest()
-		: frames(0){};
+		: V4L2DeviceTest("vivid", "vivid-000-vid-cap"), frames(0) {}
 
 	void receiveBuffer(Buffer *buffer)
 	{
diff --git a/test/v4l2_device/double_open.cpp b/test/v4l2_device/double_open.cpp
index 7ec80a60f57ee036..b402de04fca5ddbb 100644
--- a/test/v4l2_device/double_open.cpp
+++ b/test/v4l2_device/double_open.cpp
@@ -13,6 +13,9 @@ namespace {
 
 class DoubleOpen : public V4L2DeviceTest
 {
+public:
+	DoubleOpen()
+		: V4L2DeviceTest("vivid", "vivid-000-vid-cap") {}
 protected:
 	int run()
 	{
diff --git a/test/v4l2_device/formats.cpp b/test/v4l2_device/formats.cpp
index 72676c9d334a69b0..3ac47f5cc665b62b 100644
--- a/test/v4l2_device/formats.cpp
+++ b/test/v4l2_device/formats.cpp
@@ -17,6 +17,9 @@ using namespace libcamera;
 
 class Format : public V4L2DeviceTest
 {
+public:
+	Format()
+		: V4L2DeviceTest("vivid", "vivid-000-vid-cap") {}
 protected:
 	int run()
 	{
diff --git a/test/v4l2_device/request_buffers.cpp b/test/v4l2_device/request_buffers.cpp
index 938d4f85d5a1e711..794b083eb84d8d2e 100644
--- a/test/v4l2_device/request_buffers.cpp
+++ b/test/v4l2_device/request_buffers.cpp
@@ -9,6 +9,10 @@
 
 class RequestBuffersTest : public V4L2DeviceTest
 {
+public:
+	RequestBuffersTest()
+		: V4L2DeviceTest("vivid", "vivid-000-vid-cap") {}
+
 protected:
 	int run()
 	{
diff --git a/test/v4l2_device/stream_on_off.cpp b/test/v4l2_device/stream_on_off.cpp
index ea1b3f5bd5a4cbea..4902d5fd6d58a73d 100644
--- a/test/v4l2_device/stream_on_off.cpp
+++ b/test/v4l2_device/stream_on_off.cpp
@@ -9,6 +9,9 @@
 
 class StreamOnStreamOffTest : public V4L2DeviceTest
 {
+public:
+	StreamOnStreamOffTest()
+		: V4L2DeviceTest("vivid", "vivid-000-vid-cap") {}
 protected:
 	int run()
 	{
diff --git a/test/v4l2_device/v4l2_device_test.cpp b/test/v4l2_device/v4l2_device_test.cpp
index 833038d56ea4631d..ee5a8e009bef2a5e 100644
--- a/test/v4l2_device/v4l2_device_test.cpp
+++ b/test/v4l2_device/v4l2_device_test.cpp
@@ -39,14 +39,14 @@ int V4L2DeviceTest::init()
 		return TestFail;
 	}
 
-	DeviceMatch dm("vivid");
-	dm.add("vivid-000-vid-cap");
+	DeviceMatch dm(driver_);
+	dm.add(entity_);
 
 	media_ = enumerator_->search(dm);
 	if (!media_)
 		return TestSkip;
 
-	MediaEntity *entity = media_->getEntityByName("vivid-000-vid-cap");
+	MediaEntity *entity = media_->getEntityByName(entity_);
 	if (!entity)
 		return TestSkip;
 
diff --git a/test/v4l2_device/v4l2_device_test.h b/test/v4l2_device/v4l2_device_test.h
index c476d3c05e79747a..651c005f4e5485e6 100644
--- a/test/v4l2_device/v4l2_device_test.h
+++ b/test/v4l2_device/v4l2_device_test.h
@@ -22,8 +22,8 @@ using namespace libcamera;
 class V4L2DeviceTest : public Test
 {
 public:
-	V4L2DeviceTest()
-		: capture_(nullptr)
+	V4L2DeviceTest(const char *driver, const char *entity)
+		: driver_(driver), entity_(entity), capture_(nullptr)
 	{
 	}
 
@@ -31,6 +31,8 @@ protected:
 	int init();
 	void cleanup();
 
+	std::string driver_;
+	std::string entity_;
 	std::unique_ptr<DeviceEnumerator> enumerator_;
 	std::shared_ptr<MediaDevice> media_;
 	V4L2Device *capture_;
