summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorGregor Herrmann <gregoa@debian.org>2006-07-08 19:12:46 +0000
committerGregor Herrmann <gregoa@debian.org>2006-07-08 19:12:46 +0000
commit6046da7bb2f7aacf8fe5abe7930a776f77d4d86f (patch)
treed396ccd94bc3e95246ea0730fbee0f9805a4e7f8 /t
[svn-inject] Installing original source of libemail-abstract-perl
Diffstat (limited to 't')
-rw-r--r--t/1.t126
-rw-r--r--t/subclass.t117
2 files changed, 243 insertions, 0 deletions
diff --git a/t/1.t b/t/1.t
new file mode 100644
index 0000000..9e30090
--- /dev/null
+++ b/t/1.t
@@ -0,0 +1,126 @@
+use Test::More "no_plan";
+use_ok("Email::Abstract");
+my $message = do { local $/; <DATA>; };
+
+for my $class (
+ qw(Email::MIME Email::Simple MIME::Entity Mail::Internet Mail::Message)) {
+ eval "require $class"; next if $@;
+ print "# $class\n";
+ my $obj = Email::Abstract->cast($message, $class);
+ isa_ok($obj, $class);
+ like(Email::Abstract->get_header($obj, "Subject"), qr/Re: Defect in XBD lround/, "Subject OK");
+ like(Email::Abstract->get_body($obj), qr/Fred Tydeman/, "Body OK");
+ Email::Abstract->set_header($obj, "Subject", "New Subject");
+ Email::Abstract->set_body($obj, "A completely new body");
+ like(Email::Abstract->as_string($obj),
+ qr/Subject: New Subject.*completely new body$/ms,
+ "Set and stringified");
+}
+
+__DATA__
+From mail-miner-10529@localhost Wed Dec 18 12:07:55 2002
+Received: from mailman.opengroup.org ([192.153.166.9])
+ by deep-dark-truthful-mirror.pad with smtp (Exim 3.36 #1 (Debian))
+ id 18Buh5-0006Zr-00
+ for <posix@simon-cozens.org>; Wed, 13 Nov 2002 10:24:23 +0000
+Received: (qmail 1679 invoked by uid 503); 13 Nov 2002 10:10:49 -0000
+Resent-Date: 13 Nov 2002 10:10:49 -0000
+Date: Wed, 13 Nov 2002 10:06:51 GMT
+From: Andrew Josey <ajosey@rdg.opengroup.org>
+Message-Id: <1021113100650.ZM12997@skye.rdg.opengroup.org>
+In-Reply-To: Joanna Farley's message as of Nov 13, 9:56am.
+References: <200211120937.JAA28130@xoneweb.opengroup.org>
+ <1021112125524.ZM7503@skye.rdg.opengroup.org>
+ <3DD221BB.13116D47@sun.com>
+X-Mailer: Z-Mail (5.0.0 30July97)
+To: austin-group-l@opengroup.org
+Subject: Re: Defect in XBD lround
+MIME-Version: 1.0
+Resent-Message-ID: <gZGK1B.A.uY.iUi09@mailman>
+Resent-To: austin-group-l@opengroup.org
+Resent-From: austin-group-l@opengroup.org
+X-Mailing-List: austin-group-l:archive/latest/4823
+X-Loop: austin-group-l@opengroup.org
+Precedence: list
+X-Spam-Status: No, hits=-1.6 required=5.0
+Resent-Sender: austin-group-l-request@opengroup.org
+Content-Type: text/plain; charset=us-ascii
+
+Joanna, All
+
+Thanks. I got the following response from Fred Tydeman.
+
+C99 Defect Report (DR) 240 covers this. The main body of C99
+(7.12.9.7) says range error, while Annex F (F.9.6.7 and F.9.6.5)
+says "invalid" (domain error). The result was to change 7.12.9.7
+to allow for either range or domain error. The preferred error
+is domain error (so as match Annex F). So, no need to change XBD.
+
+regards
+Andrew
+
+On Nov 13, 9:56am in "Re: Defect in XBD lr", Joanna Farley wrote:
+> Sun's expert in this area after some discussions with a colleague
+> outside of Sun concluded that for lround, to align with both C99 and SUS
+> changes of the following form were necessary:
+>
+> + If x is +/-Inf/NaN, a domain error occurs, and
+> + errno is set to EDOM in MATH_ERRNO mode;
+> + the invalid exception is raised in MATH_ERREXCEPT mode.
+> [to align with C99 Annex F.4]
+>
+> + If x is too large to be represented as a long, a *range* error
+> may occur, and
+> + errno *may be* set to ERANGE in MATH_ERRNO mode;
+> [to align with C99 7.12.9.7]
+> + the invalid exception *is* raised in MATH_ERREXCEPT mode.
+> [to align with C99 Annex F.4]
+>
+> They believe it is a bit awkward to have errno set to ERANGE in
+> MATH_ERRNO mode yet the invalid exception raised in MAH_ERREXCEPT mode,
+> but that just reflects an imperfect mapping of the C notion of errno to
+> the IEEE 754 notion of data conversion.
+>
+> I'll work with our expert to draft text refecting the above to suggest
+> replacement text for lines 23678-23684 on lround page 721 of XSH6.
+>
+> Thanks
+>
+> Joanna
+>
+>
+> Andrew Josey wrote:
+> >
+> > The text referred to is MX shaded and part of the ISO 60559 floating
+> > point option. I do not think changing the Domain Error to a Range Error
+> > is the fix or at least not the fix for the NaN and +-Inf cases. ISO C
+> > 99 describes the range error case if the magnitude of x is too large as a
+> > may fail. I'll ask Fred T for his thoughts on this one...
+> > regards
+> > Andrew
+> >
+> > On Nov 12, 9:37am in "Defect in XBD lround", Erwin.Unruh@fujitsu-siemens.com wrote:
+> > > Defect report from : Erwin Unruh , Fujitsu Siemens Computers
+> > >
+> > > (Please direct followup comments direct to austin-group-l@opengroup.org)
+> > >
+> > > @ page 0 line 0 section lround objection {0}
+> > >
+> > > Problem:
+> > >
+> > > Defect code : 1. Error
+> > >
+> > > The function lround is described in http://www.opengroup.org/onlinepubs/007904975/functions/lround.html
+> > > On Error it is specified that errno has to be set to EDOM. However, the C99 standard ISO/IEC 9899:1999 (E) specifies this as a range error, which would result in a value of ERANGE. So an implementation could not be conformant to both these standards.
+> > >
+> > > Action:
+> > >
+> > > Change the value of errno to ERANGE, if the result is not represantable. More specific: In the description of the function, replace all occurences of "domain error" with "range error" and replace "EDOM" with "ERANGE"
+> > >-- End of excerpt from Erwin.Unruh@fujitsu-siemens.com
+> >
+
+-----
+Andrew Josey The Open Group
+Austin Group Chair Apex Plaza,Forbury Road,
+Email: a.josey@opengroup.org Reading,Berks.RG1 1AX,England
+Tel: +44 118 9508311 ext 2250 Fax: +44 118 9500110
diff --git a/t/subclass.t b/t/subclass.t
new file mode 100644
index 0000000..697bc73
--- /dev/null
+++ b/t/subclass.t
@@ -0,0 +1,117 @@
+package MyMail;
+use base "Email::Simple";
+1;
+
+package main;
+use Test::More tests => 1;
+use Email::Abstract;
+my $message = do { local $/; <DATA>; };
+my $x = MyMail->new($message);
+like (Email::Abstract->as_string($x), qr/Farley's/, "Round trip with subclass");
+
+__DATA__
+Received: from mailman.opengroup.org ([192.153.166.9])
+ by deep-dark-truthful-mirror.pad with smtp (Exim 3.36 #1 (Debian))
+ id 18Buh5-0006Zr-00
+ for <posix@simon-cozens.org>; Wed, 13 Nov 2002 10:24:23 +0000
+Received: (qmail 1679 invoked by uid 503); 13 Nov 2002 10:10:49 -0000
+Resent-Date: 13 Nov 2002 10:10:49 -0000
+Date: Wed, 13 Nov 2002 10:06:51 GMT
+From: Andrew Josey <ajosey@rdg.opengroup.org>
+Message-Id: <1021113100650.ZM12997@skye.rdg.opengroup.org>
+In-Reply-To: Joanna Farley's message as of Nov 13, 9:56am.
+References: <200211120937.JAA28130@xoneweb.opengroup.org>
+ <1021112125524.ZM7503@skye.rdg.opengroup.org>
+ <3DD221BB.13116D47@sun.com>
+X-Mailer: Z-Mail (5.0.0 30July97)
+To: austin-group-l@opengroup.org
+Subject: Re: Defect in XBD lround
+MIME-Version: 1.0
+Resent-Message-ID: <gZGK1B.A.uY.iUi09@mailman>
+Resent-To: austin-group-l@opengroup.org
+Resent-From: austin-group-l@opengroup.org
+X-Mailing-List: austin-group-l:archive/latest/4823
+X-Loop: austin-group-l@opengroup.org
+Precedence: list
+X-Spam-Status: No, hits=-1.6 required=5.0
+Resent-Sender: austin-group-l-request@opengroup.org
+Content-Type: text/plain; charset=us-ascii
+
+Joanna, All
+
+Thanks. I got the following response from Fred Tydeman.
+
+C99 Defect Report (DR) 240 covers this. The main body of C99
+(7.12.9.7) says range error, while Annex F (F.9.6.7 and F.9.6.5)
+says "invalid" (domain error). The result was to change 7.12.9.7
+to allow for either range or domain error. The preferred error
+is domain error (so as match Annex F). So, no need to change XBD.
+
+regards
+Andrew
+
+On Nov 13, 9:56am in "Re: Defect in XBD lr", Joanna Farley wrote:
+> Sun's expert in this area after some discussions with a colleague
+> outside of Sun concluded that for lround, to align with both C99 and SUS
+> changes of the following form were necessary:
+>
+> + If x is +/-Inf/NaN, a domain error occurs, and
+> + errno is set to EDOM in MATH_ERRNO mode;
+> + the invalid exception is raised in MATH_ERREXCEPT mode.
+> [to align with C99 Annex F.4]
+>
+> + If x is too large to be represented as a long, a *range* error
+> may occur, and
+> + errno *may be* set to ERANGE in MATH_ERRNO mode;
+> [to align with C99 7.12.9.7]
+> + the invalid exception *is* raised in MATH_ERREXCEPT mode.
+> [to align with C99 Annex F.4]
+>
+> They believe it is a bit awkward to have errno set to ERANGE in
+> MATH_ERRNO mode yet the invalid exception raised in MAH_ERREXCEPT mode,
+> but that just reflects an imperfect mapping of the C notion of errno to
+> the IEEE 754 notion of data conversion.
+>
+> I'll work with our expert to draft text refecting the above to suggest
+> replacement text for lines 23678-23684 on lround page 721 of XSH6.
+>
+> Thanks
+>
+> Joanna
+>
+>
+> Andrew Josey wrote:
+> >
+> > The text referred to is MX shaded and part of the ISO 60559 floating
+> > point option. I do not think changing the Domain Error to a Range Error
+> > is the fix or at least not the fix for the NaN and +-Inf cases. ISO C
+> > 99 describes the range error case if the magnitude of x is too large as a
+> > may fail. I'll ask Fred T for his thoughts on this one...
+> > regards
+> > Andrew
+> >
+> > On Nov 12, 9:37am in "Defect in XBD lround", Erwin.Unruh@fujitsu-siemens.com wrote:
+> > > Defect report from : Erwin Unruh , Fujitsu Siemens Computers
+> > >
+> > > (Please direct followup comments direct to austin-group-l@opengroup.org)
+> > >
+> > > @ page 0 line 0 section lround objection {0}
+> > >
+> > > Problem:
+> > >
+> > > Defect code : 1. Error
+> > >
+> > > The function lround is described in http://www.opengroup.org/onlinepubs/007904975/functions/lround.html
+> > > On Error it is specified that errno has to be set to EDOM. However, the C99 standard ISO/IEC 9899:1999 (E) specifies this as a range error, which would result in a value of ERANGE. So an implementation could not be conformant to both these standards.
+> > >
+> > > Action:
+> > >
+> > > Change the value of errno to ERANGE, if the result is not represantable. More specific: In the description of the function, replace all occurences of "domain error" with "range error" and replace "EDOM" with "ERANGE"
+> > >-- End of excerpt from Erwin.Unruh@fujitsu-siemens.com
+> >
+
+-----
+Andrew Josey The Open Group
+Austin Group Chair Apex Plaza,Forbury Road,
+Email: a.josey@opengroup.org Reading,Berks.RG1 1AX,England
+Tel: +44 118 9508311 ext 2250 Fax: +44 118 9500110