tests: video: Test video format enum stability
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Sat, 17 Nov 2018 04:51:44 +0000 (23:51 -0500)
committerTim-Philipp Müller <tim@centricular.com>
Mon, 18 Feb 2019 13:25:23 +0000 (13:25 +0000)
It is really easy to break the API and insert a new video format in the
middle of the enum instead of at the end. This minimal test should catch
the most obvious errors. Ideally, this test should be updated after new
format have been added, so that it won't allow further modification to
the enumeration API.

tests/check/libs/video.c

index 9a1eb6d..81828a6 100644 (file)
@@ -2942,6 +2942,16 @@ GST_START_TEST (test_overlay_composition_over_transparency)
 
 GST_END_TEST;
 
+GST_START_TEST (test_video_format_enum_stability)
+{
+  /* When adding new formats, adding a format in the middle of the enum will
+   * break the API. This check picks the last known format and checks that
+   * it's value isn't changing. This test should ideall be updated when a new
+   * format is added, though will stay valid. */
+  fail_unless_equals_int (GST_VIDEO_FORMAT_Y210, 82);
+}
+
+GST_END_TEST;
 
 static Suite *
 video_suite (void)
@@ -2982,6 +2992,7 @@ video_suite (void)
   tcase_add_test (tc_chain, test_overlay_blend);
   tcase_add_test (tc_chain, test_video_center_rect);
   tcase_add_test (tc_chain, test_overlay_composition_over_transparency);
+  tcase_add_test (tc_chain, test_video_format_enum_stability);
 
   return s;
 }