Skip to content

Commit 1007416

Browse files
richardlauaddaleax
authored andcommitted
report: separate release metadata
Report release metadata separately from `componentVersions`. Test `componentVersions` and `release` values in the report. PR-URL: #25826 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
1 parent 704a440 commit 1007416

File tree

3 files changed

+36
-10
lines changed

3 files changed

+36
-10
lines changed

doc/api/report.md

+6-4
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ is provided below for reference.
3939
"glibcVersionRuntime": "2.17",
4040
"glibcVersionCompiler": "2.17",
4141
"wordSize": "64 bit",
42+
"arch": "x64",
43+
"platform": "linux",
4244
"componentVersions": {
4345
"node": "12.0.0-pre",
4446
"v8": "7.1.302.28-node.5",
@@ -50,10 +52,10 @@ is provided below for reference.
5052
"napi": "3",
5153
"llhttp": "1.0.1",
5254
"http_parser": "2.8.0",
53-
"openssl": "1.1.0j",
54-
"arch": "x64",
55-
"platform": "linux",
56-
"release": "node"
55+
"openssl": "1.1.0j"
56+
},
57+
"release": {
58+
"name": "node"
5759
},
5860
"osVersion": "Linux 3.10.0-862.el7.x86_64 #1 SMP Wed Mar 21 18:14:51 EDT 2018",
5961
"machine": "Linux 3.10.0-862.el7.x86_64 #1 SMP Wed Mar 21 18:14:51 EDT 2018test_machine x86_64"

src/node_report.cc

+27-6
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ static void PrintGCStatistics(JSONWriter* writer, Isolate* isolate);
8686
static void PrintSystemInformation(JSONWriter* writer);
8787
static void PrintLoadedLibraries(JSONWriter* writer);
8888
static void PrintComponentVersions(JSONWriter* writer);
89+
static void PrintRelease(JSONWriter* writer);
8990
static void LocalTime(TIME_TYPE* tm_struct);
9091

9192
// Global variables
@@ -341,10 +342,15 @@ static void PrintVersionInformation(JSONWriter* writer) {
341342

342343
// Report Process word size
343344
writer->json_keyvalue("wordSize", sizeof(void*) * 8);
345+
writer->json_keyvalue("arch", node::per_process::metadata.arch);
346+
writer->json_keyvalue("platform", node::per_process::metadata.platform);
344347

345348
// Report deps component versions
346349
PrintComponentVersions(writer);
347350

351+
// Report release metadata.
352+
PrintRelease(writer);
353+
348354
// Report operating system and machine information (Windows)
349355
#ifdef _WIN32
350356
{
@@ -724,12 +730,27 @@ static void PrintComponentVersions(JSONWriter* writer) {
724730
NODE_VERSIONS_KEYS(V)
725731
#undef V
726732

727-
// Some extra information that is not present in node_metadata.
728-
writer->json_keyvalue("arch", NODE_ARCH);
729-
writer->json_keyvalue("platform", NODE_PLATFORM);
730-
writer->json_keyvalue("release", NODE_RELEASE);
731-
if (NODE_VERSION_IS_LTS != 0)
732-
writer->json_keyvalue("lts", NODE_VERSION_LTS_CODENAME);
733+
writer->json_objectend();
734+
}
735+
736+
// Report runtime release information.
737+
static void PrintRelease(JSONWriter* writer) {
738+
writer->json_objectstart("release");
739+
writer->json_keyvalue("name", node::per_process::metadata.release.name);
740+
#if NODE_VERSION_IS_LTS
741+
writer->json_keyvalue("lts", node::per_process::metadata.release.lts);
742+
#endif
743+
744+
#ifdef NODE_HAS_RELEASE_URLS
745+
writer->json_keyvalue("headersUrl",
746+
node::per_process::metadata.release.headers_url);
747+
writer->json_keyvalue("sourceUrl",
748+
node::per_process::metadata.release.source_url);
749+
#ifdef _WIN32
750+
writer->json_keyvalue("libUrl", node::per_process::metadata.release.lib_url);
751+
#endif // _WIN32
752+
#endif // NODE_HAS_RELEASE_URLS
753+
733754
writer->json_objectend();
734755
}
735756

test/common/report.js

+3
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ function validateContent(data) {
3434
'libuv', 'environmentVariables', 'sharedObjects'].forEach((section) => {
3535
assert(report.hasOwnProperty(section));
3636
});
37+
38+
assert.deepStrictEqual(report.header.componentVersions, process.versions);
39+
assert.deepStrictEqual(report.header.release, process.release);
3740
}
3841

3942
module.exports = { findReports, validate, validateContent };

0 commit comments

Comments
 (0)