LCOV - code coverage report
Current view: top level - src/common - config_info.c (source / functions) Hit Total Coverage
Test: PostgreSQL Lines: 105 105 100.0 %
Date: 2017-09-29 13:40:31 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-2017, 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           1 : get_configdata(const char *my_exec_path, size_t *configdata_len)
      34             : {
      35             :     ConfigData *configdata;
      36             :     char        path[MAXPGPATH];
      37             :     char       *lastsep;
      38           1 :     int         i = 0;
      39             : 
      40             :     /* Adjust this to match the number of items filled below */
      41           1 :     *configdata_len = 23;
      42           1 :     configdata = (ConfigData *) palloc(*configdata_len * sizeof(ConfigData));
      43             : 
      44           1 :     configdata[i].name = pstrdup("BINDIR");
      45           1 :     strlcpy(path, my_exec_path, sizeof(path));
      46           1 :     lastsep = strrchr(path, '/');
      47           1 :     if (lastsep)
      48           1 :         *lastsep = '\0';
      49           1 :     cleanup_path(path);
      50           1 :     configdata[i].setting = pstrdup(path);
      51           1 :     i++;
      52             : 
      53           1 :     configdata[i].name = pstrdup("DOCDIR");
      54           1 :     get_doc_path(my_exec_path, path);
      55           1 :     cleanup_path(path);
      56           1 :     configdata[i].setting = pstrdup(path);
      57           1 :     i++;
      58             : 
      59           1 :     configdata[i].name = pstrdup("HTMLDIR");
      60           1 :     get_html_path(my_exec_path, path);
      61           1 :     cleanup_path(path);
      62           1 :     configdata[i].setting = pstrdup(path);
      63           1 :     i++;
      64             : 
      65           1 :     configdata[i].name = pstrdup("INCLUDEDIR");
      66           1 :     get_include_path(my_exec_path, path);
      67           1 :     cleanup_path(path);
      68           1 :     configdata[i].setting = pstrdup(path);
      69           1 :     i++;
      70             : 
      71           1 :     configdata[i].name = pstrdup("PKGINCLUDEDIR");
      72           1 :     get_pkginclude_path(my_exec_path, path);
      73           1 :     cleanup_path(path);
      74           1 :     configdata[i].setting = pstrdup(path);
      75           1 :     i++;
      76             : 
      77           1 :     configdata[i].name = pstrdup("INCLUDEDIR-SERVER");
      78           1 :     get_includeserver_path(my_exec_path, path);
      79           1 :     cleanup_path(path);
      80           1 :     configdata[i].setting = pstrdup(path);
      81           1 :     i++;
      82             : 
      83           1 :     configdata[i].name = pstrdup("LIBDIR");
      84           1 :     get_lib_path(my_exec_path, path);
      85           1 :     cleanup_path(path);
      86           1 :     configdata[i].setting = pstrdup(path);
      87           1 :     i++;
      88             : 
      89           1 :     configdata[i].name = pstrdup("PKGLIBDIR");
      90           1 :     get_pkglib_path(my_exec_path, path);
      91           1 :     cleanup_path(path);
      92           1 :     configdata[i].setting = pstrdup(path);
      93           1 :     i++;
      94             : 
      95           1 :     configdata[i].name = pstrdup("LOCALEDIR");
      96           1 :     get_locale_path(my_exec_path, path);
      97           1 :     cleanup_path(path);
      98           1 :     configdata[i].setting = pstrdup(path);
      99           1 :     i++;
     100             : 
     101           1 :     configdata[i].name = pstrdup("MANDIR");
     102           1 :     get_man_path(my_exec_path, path);
     103           1 :     cleanup_path(path);
     104           1 :     configdata[i].setting = pstrdup(path);
     105           1 :     i++;
     106             : 
     107           1 :     configdata[i].name = pstrdup("SHAREDIR");
     108           1 :     get_share_path(my_exec_path, path);
     109           1 :     cleanup_path(path);
     110           1 :     configdata[i].setting = pstrdup(path);
     111           1 :     i++;
     112             : 
     113           1 :     configdata[i].name = pstrdup("SYSCONFDIR");
     114           1 :     get_etc_path(my_exec_path, path);
     115           1 :     cleanup_path(path);
     116           1 :     configdata[i].setting = pstrdup(path);
     117           1 :     i++;
     118             : 
     119           1 :     configdata[i].name = pstrdup("PGXS");
     120           1 :     get_pkglib_path(my_exec_path, path);
     121           1 :     strlcat(path, "/pgxs/src/makefiles/pgxs.mk", sizeof(path));
     122           1 :     cleanup_path(path);
     123           1 :     configdata[i].setting = pstrdup(path);
     124           1 :     i++;
     125             : 
     126           1 :     configdata[i].name = pstrdup("CONFIGURE");
     127             : #ifdef VAL_CONFIGURE
     128           1 :     configdata[i].setting = pstrdup(VAL_CONFIGURE);
     129             : #else
     130             :     configdata[i].setting = pstrdup(_("not recorded"));
     131             : #endif
     132           1 :     i++;
     133             : 
     134           1 :     configdata[i].name = pstrdup("CC");
     135             : #ifdef VAL_CC
     136           1 :     configdata[i].setting = pstrdup(VAL_CC);
     137             : #else
     138             :     configdata[i].setting = pstrdup(_("not recorded"));
     139             : #endif
     140           1 :     i++;
     141             : 
     142           1 :     configdata[i].name = pstrdup("CPPFLAGS");
     143             : #ifdef VAL_CPPFLAGS
     144           1 :     configdata[i].setting = pstrdup(VAL_CPPFLAGS);
     145             : #else
     146             :     configdata[i].setting = pstrdup(_("not recorded"));
     147             : #endif
     148           1 :     i++;
     149             : 
     150           1 :     configdata[i].name = pstrdup("CFLAGS");
     151             : #ifdef VAL_CFLAGS
     152           1 :     configdata[i].setting = pstrdup(VAL_CFLAGS);
     153             : #else
     154             :     configdata[i].setting = pstrdup(_("not recorded"));
     155             : #endif
     156           1 :     i++;
     157             : 
     158           1 :     configdata[i].name = pstrdup("CFLAGS_SL");
     159             : #ifdef VAL_CFLAGS_SL
     160           1 :     configdata[i].setting = pstrdup(VAL_CFLAGS_SL);
     161             : #else
     162             :     configdata[i].setting = pstrdup(_("not recorded"));
     163             : #endif
     164           1 :     i++;
     165             : 
     166           1 :     configdata[i].name = pstrdup("LDFLAGS");
     167             : #ifdef VAL_LDFLAGS
     168           1 :     configdata[i].setting = pstrdup(VAL_LDFLAGS);
     169             : #else
     170             :     configdata[i].setting = pstrdup(_("not recorded"));
     171             : #endif
     172           1 :     i++;
     173             : 
     174           1 :     configdata[i].name = pstrdup("LDFLAGS_EX");
     175             : #ifdef VAL_LDFLAGS_EX
     176           1 :     configdata[i].setting = pstrdup(VAL_LDFLAGS_EX);
     177             : #else
     178             :     configdata[i].setting = pstrdup(_("not recorded"));
     179             : #endif
     180           1 :     i++;
     181             : 
     182           1 :     configdata[i].name = pstrdup("LDFLAGS_SL");
     183             : #ifdef VAL_LDFLAGS_SL
     184           1 :     configdata[i].setting = pstrdup(VAL_LDFLAGS_SL);
     185             : #else
     186             :     configdata[i].setting = pstrdup(_("not recorded"));
     187             : #endif
     188           1 :     i++;
     189             : 
     190           1 :     configdata[i].name = pstrdup("LIBS");
     191             : #ifdef VAL_LIBS
     192           1 :     configdata[i].setting = pstrdup(VAL_LIBS);
     193             : #else
     194             :     configdata[i].setting = pstrdup(_("not recorded"));
     195             : #endif
     196           1 :     i++;
     197             : 
     198           1 :     configdata[i].name = pstrdup("VERSION");
     199           1 :     configdata[i].setting = pstrdup("PostgreSQL " PG_VERSION);
     200           1 :     i++;
     201             : 
     202           1 :     Assert(i == *configdata_len);
     203             : 
     204           1 :     return configdata;
     205             : }

Generated by: LCOV version 1.11