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 } |