On Mon, Oct 08, 2012 at 06:07:13PM +0200, Paolo Bonzini wrote:
> You didn't include stream.st and stream.ok. :)
Yeah, had to stop in the middle of turbulances.. and then forgot that
I didn't finish it. The test and test result is attached and your patch
is failing with my testcase.
> - [(s := streams first) atEnd] whileTrue:
> - [streams size = 1 ifTrue: [^nil].
> - lastStart := startPos.
> + "This is somewhat performance-sensitive, so avoid testing for an
> + empty collection."
> + [(s := streams at: 1) atEnd] whileTrue:
> + [lastStart := startPos.
> startPos := startPos + curPos.
> curPos := 0.
> + streams size = 1 ifTrue: [last := streams first. ^nil].
I don't see why it is failing but maybe the test helps.
holger
"======================================================================
|
| Regression tests for Streams
|
|
======================================================================"
"======================================================================
|
| Copyright (C) 2012 Free Software Foundation.
| Written by Holger Hans Peter Freyther.
|
| This file is part of GNU Smalltalk.
|
| GNU Smalltalk 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 2, or (at your option) any later version.
|
| GNU Smalltalk 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
| GNU Smalltalk; see the file COPYING. If not, write to the Free Software
| Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
======================================================================"
Eval [
| concat streamA streamB |
streamA := '123' readStream.
streamB := '456' readStream.
concat := streamA, streamB.
"Should print 123"
concat next printNl.
concat next printNl.
concat next printNl.
(concat copyFrom: 0 to: 2) printNl.
"Should print 45"
concat next printNl.
concat next printNl.
(concat copyFrom: 3 to: 5) printNl.
"Should print 6"
concat next printNl.
concat atEnd printNl.
(concat copyFrom: 3 to: 5) printNl.
concat stream printNl.
]
Execution begins...
$1
$2
$3
'123'
$4
$5
'456'
$6
true
'456'
nil
returned value is nil
_______________________________________________
help-smalltalk mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-smalltalk