LCOV - code coverage report
Current view: top level - subprojects/gsystemservice-0/libgsystemservice/tests - config-file-resources.c (source / functions) Hit Total Coverage
Test: Code coverage Lines: 8 8 100.0 %
Date: 2022-06-30 20:59:16 Functions: 3 3 100.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : #include <gio/gio.h>
       2                 :            : 
       3                 :            : #if defined (__ELF__) && ( __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 6))
       4                 :            : # define SECTION __attribute__ ((section (".gresource.config_file_resources"), aligned (8)))
       5                 :            : #else
       6                 :            : # define SECTION
       7                 :            : #endif
       8                 :            : 
       9                 :            : static const SECTION union { const guint8 data[445]; const double alignment; void * const ptr;}  config_file_resources_resource_data = {
      10                 :            :   "\107\126\141\162\151\141\156\164\000\000\000\000\000\000\000\000"
      11                 :            :   "\030\000\000\000\344\000\000\000\000\000\000\050\007\000\000\000"
      12                 :            :   "\000\000\000\000\000\000\000\000\001\000\000\000\004\000\000\000"
      13                 :            :   "\005\000\000\000\005\000\000\000\006\000\000\000\113\120\220\013"
      14                 :            :   "\003\000\000\000\344\000\000\000\004\000\114\000\350\000\000\000"
      15                 :            :   "\354\000\000\000\243\056\304\273\004\000\000\000\354\000\000\000"
      16                 :            :   "\030\000\166\000\010\001\000\000\062\001\000\000\023\234\071\242"
      17                 :            :   "\006\000\000\000\062\001\000\000\022\000\114\000\104\001\000\000"
      18                 :            :   "\110\001\000\000\324\265\002\000\377\377\377\377\110\001\000\000"
      19                 :            :   "\001\000\114\000\114\001\000\000\120\001\000\000\130\107\147\076"
      20                 :            :   "\002\000\000\000\120\001\000\000\007\000\114\000\130\001\000\000"
      21                 :            :   "\140\001\000\000\257\371\305\305\004\000\000\000\140\001\000\000"
      22                 :            :   "\020\000\166\000\160\001\000\000\261\001\000\000\260\267\044\060"
      23                 :            :   "\000\000\000\000\261\001\000\000\006\000\114\000\270\001\000\000"
      24                 :            :   "\274\001\000\000\157\162\147\057\006\000\000\000\143\157\156\146"
      25                 :            :   "\151\147\055\164\145\163\164\055\151\156\166\141\154\151\144\056"
      26                 :            :   "\143\157\156\146\000\000\000\000\032\000\000\000\000\000\000\000"
      27                 :            :   "\164\150\151\163\040\145\156\164\040\141\040\166\141\154\151\144"
      28                 :            :   "\040\143\157\156\146\040\146\151\154\145\000\000\050\165\165\141"
      29                 :            :   "\171\051\154\151\142\147\163\171\163\164\145\155\163\145\162\166"
      30                 :            :   "\151\143\145\057\004\000\000\000\057\000\000\000\000\000\000\000"
      31                 :            :   "\143\157\156\146\151\147\057\000\001\000\000\000\005\000\000\000"
      32                 :            :   "\143\157\156\146\151\147\055\164\145\163\164\056\143\157\156\146"
      33                 :            :   "\061\000\000\000\000\000\000\000\133\124\145\163\164\135\012\106"
      34                 :            :   "\151\154\145\075\061\060\060\060\012\106\151\154\145\104\145\146"
      35                 :            :   "\141\165\154\164\075\164\162\165\145\012\012\133\104\145\146\141"
      36                 :            :   "\165\154\164\107\162\157\165\160\135\000\000\050\165\165\141\171"
      37                 :            :   "\051\147\156\157\155\145\057\000\002\000\000\000" };
      38                 :            : 
      39                 :            : static GStaticResource static_resource = { config_file_resources_resource_data.data, sizeof (config_file_resources_resource_data.data) - 1 /* nul terminator */, NULL, NULL, NULL };
      40                 :            : 
      41                 :            : G_GNUC_INTERNAL
      42                 :            : GResource *config_file_resources_get_resource (void);
      43                 :          9 : GResource *config_file_resources_get_resource (void)
      44                 :            : {
      45                 :          9 :   return g_static_resource_get_resource (&static_resource);
      46                 :            : }
      47                 :            : /* GLIB - Library of useful routines for C programming
      48                 :            :  * Copyright (C) 1995-1997  Peter Mattis, Spencer Kimball and Josh MacDonald
      49                 :            :  *
      50                 :            :  * This library is free software; you can redistribute it and/or
      51                 :            :  * modify it under the terms of the GNU Lesser General Public
      52                 :            :  * License as published by the Free Software Foundation; either
      53                 :            :  * version 2.1 of the License, or (at your option) any later version.
      54                 :            :  *
      55                 :            :  * This library is distributed in the hope that it will be useful,
      56                 :            :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      57                 :            :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      58                 :            :  * Lesser General Public License for more details.
      59                 :            :  *
      60                 :            :  * You should have received a copy of the GNU Lesser General Public
      61                 :            :  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
      62                 :            :  */
      63                 :            : 
      64                 :            : /*
      65                 :            :  * Modified by the GLib Team and others 1997-2000.  See the AUTHORS
      66                 :            :  * file for a list of people on the GLib Team.  See the ChangeLog
      67                 :            :  * files for a list of changes.  These files are distributed with
      68                 :            :  * GLib at ftp://ftp.gtk.org/pub/gtk/.
      69                 :            :  */
      70                 :            : 
      71                 :            : #ifndef __G_CONSTRUCTOR_H__
      72                 :            : #define __G_CONSTRUCTOR_H__
      73                 :            : 
      74                 :            : /*
      75                 :            :   If G_HAS_CONSTRUCTORS is true then the compiler support *both* constructors and
      76                 :            :   destructors, in a usable way, including e.g. on library unload. If not you're on
      77                 :            :   your own.
      78                 :            : 
      79                 :            :   Some compilers need #pragma to handle this, which does not work with macros,
      80                 :            :   so the way you need to use this is (for constructors):
      81                 :            : 
      82                 :            :   #ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA
      83                 :            :   #pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(my_constructor)
      84                 :            :   #endif
      85                 :            :   G_DEFINE_CONSTRUCTOR(my_constructor)
      86                 :            :   static void my_constructor(void) {
      87                 :            :    ...
      88                 :            :   }
      89                 :            : 
      90                 :            : */
      91                 :            : 
      92                 :            : #ifndef __GTK_DOC_IGNORE__
      93                 :            : 
      94                 :            : #if  __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
      95                 :            : 
      96                 :            : #define G_HAS_CONSTRUCTORS 1
      97                 :            : 
      98                 :            : #define G_DEFINE_CONSTRUCTOR(_func) static void __attribute__((constructor)) _func (void);
      99                 :            : #define G_DEFINE_DESTRUCTOR(_func) static void __attribute__((destructor)) _func (void);
     100                 :            : 
     101                 :            : #elif defined (_MSC_VER) && (_MSC_VER >= 1500)
     102                 :            : /* Visual studio 2008 and later has _Pragma */
     103                 :            : 
     104                 :            : /*
     105                 :            :  * Only try to include gslist.h if not already included via glib.h,
     106                 :            :  * so that items using gconstructor.h outside of GLib (such as
     107                 :            :  * GResources) continue to build properly.
     108                 :            :  */
     109                 :            : #ifndef __G_LIB_H__
     110                 :            : #include "gslist.h"
     111                 :            : #endif
     112                 :            : 
     113                 :            : #include <stdlib.h>
     114                 :            : 
     115                 :            : #define G_HAS_CONSTRUCTORS 1
     116                 :            : 
     117                 :            : /* We do some weird things to avoid the constructors being optimized
     118                 :            :  * away on VS2015 if WholeProgramOptimization is enabled. First we
     119                 :            :  * make a reference to the array from the wrapper to make sure its
     120                 :            :  * references. Then we use a pragma to make sure the wrapper function
     121                 :            :  * symbol is always included at the link stage. Also, the symbols
     122                 :            :  * need to be extern (but not dllexport), even though they are not
     123                 :            :  * really used from another object file.
     124                 :            :  */
     125                 :            : 
     126                 :            : /* We need to account for differences between the mangling of symbols
     127                 :            :  * for x86 and x64/ARM/ARM64 programs, as symbols on x86 are prefixed
     128                 :            :  * with an underscore but symbols on x64/ARM/ARM64 are not.
     129                 :            :  */
     130                 :            : #ifdef _M_IX86
     131                 :            : #define G_MSVC_SYMBOL_PREFIX "_"
     132                 :            : #else
     133                 :            : #define G_MSVC_SYMBOL_PREFIX ""
     134                 :            : #endif
     135                 :            : 
     136                 :            : #define G_DEFINE_CONSTRUCTOR(_func) G_MSVC_CTOR (_func, G_MSVC_SYMBOL_PREFIX)
     137                 :            : #define G_DEFINE_DESTRUCTOR(_func) G_MSVC_DTOR (_func, G_MSVC_SYMBOL_PREFIX)
     138                 :            : 
     139                 :            : #define G_MSVC_CTOR(_func,_sym_prefix) \
     140                 :            :   static void _func(void); \
     141                 :            :   extern int (* _array ## _func)(void);              \
     142                 :            :   int _func ## _wrapper(void) { _func(); g_slist_find (NULL,  _array ## _func); return 0; } \
     143                 :            :   __pragma(comment(linker,"/include:" _sym_prefix # _func "_wrapper")) \
     144                 :            :   __pragma(section(".CRT$XCU",read)) \
     145                 :            :   __declspec(allocate(".CRT$XCU")) int (* _array ## _func)(void) = _func ## _wrapper;
     146                 :            : 
     147                 :            : #define G_MSVC_DTOR(_func,_sym_prefix) \
     148                 :            :   static void _func(void); \
     149                 :            :   extern int (* _array ## _func)(void);              \
     150                 :            :   int _func ## _constructor(void) { atexit (_func); g_slist_find (NULL,  _array ## _func); return 0; } \
     151                 :            :    __pragma(comment(linker,"/include:" _sym_prefix # _func "_constructor")) \
     152                 :            :   __pragma(section(".CRT$XCU",read)) \
     153                 :            :   __declspec(allocate(".CRT$XCU")) int (* _array ## _func)(void) = _func ## _constructor;
     154                 :            : 
     155                 :            : #elif defined (_MSC_VER)
     156                 :            : 
     157                 :            : #define G_HAS_CONSTRUCTORS 1
     158                 :            : 
     159                 :            : /* Pre Visual studio 2008 must use #pragma section */
     160                 :            : #define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1
     161                 :            : #define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1
     162                 :            : 
     163                 :            : #define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \
     164                 :            :   section(".CRT$XCU",read)
     165                 :            : #define G_DEFINE_CONSTRUCTOR(_func) \
     166                 :            :   static void _func(void); \
     167                 :            :   static int _func ## _wrapper(void) { _func(); return 0; } \
     168                 :            :   __declspec(allocate(".CRT$XCU")) static int (*p)(void) = _func ## _wrapper;
     169                 :            : 
     170                 :            : #define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \
     171                 :            :   section(".CRT$XCU",read)
     172                 :            : #define G_DEFINE_DESTRUCTOR(_func) \
     173                 :            :   static void _func(void); \
     174                 :            :   static int _func ## _constructor(void) { atexit (_func); return 0; } \
     175                 :            :   __declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _constructor;
     176                 :            : 
     177                 :            : #elif defined(__SUNPRO_C)
     178                 :            : 
     179                 :            : /* This is not tested, but i believe it should work, based on:
     180                 :            :  * http://opensource.apple.com/source/OpenSSL098/OpenSSL098-35/src/fips/fips_premain.c
     181                 :            :  */
     182                 :            : 
     183                 :            : #define G_HAS_CONSTRUCTORS 1
     184                 :            : 
     185                 :            : #define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1
     186                 :            : #define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1
     187                 :            : 
     188                 :            : #define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \
     189                 :            :   init(_func)
     190                 :            : #define G_DEFINE_CONSTRUCTOR(_func) \
     191                 :            :   static void _func(void);
     192                 :            : 
     193                 :            : #define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \
     194                 :            :   fini(_func)
     195                 :            : #define G_DEFINE_DESTRUCTOR(_func) \
     196                 :            :   static void _func(void);
     197                 :            : 
     198                 :            : #else
     199                 :            : 
     200                 :            : /* constructors not supported for this compiler */
     201                 :            : 
     202                 :            : #endif
     203                 :            : 
     204                 :            : #endif /* __GTK_DOC_IGNORE__ */
     205                 :            : #endif /* __G_CONSTRUCTOR_H__ */
     206                 :            : 
     207                 :            : #ifdef G_HAS_CONSTRUCTORS
     208                 :            : 
     209                 :            : #ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA
     210                 :            : #pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(config_file_resourcesresource_constructor)
     211                 :            : #endif
     212                 :            : G_DEFINE_CONSTRUCTOR(config_file_resourcesresource_constructor)
     213                 :            : #ifdef G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA
     214                 :            : #pragma G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(config_file_resourcesresource_destructor)
     215                 :            : #endif
     216                 :            : G_DEFINE_DESTRUCTOR(config_file_resourcesresource_destructor)
     217                 :            : 
     218                 :            : #else
     219                 :            : #warning "Constructor not supported on this compiler, linking in resources will not work"
     220                 :            : #endif
     221                 :            : 
     222                 :          1 : static void config_file_resourcesresource_constructor (void)
     223                 :            : {
     224                 :          1 :   g_static_resource_init (&static_resource);
     225                 :          1 : }
     226                 :            : 
     227                 :          1 : static void config_file_resourcesresource_destructor (void)
     228                 :            : {
     229                 :          1 :   g_static_resource_fini (&static_resource);
     230                 :          1 : }

Generated by: LCOV version 1.16