#!/bin/sh
# Test runner for the old 'distrib' test
# Copyright (C) 2017-2018 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
. "${srcdir=.}/testsuite/init.sh"; path_prepend_ ./sed
print_ver_ sed
# This is straight out of C News
#
#
# All this does is massage the headers so they look like what news
# software expects. To:, Cc: and Resent-*: headers are masked.
# Reply-To: is turned into references, which is questionable (could
# just as well be dropped.
#
# The From: line is rewritten to use the "address (comments)" form
# instead of "phrase " form our mailer uses. Also, addresses
# with no "@domainname" are assumed to originate locally, and so are
# given a domain.
#
# The Sender: field below reflects the address of the person who
# maintains our mailing lists. The Approved: field is in a special
# form, so that we can do bidirectional gatewaying. Any message
# in a newsgroup that bears this stamp will not be fed into the
# matching mailing list.
cat << \EOF > distrib.sed || framework_failure_
1i\
Path: mailnewsgateway
:a
/^[Rr]eceived:/b r
/^[Nn]ewsgroups:/b r
/^[Pp]ath:/b r
/^[Tt][Oo]:/s/^/Original-/
/^[Cc][Cc]:/s/^/Original-/
/^[Rr][Ee][Ss][Ee][Nn][Tt]-.*/s/^/Original-/
/^[Mm][Ee][Ss][Ss][Aa][Gg][Ee]-[Ii][Dd]:/s/@/.alt.buddha.fat.short.guy@/
s/^[Ii]n-[Rr]eply-[Tt]o:/References:/
/^From:/{
s/<\([^@]*\)>$/<\1@$thissite>/
s/^From:[ ][ ]*\(.*\) *<\(.*\)>$/From: \2 (\1)/
}
s/-[Ii]d:/-ID:/
s/^[Ss][Uu][Bb][Jj][Ee][Cc][Tt]:[ ]*$/Subject: (none)/
s/^\([^:]*:\)[ ]*/\1 /
/^$/{i\
Newsgroups: alt.buddha.short.fat.guy\
Distribution: world\
Sender: news@cygnus.com\
Approved: alt.buddha.short.fat.guy@cygnus.com
b e
}
p
n
b a
:r
s/.*//g
n
/^[ ]/b r
b a
:e
p
n
b e
EOF
# The expected output
cat << \EOF > distrib-exp || framework_failure_
Path: mailnewsgateway
From crash@cygnus.com Wed Mar 8 18: 02:42 1995
From: crash@cygnus.com (Jason Molenda)
Message-ID: <9503090202.AA06931.alt.buddha.fat.short.guy@phydeaux.cygnus.com>
Subject: Note for sed testsuite
Original-To: molenda@msi.umn.edu
Date: Wed, 8 Mar 1995 18:02:24 -0800 (PST)
X-Mailer: ELM [version 2.4 PL23]
Newsgroups: alt.buddha.short.fat.guy
Distribution: world
Sender: news@cygnus.com
Approved: alt.buddha.short.fat.guy@cygnus.com
_Summum Bonum_
All the breath and the bloom of the
year in the bag of one bee:
All the wonder and wealth of the mine in
the heart of one gem:
In the core of one pearl all the shade and the
shine of the sea:
Breath and bloom, shade and shine, -- wonder,
wealth, and -- how far above them --
Truth, thats brighter than gem,
Trust, that's purer than pearl, --
Brightest truth, purest trust in the universe --
all were for me
In the kiss of one girl.
-- Robert Browning
EOF
# NOTE:
# The input has lines wider than 80 characters, and is kept as a separate file.
# location of external test files
dir="$abs_top_srcdir/testsuite"
sed -n -f distrib.sed < "$dir/distrib.inp" > distrib-out || fail=1
remove_cr_inplace distrib-out
compare distrib-exp distrib-out || fail=1
Exit $fail