LCOV - code coverage report
Current view: | top level - Python - frozenmain.c (source / functions) |  |  | Hit | Total | Coverage
Test: | CPython 3.12 LCOV report [commit 5e6661bce9] |  | Lines: | 0 | 33 | 0.0 %
Date: | 2023-03-20 08:15:36 |  | Functions: | 0 | 1 | 0.0 %
|  |  | Branches: | 0 | 22 | 0.0 %

               Branch data     Line data    Source code
           1                 :            : /* Python interpreter main program for frozen scripts */
           2                 :            :
           3                 :            : #include "Python.h"
           4                 :            : #include "pycore_runtime.h"  // _PyRuntime_Initialize()
           5                 :            : #include <locale.h>
           6                 :            :
           7                 :            : #ifdef MS_WINDOWS
           8                 :            : extern void PyWinFreeze_ExeInit(void);
           9                 :            : extern void PyWinFreeze_ExeTerm(void);
          10                 :            : extern int PyInitFrozenExtensions(void);
          11                 :            : #endif
          12                 :            :
          13                 :            : /* Main program */
          14                 :            :
          15                 :            : int
          16                 :          0 : Py_FrozenMain(int argc, char **argv)
          17                 :            : {
          18                 :          0 :     PyStatus status = _PyRuntime_Initialize();
          19         [ #  # ]:          0 :     if (PyStatus_Exception(status)) {
          20                 :          0 :         Py_ExitStatusException(status);
          21                 :            :     }
          22                 :            :
          23                 :            :     PyConfig config;
          24                 :          0 :     PyConfig_InitPythonConfig(&config);
          25                 :            :     // Suppress errors from getpath.c
          26                 :          0 :     config.pathconfig_warnings = 0;
          27                 :            :     // Don't parse command line options like -E
          28                 :          0 :     config.parse_argv = 0;
          29                 :            :
          30                 :          0 :     status = PyConfig_SetBytesArgv(&config, argc, argv);
          31         [ #  # ]:          0 :     if (PyStatus_Exception(status)) {
          32                 :          0 :         PyConfig_Clear(&config);
          33                 :          0 :         Py_ExitStatusException(status);
          34                 :            :     }
          35                 :            :
          36                 :            :     const char *p;
          37                 :          0 :     int inspect = 0;
          38   [ #  #  #  # ]:          0 :     if ((p = Py_GETENV("PYTHONINSPECT")) && *p != '\0') {
          39                 :          0 :         inspect = 1;
          40                 :            :     }
          41                 :            :
          42                 :            : #ifdef MS_WINDOWS
          43                 :            :     PyInitFrozenExtensions();
          44                 :            : #endif /* MS_WINDOWS */
          45                 :            :
          46                 :          0 :     status = Py_InitializeFromConfig(&config);
          47                 :          0 :     PyConfig_Clear(&config);
          48         [ #  # ]:          0 :     if (PyStatus_Exception(status)) {
          49                 :          0 :         Py_ExitStatusException(status);
          50                 :            :     }
          51                 :            :
          52                 :            : #ifdef MS_WINDOWS
          53                 :            :     PyWinFreeze_ExeInit();
          54                 :            : #endif
          55                 :            :
          56         [ #  # ]:          0 :     if (_Py_GetConfig()->verbose) {
          57                 :          0 :         fprintf(stderr, "Python %s\n%s\n",
          58                 :            :                 Py_GetVersion(), Py_GetCopyright());
          59                 :            :     }
          60                 :            :
          61                 :          0 :     int sts = 1;
          62                 :          0 :     int n = PyImport_ImportFrozenModule("__main__");
          63         [ #  # ]:          0 :     if (n == 0) {
          64                 :          0 :         Py_FatalError("the __main__ module is not frozen");
          65                 :            :     }
          66         [ #  # ]:          0 :     if (n < 0) {
          67                 :          0 :         PyErr_Print();
          68                 :          0 :         sts = 1;
          69                 :            :     }
          70                 :            :     else {
          71                 :          0 :         sts = 0;
          72                 :            :     }
          73                 :            :
          74   [ #  #  #  # ]:          0 :     if (inspect && isatty((int)fileno(stdin))) {
          75                 :          0 :         sts = PyRun_AnyFile(stdin, "<stdin>") != 0;
          76                 :            :     }
          77                 :            :
          78                 :            : #ifdef MS_WINDOWS
          79                 :            :     PyWinFreeze_ExeTerm();
          80                 :            : #endif
          81         [ #  # ]:          0 :     if (Py_FinalizeEx() < 0) {
          82                 :          0 :         sts = 120;
          83                 :            :     }
          84                 :          0 :     return sts;
          85                 :            : }

Generated by: LCOV version 1.14