GCC Code Coverage Report
Directory: ../ Exec Total Coverage
File: /home/iojs/build/workspace/node-test-commit-linux-coverage/nodes/benchmark/out/../src/node_metadata.h Lines: 3 3 100.0 %
Date: 2019-01-07 12:15:22 Branches: 0 0 - %

Line Branch Exec Source
1
#ifndef SRC_NODE_METADATA_H_
2
#define SRC_NODE_METADATA_H_
3
4
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
6
#include <string>
7
#include "node_version.h"
8
9
namespace node {
10
11
// if this is a release build and no explicit base has been set
12
// substitute the standard release download URL
13
#ifndef NODE_RELEASE_URLBASE
14
#if NODE_VERSION_IS_RELEASE
15
#define NODE_RELEASE_URLBASE "https://nodejs.org/download/release/"
16
#endif  // NODE_VERSION_IS_RELEASE
17
#endif  // NODE_RELEASE_URLBASE
18
19
#if defined(NODE_RELEASE_URLBASE)
20
#define NODE_HAS_RELEASE_URLS
21
#endif
22
23
#define NODE_VERSIONS_KEYS_BASE(V)                                             \
24
  V(node)                                                                      \
25
  V(v8)                                                                        \
26
  V(uv)                                                                        \
27
  V(zlib)                                                                      \
28
  V(brotli)                                                                    \
29
  V(ares)                                                                      \
30
  V(modules)                                                                   \
31
  V(nghttp2)                                                                   \
32
  V(napi)                                                                      \
33
  V(llhttp)                                                                    \
34
  V(http_parser)                                                               \
35
36
#if HAVE_OPENSSL
37
#define NODE_VERSIONS_KEY_CRYPTO(V) V(openssl)
38
#else
39
#define NODE_VERSIONS_KEY_CRYPTO(V)
40
#endif
41
42
#ifdef NODE_HAVE_I18N_SUPPORT
43
#define NODE_VERSIONS_KEY_INTL(V)                                              \
44
  V(cldr)                                                                      \
45
  V(icu)                                                                       \
46
  V(tz)                                                                        \
47
  V(unicode)
48
#else
49
#define NODE_VERSIONS_KEY_INTL(V)
50
#endif  // NODE_HAVE_I18N_SUPPORT
51
52
#define NODE_VERSIONS_KEYS(V)                                                  \
53
  NODE_VERSIONS_KEYS_BASE(V)                                                   \
54
  NODE_VERSIONS_KEY_CRYPTO(V)                                                  \
55
  NODE_VERSIONS_KEY_INTL(V)
56
57
3597
class Metadata {
58
 public:
59
  Metadata();
60
  Metadata(Metadata&) = delete;
61
  Metadata(Metadata&&) = delete;
62
  Metadata operator=(Metadata&) = delete;
63
  Metadata operator=(Metadata&&) = delete;
64
65
3597
  struct Versions {
66
    Versions();
67
68
#ifdef NODE_HAVE_I18N_SUPPORT
69
    // Must be called on the main thread after
70
    // i18n::InitializeICUDirectory()
71
    void InitializeIntlVersions();
72
#endif  // NODE_HAVE_I18N_SUPPORT
73
74
#define V(key) std::string key;
75
    NODE_VERSIONS_KEYS(V)
76
#undef V
77
  };
78
79
3597
  struct Release {
80
    Release();
81
82
    std::string name;
83
#if NODE_VERSION_IS_LTS
84
    std::string lts;
85
#endif  // NODE_VERSION_IS_LTS
86
87
#ifdef NODE_HAS_RELEASE_URLS
88
    std::string source_url;
89
    std::string headers_url;
90
#ifdef _WIN32
91
    std::string lib_url;
92
#endif  // _WIN32
93
#endif  // NODE_HAS_RELEASE_URLS
94
  };
95
96
  Versions versions;
97
  const Release release;
98
  const std::string arch;
99
  const std::string platform;
100
};
101
102
// Per-process global
103
namespace per_process {
104
extern Metadata metadata;
105
extern const char* const llhttp_version;
106
extern const char* const http_parser_version;
107
}
108
109
}  // namespace node
110
111
#endif  // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
112
#endif  // SRC_NODE_METADATA_H_