summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/api/report.md10
-rw-r--r--src/node_report.cc33
-rw-r--r--test/common/report.js3
3 files changed, 36 insertions, 10 deletions
diff --git a/doc/api/report.md b/doc/api/report.md
index cc09999305..66770fcbc9 100644
--- a/doc/api/report.md
+++ b/doc/api/report.md
@@ -39,6 +39,8 @@ is provided below for reference.
"glibcVersionRuntime": "2.17",
"glibcVersionCompiler": "2.17",
"wordSize": "64 bit",
+ "arch": "x64",
+ "platform": "linux",
"componentVersions": {
"node": "12.0.0-pre",
"v8": "7.1.302.28-node.5",
@@ -50,10 +52,10 @@ is provided below for reference.
"napi": "3",
"llhttp": "1.0.1",
"http_parser": "2.8.0",
- "openssl": "1.1.0j",
- "arch": "x64",
- "platform": "linux",
- "release": "node"
+ "openssl": "1.1.0j"
+ },
+ "release": {
+ "name": "node"
},
"osVersion": "Linux 3.10.0-862.el7.x86_64 #1 SMP Wed Mar 21 18:14:51 EDT 2018",
"machine": "Linux 3.10.0-862.el7.x86_64 #1 SMP Wed Mar 21 18:14:51 EDT 2018test_machine x86_64"
diff --git a/src/node_report.cc b/src/node_report.cc
index 381a40e786..08d3642e7a 100644
--- a/src/node_report.cc
+++ b/src/node_report.cc
@@ -86,6 +86,7 @@ static void PrintGCStatistics(JSONWriter* writer, Isolate* isolate);
static void PrintSystemInformation(JSONWriter* writer);
static void PrintLoadedLibraries(JSONWriter* writer);
static void PrintComponentVersions(JSONWriter* writer);
+static void PrintRelease(JSONWriter* writer);
static void LocalTime(TIME_TYPE* tm_struct);
// Global variables
@@ -341,10 +342,15 @@ static void PrintVersionInformation(JSONWriter* writer) {
// Report Process word size
writer->json_keyvalue("wordSize", sizeof(void*) * 8);
+ writer->json_keyvalue("arch", node::per_process::metadata.arch);
+ writer->json_keyvalue("platform", node::per_process::metadata.platform);
// Report deps component versions
PrintComponentVersions(writer);
+ // Report release metadata.
+ PrintRelease(writer);
+
// Report operating system and machine information (Windows)
#ifdef _WIN32
{
@@ -724,12 +730,27 @@ static void PrintComponentVersions(JSONWriter* writer) {
NODE_VERSIONS_KEYS(V)
#undef V
- // Some extra information that is not present in node_metadata.
- writer->json_keyvalue("arch", NODE_ARCH);
- writer->json_keyvalue("platform", NODE_PLATFORM);
- writer->json_keyvalue("release", NODE_RELEASE);
- if (NODE_VERSION_IS_LTS != 0)
- writer->json_keyvalue("lts", NODE_VERSION_LTS_CODENAME);
+ writer->json_objectend();
+}
+
+// Report runtime release information.
+static void PrintRelease(JSONWriter* writer) {
+ writer->json_objectstart("release");
+ writer->json_keyvalue("name", node::per_process::metadata.release.name);
+#if NODE_VERSION_IS_LTS
+ writer->json_keyvalue("lts", node::per_process::metadata.release.lts);
+#endif
+
+#ifdef NODE_HAS_RELEASE_URLS
+ writer->json_keyvalue("headersUrl",
+ node::per_process::metadata.release.headers_url);
+ writer->json_keyvalue("sourceUrl",
+ node::per_process::metadata.release.source_url);
+#ifdef _WIN32
+ writer->json_keyvalue("libUrl", node::per_process::metadata.release.lib_url);
+#endif // _WIN32
+#endif // NODE_HAS_RELEASE_URLS
+
writer->json_objectend();
}
diff --git a/test/common/report.js b/test/common/report.js
index 1a6d9598d3..ee3c1f7203 100644
--- a/test/common/report.js
+++ b/test/common/report.js
@@ -34,6 +34,9 @@ function validateContent(data) {
'libuv', 'environmentVariables', 'sharedObjects'].forEach((section) => {
assert(report.hasOwnProperty(section));
});
+
+ assert.deepStrictEqual(report.header.componentVersions, process.versions);
+ assert.deepStrictEqual(report.header.release, process.release);
}
module.exports = { findReports, validate, validateContent };