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