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

Reply via email to