Blame tests/check/libs/gstglsl.c

Packit 0652a1
/* GStreamer
Packit 0652a1
 * Copyright (C) 2015 Matthew Waters <matthew@centricular.com>
Packit 0652a1
 *
Packit 0652a1
 * This library is free software; you can redistribute it and/or
Packit 0652a1
 * modify it under the terms of the GNU Library General Public
Packit 0652a1
 * License as published by the Free Software Foundation; either
Packit 0652a1
 * version 2 of the License, or (at your option) any later version.
Packit 0652a1
 *
Packit 0652a1
 * This library is distributed in the hope that it will be useful,
Packit 0652a1
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 0652a1
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 0652a1
 * Library General Public License for more details.
Packit 0652a1
 *
Packit 0652a1
 * You should have received a copy of the GNU Library General Public
Packit 0652a1
 * License along with this library; if not, write to the
Packit 0652a1
 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
Packit 0652a1
 * Boston, MA 02110-1301, USA.
Packit 0652a1
 */
Packit 0652a1
Packit 0652a1
#ifdef HAVE_CONFIG_H
Packit 0652a1
#  include "config.h"
Packit 0652a1
#endif
Packit 0652a1
Packit 0652a1
#include <gst/check/gstcheck.h>
Packit 0652a1
Packit 0652a1
#include <gst/gl/gstglsl.h>
Packit 0652a1
Packit 0652a1
#include <stdio.h>
Packit 0652a1
Packit 0652a1
static void
Packit 0652a1
setup (void)
Packit 0652a1
{
Packit 0652a1
}
Packit 0652a1
Packit 0652a1
static void
Packit 0652a1
teardown (void)
Packit 0652a1
{
Packit 0652a1
}
Packit 0652a1
Packit 0652a1
/* *INDENT-OFF* */
Packit 0652a1
static const struct {GstGLSLVersion version; const gchar * name;} glsl_versions[] = {
Packit 0652a1
  {GST_GLSL_VERSION_100, "100"},
Packit 0652a1
  {GST_GLSL_VERSION_110, "110"},
Packit 0652a1
  {GST_GLSL_VERSION_120, "120"},
Packit 0652a1
  {GST_GLSL_VERSION_130, "130"},
Packit 0652a1
  {GST_GLSL_VERSION_140, "140"},
Packit 0652a1
  {GST_GLSL_VERSION_150, "150"},
Packit 0652a1
  {GST_GLSL_VERSION_300, "300"},
Packit 0652a1
  {GST_GLSL_VERSION_310, "310"},
Packit 0652a1
  {GST_GLSL_VERSION_320, "320"},
Packit 0652a1
  {GST_GLSL_VERSION_330, "330"},
Packit 0652a1
  {GST_GLSL_VERSION_400, "400"},
Packit 0652a1
  {GST_GLSL_VERSION_410, "410"},
Packit 0652a1
  {GST_GLSL_VERSION_420, "420"},
Packit 0652a1
  {GST_GLSL_VERSION_430, "430"},
Packit 0652a1
  {GST_GLSL_VERSION_440, "440"},
Packit 0652a1
  {GST_GLSL_VERSION_450, "450"},
Packit 0652a1
};
Packit 0652a1
Packit 0652a1
static const struct {GstGLSLProfile profile; const gchar * name;} glsl_profiles[] = {
Packit 0652a1
  {GST_GLSL_PROFILE_ES, "es"},
Packit 0652a1
  {GST_GLSL_PROFILE_CORE, "core"},
Packit 0652a1
  {GST_GLSL_PROFILE_COMPATIBILITY, "compatibility"},
Packit 0652a1
};
Packit 0652a1
Packit 0652a1
struct version_profile_s
Packit 0652a1
{
Packit 0652a1
  GstGLSLVersion version;
Packit 0652a1
  GstGLSLProfile profile;
Packit 0652a1
  const gchar * name;
Packit 0652a1
};
Packit 0652a1
Packit 0652a1
static const struct version_profile_s glsl_version_profiles_valid[] = {
Packit 0652a1
  {GST_GLSL_VERSION_100, GST_GLSL_PROFILE_ES, "100"},
Packit 0652a1
  {GST_GLSL_VERSION_110, GST_GLSL_PROFILE_COMPATIBILITY, "110"},
Packit 0652a1
  {GST_GLSL_VERSION_120, GST_GLSL_PROFILE_COMPATIBILITY, "120"},
Packit 0652a1
  {GST_GLSL_VERSION_130, GST_GLSL_PROFILE_COMPATIBILITY, "130"},
Packit 0652a1
  {GST_GLSL_VERSION_140, GST_GLSL_PROFILE_COMPATIBILITY, "140"},
Packit 0652a1
  {GST_GLSL_VERSION_150, GST_GLSL_PROFILE_CORE, "150 core"},
Packit 0652a1
  {GST_GLSL_VERSION_150, GST_GLSL_PROFILE_COMPATIBILITY, "150 compatibility"},
Packit 0652a1
  {GST_GLSL_VERSION_300, GST_GLSL_PROFILE_ES, "300 es"},
Packit 0652a1
  {GST_GLSL_VERSION_310, GST_GLSL_PROFILE_ES, "310 es"},
Packit 0652a1
  {GST_GLSL_VERSION_320, GST_GLSL_PROFILE_ES, "320 es"},
Packit 0652a1
  {GST_GLSL_VERSION_330, GST_GLSL_PROFILE_CORE, "330 core"},
Packit 0652a1
  {GST_GLSL_VERSION_330, GST_GLSL_PROFILE_COMPATIBILITY, "330 compatibility"},
Packit 0652a1
  {GST_GLSL_VERSION_400, GST_GLSL_PROFILE_CORE, "400 core"},
Packit 0652a1
  {GST_GLSL_VERSION_400, GST_GLSL_PROFILE_COMPATIBILITY, "400 compatibility"},
Packit 0652a1
  {GST_GLSL_VERSION_410, GST_GLSL_PROFILE_CORE, "410 core"},
Packit 0652a1
  {GST_GLSL_VERSION_410, GST_GLSL_PROFILE_COMPATIBILITY, "410 compatibility"},
Packit 0652a1
  {GST_GLSL_VERSION_420, GST_GLSL_PROFILE_CORE, "420 core"},
Packit 0652a1
  {GST_GLSL_VERSION_420, GST_GLSL_PROFILE_COMPATIBILITY, "420 compatibility"},
Packit 0652a1
  {GST_GLSL_VERSION_430, GST_GLSL_PROFILE_CORE, "430 core"},
Packit 0652a1
  {GST_GLSL_VERSION_430, GST_GLSL_PROFILE_COMPATIBILITY, "430 compatibility"},
Packit 0652a1
  {GST_GLSL_VERSION_440, GST_GLSL_PROFILE_CORE, "440 core"},
Packit 0652a1
  {GST_GLSL_VERSION_440, GST_GLSL_PROFILE_COMPATIBILITY, "440 compatibility"},
Packit 0652a1
  {GST_GLSL_VERSION_450, GST_GLSL_PROFILE_CORE, "450 core"},
Packit 0652a1
  {GST_GLSL_VERSION_450, GST_GLSL_PROFILE_COMPATIBILITY, "450 compatibility"},
Packit 0652a1
};
Packit 0652a1
Packit 0652a1
/* combinations that produce different results between serializing/deserializing
Packit 0652a1
 * due to default values being imposed */
