Subject: bug#71421: closed (Re: bug#71421: system info in test-suite.log)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 17 Jun 2024 21:47:02 +0000

Your bug report

#71421: system info in test-suite.log

which was filed against the automake package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
71421: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=71421
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#71421: system info in test-suite.log
From: Karl Berry <[email-masked]>
To: [email-masked], [email-masked], [email-masked]
Date: Mon, 17 Jun 2024 15:46:29 -0600
List-Id: <debbugs-submit.debbugs.gnu.org>

    I've attached a patch that I think handles that 

Thanks Collin. I installed it (with minor wording tweaks).

    and the extra space you mentioned.

I had thought the extra space was useful rather than confusing,
indicating that a word had been omitted from the output. But I'm fine
with leaving it out. -k

-----------------------------------------------------------------------------
test: Improve output of system information in test-suite.log.

Fixes https://bugs.gnu.org/71421.

* lib/am/check.am ($(TEST_SUITE_LOG): Use $(AWK) instead of 'awk'.
Remove an extra space in uname output.  Start the line with
"System information", and other sections with "Distribution
information".
* NEWS: add reference to #71421.
diff --git a/NEWS b/NEWS
index e4699a569..b0268d268 100644
--- a/NEWS
+++ b/NEWS
@@ -46,7 +46,7 @@ New in 1.17:

   - test-suite.log now contains basic system information, and the
     console message about bug reporting on failure has a bit more detail.
-    (bug#68746)
+    (bug#68746, bug#71421)

   - When using the (default) "parallel" test driver, you can now omit the
     output of skipped tests from test-suite.log by defining the
diff --git a/lib/am/check.am b/lib/am/check.am
index 526b445d5..ab1411ac5 100644
--- a/lib/am/check.am
+++ b/lib/am/check.am
@@ -370,14 +370,26 @@ $(TEST_SUITE_LOG): $(TEST_LOGS)
 ## Function to write some basic system info in the log.
 	output_system_information () \
 	{ \
-## Omit the hostname for privacy.  In practice it's a single word?
-          echo;                                    \
-	  (uname -a | awk '{$$2=""; print}') 2>&1; \
-	  if test -r /etc/os-release; then         \
-	    sed 8q /etc/os-release;                \
-	  elif test -r /etc/issue; then            \
-	    cat /etc/issue;                        \
-	  fi;                                      \
+## Omit the hostname for privacy.  Always a single word.
+## Start the line with a label for clarity, and so commands like
+## grep ^Linux don't get a false hit.
+          echo;                                     \
+	  { uname -a | $(AWK) '{                    \
+  printf "System information (uname -a):";          \
+  for (i = 1; i < NF; ++i)                          \
+    {                                               \
+      if (i != 2)                                   \
+        printf " %s", $$i;                          \
+    }                                               \
+  printf "\n";                                      \
+}'; } 2>&1;                                         \
+	  if test -r /etc/os-release; then          \
+	    echo "Distribution information (/etc/os-release):"; \
+	    sed 8q /etc/os-release;                 \
+	  elif test -r /etc/issue; then             \
+	    echo "Distribution information (/etc/issue):";      \
+	    cat /etc/issue;                         \
+	  fi;                                       \
 	}; \
 ##
 ## Function to output the "please report bugs" message.

compile finished at Mon Jun 17 14:44:28 2024

Subject: system info in test-suite.log
From: Bruno Haible <[email-masked]>
To: [email-masked]
Date: Fri, 07 Jun 2024 17:24:13 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

The 1.16.90 NEWS file states:

  - test-suite.log now contains basic system information, and the
    console message about bug reporting on failure has a bit more detail.
    (bug#68746)

1) This system information is the naked output of some OS commands:

          (uname -a | awk '{$$2=""; print}') 2>&1; \
          if test -r /etc/os-release; then         \
            sed 8q /etc/os-release;                \
          elif test -r /etc/issue; then            \
            cat /etc/issue;                        \
          fi;                                      \

In my case:

Linux  5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 GNU/Linux
PRETTY_NAME="Ubuntu 22.04.4 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.4 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"

The problem with this is that
  - It's not immediately clear to everyone what this information is.
  - It can get in the way, for example when I want to search for "Linux"
    among the test logs:
      grep '^Linux' test-suite.log

I would therefore suggest to mark them in some way:

System information: Linux  5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 GNU/Linux
Distribution:
PRETTY_NAME="Ubuntu 22.04.4 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.4 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"

2) The double-space is confusing. It rings a bell immediately.
Can you find a way to omit not only the machine name, but also the space
before it?

3) Btw, one does not need a subshell in order to run a pipe.
Replace
  (uname -a | awk '{$$2=""; print}') 2>&1
with
  { uname -a | awk '{$$2=""; print}'; } 2>&1

Bruno