tests: include config.h and don't include unix headers
[platform/upstream/gstreamer.git] / tests / check / gst / gst.c
index 993c633..fc82763 100644 (file)
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include <gst/check/gstcheck.h>
+#include <gst/gstversion.h>
 
 GST_START_TEST (test_init)
 {
   /* don't segfault with NULL, NULL */
   gst_init (NULL, NULL);
-  /* allow calling twice */
+  /* allow calling twice. well, actually, thrice. */
   gst_init (NULL, NULL);
 }
 
@@ -54,8 +58,44 @@ GST_START_TEST (test_deinit_sysclock)
 
 GST_END_TEST;
 
+/* tests if we can create an element from a compiled-in plugin */
+GST_START_TEST (test_new_pipeline)
+{
+  GstElement *pipeline;
+
+  pipeline = gst_pipeline_new ("pipeline");
+  gst_object_unref (pipeline);
+}
+
+GST_END_TEST;
+
+/* tests if we can load an element from a plugin */
+GST_START_TEST (test_new_fakesrc)
+{
+  GstElement *element;
+
+  element = gst_element_factory_make ("fakesrc", NULL);
+  gst_object_unref (element);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_version)
+{
+  guint major, minor, micro, nano;
+  gchar *version;
 
-Suite *
+  gst_version (&major, &minor, &micro, &nano);
+  assert_equals_int (major, GST_VERSION_MAJOR);
+
+  version = gst_version_string ();
+  fail_if (version == NULL);
+  g_free (version);
+}
+
+GST_END_TEST;
+
+static Suite *
 gst_suite (void)
 {
   Suite *s = suite_create ("Gst");
@@ -63,25 +103,14 @@ gst_suite (void)
 
   suite_add_tcase (s, tc_chain);
   tcase_add_test (tc_chain, test_init);
-  tcase_add_test (tc_chain, test_deinit);
+  tcase_add_test (tc_chain, test_new_pipeline);
+  tcase_add_test (tc_chain, test_new_fakesrc);
+  tcase_add_test (tc_chain, test_version);
+  /* run these last so the others don't fail if CK_FORK=no is being used */
   tcase_add_test (tc_chain, test_deinit_sysclock);
+  tcase_add_test (tc_chain, test_deinit);
 
   return s;
 }
 
-int
-main (int argc, char **argv)
-{
-  int nf;
-
-  Suite *s = gst_suite ();
-  SRunner *sr = srunner_create (s);
-
-  gst_check_init (&argc, &argv);
-
-  srunner_run_all (sr, CK_NORMAL);
-  nf = srunner_ntests_failed (sr);
-  srunner_free (sr);
-
-  return nf;
-}
+GST_CHECK_MAIN (gst);