gstreamer_core/tsrc/check/pipelines/core-simple-launch-lines/src/core-simple-launch-lines.c
branchRCL_3
changeset 29 567bb019e3e3
parent 0 0e761a78d257
child 30 7e817e7e631c
equal deleted inserted replaced
6:9b2c3c7a1a9c 29:567bb019e3e3
    28 #define LOG_FILENAME_LINE __FILE__, __LINE__
    28 #define LOG_FILENAME_LINE __FILE__, __LINE__
    29 
    29 
    30 
    30 
    31 void create_xml(int result)
    31 void create_xml(int result)
    32 {
    32 {
       
    33 
    33     if(result)
    34     if(result)
       
    35     {
    34         assert_failed = 1;
    36         assert_failed = 1;
    35     
    37     } 
       
    38 
    36     testResultXml(xmlfile);
    39     testResultXml(xmlfile);
    37     close_log_file();
    40     close_log_file();
       
    41 
       
    42     if(result)
       
    43     {
       
    44         exit (-1);
       
    45     }    
       
    46 
    38 }
    47 }
    39 
    48 
    40 
    49 
    41 #include "libgstreamer_wsd_solution.h" 
    50 #include "libgstreamer_wsd_solution.h" 
    42 
    51 
    50 
    59 
    51 #if EMULATOR
    60 #if EMULATOR
    52 static GET_GLOBAL_VAR_FROM_TLS(raised_critical,gstcheck,gboolean)
    61 static GET_GLOBAL_VAR_FROM_TLS(raised_critical,gstcheck,gboolean)
    53 #define _gst_check_raised_critical (*GET_GSTREAMER_WSD_VAR_NAME(raised_critical,gstcheck,g)())
    62 #define _gst_check_raised_critical (*GET_GSTREAMER_WSD_VAR_NAME(raised_critical,gstcheck,g)())
    54 #else 
    63 #else 
    55 extern gboolean _gst_check_raised_critical;
    64 IMPORT_C extern gboolean _gst_check_raised_critical;
    56 #endif
    65 #endif
    57 //gboolean _gst_check_raised_warning = FALSE;
    66 //gboolean _gst_check_raised_warning = FALSE;
    58 #if EMULATOR
    67 #if EMULATOR
    59 static GET_GLOBAL_VAR_FROM_TLS(raised_warning,gstcheck,gboolean)
    68 static GET_GLOBAL_VAR_FROM_TLS(raised_warning,gstcheck,gboolean)
    60 #define _gst_check_raised_warning (*GET_GSTREAMER_WSD_VAR_NAME(raised_warning,gstcheck,g)())
    69 #define _gst_check_raised_warning (*GET_GSTREAMER_WSD_VAR_NAME(raised_warning,gstcheck,g)())
    61 #else 
    70 #else 
    62 extern gboolean _gst_check_raised_warning;
    71 IMPORT_C extern gboolean _gst_check_raised_warning;
    63 #endif
    72 #endif
    64 //gboolean _gst_check_expecting_log = FALSE;
    73 //gboolean _gst_check_expecting_log = FALSE;
    65 #if EMULATOR
    74 #if EMULATOR
    66 static GET_GLOBAL_VAR_FROM_TLS(expecting_log,gstcheck,gboolean)
    75 static GET_GLOBAL_VAR_FROM_TLS(expecting_log,gstcheck,gboolean)
    67 #define _gst_check_expecting_log (*GET_GSTREAMER_WSD_VAR_NAME(expecting_log,gstcheck,g)())
    76 #define _gst_check_expecting_log (*GET_GSTREAMER_WSD_VAR_NAME(expecting_log,gstcheck,g)())
    68 #else 
    77 #else 
    69 extern gboolean _gst_check_expecting_log;
    78 IMPORT_C extern gboolean _gst_check_expecting_log;
    70 #endif
    79 #endif
    71 
    80 
    72 
    81 
    73 #include <gst/check/gstcheck.h>
    82 #include <gst/check/gstcheck.h>
    74 
    83 
   101 
   110 
   102   fail_if (pipeline == NULL);
   111   fail_if (pipeline == NULL);
   103   bus = gst_element_get_bus (pipeline);
   112   bus = gst_element_get_bus (pipeline);
   104   fail_if (bus == NULL);
   113   fail_if (bus == NULL);
   105 
   114 
       
   115   GST_DEBUG ("running pipeline %s", descr);
       
   116   
   106   ret = gst_element_set_state (pipeline, GST_STATE_PLAYING);
   117   ret = gst_element_set_state (pipeline, GST_STATE_PLAYING);
   107   ret = gst_element_get_state (pipeline, NULL, NULL, GST_CLOCK_TIME_NONE);
   118   ret = gst_element_get_state (pipeline, NULL, NULL, GST_CLOCK_TIME_NONE);
   108 
   119 
   109   if (ret != GST_STATE_CHANGE_SUCCESS) {
   120   if (ret != GST_STATE_CHANGE_SUCCESS) {
       
   121     GST_WARNING ("have failed state change %d", ret);
   110     g_critical ("Couldn't set pipeline to PLAYING");
   122     g_critical ("Couldn't set pipeline to PLAYING");
   111     goto done;
   123     goto done;
   112   }
   124   }
   113 
   125 
   114   while (1) {
   126   while (1) {
   139   gst_element_set_state (pipeline, GST_STATE_NULL);
   151   gst_element_set_state (pipeline, GST_STATE_NULL);
   140   gst_object_unref (pipeline);
   152   gst_object_unref (pipeline);
   141   gst_object_unref (bus);
   153   gst_object_unref (bus);
   142 }
   154 }
   143 
   155 
   144 void test_2_elements()
   156 /*void test_2_elements()
   145 {
   157 {
   146   gchar *s;
   158   gchar *s;
   147   GstElement *fakesrc, *fakesink, *pipeline;
   159   GstElement *fakesrc, *fakesink, *pipeline;
   148 
   160 
   149   xmlfile = "test_2_elements";
   161   xmlfile = "test_2_elements";
   220           GST_MESSAGE_ASYNC_DONE, GST_MESSAGE_UNKNOWN));
   232           GST_MESSAGE_ASYNC_DONE, GST_MESSAGE_UNKNOWN));
   221           
   233           
   222             std_log(LOG_FILENAME_LINE, "Test Successful");
   234             std_log(LOG_FILENAME_LINE, "Test Successful");
   223 					  create_xml(0);  
   235 					  create_xml(0);  
   224 
   236 
   225 }
   237 }*/
   226 
   238 void test_2_elements()
       
   239 {
       
   240   gchar *s;
       
   241   GstElement *fakesrc, *fakesink, *pipeline;
       
   242 
       
   243   xmlfile = "test_2_elements";
       
   244   std_log(LOG_FILENAME_LINE, "Test Started test_2_elements");
       
   245 s = "fakesrc can-activate-push=false ! fakesink can-activate-pull=true";
       
   246 run_pipeline (setup_pipeline (s), s,
       
   247     GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED |
       
   248     GST_MESSAGE_STREAM_STATUS | GST_MESSAGE_ASYNC_DONE, GST_MESSAGE_UNKNOWN);
       
   249 
       
   250 s = "fakesrc can-activate-push=true ! fakesink can-activate-pull=false";
       
   251 run_pipeline (setup_pipeline (s), s,
       
   252     GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED |
       
   253     GST_MESSAGE_STREAM_STATUS | GST_MESSAGE_ASYNC_DONE, GST_MESSAGE_UNKNOWN);
       
   254 
       
   255 s = "fakesrc can-activate-push=false num-buffers=10 ! fakesink can-activate-pull=true";
       
   256 run_pipeline (setup_pipeline (s), s,
       
   257     GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED |
       
   258     GST_MESSAGE_STREAM_STATUS | GST_MESSAGE_ASYNC_DONE, GST_MESSAGE_EOS);
       
   259 
       
   260 s = "fakesrc can-activate-push=true num-buffers=10 ! fakesink can-activate-pull=false";
       
   261 run_pipeline (setup_pipeline (s), s,
       
   262     GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED |
       
   263     GST_MESSAGE_STREAM_STATUS | GST_MESSAGE_ASYNC_DONE, GST_MESSAGE_EOS);
       
   264 
       
   265 s = "fakesrc can-activate-push=false ! fakesink can-activate-pull=false";
       
   266 ASSERT_CRITICAL (run_pipeline (setup_pipeline (s), s,
       
   267         GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED |
       
   268         GST_MESSAGE_STREAM_STATUS | GST_MESSAGE_ASYNC_DONE,
       
   269         GST_MESSAGE_UNKNOWN));
       
   270 
       
   271 std_log(LOG_FILENAME_LINE, "Test Successful");
       
   272                       create_xml(0);  
       
   273 
       
   274 }
   227 
   275 
   228 
   276 
   229 static void
   277 static void
   230 check_state_change_return (GstElement * pipeline, GstState state,
   278 check_state_change_return (GstElement * pipeline, GstState state,
   231     GstStateChangeReturn immediate, GstStateChangeReturn final)
   279     GstStateChangeReturn immediate, GstStateChangeReturn final)
   291   g_object_set (G_OBJECT (fakesrc), "can-activate-push", FALSE, NULL);
   339   g_object_set (G_OBJECT (fakesrc), "can-activate-push", FALSE, NULL);
   292   g_object_set (G_OBJECT (fakesink), "can-activate-pull", TRUE, NULL);
   340   g_object_set (G_OBJECT (fakesink), "can-activate-pull", TRUE, NULL);
   293       
   341       
   294   //pipeline = gst_parse_launch (s, NULL);
   342   //pipeline = gst_parse_launch (s, NULL);
   295   fail_unless (GST_IS_PIPELINE (pipeline));
   343   fail_unless (GST_IS_PIPELINE (pipeline));
   296 
   344     check_state_change_return (pipeline, GST_STATE_READY,
   297 
   345         GST_STATE_CHANGE_SUCCESS, GST_STATE_CHANGE_SUCCESS);
   298 
   346     check_state_change_return (pipeline, GST_STATE_PAUSED,
   299   check_state_change_return (pipeline, GST_STATE_READY,
   347         GST_STATE_CHANGE_ASYNC, GST_STATE_CHANGE_SUCCESS);
   300       GST_STATE_CHANGE_SUCCESS, GST_STATE_CHANGE_SUCCESS);
   348     check_state_change_return (pipeline, GST_STATE_PLAYING,
   301   check_state_change_return (pipeline, GST_STATE_PAUSED,
   349         GST_STATE_CHANGE_SUCCESS, GST_STATE_CHANGE_SUCCESS);
   302       GST_STATE_CHANGE_SUCCESS, GST_STATE_CHANGE_SUCCESS);
   350     /* can't check PAUSED, it's not deterministic */
   303   check_state_change_return (pipeline, GST_STATE_PLAYING,
   351     check_state_change_return (pipeline, GST_STATE_READY,
   304       GST_STATE_CHANGE_SUCCESS, GST_STATE_CHANGE_SUCCESS);
   352         GST_STATE_CHANGE_SUCCESS, GST_STATE_CHANGE_SUCCESS);
   305   check_state_change_return (pipeline, GST_STATE_PAUSED,
   353     check_state_change_return (pipeline, GST_STATE_NULL, GST_STATE_CHANGE_SUCCESS,
   306       GST_STATE_CHANGE_SUCCESS, GST_STATE_CHANGE_SUCCESS);
   354         GST_STATE_CHANGE_SUCCESS);
   307   check_state_change_return (pipeline, GST_STATE_READY,
   355     gst_object_unref (pipeline);
   308       GST_STATE_CHANGE_SUCCESS, GST_STATE_CHANGE_SUCCESS);
       
   309   check_state_change_return (pipeline, GST_STATE_NULL, GST_STATE_CHANGE_SUCCESS,
       
   310       GST_STATE_CHANGE_SUCCESS);
       
   311   gst_object_unref (pipeline);
       
   312 
   356 
   313   std_log(LOG_FILENAME_LINE, "Test Successful");
   357   std_log(LOG_FILENAME_LINE, "Test Successful");
   314   create_xml(0);
   358   create_xml(0);
   315 
   359 
   316 }
   360 }