LCOV - code coverage report
Current view: top level - src/common - config_info.c (source / functions) Hit Total Coverage
Test: PostgreSQL 12beta2 Lines: 104 104 100.0 %
Date: 2019-06-18 07:06:57 Functions: 1 1 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*-------------------------------------------------------------------------
       2             :  *
       3             :  * config_info.c
       4             :  *      Common code for pg_config output
       5             :  *
       6             :  *
       7             :  * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group
       8             :  * Portions Copyright (c) 1994, Regents of the University of California
       9             :  *
      10             :  *
      11             :  * IDENTIFICATION
      12             :  *    src/common/config_info.c
      13             :  *
      14             :  *-------------------------------------------------------------------------
      15             :  */
      16             : 
      17             : #ifndef FRONTEND
      18             : #include "postgres.h"
      19             : #else
      20             : #include "postgres_fe.h"
      21             : #endif
      22             : 
      23             : #include "common/config_info.h"
      24             : 
      25             : 
      26             : /*
      27             :  * get_configdata(const char *my_exec_path, size_t *configdata_len)
      28             :  *
      29             :  * Get configure-time constants. The caller is responsible
      30             :  * for pfreeing the result.
      31             :  */
      32             : ConfigData *
      33          16 : get_configdata(const char *my_exec_path, size_t *configdata_len)
      34             : {
      35             :     ConfigData *configdata;
      36             :     char        path[MAXPGPATH];
      37             :     char       *lastsep;
      38          16 :     int         i = 0;
      39             : 
      40             :     /* Adjust this to match the number of items filled below */
      41          16 :     *configdata_len = 23;
      42          16 :     configdata = (ConfigData *) palloc(*configdata_len * sizeof(ConfigData));
      43             : 
      44          16 :     configdata[i].name = pstrdup("BINDIR");
      45          16 :     strlcpy(path, my_exec_path, sizeof(path));
      46          16 :     lastsep = strrchr(path, '/');
      47          16 :     if (lastsep)
      48          16 :         *lastsep = '\0';
      49          16 :     cleanup_path(path);
      50          16 :     configdata[i].setting = pstrdup(path);
      51          16 :     i++;
      52             : 
      53          16 :     configdata[i].name = pstrdup("DOCDIR");
      54          16 :     get_doc_path(my_exec_path, path);
      55          16 :     cleanup_path(path);
      56          16 :     configdata[i].setting = pstrdup(path);
      57          16 :     i++;
      58             : 
      59          16 :     configdata[i].name = pstrdup("HTMLDIR");
      60          16 :     get_html_path(my_exec_path, path);
      61          16 :     cleanup_path(path);
      62          16 :     configdata[i].setting = pstrdup(path);
      63          16 :     i++;
      64             : 
      65          16 :     configdata[i].name = pstrdup("INCLUDEDIR");
      66          16 :     get_include_path(my_exec_path, path);
      67          16 :     cleanup_path(path);
      68          16 :     configdata[i].setting = pstrdup(path);
      69          16 :     i++;
      70             : 
      71          16 :     configdata[i].name = pstrdup("PKGINCLUDEDIR");
      72          16 :     get_pkginclude_path(my_exec_path, path);
      73          16 :     cleanup_path(path);
      74          16 :     configdata[i].setting = pstrdup(path);
      75          16 :     i++;
      76             : 
      77          16 :     configdata[i].name = pstrdup("INCLUDEDIR-SERVER");
      78          16 :     get_includeserver_path(my_exec_path, path);
      79          16 :     cleanup_path(path);
      80          16 :     configdata[i].setting = pstrdup(path);
      81          16 :     i++;
      82             : 
      83          16 :     configdata[i].name = pstrdup("LIBDIR");
      84          16 :     get_lib_path(my_exec_path, path);
      85          16 :     cleanup_path(path);
      86          16 :     configdata[i].setting = pstrdup(path);
      87          16 :     i++;
      88             : 
      89          16 :     configdata[i].name = pstrdup("PKGLIBDIR");
      90          16 :     get_pkglib_path(my_exec_path, path);
      91          16 :     cleanup_path(path);
      92          16 :     configdata[i].setting = pstrdup(path);
      93          16 :     i++;
      94             : 
      95          16 :     configdata[i].name = pstrdup("LOCALEDIR");
      96          16 :     get_locale_path(my_exec_path, path);
      97          16 :     cleanup_path(path);
      98          16 :     configdata[i].setting = pstrdup(path);
      99          16 :     i++;
     100             : 
     101          16 :     configdata[i].name = pstrdup("MANDIR");
     102          16 :     get_man_path(my_exec_path, path);
     103          16 :     cleanup_path(path);
     104          16 :     configdata[i].setting = pstrdup(path);
     105          16 :     i++;
     106             : 
     107          16 :     configdata[i].name = pstrdup("SHAREDIR");
     108          16 :     get_share_path(my_exec_path, path);
     109          16 :     cleanup_path(path);
     110          16 :     configdata[i].setting = pstrdup(path);
     111          16 :     i++;
     112             : 
     113          16 :     configdata[i].name = pstrdup("SYSCONFDIR");
     114          16 :     get_etc_path(my_exec_path, path);
     115          16 :     cleanup_path(path);
     116          16 :     configdata[i].setting = pstrdup(path);
     117          16 :     i++;
     118             : 
     119          16 :     configdata[i].name = pstrdup("PGXS");
     120          16 :     get_pkglib_path(my_exec_path, path);
     121          16 :     strlcat(path, "/pgxs/src/makefiles/pgxs.mk", sizeof(path));
     122          16 :     cleanup_path(path);
     123          16 :     configdata[i].setting = pstrdup(path);
     124          16 :     i++;
     125             : 
     126          16 :     configdata[i].name = pstrdup("CONFIGURE");
     127             : #ifdef VAL_CONFIGURE
     128          16 :     configdata[i].setting = pstrdup(VAL_CONFIGURE);
     129             : #else
     130             :     configdata[i].setting = pstrdup(_("not recorded"));
     131             : #endif
     132          16 :     i++;
     133             : 
     134          16 :     configdata[i].name = pstrdup("CC");
     135             : #ifdef VAL_CC
     136          16 :     configdata[i].setting = pstrdup(VAL_CC);
     137             : #else
     138             :     configdata[i].setting = pstrdup(_("not recorded"));
     139             : #endif
     140          16 :     i++;
     141             : 
     142          16 :     configdata[i].name = pstrdup("CPPFLAGS");
     143             : #ifdef VAL_CPPFLAGS
     144          16 :     configdata[i].setting = pstrdup(VAL_CPPFLAGS);
     145             : #else
     146             :     configdata[i].setting = pstrdup(_("not recorded"));
     147             : #endif
     148          16 :     i++;
     149             : 
     150          16 :     configdata[i].name = pstrdup("CFLAGS");
     151             : #ifdef VAL_CFLAGS
     152          16 :     configdata[i].setting = pstrdup(VAL_CFLAGS);
     153             : #else
     154             :     configdata[i].setting = pstrdup(_("not recorded"));
     155             : #endif
     156          16 :     i++;
     157             : 
     158          16 :     configdata[i].name = pstrdup("CFLAGS_SL");
     159             : #ifdef VAL_CFLAGS_SL
     160          16 :     configdata[i].setting = pstrdup(VAL_CFLAGS_SL);
     161             : #else
     162             :     configdata[i].setting = pstrdup(_("not recorded"));
     163             : #endif
     164          16 :     i++;
     165             : 
     166          16 :     configdata[i].name = pstrdup("LDFLAGS");
     167             : #ifdef VAL_LDFLAGS
     168          16 :     configdata[i].setting = pstrdup(VAL_LDFLAGS);
     169             : #else
     170             :     configdata[i].setting = pstrdup(_("not recorded"));
     171             : #endif
     172          16 :     i++;
     173             : 
     174          16 :     configdata[i].name = pstrdup("LDFLAGS_EX");
     175             : #ifdef VAL_LDFLAGS_EX
     176          16 :     configdata[i].setting = pstrdup(VAL_LDFLAGS_EX);
     177             : #else
     178             :     configdata[i].setting = pstrdup(_("not recorded"));
     179             : #endif
     180          16 :     i++;
     181             : 
     182          16 :     configdata[i].name = pstrdup("LDFLAGS_SL");
     183             : #ifdef VAL_LDFLAGS_SL
     184          16 :     configdata[i].setting = pstrdup(VAL_LDFLAGS_SL);
     185             : #else
     186             :     configdata[i].setting = pstrdup(_("not recorded"));
     187             : #endif
     188          16 :     i++;
     189             : 
     190          16 :     configdata[i].name = pstrdup("LIBS");
     191             : #ifdef VAL_LIBS
     192          16 :     configdata[i].setting = pstrdup(VAL_LIBS);
     193             : #else
     194             :     configdata[i].setting = pstrdup(_("not recorded"));
     195             : #endif
     196          16 :     i++;
     197             : 
     198          16 :     configdata[i].name = pstrdup("VERSION");
     199          16 :     configdata[i].setting = pstrdup("PostgreSQL " PG_VERSION);
     200          16 :     i++;
     201             : 
     202             :     Assert(i == *configdata_len);
     203             : 
     204          16 :     return configdata;
     205             : }

Generated by: LCOV version 1.13