]> git.sesse.net Git - vlc/blobdiff - test/libvlc/meta.c
LibVLC core: remove exceptions
[vlc] / test / libvlc / meta.c
index 4f760ce87f67f378e950e849eafe4a01e30fe2ef..c4131ebbb9ebbf323b9e40b3882ecf2798d39f64 100644 (file)
@@ -6,6 +6,7 @@
 
 /**********************************************************************
  *  Copyright (C) 2007 RĂ©mi Denis-Courmont.                           *
+ *  Copyright (C) 2008 Pierre d'Herbemont.                            *
  *  This program is free software; you can redistribute and/or modify *
  *  it under the terms of the GNU General Public License as published *
  *  by the Free Software Foundation; version 2 of the license, or (at *
@@ -21,6 +22,8 @@
  *  http://www.gnu.org/copyleft/gpl.html                              *
  **********************************************************************/
 
+#include <strings.h>
+
 #include "test.h"
 
 static void test_meta (const char ** argv, int argc)
@@ -32,24 +35,34 @@ static void test_meta (const char ** argv, int argc)
     log ("Testing meta\n");
 
     libvlc_exception_init (&ex);
-    vlc = libvlc_new (argc, argv, &ex);
-    catch ();
+    vlc = libvlc_new (argc, argv);
+    assert (vlc != NULL);
 
-    media = libvlc_media_new ( vlc, "samples/meta.sample", &ex);
-
-    /* Tell that we are interested in this precise meta data */
-    artist = libvlc_media_get_meta( media, libvlc_meta_Artist, &ex );
+    media = libvlc_media_new (vlc, "samples/meta.sample", &ex);
     catch ();
 
+    /* Tell that we are interested in this precise meta data
+     * This is needed to trigger meta data reading
+     * (the first calls return NULL) */
+    artist = libvlc_media_get_meta (media, libvlc_meta_Artist);
+
     free (artist);
 
     /* Wait for the meta */
-    while (!libvlc_media_is_preparsed(media, &ex)) { catch (); msleep (10000); }
+    while (!libvlc_media_is_preparsed (media))
+    {
+        usleep (10000);
+    }
 
-    artist = libvlc_media_get_meta( media, libvlc_meta_Artist, &ex );
-    catch ();
+    artist = libvlc_media_get_meta (media, libvlc_meta_Artist);
+
+    const char *expected_artist = "mike";
+
+    assert (artist);
+    log ("+ got '%s' as Artist, expecting %s\n", artist, expected_artist);
 
-    assert (artist && *artist);
+    int string_compare = strcmp (artist, expected_artist);
+    assert (!string_compare);
 
     free (artist);
     libvlc_media_release (media);