Packit 0652a1
static const struct version_profile_s glsl_version_profiles_valid_serialize[] = {
Packit 0652a1
  {GST_GLSL_VERSION_100, GST_GLSL_PROFILE_NONE, "100"},
Packit 0652a1
  {GST_GLSL_VERSION_110, GST_GLSL_PROFILE_NONE, "110"},
Packit 0652a1
  {GST_GLSL_VERSION_120, GST_GLSL_PROFILE_NONE, "120"},
Packit 0652a1
  {GST_GLSL_VERSION_130, GST_GLSL_PROFILE_NONE, "130"},
Packit 0652a1
  {GST_GLSL_VERSION_140, GST_GLSL_PROFILE_NONE, "140"},
Packit 0652a1
  {GST_GLSL_VERSION_150, GST_GLSL_PROFILE_NONE, "150"},
Packit 0652a1
  {GST_GLSL_VERSION_330, GST_GLSL_PROFILE_NONE, "330"},
Packit 0652a1
  {GST_GLSL_VERSION_400, GST_GLSL_PROFILE_NONE, "400"},
Packit 0652a1
  {GST_GLSL_VERSION_410, GST_GLSL_PROFILE_NONE, "410"},
Packit 0652a1
  {GST_GLSL_VERSION_420, GST_GLSL_PROFILE_NONE, "420"},
Packit 0652a1
  {GST_GLSL_VERSION_430, GST_GLSL_PROFILE_NONE, "430"},
Packit 0652a1
  {GST_GLSL_VERSION_440, GST_GLSL_PROFILE_NONE, "440"},
Packit 0652a1
  {GST_GLSL_VERSION_450, GST_GLSL_PROFILE_NONE, "450"},
Packit 0652a1
};
Packit 0652a1
static const struct version_profile_s glsl_version_profiles_valid_deserialize[] = {
Packit 0652a1
  {GST_GLSL_VERSION_100, GST_GLSL_PROFILE_ES, "100"},
Packit 0652a1
  {GST_GLSL_VERSION_110, GST_GLSL_PROFILE_COMPATIBILITY, "110"},
Packit 0652a1
  {GST_GLSL_VERSION_120, GST_GLSL_PROFILE_COMPATIBILITY, "120"},
Packit 0652a1
  {GST_GLSL_VERSION_130, GST_GLSL_PROFILE_COMPATIBILITY, "130"},
Packit 0652a1
  {GST_GLSL_VERSION_140, GST_GLSL_PROFILE_COMPATIBILITY, "140"},
Packit 0652a1
  {GST_GLSL_VERSION_150, GST_GLSL_PROFILE_CORE, "150"},
Packit 0652a1
  {GST_GLSL_VERSION_330, GST_GLSL_PROFILE_CORE, "330"},
Packit 0652a1
  {GST_GLSL_VERSION_400, GST_GLSL_PROFILE_CORE, "400"},
Packit 0652a1
  {GST_GLSL_VERSION_410, GST_GLSL_PROFILE_CORE, "410"},
Packit 0652a1
  {GST_GLSL_VERSION_420, GST_GLSL_PROFILE_CORE, "420"},
Packit 0652a1
  {GST_GLSL_VERSION_430, GST_GLSL_PROFILE_CORE, "430"},
Packit 0652a1
  {GST_GLSL_VERSION_440, GST_GLSL_PROFILE_CORE, "440"},
Packit 0652a1
  {GST_GLSL_VERSION_450, GST_GLSL_PROFILE_CORE, "450"},
Packit 0652a1
};
Packit 0652a1
Packit 0652a1
static const gchar * invalid_deserialize_glsl[] = {
Packit 0652a1
  "",
Packit 0652a1
  " \t\r\n",
Packit 0652a1
  "ael dja",
Packit 0652a1
  "es",
Packit 0652a1
  "core",
Packit 0652a1
  "compatibility",
Packit 0652a1
  "1000",
Packit 0652a1
  "100 es",
Packit 0652a1
  "100 core",
Packit 0652a1
  "100 compatibility",
Packit 0652a1
  "150 es",
Packit 0652a1
  "300 core",
Packit 0652a1
  "300 compatibility",
Packit 0652a1
  "310 core",
Packit 0652a1
  "310 compatibility",
Packit 0652a1
  "320 core",
Packit 0652a1
  "320 compatibility",
Packit 0652a1
  "330 es",
Packit 0652a1
};
Packit 0652a1
Packit 0652a1
static const struct {GstGLSLVersion version; GstGLSLProfile profile;} invalid_serialize_glsl[] = {
Packit 0652a1
  {GST_GLSL_VERSION_100, GST_GLSL_PROFILE_CORE},
Packit 0652a1
  {GST_GLSL_VERSION_100, GST_GLSL_PROFILE_COMPATIBILITY},
Packit 0652a1
  {GST_GLSL_VERSION_110, GST_GLSL_PROFILE_ES},
Packit 0652a1
  {GST_GLSL_VERSION_110, GST_GLSL_PROFILE_CORE},
Packit 0652a1
  {GST_GLSL_VERSION_120, GST_GLSL_PROFILE_ES},
Packit 0652a1
  {GST_GLSL_VERSION_120, GST_GLSL_PROFILE_CORE},
Packit 0652a1
  {GST_GLSL_VERSION_130, GST_GLSL_PROFILE_ES},
Packit 0652a1
  {GST_GLSL_VERSION_130, GST_GLSL_PROFILE_CORE},
Packit 0652a1
  {GST_GLSL_VERSION_140, GST_GLSL_PROFILE_ES},
Packit 0652a1
  {GST_GLSL_VERSION_140, GST_GLSL_PROFILE_CORE},
Packit 0652a1
  {GST_GLSL_VERSION_150, GST_GLSL_PROFILE_ES},
Packit 0652a1
  {GST_GLSL_VERSION_300, GST_GLSL_PROFILE_NONE},
Packit 0652a1
  {GST_GLSL_VERSION_300, GST_GLSL_PROFILE_CORE},
Packit 0652a1
  {GST_GLSL_VERSION_300, GST_GLSL_PROFILE_COMPATIBILITY},
Packit 0652a1
  {GST_GLSL_VERSION_310, GST_GLSL_PROFILE_NONE},
Packit 0652a1
  {GST_GLSL_VERSION_310, GST_GLSL_PROFILE_CORE},
Packit 0652a1
  {GST_GLSL_VERSION_310, GST_GLSL_PROFILE_COMPATIBILITY},
Packit 0652a1
  {GST_GLSL_VERSION_320, GST_GLSL_PROFILE_NONE},
Packit 0652a1
  {GST_GLSL_VERSION_320, GST_GLSL_PROFILE_CORE},
Packit 0652a1
  {GST_GLSL_VERSION_320, GST_GLSL_PROFILE_COMPATIBILITY},
Packit 0652a1
  {GST_GLSL_VERSION_330, GST_GLSL_PROFILE_ES},
Packit 0652a1
  {GST_GLSL_VERSION_400, GST_GLSL_PROFILE_ES},
Packit 0652a1
  {GST_GLSL_VERSION_410, GST_GLSL_PROFILE_ES},
Packit 0652a1
  {GST_GLSL_VERSION_420, GST_GLSL_PROFILE_ES},
Packit 0652a1
  {GST_GLSL_VERSION_430, GST_GLSL_PROFILE_ES},
Packit 0652a1
  {GST_GLSL_VERSION_440, GST_GLSL_PROFILE_ES},
Packit 0652a1
  {GST_GLSL_VERSION_450, GST_GLSL_PROFILE_ES},
Packit 0652a1
};
Packit 0652a1
Packit 0652a1
static const struct {const gchar *name; gboolean succeed; GstGLSLVersion version; GstGLSLProfile profile;} glsl_str_map[] = {
Packit 0652a1
  {"//#version 100\n", FALSE, GST_GLSL_VERSION_NONE, GST_GLSL_PROFILE_NONE},
Packit 0652a1
  {"/*\n#version 100*/\n", FALSE, GST_GLSL_VERSION_NONE, GST_GLSL_PROFILE_NONE},
Packit 0652a1
  {"/*\r#version 100*/", FALSE, GST_GLSL_VERSION_NONE, GST_GLSL_PROFILE_NONE},
Packit 0652a1
  {"#\rversion 100", FALSE, GST_GLSL_VERSION_NONE, GST_GLSL_PROFILE_NONE},
Packit 0652a1
  {"#\nversion 100", FALSE, GST_GLSL_VERSION_NONE, GST_GLSL_PROFILE_NONE},
Packit 0652a1
  {"\t#version 100", FALSE, GST_GLSL_VERSION_NONE, GST_GLSL_PROFILE_NONE},
Packit 0652a1
  {"//\r#version 100", TRUE, GST_GLSL_VERSION_100, GST_GLSL_PROFILE_ES},
Packit 0652a1
  {"//\n#version 100", TRUE, GST_GLSL_VERSION_100, GST_GLSL_PROFILE_ES},
Packit 0652a1
  {"# \tversion 100", TRUE, GST_GLSL_VERSION_100, GST_GLSL_PROFILE_ES},
Packit 0652a1
  {"\n#version 100", TRUE, GST_GLSL_VERSION_100, GST_GLSL_PROFILE_ES},
Packit 0652a1
  {"\r#version 100", TRUE, GST_GLSL_VERSION_100, GST_GLSL_PROFILE_ES},
Packit 0652a1
};
Packit 0652a1
/* *INDENT-ON* */
Packit 0652a1
Packit 0652a1
GST_START_TEST (test_serialization)
Packit 0652a1
{
Packit 0652a1
  gint i;
Packit 0652a1
Packit 0652a1
  /* versions */
Packit 0652a1
  for (i = 0; i < G_N_ELEMENTS (glsl_versions); i++) {
Packit 0652a1
    GstGLSLVersion version;
Packit 0652a1
    const gchar *version_s;
Packit 0652a1
Packit 0652a1
    version_s = gst_glsl_version_to_string (glsl_versions[i].version);
Packit 0652a1
    fail_unless (g_strcmp0 (version_s, glsl_versions[i].name) == 0, "%s != %s",
Packit 0652a1
        version_s, glsl_versions[i].name);
Packit 0652a1
    version = gst_glsl_version_from_string (glsl_versions[i].name);
Packit 0652a1
    fail_unless (version == glsl_versions[i].version, "%s != %s",
Packit 0652a1
        gst_glsl_version_to_string (glsl_versions[i].version),
Packit 0652a1
        gst_glsl_version_to_string (version));
Packit 0652a1
  }
Packit 0652a1
Packit 0652a1
  /* profiles */
Packit 0652a1
  for (i = 0; i < G_N_ELEMENTS (glsl_profiles); i++) {
Packit 0652a1
    GstGLSLProfile profile;
Packit 0652a1
    const gchar *profile_s;
Packit 0652a1
Packit 0652a1
    profile_s = gst_glsl_profile_to_string (glsl_profiles[i].profile);
Packit 0652a1
    fail_unless (g_strcmp0 (profile_s, glsl_profiles[i].name) == 0, "%s != %s",
Packit 0652a1
        profile_s, glsl_profiles[i].name);
Packit 0652a1
    profile = gst_glsl_profile_from_string (glsl_profiles[i].name);
Packit 0652a1
    fail_unless (profile == glsl_profiles[i].profile, "%s != %s",
Packit 0652a1
        gst_glsl_profile_to_string (glsl_profiles[i].profile),
Packit 0652a1
        gst_glsl_profile_to_string (profile));
Packit 0652a1
  }
Packit 0652a1
Packit 0652a1
  for (i = 0; i < G_N_ELEMENTS (glsl_version_profiles_valid); i++) {
Packit 0652a1
    gchar *version_profile_s;
Packit 0652a1
    GstGLSLVersion version;
Packit 0652a1
    GstGLSLProfile profile;
Packit 0652a1
Packit 0652a1
    version_profile_s =
Packit 0652a1
        gst_glsl_version_profile_to_string (glsl_version_profiles_valid
Packit 0652a1
        [i].version, glsl_version_profiles_valid[i].profile);
Packit 0652a1
    fail_unless (g_strcmp0 (version_profile_s,
Packit 0652a1
            glsl_version_profiles_valid[i].name) == 0, "%s != %s",
Packit 0652a1
        version_profile_s, glsl_version_profiles_valid[i].name);
Packit 0652a1
    fail_unless (gst_glsl_version_profile_from_string
Packit 0652a1
        (glsl_version_profiles_valid[i].name, &version, &profile),
Packit 0652a1
        "Failed to parse %s", glsl_version_profiles_valid[i].name);
Packit 0652a1
    fail_unless (profile == glsl_version_profiles_valid[i].profile
Packit 0652a1
        && version == glsl_version_profiles_valid[i].version, "%s != %s %s",
Packit 0652a1
        glsl_version_profiles_valid[i].name,
Packit 0652a1
        gst_glsl_version_to_string (version),
Packit 0652a1
        gst_glsl_profile_to_string (profile));
Packit 0652a1
    g_free (version_profile_s);
Packit 0652a1
  }
Packit 0652a1
Packit 0652a1
  for (i = 0; i < G_N_ELEMENTS (glsl_version_profiles_valid_serialize); i++) {
Packit 0652a1
    gchar *version_profile_s;
Packit 0652a1
Packit 0652a1
    version_profile_s =
Packit 0652a1
        gst_glsl_version_profile_to_string
Packit 0652a1
        (glsl_version_profiles_valid_serialize[i].version,
Packit 0652a1
        glsl_version_profiles_valid_serialize[i].profile);
Packit 0652a1
    fail_unless (g_strcmp0 (version_profile_s,
Packit 0652a1
            glsl_version_profiles_valid_serialize[i].name) == 0, "%s != %s",
Packit 0652a1
        version_profile_s, glsl_version_profiles_valid_serialize[i].name);
Packit 0652a1
    g_free (version_profile_s);
Packit 0652a1
  }
Packit 0652a1
Packit 0652a1
  for (i = 0; i < G_N_ELEMENTS (glsl_version_profiles_valid_deserialize); i++) {
Packit 0652a1
    GstGLSLVersion version;
Packit 0652a1
    GstGLSLProfile profile;
Packit 0652a1
Packit 0652a1
    fail_unless (gst_glsl_version_profile_from_string
Packit 0652a1
        (glsl_version_profiles_valid_deserialize[i].name, &version, &profile),
Packit 0652a1
        "Failed to parse %s", glsl_version_profiles_valid_deserialize[i].name);
Packit 0652a1
    fail_unless (profile == glsl_version_profiles_valid_deserialize[i].profile
Packit 0652a1
        && version == glsl_version_profiles_valid_deserialize[i].version,
Packit 0652a1
        "%s != %s %s", glsl_version_profiles_valid_deserialize[i].name,
Packit 0652a1
        gst_glsl_version_to_string (version),
Packit 0652a1
        gst_glsl_profile_to_string (profile));
Packit 0652a1
  }
Packit 0652a1
Packit 0652a1
  /* failures */
Packit 0652a1
  for (i = 0; i < G_N_ELEMENTS (invalid_deserialize_glsl); i++) {
Packit 0652a1
    GstGLSLVersion version;
Packit 0652a1
    GstGLSLProfile profile;
Packit 0652a1
Packit 0652a1
    fail_if (gst_glsl_version_profile_from_string (invalid_deserialize_glsl[i],
Packit 0652a1
            &version, &profile),
Packit 0652a1
        "successfully deserialized %s into %s %s (should have failed)",
Packit 0652a1
        invalid_deserialize_glsl[i], gst_glsl_version_to_string (version),
Packit 0652a1
        gst_glsl_profile_to_string (profile));
Packit 0652a1
  }
Packit 0652a1
Packit 0652a1
  /* failures */
Packit 0652a1
  for (i = 0; i < G_N_ELEMENTS (invalid_serialize_glsl); i++) {
Packit 0652a1
    gchar *version_profile_s;
Packit 0652a1
Packit 0652a1
    version_profile_s =
Packit 0652a1
        gst_glsl_version_profile_to_string (invalid_serialize_glsl[i].version,
Packit 0652a1
        invalid_serialize_glsl[i].profile);
Packit 0652a1
Packit 0652a1
    fail_if (version_profile_s != NULL,
Packit 0652a1
        "successfully serialized %s from %s %s (should have failed)",
Packit 0652a1
        version_profile_s,
Packit 0652a1
        gst_glsl_version_to_string (invalid_serialize_glsl[i].version),
Packit 0652a1
        gst_glsl_profile_to_string (invalid_serialize_glsl[i].profile));
Packit 0652a1
Packit 0652a1
    g_free (version_profile_s);
Packit 0652a1
  }
Packit 0652a1
Packit 0652a1
  /* map strings to version/profile */
Packit 0652a1
  for (i = 0; i < G_N_ELEMENTS (glsl_str_map); i++) {
Packit 0652a1
    GstGLSLVersion version;
Packit 0652a1
    GstGLSLProfile profile;
Packit 0652a1
Packit 0652a1
    fail_unless (glsl_str_map[i].succeed ==
Packit 0652a1
        gst_glsl_string_get_version_profile (glsl_str_map[i].name, &version,
Packit 0652a1
            &profile), "Incorrect result for parsing \'%s\': %s",
Packit 0652a1
        glsl_str_map[i].name, glsl_str_map[i].succeed ? "false" : "true");
Packit 0652a1
    if (glsl_str_map[i].succeed) {
Packit 0652a1
      fail_unless (version == glsl_str_map[i].version, "With %s: %s != %s",
Packit 0652a1
          glsl_str_map[i].name,
Packit 0652a1
          gst_glsl_version_to_string (glsl_str_map[i].version),
Packit 0652a1
          gst_glsl_version_to_string (version));
Packit 0652a1
      fail_unless (profile == glsl_str_map[i].profile, "With %s: %s != %s",
Packit 0652a1
          glsl_str_map[i].name,
Packit 0652a1
          gst_glsl_profile_to_string (glsl_str_map[i].profile),
Packit 0652a1
          gst_glsl_profile_to_string (profile));
Packit 0652a1
    }
Packit 0652a1
  }
Packit 0652a1
Packit 0652a1
  /* special ones */
Packit 0652a1
  {
Packit 0652a1
    GstGLSLVersion version;
Packit 0652a1
    GstGLSLProfile profile;
Packit 0652a1
    gchar *version_profile_s;
Packit 0652a1
Packit 0652a1
    version_profile_s =
Packit 0652a1
        gst_glsl_version_profile_to_string (GST_GLSL_VERSION_100,
Packit 0652a1
        GST_GLSL_PROFILE_ES);
Packit 0652a1
    fail_unless (g_strcmp0 (version_profile_s, "100") == 0, "%s != 100",
Packit 0652a1
        version_profile_s);
Packit 0652a1
    g_free (version_profile_s);
Packit 0652a1
Packit 0652a1
    version_profile_s =
Packit 0652a1
        gst_glsl_version_profile_to_string (GST_GLSL_VERSION_100,
Packit 0652a1
        GST_GLSL_PROFILE_NONE);
Packit 0652a1
    fail_unless (g_strcmp0 (version_profile_s, "100") == 0, "%s != 100",
Packit 0652a1
        version_profile_s);
Packit 0652a1
    g_free (version_profile_s);
Packit 0652a1
Packit 0652a1
    fail_unless (gst_glsl_version_profile_from_string ("100", &version,
Packit 0652a1
            &profile));
Packit 0652a1
    fail_unless (version == GST_GLSL_VERSION_100
Packit 0652a1
        && profile == GST_GLSL_PROFILE_ES, "100 != %s %s",
Packit 0652a1
        gst_glsl_version_to_string (version),
Packit 0652a1
        gst_glsl_profile_to_string (profile));
Packit 0652a1
  }
Packit 0652a1
}
Packit 0652a1
Packit 0652a1
GST_END_TEST;
Packit 0652a1
Packit 0652a1
static Suite *
Packit 0652a1
gst_gl_upload_suite (void)
Packit 0652a1
{
Packit 0652a1
  Suite *s = suite_create ("GstGLSL");
Packit 0652a1
  TCase *tc_chain = tcase_create ("glsl");
Packit 0652a1
Packit 0652a1
  suite_add_tcase (s, tc_chain);
Packit 0652a1
  tcase_add_checked_fixture (tc_chain, setup, teardown);
Packit 0652a1
  tcase_add_test (tc_chain, test_serialization);
Packit 0652a1
Packit 0652a1
  return s;
Packit 0652a1
}
Packit 0652a1
Packit 0652a1
GST_CHECK_MAIN (gst_gl_upload);