LCOV - code coverage report
Current view: top level - src/common - link-canary.c (source / functions) Hit Total Coverage
Test: PostgreSQL 13devel Lines: 3 3 100.0 %
Date: 2019-11-22 06:06:53 Functions: 1 1 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*-------------------------------------------------------------------------
       2             :  * link-canary.c
       3             :  *    Detect whether src/common functions came from frontend or backend.
       4             :  *
       5             :  * Copyright (c) 2018-2019, PostgreSQL Global Development Group
       6             :  *
       7             :  * IDENTIFICATION
       8             :  *    src/common/link-canary.c
       9             :  *
      10             :  *-------------------------------------------------------------------------
      11             :  */
      12             : #include "c.h"
      13             : 
      14             : #include "common/link-canary.h"
      15             : 
      16             : /*
      17             :  * This function just reports whether this file was compiled for frontend
      18             :  * or backend environment.  We need this because in some systems, mainly
      19             :  * ELF-based platforms, it is possible for a shlib (such as libpq) loaded
      20             :  * into the backend to call a backend function named XYZ in preference to
      21             :  * the shlib's own function XYZ.  That's bad if the two functions don't
      22             :  * act identically.  This exact situation comes up for many functions in
      23             :  * src/common and src/port, where the same function names exist in both
      24             :  * libpq and the backend but they don't act quite identically.  To verify
      25             :  * that appropriate measures have been taken to prevent incorrect symbol
      26             :  * resolution, libpq should test that this function returns true.
      27             :  */
      28             : bool
      29        7804 : pg_link_canary_is_frontend(void)
      30             : {
      31             : #ifdef FRONTEND
      32        7482 :     return true;
      33             : #else
      34         322 :     return false;
      35             : #endif
      36             : }

Generated by: LCOV version 1.13