public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Tom de Vries <tdevries@suse.de>
To: Tom Tromey <tom@tromey.com>
Cc: gdb-patches@sourceware.org, Pedro Alves <palves@redhat.com>
Subject: Re: [committed][gdb/testsuite] Split up multi-exec test-cases
Date: Thu, 14 May 2020 18:28:14 +0200	[thread overview]
Message-ID: <bb73b04d-e0d5-bc87-9243-ae7555ed41af@suse.de> (raw)
In-Reply-To: <878shu4jn0.fsf@tromey.com>

[-- Attachment #1: Type: text/plain, Size: 1485 bytes --]

On 14-05-2020 17:32, Tom Tromey wrote:
>>>>>> "Tom" == Tom de Vries <tdevries@suse.de> writes:
> 
> Tom> Fix this by turning this and similar test-cases into regular, single
> Tom> executable test-cases.
> 
> Tom> This fixes 100+ FAILs with target board native-gdbserver.
> 
> I don't have any issue with splitting, however I wonder...
> 
> Tom> 	* gdb.base/align.exp.in: ...
> 
> ... if we should have a different suffix than ".in".
> To me ".in" normally implies that it's processed by configure or the like.
> 

FWIW, I based this pattern on:
...
$ ls -1  gdb/testsuite/gdb.base/all-architecture*
gdb/testsuite/gdb.base/all-architectures-0.exp
gdb/testsuite/gdb.base/all-architectures-1.exp
gdb/testsuite/gdb.base/all-architectures-2.exp
gdb/testsuite/gdb.base/all-architectures-3.exp
gdb/testsuite/gdb.base/all-architectures-4.exp
gdb/testsuite/gdb.base/all-architectures-5.exp
gdb/testsuite/gdb.base/all-architectures-6.exp
gdb/testsuite/gdb.base/all-architectures-7.exp
gdb/testsuite/gdb.base/all-architectures.exp.in
...

I'm guessing .in was short for include.

> Could we just call these ".tcl" files?  If dejagnu would ignore those,
> then that would work out great.

Testing attached patch, renaming *.exp.in to *.exp.tcl.

That leaves just:
...
$ find gdb/testsuite/gdb.* -type f -name "*.in"
gdb/testsuite/gdb.guile/scm-objfile-script-gdb.in
gdb/testsuite/gdb.python/py-framefilter-invalidarg-gdb.py.in
gdb/testsuite/gdb.python/py-framefilter-gdb.py.in
...

Thanks,
- Tom

[-- Attachment #2: 0001-gdb-testsuite-Rename-.exp.in-to-.exp.tcl.patch --]
[-- Type: text/x-patch, Size: 14914 bytes --]

[gdb/testsuite] Rename *.exp.in to *.exp.tcl

---
 gdb/testsuite/gdb.base/align-c++.exp                                    | 2 +-
 gdb/testsuite/gdb.base/align-c.exp                                      | 2 +-
 gdb/testsuite/gdb.base/{align.exp.in => align.exp.tcl}                  | 0
 gdb/testsuite/gdb.base/all-architectures-0.exp                          | 2 +-
 gdb/testsuite/gdb.base/all-architectures-1.exp                          | 2 +-
 gdb/testsuite/gdb.base/all-architectures-2.exp                          | 2 +-
 gdb/testsuite/gdb.base/all-architectures-3.exp                          | 2 +-
 gdb/testsuite/gdb.base/all-architectures-4.exp                          | 2 +-
 gdb/testsuite/gdb.base/all-architectures-5.exp                          | 2 +-
 gdb/testsuite/gdb.base/all-architectures-6.exp                          | 2 +-
 gdb/testsuite/gdb.base/all-architectures-7.exp                          | 2 +-
 .../gdb.base/{all-architectures.exp.in => all-architectures.exp.tcl}    | 0
 gdb/testsuite/gdb.base/infcall-nested-structs-c++.exp                   | 2 +-
 gdb/testsuite/gdb.base/infcall-nested-structs-c.exp                     | 2 +-
 .../{infcall-nested-structs.exp.in => infcall-nested-structs.exp.tcl}   | 0
 gdb/testsuite/gdb.base/info-types-c++.exp                               | 2 +-
 gdb/testsuite/gdb.base/info-types-c.exp                                 | 2 +-
 gdb/testsuite/gdb.base/{info-types.exp.in => info-types.exp.tcl}        | 0
 gdb/testsuite/gdb.base/max-depth-c++.exp                                | 2 +-
 gdb/testsuite/gdb.base/max-depth-c.exp                                  | 2 +-
 gdb/testsuite/gdb.base/{max-depth.exp.in => max-depth.exp.tcl}          | 0
 gdb/testsuite/gdb.cp/cpexprs-debug-types.exp                            | 2 +-
 gdb/testsuite/gdb.cp/cpexprs.exp                                        | 2 +-
 gdb/testsuite/gdb.cp/{cpexprs.exp.in => cpexprs.exp.tcl}                | 0
 gdb/testsuite/gdb.cp/infcall-nodebug-c++-d0.exp                         | 2 +-
 gdb/testsuite/gdb.cp/infcall-nodebug-c++-d1.exp                         | 2 +-
 gdb/testsuite/gdb.cp/infcall-nodebug-c-d0.exp                           | 2 +-
 gdb/testsuite/gdb.cp/infcall-nodebug-c-d1.exp                           | 2 +-
 .../gdb.cp/{infcall-nodebug.exp.in => infcall-nodebug.exp.tcl}          | 0
 gdb/testsuite/gdb.dwarf2/clang-debug-names-2.exp                        | 2 +-
 gdb/testsuite/gdb.dwarf2/clang-debug-names.exp                          | 2 +-
 .../gdb.dwarf2/{clang-debug-names.exp.in => clang-debug-names.exp.tcl}  | 0
 32 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/gdb/testsuite/gdb.base/align-c++.exp b/gdb/testsuite/gdb.base/align-c++.exp
index 09632d8bfa..6266d11282 100644
--- a/gdb/testsuite/gdb.base/align-c++.exp
+++ b/gdb/testsuite/gdb.base/align-c++.exp
@@ -24,4 +24,4 @@ if { [skip_cplus_tests] || [get_compiler_info "c++"] } {
 }
 set lang c++
 
-source $srcdir/$subdir/align.exp.in
+source $srcdir/$subdir/align.exp.tcl
diff --git a/gdb/testsuite/gdb.base/align-c.exp b/gdb/testsuite/gdb.base/align-c.exp
index d7852f4ea8..d42abc8d38 100644
--- a/gdb/testsuite/gdb.base/align-c.exp
+++ b/gdb/testsuite/gdb.base/align-c.exp
@@ -20,4 +20,4 @@
 
 set lang c
 
-source $srcdir/$subdir/align.exp.in
+source $srcdir/$subdir/align.exp.tcl
diff --git a/gdb/testsuite/gdb.base/align.exp.in b/gdb/testsuite/gdb.base/align.exp.tcl
similarity index 100%
rename from gdb/testsuite/gdb.base/align.exp.in
rename to gdb/testsuite/gdb.base/align.exp.tcl
diff --git a/gdb/testsuite/gdb.base/all-architectures-0.exp b/gdb/testsuite/gdb.base/all-architectures-0.exp
index 767daac9ff..d861c41aff 100644
--- a/gdb/testsuite/gdb.base/all-architectures-0.exp
+++ b/gdb/testsuite/gdb.base/all-architectures-0.exp
@@ -14,4 +14,4 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 set test_slice 0
-source $srcdir/$subdir/all-architectures.exp.in
+source $srcdir/$subdir/all-architectures.exp.tcl
diff --git a/gdb/testsuite/gdb.base/all-architectures-1.exp b/gdb/testsuite/gdb.base/all-architectures-1.exp
index 91aad9dc86..0e6379eea5 100644
--- a/gdb/testsuite/gdb.base/all-architectures-1.exp
+++ b/gdb/testsuite/gdb.base/all-architectures-1.exp
@@ -14,4 +14,4 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 set test_slice 1
-source $srcdir/$subdir/all-architectures.exp.in
+source $srcdir/$subdir/all-architectures.exp.tcl
diff --git a/gdb/testsuite/gdb.base/all-architectures-2.exp b/gdb/testsuite/gdb.base/all-architectures-2.exp
index c24a332bc2..6216d48a7c 100644
--- a/gdb/testsuite/gdb.base/all-architectures-2.exp
+++ b/gdb/testsuite/gdb.base/all-architectures-2.exp
@@ -14,4 +14,4 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 set test_slice 2
-source $srcdir/$subdir/all-architectures.exp.in
+source $srcdir/$subdir/all-architectures.exp.tcl
diff --git a/gdb/testsuite/gdb.base/all-architectures-3.exp b/gdb/testsuite/gdb.base/all-architectures-3.exp
index a88a38b3a9..bd873a9666 100644
--- a/gdb/testsuite/gdb.base/all-architectures-3.exp
+++ b/gdb/testsuite/gdb.base/all-architectures-3.exp
@@ -14,4 +14,4 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 set test_slice 3
-source $srcdir/$subdir/all-architectures.exp.in
+source $srcdir/$subdir/all-architectures.exp.tcl
diff --git a/gdb/testsuite/gdb.base/all-architectures-4.exp b/gdb/testsuite/gdb.base/all-architectures-4.exp
index f6c9fc4cef..17b0160036 100644
--- a/gdb/testsuite/gdb.base/all-architectures-4.exp
+++ b/gdb/testsuite/gdb.base/all-architectures-4.exp
@@ -14,4 +14,4 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 set test_slice 4
-source $srcdir/$subdir/all-architectures.exp.in
+source $srcdir/$subdir/all-architectures.exp.tcl
diff --git a/gdb/testsuite/gdb.base/all-architectures-5.exp b/gdb/testsuite/gdb.base/all-architectures-5.exp
index e84441be4a..613ae6fdf1 100644
--- a/gdb/testsuite/gdb.base/all-architectures-5.exp
+++ b/gdb/testsuite/gdb.base/all-architectures-5.exp
@@ -14,4 +14,4 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 set test_slice 5
-source $srcdir/$subdir/all-architectures.exp.in
+source $srcdir/$subdir/all-architectures.exp.tcl
diff --git a/gdb/testsuite/gdb.base/all-architectures-6.exp b/gdb/testsuite/gdb.base/all-architectures-6.exp
index 702b5237d2..3dceb5e1f8 100644
--- a/gdb/testsuite/gdb.base/all-architectures-6.exp
+++ b/gdb/testsuite/gdb.base/all-architectures-6.exp
@@ -14,4 +14,4 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 set test_slice 6
-source $srcdir/$subdir/all-architectures.exp.in
+source $srcdir/$subdir/all-architectures.exp.tcl
diff --git a/gdb/testsuite/gdb.base/all-architectures-7.exp b/gdb/testsuite/gdb.base/all-architectures-7.exp
index 2d0705b384..ba7640ce44 100644
--- a/gdb/testsuite/gdb.base/all-architectures-7.exp
+++ b/gdb/testsuite/gdb.base/all-architectures-7.exp
@@ -14,4 +14,4 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 set test_slice 7
-source $srcdir/$subdir/all-architectures.exp.in
+source $srcdir/$subdir/all-architectures.exp.tcl
diff --git a/gdb/testsuite/gdb.base/all-architectures.exp.in b/gdb/testsuite/gdb.base/all-architectures.exp.tcl
similarity index 100%
rename from gdb/testsuite/gdb.base/all-architectures.exp.in
rename to gdb/testsuite/gdb.base/all-architectures.exp.tcl
diff --git a/gdb/testsuite/gdb.base/infcall-nested-structs-c++.exp b/gdb/testsuite/gdb.base/infcall-nested-structs-c++.exp
index 9da0621384..4741e0dade 100644
--- a/gdb/testsuite/gdb.base/infcall-nested-structs-c++.exp
+++ b/gdb/testsuite/gdb.base/infcall-nested-structs-c++.exp
@@ -21,4 +21,4 @@ if { [skip_cplus_tests] || [get_compiler_info "c++"] } {
 }
 set lang c++
 
-source $srcdir/$subdir/infcall-nested-structs.exp.in
+source $srcdir/$subdir/infcall-nested-structs.exp.tcl
diff --git a/gdb/testsuite/gdb.base/infcall-nested-structs-c.exp b/gdb/testsuite/gdb.base/infcall-nested-structs-c.exp
index a715c5bd0d..1e876e331a 100644
--- a/gdb/testsuite/gdb.base/infcall-nested-structs-c.exp
+++ b/gdb/testsuite/gdb.base/infcall-nested-structs-c.exp
@@ -17,4 +17,4 @@
 
 set lang {c}
 
-source $srcdir/$subdir/infcall-nested-structs.exp.in
+source $srcdir/$subdir/infcall-nested-structs.exp.tcl
diff --git a/gdb/testsuite/gdb.base/infcall-nested-structs.exp.in b/gdb/testsuite/gdb.base/infcall-nested-structs.exp.tcl
similarity index 100%
rename from gdb/testsuite/gdb.base/infcall-nested-structs.exp.in
rename to gdb/testsuite/gdb.base/infcall-nested-structs.exp.tcl
diff --git a/gdb/testsuite/gdb.base/info-types-c++.exp b/gdb/testsuite/gdb.base/info-types-c++.exp
index 4f44369fe9..587a39f55f 100644
--- a/gdb/testsuite/gdb.base/info-types-c++.exp
+++ b/gdb/testsuite/gdb.base/info-types-c++.exp
@@ -19,4 +19,4 @@ if { [skip_cplus_tests] || [get_compiler_info "c++"] } {
 }
 set lang c++
 
-source $srcdir/$subdir/info-types.exp.in
+source $srcdir/$subdir/info-types.exp.tcl
diff --git a/gdb/testsuite/gdb.base/info-types-c.exp b/gdb/testsuite/gdb.base/info-types-c.exp
index 800d6389a4..0b6e81d5b2 100644
--- a/gdb/testsuite/gdb.base/info-types-c.exp
+++ b/gdb/testsuite/gdb.base/info-types-c.exp
@@ -15,4 +15,4 @@
 
 set lang {c}
 
-source $srcdir/$subdir/info-types.exp.in
+source $srcdir/$subdir/info-types.exp.tcl
diff --git a/gdb/testsuite/gdb.base/info-types.exp.in b/gdb/testsuite/gdb.base/info-types.exp.tcl
similarity index 100%
rename from gdb/testsuite/gdb.base/info-types.exp.in
rename to gdb/testsuite/gdb.base/info-types.exp.tcl
diff --git a/gdb/testsuite/gdb.base/max-depth-c++.exp b/gdb/testsuite/gdb.base/max-depth-c++.exp
index b88b2c118d..9f732d004f 100644
--- a/gdb/testsuite/gdb.base/max-depth-c++.exp
+++ b/gdb/testsuite/gdb.base/max-depth-c++.exp
@@ -19,4 +19,4 @@ if { [skip_cplus_tests] || [get_compiler_info "c++"] } {
 }
 set lang c++
 
-source $srcdir/$subdir/max-depth.exp.in
+source $srcdir/$subdir/max-depth.exp.tcl
diff --git a/gdb/testsuite/gdb.base/max-depth-c.exp b/gdb/testsuite/gdb.base/max-depth-c.exp
index 3bd93098d2..765772087d 100644
--- a/gdb/testsuite/gdb.base/max-depth-c.exp
+++ b/gdb/testsuite/gdb.base/max-depth-c.exp
@@ -15,4 +15,4 @@
 
 set lang {c}
 
-source $srcdir/$subdir/max-depth.exp.in
+source $srcdir/$subdir/max-depth.exp.tcl
diff --git a/gdb/testsuite/gdb.base/max-depth.exp.in b/gdb/testsuite/gdb.base/max-depth.exp.tcl
similarity index 100%
rename from gdb/testsuite/gdb.base/max-depth.exp.in
rename to gdb/testsuite/gdb.base/max-depth.exp.tcl
diff --git a/gdb/testsuite/gdb.cp/cpexprs-debug-types.exp b/gdb/testsuite/gdb.cp/cpexprs-debug-types.exp
index b93f2e8c15..ece7bc9acd 100644
--- a/gdb/testsuite/gdb.cp/cpexprs-debug-types.exp
+++ b/gdb/testsuite/gdb.cp/cpexprs-debug-types.exp
@@ -17,4 +17,4 @@
 
 # Run cpexprs.exp with -fdebug-types-section.
 set flags {additional_flags=-fdebug-types-section}
-source $srcdir/$subdir/cpexprs.exp.in
+source $srcdir/$subdir/cpexprs.exp.tcl
diff --git a/gdb/testsuite/gdb.cp/cpexprs.exp b/gdb/testsuite/gdb.cp/cpexprs.exp
index b16a5ea6e3..62f13a38e8 100644
--- a/gdb/testsuite/gdb.cp/cpexprs.exp
+++ b/gdb/testsuite/gdb.cp/cpexprs.exp
@@ -21,4 +21,4 @@
 
 # Run cpexprs.exp.
 set flags {}
-source $srcdir/$subdir/cpexprs.exp.in
+source $srcdir/$subdir/cpexprs.exp.tcl
diff --git a/gdb/testsuite/gdb.cp/cpexprs.exp.in b/gdb/testsuite/gdb.cp/cpexprs.exp.tcl
similarity index 100%
rename from gdb/testsuite/gdb.cp/cpexprs.exp.in
rename to gdb/testsuite/gdb.cp/cpexprs.exp.tcl
diff --git a/gdb/testsuite/gdb.cp/infcall-nodebug-c++-d0.exp b/gdb/testsuite/gdb.cp/infcall-nodebug-c++-d0.exp
index f06ab08628..806d03b0e2 100644
--- a/gdb/testsuite/gdb.cp/infcall-nodebug-c++-d0.exp
+++ b/gdb/testsuite/gdb.cp/infcall-nodebug-c++-d0.exp
@@ -22,4 +22,4 @@ set lang {c++}
 
 set debug nodebug
 
-source $srcdir/$subdir/infcall-nodebug.exp.in
+source $srcdir/$subdir/infcall-nodebug.exp.tcl
diff --git a/gdb/testsuite/gdb.cp/infcall-nodebug-c++-d1.exp b/gdb/testsuite/gdb.cp/infcall-nodebug-c++-d1.exp
index d9dd14faf9..dfafe52afb 100644
--- a/gdb/testsuite/gdb.cp/infcall-nodebug-c++-d1.exp
+++ b/gdb/testsuite/gdb.cp/infcall-nodebug-c++-d1.exp
@@ -22,4 +22,4 @@ set lang {c++}
 
 set debug debug
 
-source $srcdir/$subdir/infcall-nodebug.exp.in
+source $srcdir/$subdir/infcall-nodebug.exp.tcl
diff --git a/gdb/testsuite/gdb.cp/infcall-nodebug-c-d0.exp b/gdb/testsuite/gdb.cp/infcall-nodebug-c-d0.exp
index cd65dd036a..b74f9333f8 100644
--- a/gdb/testsuite/gdb.cp/infcall-nodebug-c-d0.exp
+++ b/gdb/testsuite/gdb.cp/infcall-nodebug-c-d0.exp
@@ -18,4 +18,4 @@ set lang {c}
 
 set debug nodebug
 
-source $srcdir/$subdir/infcall-nodebug.exp.in
+source $srcdir/$subdir/infcall-nodebug.exp.tcl
diff --git a/gdb/testsuite/gdb.cp/infcall-nodebug-c-d1.exp b/gdb/testsuite/gdb.cp/infcall-nodebug-c-d1.exp
index 4cb26ad3fd..b9d68637ae 100644
--- a/gdb/testsuite/gdb.cp/infcall-nodebug-c-d1.exp
+++ b/gdb/testsuite/gdb.cp/infcall-nodebug-c-d1.exp
@@ -18,4 +18,4 @@ set lang {c}
 
 set debug debug
 
-source $srcdir/$subdir/infcall-nodebug.exp.in
+source $srcdir/$subdir/infcall-nodebug.exp.tcl
diff --git a/gdb/testsuite/gdb.cp/infcall-nodebug.exp.in b/gdb/testsuite/gdb.cp/infcall-nodebug.exp.tcl
similarity index 100%
rename from gdb/testsuite/gdb.cp/infcall-nodebug.exp.in
rename to gdb/testsuite/gdb.cp/infcall-nodebug.exp.tcl
diff --git a/gdb/testsuite/gdb.dwarf2/clang-debug-names-2.exp b/gdb/testsuite/gdb.dwarf2/clang-debug-names-2.exp
index 185dddfc73..43d7801c0d 100644
--- a/gdb/testsuite/gdb.dwarf2/clang-debug-names-2.exp
+++ b/gdb/testsuite/gdb.dwarf2/clang-debug-names-2.exp
@@ -29,7 +29,7 @@ lassign \
     main_start main_length
 
 set asm_file [standard_output_file $srcfile2]
-source $srcdir/$subdir/clang-debug-names.exp.in
+source $srcdir/$subdir/clang-debug-names.exp.tcl
 
 if { [build_executable_from_specs "failed to prepare" ${testfile} "" \
 	  $srcfile "nodebug" $asm_file "nodebug" $srcfile3 "debug"] } {
diff --git a/gdb/testsuite/gdb.dwarf2/clang-debug-names.exp b/gdb/testsuite/gdb.dwarf2/clang-debug-names.exp
index b5af898838..149c1263c9 100644
--- a/gdb/testsuite/gdb.dwarf2/clang-debug-names.exp
+++ b/gdb/testsuite/gdb.dwarf2/clang-debug-names.exp
@@ -26,7 +26,7 @@ lassign [function_range main ${srcdir}/${subdir}/${srcfile}] \
     main_start main_length
 
 set asm_file [standard_output_file $srcfile2]
-source $srcdir/$subdir/clang-debug-names.exp.in
+source $srcdir/$subdir/clang-debug-names.exp.tcl
 
 if { [prepare_for_testing "failed to prepare" ${testfile} \
 	  [list $srcfile $asm_file] {nodebug}] } {
diff --git a/gdb/testsuite/gdb.dwarf2/clang-debug-names.exp.in b/gdb/testsuite/gdb.dwarf2/clang-debug-names.exp.tcl
similarity index 100%
rename from gdb/testsuite/gdb.dwarf2/clang-debug-names.exp.in
rename to gdb/testsuite/gdb.dwarf2/clang-debug-names.exp.tcl

  reply	other threads:[~2020-05-14 16:28 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-14 15:25 Tom de Vries
2020-05-14 15:32 ` Tom Tromey
2020-05-14 16:28   ` Tom de Vries [this message]
2020-05-14 17:14     ` Pedro Alves
2020-05-15 12:51     ` [committed][gdb/testsuite] Rename *.exp.in to *.exp.tcl Tom de Vries
2020-05-14 17:04 ` [committed][gdb/testsuite] Split up multi-exec test-cases Pedro Alves
2020-05-15 14:27   ` Tom de Vries
2020-05-18 14:13   ` Pedro Alves

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bb73b04d-e0d5-bc87-9243-ae7555ed41af@suse.de \
    --to=tdevries@suse.de \
    --cc=gdb-patches@sourceware.org \
    --cc=palves@redhat.com \
    --cc=tom@tromey.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).