LCOV - code coverage report
Current view: top level - subprojects/gobject-introspection-tests - annotation.c (source / functions) Coverage Total Hit
Test: gjs-1.89.1 Code Coverage Lines: 90.7 % 161 146
Test Date: 2026-07-06 00:54:07 Functions: 94.5 % 55 52
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 70.0 % 20 14

             Branch data     Line data    Source code
       1                 :             : /*
       2                 :             : SPDX-License-Identifier: GPL-2.0-or-later AND LGPL-2.0-or-later AND MIT
       3                 :             : SPDX-FileCopyrightText: 2008-2009 Dan Winship
       4                 :             : SPDX-FileCopyrightText: 2008-2010 Colin Walters <walters@verbum.org>
       5                 :             : SPDX-FileCopyrightText: 2008-2011 Johan Dahlin
       6                 :             : SPDX-FileCopyrightText: 2008 Owen Taylor
       7                 :             : SPDX-FileCopyrightText: 2008 Tristan Van Berkom
       8                 :             : SPDX-FileCopyrightText: 2009 Andreas Rottmann <a.rottmann@gmx.at>
       9                 :             : SPDX-FileCopyrightText: 2010 litl, LLC
      10                 :             : SPDX-FileCopyrightText: 2010 Pavel Holejsovsky
      11                 :             : SPDX-FileCopyrightText: 2010 Red Hat, Inc.
      12                 :             : SPDX-FileCopyrightText: 2011 Jasper St. Pierre
      13                 :             : SPDX-FileCopyrightText: 2015 Christoph Reiter
      14                 :             : */
      15                 :             : 
      16                 :             : #include <stddef.h>
      17                 :             : 
      18                 :             : #include "annotation.h"
      19                 :             : 
      20                 :             : char backslash_parsing_tester = '\\';
      21                 :             : 
      22   [ +  +  +  -  :          93 : G_DEFINE_TYPE (RegressAnnotationObject, regress_annotation_object, G_TYPE_OBJECT);
                   +  + ]
      23                 :             : 
      24                 :             : enum
      25                 :             : {
      26                 :             :   PROP_0,
      27                 :             :   PROP_STRING_PROPERTY,
      28                 :             :   PROP_FUNCTION_PROPERTY,
      29                 :             :   PROP_TAB_PROPERTY
      30                 :             : };
      31                 :             : 
      32                 :             : enum
      33                 :             : {
      34                 :             :   STRING_SIGNAL,
      35                 :             :   LIST_SIGNAL,
      36                 :             :   DOC_EMPTY_ARG_PARSING,
      37                 :             :   ATTRIBUTE_SIGNAL,
      38                 :             :   LAST_SIGNAL
      39                 :             : };
      40                 :             : 
      41                 :             : static guint regress_annotation_object_signals[LAST_SIGNAL] = { 0 };
      42                 :             : 
      43                 :             : static void
      44                 :          20 : regress_annotation_object_set_property (GObject *object,
      45                 :             :                                         guint prop_id,
      46                 :             :                                         const GValue *value G_GNUC_UNUSED,
      47                 :             :                                         GParamSpec *pspec)
      48                 :             : {
      49   [ +  +  +  - ]:          20 :   switch (prop_id)
      50                 :             :     {
      51                 :           7 :     case PROP_STRING_PROPERTY:
      52                 :           7 :       break;
      53                 :           6 :     case PROP_FUNCTION_PROPERTY:
      54                 :           6 :       break;
      55                 :           7 :     case PROP_TAB_PROPERTY:
      56                 :           7 :       break;
      57                 :           0 :     default:
      58                 :           0 :       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
      59                 :           0 :       break;
      60                 :             :     }
      61                 :          20 : }
      62                 :             : 
      63                 :             : static void
      64                 :           2 : regress_annotation_object_get_property (GObject *object,
      65                 :             :                                         guint prop_id,
      66                 :             :                                         GValue *value G_GNUC_UNUSED,
      67                 :             :                                         GParamSpec *pspec)
      68                 :             : {
      69   [ +  -  +  - ]:           2 :   switch (prop_id)
      70                 :             :     {
      71                 :           1 :     case PROP_STRING_PROPERTY:
      72                 :           1 :       break;
      73                 :           0 :     case PROP_FUNCTION_PROPERTY:
      74                 :           0 :       break;
      75                 :           1 :     case PROP_TAB_PROPERTY:
      76                 :           1 :       break;
      77                 :           0 :     default:
      78                 :           0 :       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
      79                 :           0 :       break;
      80                 :             :     }
      81                 :           2 : }
      82                 :             : 
      83                 :             : static void
      84                 :           6 : regress_annotation_object_finalize (GObject *gobj)
      85                 :             : {
      86                 :           6 :   RegressAnnotationObject *self = (RegressAnnotationObject *)gobj;
      87         [ +  + ]:           6 :   if (self->destroy_notify)
      88                 :           1 :     self->destroy_notify(self->user_data);
      89                 :           6 :   G_OBJECT_CLASS(regress_annotation_object_parent_class)->finalize(gobj);
      90                 :           6 : }
      91                 :             : 
      92                 :             : static void
      93                 :           2 : regress_annotation_object_class_init (RegressAnnotationObjectClass *klass)
      94                 :             : {
      95                 :             :   GObjectClass *gobject_class;
      96                 :             : 
      97                 :           2 :   gobject_class = G_OBJECT_CLASS (klass);
      98                 :             : 
      99                 :           2 :   gobject_class->set_property = regress_annotation_object_set_property;
     100                 :           2 :   gobject_class->get_property = regress_annotation_object_get_property;
     101                 :           2 :   gobject_class->finalize = regress_annotation_object_finalize;
     102                 :             : 
     103                 :             :   /**
     104                 :             :    * RegressAnnotationObject::string-signal:
     105                 :             :    * @regress_annotation: the regress_annotation object
     106                 :             :    * @string: (type utf8): a string
     107                 :             :    *
     108                 :             :    * This is a signal which has a broken signal handler,
     109                 :             :    * it says it's pointer but it's actually a string.
     110                 :             :    *
     111                 :             :    * Since: 1.0
     112                 :             :    * Deprecated: 1.2: Use other-signal instead
     113                 :             :    */
     114                 :           2 :   regress_annotation_object_signals[STRING_SIGNAL] =
     115                 :           2 :     g_signal_new ("string-signal",
     116                 :             :                   G_OBJECT_CLASS_TYPE (gobject_class),
     117                 :             :                   G_SIGNAL_RUN_LAST,
     118                 :             :                   0,
     119                 :             :                   NULL, NULL,
     120                 :             :                   (GSignalCMarshaller) g_cclosure_marshal_VOID__POINTER,
     121                 :             :                   G_TYPE_NONE, 1, G_TYPE_POINTER);
     122                 :             : 
     123                 :             :   /**
     124                 :             :    * RegressAnnotationObject::list-signal:
     125                 :             :    * @regress_annotation: the regress_annotation object
     126                 :             :    * @list: (type GLib.List) (element-type utf8) (transfer container): a list of strings
     127                 :             :    *
     128                 :             :    * This is a signal which takes a list of strings, but it's not
     129                 :             :    * known by GObject as it's only marked as G_TYPE_POINTER
     130                 :             :    */
     131                 :           2 :   regress_annotation_object_signals[LIST_SIGNAL] =
     132                 :           2 :     g_signal_new ("list-signal",
     133                 :             :                   G_OBJECT_CLASS_TYPE (gobject_class),
     134                 :             :                   G_SIGNAL_RUN_LAST,
     135                 :             :                   0,
     136                 :             :                   NULL, NULL,
     137                 :             :                   (GSignalCMarshaller) g_cclosure_marshal_VOID__POINTER,
     138                 :             :                   G_TYPE_NONE, 1, G_TYPE_POINTER);
     139                 :             : 
     140                 :             :   /**
     141                 :             :    * RegressAnnotationObject::doc-empty-arg-parsing:
     142                 :             :    * @regress_annotation: the regress_annotation object
     143                 :             :    * @arg1:
     144                 :             :    *
     145                 :             :    * This signal tests an empty document argument (@arg1)
     146                 :             :    */
     147                 :           2 :   regress_annotation_object_signals[DOC_EMPTY_ARG_PARSING] =
     148                 :           2 :     g_signal_new ("doc-empty-arg-parsing",
     149                 :             :                   G_OBJECT_CLASS_TYPE (gobject_class),
     150                 :             :                   G_SIGNAL_RUN_LAST,
     151                 :             :                   0,
     152                 :             :                   NULL, NULL,
     153                 :             :                   (GSignalCMarshaller) g_cclosure_marshal_VOID__POINTER,
     154                 :             :                   G_TYPE_NONE, 1, G_TYPE_POINTER);
     155                 :             : 
     156                 :             :   /**
     157                 :             :    * RegressAnnotationObject::attribute-signal:
     158                 :             :    * @regress_annotation: the regress_annotation object
     159                 :             :    * @arg1: (attributes some.annotation.foo1=val1): a value
     160                 :             :    * @arg2: (attributes some.annotation.foo2=val2): another value
     161                 :             :    *
     162                 :             :    * This signal tests a signal with attributes.
     163                 :             :    *
     164                 :             :    * Returns: (attributes some.annotation.foo3=val3): the return value
     165                 :             :    */
     166                 :           2 :   regress_annotation_object_signals[ATTRIBUTE_SIGNAL] =
     167                 :           2 :     g_signal_new ("attribute-signal",
     168                 :             :                   G_OBJECT_CLASS_TYPE (gobject_class),
     169                 :             :                   G_SIGNAL_RUN_LAST,
     170                 :             :                   0,
     171                 :             :                   NULL, NULL,
     172                 :             :                   NULL, /* marshaller */
     173                 :             :                   G_TYPE_STRING,
     174                 :             :                   2,
     175                 :             :                   G_TYPE_STRING,
     176                 :             :                   G_TYPE_STRING);
     177                 :             : 
     178                 :             :   /**
     179                 :             :    * RegressAnnotationObject:string-property:
     180                 :             :    *
     181                 :             :    * This is a property which is a string
     182                 :             :    *
     183                 :             :    * Since: 1.0
     184                 :             :    * Deprecated: 1.2: Use better-string-property instead
     185                 :             :    */
     186                 :           2 :   g_object_class_install_property (gobject_class,
     187                 :             :                                    PROP_STRING_PROPERTY,
     188                 :             :                                    g_param_spec_string ("string-property",
     189                 :             :                                                         "String property",
     190                 :             :                                                         "This property is a string",
     191                 :             :                                                         NULL,
     192                 :             :                                                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
     193                 :             :   /**
     194                 :             :    * RegressAnnotationObject:function-property: (type RegressAnnotationCallback)
     195                 :             :    */
     196                 :           2 :   g_object_class_install_property (gobject_class,
     197                 :             :                                    PROP_FUNCTION_PROPERTY,
     198                 :             :                                    g_param_spec_pointer ("function-property",
     199                 :             :                                                          "Function property",
     200                 :             :                                                          "This property is a function pointer",
     201                 :             :                                                          G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
     202                 :             : 
     203                 :             :   /* clang-format off */
     204                 :             : 
     205                 :             :           /**
     206                 :             :            * RegressAnnotationObject:tab-property:
     207                 :             :            *
     208                 :             :            * This is a property annotation intentionally indented with a mix
     209                 :             :            * of tabs and strings to test the tab handling capabilities of the scanner.
     210                 :             :            *
     211                 :             :            * Since: 1.2
     212                 :             :            */
     213                 :           2 :   g_object_class_install_property (gobject_class,
     214                 :             :                                    PROP_TAB_PROPERTY,
     215                 :             :                                    g_param_spec_string ("tab-property",
     216                 :             :                                                         "Tab property",
     217                 :             :                                                         "This property is a thing",
     218                 :             :                                                         NULL,
     219                 :             :                                                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
     220                 :             : 
     221                 :             :   /* clang-format on */
     222                 :           2 : }
     223                 :             : 
     224                 :             : static void
     225                 :           6 : regress_annotation_object_init (RegressAnnotationObject *object G_GNUC_UNUSED)
     226                 :             : {
     227                 :           6 : }
     228                 :             : 
     229                 :             : /**
     230                 :             :  * regress_annotation_object_method:
     231                 :             :  * @object: a #GObject
     232                 :             :  *
     233                 :             :  * Return value: an int
     234                 :             :  **/
     235                 :             : gint
     236                 :           1 : regress_annotation_object_method (RegressAnnotationObject *object G_GNUC_UNUSED)
     237                 :             : {
     238                 :           1 :   return 1;
     239                 :             : }
     240                 :             : 
     241                 :             : /**
     242                 :             :  * regress_annotation_object_out:
     243                 :             :  * @object: a #GObject
     244                 :             :  * @outarg: (out): This is an argument test
     245                 :             :  *
     246                 :             :  * This is a test for out arguments
     247                 :             :  *
     248                 :             :  * Return value: an int
     249                 :             :  */
     250                 :             : gint
     251                 :           1 : regress_annotation_object_out (RegressAnnotationObject *object G_GNUC_UNUSED,
     252                 :             :                                int *outarg)
     253                 :             : {
     254                 :           1 :   *outarg = 2;
     255                 :           1 :   return 1;
     256                 :             : }
     257                 :             : 
     258                 :             : /**
     259                 :             :  * regress_annotation_object_in:
     260                 :             :  * @object: a #GObject
     261                 :             :  * @inarg: (in) (transfer none): This is an argument test
     262                 :             :  *
     263                 :             :  * This is a test for in arguments
     264                 :             :  *
     265                 :             :  * Return value: an int
     266                 :             :  */
     267                 :             : gint
     268                 :           0 : regress_annotation_object_in (RegressAnnotationObject *object G_GNUC_UNUSED,
     269                 :             :                               int *inarg)
     270                 :             : {
     271                 :           0 :   return *inarg;
     272                 :             : }
     273                 :             : 
     274                 :             : /**
     275                 :             :  * regress_annotation_object_inout:
     276                 :             :  * @object: a #GObject
     277                 :             :  * @inoutarg: (inout): This is an argument test
     278                 :             :  *
     279                 :             :  * This is a test for out arguments
     280                 :             :  *
     281                 :             :  * Return value: an int
     282                 :             :  */
     283                 :             : gint
     284                 :           1 : regress_annotation_object_inout (RegressAnnotationObject *object G_GNUC_UNUSED,
     285                 :             :                                  int *inoutarg)
     286                 :             : {
     287                 :           1 :   return *inoutarg += 1;
     288                 :             : }
     289                 :             : 
     290                 :             : /**
     291                 :             :  * regress_annotation_object_inout2:
     292                 :             :  * @object: a #GObject
     293                 :             :  * @inoutarg: (inout): This is an argument test
     294                 :             :  *
     295                 :             :  * This is a second test for out arguments
     296                 :             :  *
     297                 :             :  * Return value: an int
     298                 :             :  */
     299                 :             : gint
     300                 :           1 : regress_annotation_object_inout2 (RegressAnnotationObject *object G_GNUC_UNUSED,
     301                 :             :                                   int *inoutarg)
     302                 :             : {
     303                 :           1 :   return *inoutarg += 1;
     304                 :             : }
     305                 :             : 
     306                 :             : /**
     307                 :             :  * regress_annotation_object_inout3:
     308                 :             :  * @object: a #GObject
     309                 :             :  * @inoutarg: (inout) (allow-none): This is an argument test
     310                 :             :  *
     311                 :             :  * This is a 3th test for out arguments
     312                 :             :  *
     313                 :             :  * Return value: an int
     314                 :             :  */
     315                 :             : gint
     316                 :           1 : regress_annotation_object_inout3 (RegressAnnotationObject *object G_GNUC_UNUSED,
     317                 :             :                                   int *inoutarg)
     318                 :             : {
     319         [ +  - ]:           1 :   if (inoutarg)
     320                 :           1 :     return *inoutarg + 1;
     321                 :           0 :   return 1;
     322                 :             : }
     323                 :             : 
     324                 :             : /**
     325                 :             :  * regress_annotation_object_calleeowns:
     326                 :             :  * @object: a #GObject
     327                 :             :  * @toown: (out): a #GObject
     328                 :             :  *
     329                 :             :  * This is a test for out arguments; GObject defaults to transfer
     330                 :             :  *
     331                 :             :  * Return value: an int
     332                 :             :  */
     333                 :             : gint
     334                 :           1 : regress_annotation_object_calleeowns (RegressAnnotationObject *object G_GNUC_UNUSED,
     335                 :             :                                       GObject **toown G_GNUC_UNUSED)
     336                 :             : {
     337                 :           1 :   return 1;
     338                 :             : }
     339                 :             : 
     340                 :             : /**
     341                 :             :  * regress_annotation_object_calleesowns:
     342                 :             :  * @object: a #GObject
     343                 :             :  * @toown1: (out) (transfer full): a #GObject
     344                 :             :  * @toown2: (out) (transfer none): a #GObject
     345                 :             :  *
     346                 :             :  * This is a test for out arguments, one transferred, other not
     347                 :             :  *
     348                 :             :  * Return value: an int
     349                 :             :  */
     350                 :             : gint
     351                 :           1 : regress_annotation_object_calleesowns (RegressAnnotationObject *object G_GNUC_UNUSED,
     352                 :             :                                        GObject **toown1 G_GNUC_UNUSED,
     353                 :             :                                        GObject **toown2 G_GNUC_UNUSED)
     354                 :             : {
     355                 :           1 :   return 1;
     356                 :             : }
     357                 :             : 
     358                 :             : /**
     359                 :             :  * regress_annotation_object_get_strings:
     360                 :             :  * @object: a #GObject
     361                 :             :  *
     362                 :             :  * This is a test for returning a list of strings, where
     363                 :             :  * each string needs to be freed.
     364                 :             :  *
     365                 :             :  * Return value: (element-type utf8) (transfer full): list of strings
     366                 :             :  */
     367                 :             : GList *
     368                 :           1 : regress_annotation_object_get_strings (RegressAnnotationObject *object G_GNUC_UNUSED)
     369                 :             : {
     370                 :           1 :   GList *list = NULL;
     371                 :           1 :   list = g_list_prepend (list, g_strdup ("regress_annotation"));
     372                 :           1 :   list = g_list_prepend (list, g_strdup ("bar"));
     373                 :           1 :   return list;
     374                 :             : }
     375                 :             : 
     376                 :             : /**
     377                 :             :  * regress_annotation_object_get_hash:
     378                 :             :  * @object: a #GObject
     379                 :             :  *
     380                 :             :  * This is a test for returning a hash table mapping strings to
     381                 :             :  * objects.
     382                 :             :  *
     383                 :             :  * Return value: (element-type utf8 GObject) (transfer full): hash table
     384                 :             :  */
     385                 :             : GHashTable *
     386                 :           1 : regress_annotation_object_get_hash (RegressAnnotationObject *object)
     387                 :             : {
     388                 :           1 :   GHashTable *hash = g_hash_table_new_full (g_str_hash, g_str_equal,
     389                 :             :                                             g_free, g_object_unref);
     390                 :           2 :   g_hash_table_insert (hash, g_strdup ("one"), g_object_ref (object));
     391                 :           2 :   g_hash_table_insert (hash, g_strdup ("two"), g_object_ref (object));
     392                 :           1 :   return hash;
     393                 :             : }
     394                 :             : 
     395                 :             : /**
     396                 :             :  * regress_annotation_object_with_voidp:
     397                 :             :  * @data: Opaque pointer handle
     398                 :             :  */
     399                 :             : void
     400                 :           1 : regress_annotation_object_with_voidp (RegressAnnotationObject *object G_GNUC_UNUSED,
     401                 :             :                                       void *data G_GNUC_UNUSED)
     402                 :             : {
     403                 :           1 : }
     404                 :             : 
     405                 :             : /**
     406                 :             :  * regress_annotation_object_get_objects:
     407                 :             :  * @object: a #GObject
     408                 :             :  *
     409                 :             :  * This is a test for returning a list of objects.
     410                 :             :  * The list itself should be freed, but not the internal objects,
     411                 :             :  * intentionally similar example to gtk_container_get_children
     412                 :             :  *
     413                 :             :  * Return value: (element-type RegressAnnotationObject) (transfer container): list of objects
     414                 :             :  */
     415                 :             : GSList *
     416                 :           1 : regress_annotation_object_get_objects (RegressAnnotationObject *object)
     417                 :             : {
     418                 :           1 :   GSList *list = NULL;
     419                 :           1 :   list = g_slist_prepend (list, object);
     420                 :           1 :   return list;
     421                 :             : }
     422                 :             : 
     423                 :             : /**
     424                 :             :  * regress_annotation_object_create_object:
     425                 :             :  * @object: a #GObject
     426                 :             :  *
     427                 :             :  * Test returning a caller-owned object
     428                 :             :  *
     429                 :             :  * Return value: (transfer full): The object
     430                 :             :  **/
     431                 :             : GObject *
     432                 :           1 : regress_annotation_object_create_object (RegressAnnotationObject *object)
     433                 :             : {
     434                 :           1 :   return G_OBJECT (g_object_ref (object));
     435                 :             : }
     436                 :             : 
     437                 :             : /**
     438                 :             :  * regress_annotation_object_use_buffer:
     439                 :             :  * @object: a #GObject
     440                 :             :  *
     441                 :             :  **/
     442                 :             : void
     443                 :           1 : regress_annotation_object_use_buffer (RegressAnnotationObject *object G_GNUC_UNUSED,
     444                 :             :                                       guchar *bytes G_GNUC_UNUSED)
     445                 :             : {
     446                 :           1 : }
     447                 :             : 
     448                 :             : /**
     449                 :             :  * regress_annotation_object_compute_sum:
     450                 :             :  * @object: a #GObject
     451                 :             :  * @nums: (array): Sequence of numbers
     452                 :             :  *
     453                 :             :  * Test taking a zero-terminated array
     454                 :             :  **/
     455                 :             : void
     456                 :           1 : regress_annotation_object_compute_sum (RegressAnnotationObject *object G_GNUC_UNUSED,
     457                 :             :                                        int *nums G_GNUC_UNUSED)
     458                 :             : {
     459                 :           1 : }
     460                 :             : 
     461                 :             : /**
     462                 :             :  * regress_annotation_object_compute_sum_n:
     463                 :             :  * @object: a #GObject
     464                 :             :  * @nums: (array length=n_nums zero-terminated=0): Sequence of
     465                 :             :  *   numbers that are zero-terminated
     466                 :             :  * @n_nums: Length of number array
     467                 :             :  *
     468                 :             :  * Test taking an array with length parameter
     469                 :             :  **/
     470                 :             : void
     471                 :           1 : regress_annotation_object_compute_sum_n (RegressAnnotationObject *object G_GNUC_UNUSED,
     472                 :             :                                          int *nums G_GNUC_UNUSED,
     473                 :             :                                          int n_nums G_GNUC_UNUSED)
     474                 :             : {
     475                 :           1 : }
     476                 :             : 
     477                 :             : /**
     478                 :             :  * regress_annotation_object_compute_sum_nz:
     479                 :             :  * @object: a #RegressAnnotationObject
     480                 :             :  * @nums: (array length=n_nums zero-terminated): Sequence of numbers that
     481                 :             :  * are zero-terminated
     482                 :             :  * @n_nums: Length of number array
     483                 :             :  *
     484                 :             :  * Test taking a zero-terminated array with length parameter
     485                 :             :  **/
     486                 :             : void
     487                 :           1 : regress_annotation_object_compute_sum_nz (RegressAnnotationObject *object G_GNUC_UNUSED,
     488                 :             :                                           int *nums G_GNUC_UNUSED,
     489                 :             :                                           int n_nums G_GNUC_UNUSED)
     490                 :             : {
     491                 :           1 : }
     492                 :             : 
     493                 :             : /**
     494                 :             :  * regress_annotation_object_parse_args:
     495                 :             :  * @object: a #RegressAnnotationObject
     496                 :             :  * @argc: (inout): Length of the argument vector
     497                 :             :  * @argv: (inout) (array length=argc zero-terminated=1): Argument vector
     498                 :             :  *
     499                 :             :  * Test taking a zero-terminated array with length parameter
     500                 :             :  **/
     501                 :             : void
     502                 :           1 : regress_annotation_object_parse_args (RegressAnnotationObject *object G_GNUC_UNUSED,
     503                 :             :                                       int *argc G_GNUC_UNUSED,
     504                 :             :                                       char ***argv G_GNUC_UNUSED)
     505                 :             : {
     506                 :           1 : }
     507                 :             : 
     508                 :             : /**
     509                 :             :  * regress_annotation_object_string_out:
     510                 :             :  * @object: a #RegressAnnotationObject
     511                 :             :  * @str_out: (out) (transfer full): string return value
     512                 :             :  *
     513                 :             :  * Test returning a string as an out parameter
     514                 :             :  *
     515                 :             :  * Returns: some boolean
     516                 :             :  **/
     517                 :             : gboolean
     518                 :           1 : regress_annotation_object_string_out (RegressAnnotationObject *object G_GNUC_UNUSED,
     519                 :             :                                       char **str_out G_GNUC_UNUSED)
     520                 :             : {
     521                 :           1 :   return FALSE;
     522                 :             : }
     523                 :             : 
     524                 :             : /**
     525                 :             :  * regress_annotation_object_foreach:
     526                 :             :  * @object: a #RegressAnnotationObject
     527                 :             :  * @func: (scope call): Callback to invoke
     528                 :             :  * @user_data: Callback user data
     529                 :             :  *
     530                 :             :  * Test taking a call-scoped callback
     531                 :             :  **/
     532                 :             : void
     533                 :           1 : regress_annotation_object_foreach (RegressAnnotationObject *object G_GNUC_UNUSED,
     534                 :             :                                    RegressAnnotationForeachFunc func G_GNUC_UNUSED,
     535                 :             :                                    gpointer user_data G_GNUC_UNUSED)
     536                 :             : {
     537                 :           1 : }
     538                 :             : 
     539                 :             : /**
     540                 :             :  * regress_annotation_object_set_data:
     541                 :             :  * @object: a #RegressAnnotationObject
     542                 :             :  * @data: (array length=length): The data
     543                 :             :  * @length: Length of the data
     544                 :             :  *
     545                 :             :  * Test taking a guchar * with a length.
     546                 :             :  **/
     547                 :             : void
     548                 :           1 : regress_annotation_object_set_data (RegressAnnotationObject *object G_GNUC_UNUSED,
     549                 :             :                                     const guchar *data G_GNUC_UNUSED,
     550                 :             :                                     gsize length G_GNUC_UNUSED)
     551                 :             : {
     552                 :           1 : }
     553                 :             : 
     554                 :             : /**
     555                 :             :  * regress_annotation_object_set_data2:
     556                 :             :  * @object: a #RegressAnnotationObject
     557                 :             :  * @data: (array length=length) (element-type gint8): The data
     558                 :             :  * @length: Length of the data
     559                 :             :  *
     560                 :             :  * Test taking a gchar * with a length.
     561                 :             :  **/
     562                 :             : void
     563                 :           1 : regress_annotation_object_set_data2 (RegressAnnotationObject *object G_GNUC_UNUSED,
     564                 :             :                                      const gchar *data G_GNUC_UNUSED,
     565                 :             :                                      gsize length G_GNUC_UNUSED)
     566                 :             : {
     567                 :           1 : }
     568                 :             : 
     569                 :             : /**
     570                 :             :  * regress_annotation_object_set_data3:
     571                 :             :  * @object: a #RegressAnnotationObject
     572                 :             :  * @data: (array length=length) (element-type guint8): The data
     573                 :             :  * @length: Length of the data
     574                 :             :  *
     575                 :             :  * Test taking a gchar * with a length, overriding the array element
     576                 :             :  * type.
     577                 :             :  **/
     578                 :             : void
     579                 :           1 : regress_annotation_object_set_data3 (RegressAnnotationObject *object G_GNUC_UNUSED,
     580                 :             :                                      gpointer data G_GNUC_UNUSED,
     581                 :             :                                      gsize length G_GNUC_UNUSED)
     582                 :             : {
     583                 :           1 : }
     584                 :             : 
     585                 :             : /**
     586                 :             :  * regress_annotation_object_allow_none:
     587                 :             :  * @object: a #GObject
     588                 :             :  * @somearg: (allow-none):
     589                 :             :  *
     590                 :             :  * Returns: (transfer none): %NULL always
     591                 :             :  **/
     592                 :             : GObject *
     593                 :           1 : regress_annotation_object_allow_none (RegressAnnotationObject *object G_GNUC_UNUSED,
     594                 :             :                                       const gchar *somearg G_GNUC_UNUSED)
     595                 :             : {
     596                 :           1 :   return NULL;
     597                 :             : }
     598                 :             : 
     599                 :             : /**
     600                 :             :  * regress_annotation_object_notrans:
     601                 :             :  * @object: a #GObject
     602                 :             :  *
     603                 :             :  * Returns: (transfer none): An object, not referenced
     604                 :             :  **/
     605                 :             : 
     606                 :             : GObject *
     607                 :           1 : regress_annotation_object_notrans (RegressAnnotationObject *object G_GNUC_UNUSED)
     608                 :             : {
     609                 :           1 :   return NULL;
     610                 :             : }
     611                 :             : 
     612                 :             : /**
     613                 :             :  * regress_annotation_object_do_not_use:
     614                 :             :  * @object: a #GObject
     615                 :             :  *
     616                 :             :  * Returns: (transfer none): %NULL always
     617                 :             :  * Deprecated: 0.12: Use regress_annotation_object_create_object() instead.
     618                 :             :  **/
     619                 :             : GObject *
     620                 :           1 : regress_annotation_object_do_not_use (RegressAnnotationObject *object G_GNUC_UNUSED)
     621                 :             : {
     622                 :           1 :   return NULL;
     623                 :             : }
     624                 :             : 
     625                 :             : /**
     626                 :             :  * regress_annotation_object_watch: (skip)
     627                 :             :  * @object: A #RegressAnnotationObject
     628                 :             :  * @func: The callback
     629                 :             :  * @user_data: The callback data
     630                 :             :  *
     631                 :             :  * This is here just for the sake of being overriden by its
     632                 :             :  * regress_annotation_object_watch_full().
     633                 :             :  */
     634                 :             : void
     635                 :           0 : regress_annotation_object_watch (RegressAnnotationObject *object G_GNUC_UNUSED,
     636                 :             :                                  RegressAnnotationForeachFunc func G_GNUC_UNUSED,
     637                 :             :                                  gpointer user_data G_GNUC_UNUSED)
     638                 :             : {
     639                 :           0 : }
     640                 :             : 
     641                 :             : /**
     642                 :             :  * regress_annotation_object_watch_full: (rename-to regress_annotation_object_watch)
     643                 :             :  * @object: A #RegressAnnotationObject
     644                 :             :  * @func: The callback
     645                 :             :  * @user_data: The callback data
     646                 :             :  * @destroy: Destroy notification
     647                 :             :  *
     648                 :             :  * Test overriding via the "Rename To" annotation.
     649                 :             :  */
     650                 :             : void
     651                 :           1 : regress_annotation_object_watch_full (RegressAnnotationObject *object,
     652                 :             :                                       RegressAnnotationForeachFunc func G_GNUC_UNUSED,
     653                 :             :                                       gpointer user_data,
     654                 :             :                                       GDestroyNotify destroy)
     655                 :             : {
     656                 :           1 :   object->user_data = user_data;
     657                 :           1 :   object->destroy_notify = destroy;
     658                 :           1 : }
     659                 :             : 
     660                 :             : /**
     661                 :             :  * regress_annotation_object_hidden_self:
     662                 :             :  * @object: (type RegressAnnotationObject): A #RegressAnnotationObject
     663                 :             :  **/
     664                 :             : void
     665                 :           1 : regress_annotation_object_hidden_self (gpointer object G_GNUC_UNUSED)
     666                 :             : {
     667                 :           1 : }
     668                 :             : 
     669                 :             : /**
     670                 :             :  * regress_annotation_init:
     671                 :             :  * @argc: (inout): The number of args.
     672                 :             :  * @argv: (inout) (array length=argc): The arguments.
     673                 :             :  **/
     674                 :             : void
     675                 :           1 : regress_annotation_init (int *argc G_GNUC_UNUSED,
     676                 :             :                          char ***argv G_GNUC_UNUSED)
     677                 :             : {
     678                 :           1 : }
     679                 :             : 
     680                 :             : /**
     681                 :             :  * regress_annotation_return_array:
     682                 :             :  * @length: (out): Number of return values
     683                 :             :  *
     684                 :             :  * Return value: (transfer full) (array length=length): The return value
     685                 :             :  **/
     686                 :             : char **
     687                 :           1 : regress_annotation_return_array (int *length G_GNUC_UNUSED)
     688                 :             : {
     689                 :           1 :   return NULL;
     690                 :             : }
     691                 :             : 
     692                 :             : /**
     693                 :             :  * regress_annotation_string_zero_terminated:
     694                 :             :  *
     695                 :             :  * Return value: (transfer full) (array zero-terminated=1): The return value
     696                 :             :  **/
     697                 :             : char **
     698                 :           1 : regress_annotation_string_zero_terminated (void)
     699                 :             : {
     700                 :           1 :   return NULL;
     701                 :             : }
     702                 :             : 
     703                 :             : /**
     704                 :             :  * regress_annotation_string_zero_terminated_out:
     705                 :             :  * @out: (array zero-terminated=1) (inout):
     706                 :             :  **/
     707                 :             : void
     708                 :           1 : regress_annotation_string_zero_terminated_out (char ***out G_GNUC_UNUSED)
     709                 :             : {
     710                 :           1 : }
     711                 :             : 
     712                 :             : /**
     713                 :             :  * regress_annotation_versioned:
     714                 :             :  *
     715                 :             :  * Since: 0.6
     716                 :             :  **/
     717                 :             : void
     718                 :           1 : regress_annotation_versioned (void)
     719                 :             : {
     720                 :           1 : }
     721                 :             : 
     722                 :             : /**
     723                 :             :  * regress_annotation_string_array_length:
     724                 :             :  * @n_properties:
     725                 :             :  * @properties: (array length=n_properties) (element-type utf8):
     726                 :             :  */
     727                 :             : void
     728                 :           1 : regress_annotation_string_array_length (guint n_properties G_GNUC_UNUSED,
     729                 :             :                                         const gchar *const properties[] G_GNUC_UNUSED)
     730                 :             : {
     731                 :           1 : }
     732                 :             : 
     733                 :             : /**
     734                 :             :  * regress_annotation_object_extra_annos: (attributes org.foobar=testvalue)
     735                 :             :  */
     736                 :             : void
     737                 :           1 : regress_annotation_object_extra_annos (RegressAnnotationObject *object G_GNUC_UNUSED)
     738                 :             : {
     739                 :           1 : }
     740                 :             : 
     741                 :             : static void *regress_annotation_user_data;
     742                 :             : static GDestroyNotify regress_annotation_destroy_notify;
     743                 :             : 
     744                 :             : /**
     745                 :             :  * regress_annotation_custom_destroy:
     746                 :             :  * @callback: (destroy destroy) (closure data): Destroy notification
     747                 :             :  *
     748                 :             :  * Test messing up the heuristic of closure/destroy-notification
     749                 :             :  * detection, and fixing it via annotations.
     750                 :             :  */
     751                 :             : void
     752                 :           1 : regress_annotation_custom_destroy (RegressAnnotationCallback callback G_GNUC_UNUSED,
     753                 :             :                                    RegressAnnotationNotifyFunc destroy,
     754                 :             :                                    gpointer data)
     755                 :             : {
     756                 :           1 :   regress_annotation_user_data = data;
     757                 :           1 :   regress_annotation_destroy_notify = destroy;
     758                 :           1 : }
     759                 :             : 
     760                 :             : /**
     761                 :             :  * regress_annotation_custom_destroy_cleanup:
     762                 :             :  *
     763                 :             :  * Use in tests for bindings with managed memory, to clean up the callback
     764                 :             :  * passed to regress_annotation_custom_destroy().
     765                 :             :  */
     766                 :             : void
     767                 :           1 : regress_annotation_custom_destroy_cleanup (void)
     768                 :             : {
     769         [ +  - ]:           1 :   if (regress_annotation_destroy_notify)
     770                 :           1 :     regress_annotation_destroy_notify(regress_annotation_user_data);
     771                 :           1 : }
     772                 :             : 
     773                 :             : /**
     774                 :             :  * regress_annotation_get_source_file:
     775                 :             :  *
     776                 :             :  * Return value: (type filename) (transfer full): Source file
     777                 :             :  */
     778                 :             : char *
     779                 :           1 : regress_annotation_get_source_file (void)
     780                 :             : {
     781                 :           1 :   return NULL;
     782                 :             : }
     783                 :             : 
     784                 :             : /**
     785                 :             :  * regress_annotation_set_source_file:
     786                 :             :  * @fname: (type filename): Source file
     787                 :             :  *
     788                 :             :  */
     789                 :             : void
     790                 :           1 : regress_annotation_set_source_file (const char *fname G_GNUC_UNUSED)
     791                 :             : {
     792                 :           1 : }
     793                 :             : 
     794                 :             : /**
     795                 :             :  * regress_annotation_ptr_array:
     796                 :             :  * @array: (element-type GObject.Value): the array
     797                 :             :  */
     798                 :             : void
     799                 :           0 : regress_annotation_ptr_array (GPtrArray *array G_GNUC_UNUSED)
     800                 :             : {
     801                 :           0 : }
     802                 :             : 
     803                 :             : /**
     804                 :             :  * regress_annotation_attribute_func:
     805                 :             :  * @object: A #RegressAnnotationObject.
     806                 :             :  * @data: (attributes some.annotation=value another.annotation=blahvalue): Some data.
     807                 :             :  *
     808                 :             :  * Returns: (attributes some.other.annotation=value2 yet.another.annotation=another_value): The return value.
     809                 :             :  */
     810                 :             : gint
     811                 :           1 : regress_annotation_attribute_func (RegressAnnotationObject *object G_GNUC_UNUSED,
     812                 :             :                                    const gchar *data G_GNUC_UNUSED)
     813                 :             : {
     814                 :           1 :   return 42;
     815                 :             : }
     816                 :             : 
     817                 :             : /**
     818                 :             :  * regress_annotation_invalid_regress_annotation:
     819                 :             :  * @foo: some text (e.g. example) or else
     820                 :             :  */
     821                 :             : void
     822                 :           1 : regress_annotation_invalid_regress_annotation (int foo G_GNUC_UNUSED)
     823                 :             : {
     824                 :           1 : }
     825                 :             : 
     826                 :             : char backslash_parsing_tester_2 = '\\';
     827                 :             : 
     828                 :             : /**
     829                 :             :  * regress_annotation_test_parsing_bug630862:
     830                 :             :  *
     831                 :             :  * See https://bugzilla.gnome.org/show_bug.cgi?id=630862
     832                 :             :  *
     833                 :             :  * Returns: (transfer none): An object, note the colon:in here
     834                 :             :  */
     835                 :             : GObject *
     836                 :           1 : regress_annotation_test_parsing_bug630862 (void)
     837                 :             : {
     838                 :           1 :   return NULL;
     839                 :             : }
     840                 :             : 
     841                 :             : /* clang-format off */
     842                 :             : /** 
     843                 :             :  * regress_annotation_space_after_comment_bug631690:
     844                 :             :  *
     845                 :             :  * Explicitly test having a space after the ** here.
     846                 :             :  */
     847                 :             : void
     848                 :           1 : regress_annotation_space_after_comment_bug631690 (void)
     849                 :             : {
     850                 :           1 : }
     851                 :             : /* clang-format on */
     852                 :             : 
     853                 :             : /**
     854                 :             :  * regress_annotation_return_filename:
     855                 :             :  *
     856                 :             :  * Returns: (type filename): An annotated filename
     857                 :             :  */
     858                 :             : gchar *
     859                 :           1 : regress_annotation_return_filename (void)
     860                 :             : {
     861                 :           1 :   return g_strdup ("a utf-8 filename");
     862                 :             : }
     863                 :             : 
     864                 :             : /**
     865                 :             :  * regress_annotation_transfer_floating:
     866                 :             :  * @object: (in) (transfer floating): an object
     867                 :             :  *
     868                 :             :  * Returns: (transfer floating): A floating object
     869                 :             :  */
     870                 :             : GObject *
     871                 :           1 : regress_annotation_transfer_floating (GObject *object G_GNUC_UNUSED)
     872                 :             : {
     873                 :           1 :   return NULL;
     874                 :             : }
        

Generated by: LCOV version 2.0-1