mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-07 16:08:51 +00:00
camerabin2: Refactor tests
Refactor tests case so that the same tests can be run for different camera sources.
This commit is contained in:
parent
65c5b65d6d
commit
6e4efe5ad4
1 changed files with 39 additions and 14 deletions
|
@ -167,6 +167,7 @@ gst_test_camera_src_init (GstTestCameraSrc * self,
|
||||||
|
|
||||||
static GstElement *camera;
|
static GstElement *camera;
|
||||||
static GMainLoop *main_loop;
|
static GMainLoop *main_loop;
|
||||||
|
guint32 test_id = 0;
|
||||||
|
|
||||||
/* helper function for filenames */
|
/* helper function for filenames */
|
||||||
static const gchar *
|
static const gchar *
|
||||||
|
@ -178,10 +179,12 @@ make_test_file_name (const gchar * base_name, gint num)
|
||||||
* multifilesink like location */
|
* multifilesink like location */
|
||||||
if (num == -1) {
|
if (num == -1) {
|
||||||
g_snprintf (file_name, 999, "%s" G_DIR_SEPARATOR_S
|
g_snprintf (file_name, 999, "%s" G_DIR_SEPARATOR_S
|
||||||
"gstcamerabin2test_%s_%%03d.cap", g_get_tmp_dir (), base_name);
|
"gstcamerabin2test_%s_%u_%%03d.cap", g_get_tmp_dir (), base_name,
|
||||||
|
test_id);
|
||||||
} else {
|
} else {
|
||||||
g_snprintf (file_name, 999, "%s" G_DIR_SEPARATOR_S
|
g_snprintf (file_name, 999, "%s" G_DIR_SEPARATOR_S
|
||||||
"gstcamerabin2test_%s_%03d.cap", g_get_tmp_dir (), base_name, num);
|
"gstcamerabin2test_%s_%u_%03d.cap", g_get_tmp_dir (), base_name,
|
||||||
|
test_id, num);
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_INFO ("capturing to: %s", file_name);
|
GST_INFO ("capturing to: %s", file_name);
|
||||||
|
@ -244,7 +247,7 @@ capture_bus_cb (GstBus * bus, GstMessage * message, gpointer data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
setup (void)
|
setup_wrappercamerabinsrc_videotestsrc (void)
|
||||||
{
|
{
|
||||||
GstBus *bus;
|
GstBus *bus;
|
||||||
GstElement *vfbin;
|
GstElement *vfbin;
|
||||||
|
@ -254,6 +257,8 @@ setup (void)
|
||||||
|
|
||||||
GST_INFO ("init");
|
GST_INFO ("init");
|
||||||
|
|
||||||
|
test_id = g_random_int ();
|
||||||
|
|
||||||
main_loop = g_main_loop_new (NULL, TRUE);
|
main_loop = g_main_loop_new (NULL, TRUE);
|
||||||
|
|
||||||
camera = gst_check_setup_element ("camerabin2");
|
camera = gst_check_setup_element ("camerabin2");
|
||||||
|
@ -579,22 +584,42 @@ GST_START_TEST (test_supported_caps)
|
||||||
|
|
||||||
GST_END_TEST;
|
GST_END_TEST;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct _TestCaseDef
|
||||||
|
{
|
||||||
|
const gchar *name;
|
||||||
|
gpointer setup_func;
|
||||||
|
} TestCaseDef;
|
||||||
|
|
||||||
|
TestCaseDef tests[] = {
|
||||||
|
{"wrappercamerabinsrc", setup_wrappercamerabinsrc_videotestsrc}
|
||||||
|
};
|
||||||
|
|
||||||
static Suite *
|
static Suite *
|
||||||
camerabin_suite (void)
|
camerabin_suite (void)
|
||||||
{
|
{
|
||||||
Suite *s = suite_create ("camerabin2");
|
Suite *s = suite_create ("camerabin2");
|
||||||
TCase *tc_basic = tcase_create ("general");
|
gint i;
|
||||||
|
TCase *tc_generic = tcase_create ("generic");
|
||||||
|
|
||||||
/* Test that basic operations run without errors */
|
suite_add_tcase (s, tc_generic);
|
||||||
|
tcase_add_checked_fixture (tc_generic, setup_wrappercamerabinsrc_videotestsrc,
|
||||||
|
teardown);
|
||||||
|
tcase_add_test (tc_generic, test_supported_caps);
|
||||||
|
|
||||||
|
for (i = 0; i < G_N_ELEMENTS (tests); i++) {
|
||||||
|
TCase *tc_basic = tcase_create (tests[i].name);
|
||||||
suite_add_tcase (s, tc_basic);
|
suite_add_tcase (s, tc_basic);
|
||||||
|
|
||||||
/* Increase timeout due to video recording */
|
/* Increase timeout due to video recording */
|
||||||
tcase_set_timeout (tc_basic, 60);
|
tcase_set_timeout (tc_basic, 60);
|
||||||
tcase_add_checked_fixture (tc_basic, setup, teardown);
|
tcase_add_checked_fixture (tc_basic, tests[i].setup_func, teardown);
|
||||||
|
|
||||||
tcase_add_test (tc_basic, test_single_image_capture);
|
tcase_add_test (tc_basic, test_single_image_capture);
|
||||||
tcase_add_test (tc_basic, test_single_video_recording);
|
tcase_add_test (tc_basic, test_single_video_recording);
|
||||||
tcase_add_test (tc_basic, test_image_video_cycle);
|
tcase_add_test (tc_basic, test_image_video_cycle);
|
||||||
tcase_add_test (tc_basic, test_multiple_image_captures);
|
tcase_add_test (tc_basic, test_multiple_image_captures);
|
||||||
tcase_add_test (tc_basic, test_supported_caps);
|
}
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue