--- a/CompressionStreamTest.st Wed Oct 11 14:20:17 2017 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,488 +0,0 @@
-"
- COPYRIGHT (c) 2002 by eXept Software AG
- All Rights Reserved
-
- This software is furnished under a license and may be used
- only in accordance with the terms of that license and with the
- inclusion of the above copyright notice. This software may not
- be provided or otherwise made available to, or used by, any
- other person. No title to or ownership of the software is
- hereby transferred.
-"
-"{ Package: 'stx:goodies/regression' }"
-
-"{ NameSpace: RegressionTests }"
-
-TestCase subclass:#CompressionStreamTest
- instanceVariableNames:''
- classVariableNames:''
- poolDictionaries:''
- category:'tests-Regression-Streams'
-!
-
-!CompressionStreamTest class methodsFor:'documentation'!
-
-copyright
-"
- COPYRIGHT (c) 2002 by eXept Software AG
- All Rights Reserved
-
- This software is furnished under a license and may be used
- only in accordance with the terms of that license and with the
- inclusion of the above copyright notice. This software may not
- be provided or otherwise made available to, or used by, any
- other person. No title to or ownership of the software is
- hereby transferred.
-"
-!
-
-documentation
-"
- extracted testCases from CompressionStream
-"
-! !
-
-!CompressionStreamTest class methodsFor:'tests'!
-
-compress
- "
- self compress
- "
- |fileContents in zip out|
-
- fileContents := 'symbols.stc' asFilename contentsOfEntireFile.
-
- in := fileContents readStream.
- out := FileStream newFileNamed:'YYY.gz'.
- out ifNil:[ ^ self ].
- [
- zip := ZipStream writeOpenOn:out.
-
- [in atEnd] whileFalse:[ |buf|
- buf := in nextAvailable:512.
- buf do:[:n|
- zip nextPut:n
- ]
- ].
- ] ensure:[
- zip notNil ifTrue:[ zip close ].
- out isOpen ifTrue: [ out close ].
- ].
-!
-
-compress:fn
- "
- self compress
- "
- |fileContents in zip out|
-
- fileContents := fn asFilename contentsOfEntireFile.
-
- in := fileContents readStream.
- out := FileStream newFileNamed:'YYY.gz'.
- out ifNil:[ ^ self ].
- [
- zip := ZipStream writeOpenOn:out.
-
- [in atEnd] whileFalse:[ |buf|
- buf := in nextAvailable:512.
- buf do:[:n|
- zip nextPut:n
- ]
- ].
- ] ensure:[
- zip notNil ifTrue:[ zip close ].
- out close.
- ].
-!
-
-testUncompress
- "
- self testUncompress #(521755 686495 false) #(521755 686495 false)
- "
- |stream zipStream contents contentsOfOriginal|
-
- [
- stream := 'YYY.gz' asFilename readStream.
- zipStream := ZipStream readOpenOn:stream.
- contents := zipStream contents.
- ] ensure:[
- zipStream notNil ifTrue:[zipStream close].
- stream notNil ifTrue:[stream close].
- ].
- stream := 'symbols.stc' asFilename readStream.
- contentsOfOriginal := stream contentsOfEntireFile.
- stream close.
- ^ Array with: contents size
- with: contentsOfOriginal size
- with: contents = contentsOfOriginal.
-!
-
-testUncompress: fn
- "
- (self testUncompress: 'symbols.stc') inspect
- "
- |stream zipStream contents contentsOfOriginal|
-
- self compress: fn.
- [
- stream := 'YYY.gz' asFilename readStream.
- zipStream := ZipStream readOpenOn:stream.
- contents := zipStream contents.
- ] ensure:[
- zipStream notNil ifTrue:[zipStream close].
- stream notNil ifTrue:[stream close].
- ].
- stream := fn asFilename readStream.
- contentsOfOriginal := stream contentsOfEntireFile.
- stream close.
- ^ Array with: contents size
- with: contentsOfOriginal size
- with: contents = contentsOfOriginal.
-!
-
-uncompress
- "
- self uncompress
- "
- |stream zipStream contents|
-
- [
- stream := 'YYY.gz' asFilename readStream.
- zipStream := ZipStream readOpenOn:stream.
- contents := zipStream contents.
- ] ensure:[
- zipStream notNil ifTrue:[zipStream close].
- (stream notNil and: [stream isOpen]) ifTrue:[stream close].
- ].
- ^ contents
-! !
-
-!CompressionStreamTest class methodsFor:'ttt'!
-
-compress:fn toFileNamed:aName
- "
- self compress:'symbols.stc' toFileNamed:'YYY'.
- "
- |sourceFile in zip out zipFile|
-
- sourceFile := fn asFilename.
- sourceFile exists ifFalse:[self error].
-
- zipFile := aName asFilename.
- zipFile := zipFile withSuffix:'gz'.
- zipFile exists ifTrue:[ zipFile remove ].
-
- in := sourceFile readStream.
- out := FileStream newFileNamed:zipFile.
-
- [
- in := sourceFile readStream.
- in binary.
- out := FileStream newFileNamed:zipFile.
- out binary.
- zip := ZipStream writeOpenOn:out.
- zip binary.
-
- [in atEnd] whileFalse:[ |buf|
- buf := in nextAvailable:512.
- buf do:[:n|
- zip nextPut:n
- ]
- ].
- ] ensure:[
- zip notNil ifTrue:[ zip close ].
- in notNil ifTrue:[ in close ].
- out notNil ifTrue:[ out close ].
-
- ].
- ^ zipFile
-!
-
-test
-"
-self test
-"
- |zipFile srcFile oldContents newContents s|
-
- srcFile := 'symbols.stc' asFilename.
- zipFile := 'YYY'.
-
- self compress:srcFile toFileNamed:zipFile.
- newContents := self uncompressFileNamed:zipFile.
- oldContents := srcFile binaryContentsOfEntireFile asString.
- newContents := newContents asString.
-
- oldContents keysAndValuesDo:[:i :v|
- s := newContents at:i ifAbsent:nil.
- v = s ifFalse:[
- Transcript showCR:'#ERROR#'.
-self halt.
- ^ self
- ].
- Transcript show:v.
- ].
- self halt.
-!
-
-uncompressFileNamed:aName
- "
- self uncompressFileNamed:'YYY'
- "
- |stream zipFile zipStream outStream c|
-
- zipFile := aName asFilename.
- zipFile := zipFile withSuffix:'gz'.
-
- zipFile exists ifFalse:[ self error ].
-
- [
- stream := zipFile readStream.
- stream binary.
-
- zipStream := ZipStream readOpenOn:stream.
- zipStream binary.
-
- outStream := #[] writeStream.
-
- [ (c := zipStream next) notNil ] whileTrue:[
- outStream nextPut:c
- ].
- ] ensure:[
- zipStream notNil ifTrue:[zipStream close].
- stream notNil ifTrue:[stream close].
- ].
- ^ outStream contents
-! !
-
-!CompressionStreamTest methodsFor:'helpers'!
-
-doTest01:compressionStreamClass
- "
- ZipStream test
- self test01_ZipStream
- "
- |original compressed contents in out zip|
-
- original := 'smalltalk.rc' asFilename contentsOfEntireFile.
-
- in := original readStream.
-
- [ |b|
- out := WriteStream on:(ByteArray new:10).
- zip := compressionStreamClass writeOpenOn:out.
-
- [in atEnd] whileFalse:[
- zip nextPut:in next
- ]
- ] ensure:[ zip notNil ifTrue:[ zip close ] ].
-
- compressed := out contents.
- [ |b|
- zip := compressionStreamClass readOpenOn:(compressed readStream).
- out := String writeStream.
-
- [ (b := zip next) notNil ] whileTrue:[ out nextPut:b ]
-
- ] ensure:[
- zip notNil ifTrue:[ zip close ].
- contents := out contents.
-
- Transcript showCR:(contents size).
- Transcript showCR:(compressed size).
- ].
-
- original = contents ifFalse:[
- self error:'contents differs'.
- ^ self
- ].
- Transcript showCR:'OK'.
-! !
-
-!CompressionStreamTest methodsFor:'tests'!
-
-test01_ZipStream
- "
- ZipStream test
- self test01_ZipStream
- "
- self doTest01:ZipStream
-!
-
-test02_ZipStream
- "
- ZipStream testFile
- "
- |fileContents in zip out gzipCmd|
-
- fileContents := 'smalltalk.rc' asFilename contentsOfEntireFile.
-
- in := fileContents readStream.
- out := FileStream newFileNamed:'YYY.gz'.
- out ifNil:[ ^ self ].
-
- [
- zip := ZipStream writeOpenOn:out.
-
- [in atEnd] whileFalse:[ |buf|
- buf := in nextAvailable:512.
- buf do:[:n|
- zip nextPut:n
- ]
- ].
- ] ensure:[
- zip notNil ifTrue:[ zip close ].
- out close.
- ].
- gzipCmd := 'gzip -dc YYY.gz > YYY; diff YYY smalltalk.rc'.
-
- Transcript showCR:gzipCmd.
- gzipCmd printCR.
-!
-
-test03_ZipStream_testUnixAgainstClass
- "
- CompressionStream doTestUnixAgainstClass
- "
- |stream time file zipCont cmdCont|
-
- file := '/boot/vmlinuz' asFilename.
- file isReadable ifFalse:[^ self error:'not existant'].
-
- time := Time millisecondsToRun:[ |zipStream|
- zipStream := stream := zipCont := nil.
- [
- stream := file readStream.
- zipStream := BZip2Stream readOpenOn:stream.
- zipCont := zipStream contents.
- ] ensure:[
- zipStream notNil ifTrue:[zipStream close].
- stream notNil ifTrue:[stream close].
- ].
- ].
- Transcript showCR:('STX Time : %1 Size: %2' bindWith:time with:(zipCont size)).
-
- time := Time millisecondsToRun:[ |command|
- cmdCont := stream := nil.
- [
- command := 'gunzip < ' , file pathName.
- stream := PipeStream readingFrom:command.
- cmdCont := stream contentsOfEntireFile.
-
- ] ensure:[
- stream notNil ifTrue:[stream close].
- ]
- ].
- Transcript showCR:('UNIX Time : %1 Size: %2' bindWith:time with:(cmdCont size)).
-
- cmdCont = zipCont ifTrue:[ Transcript showCR:'OK' ]
- ifFalse:[ self error:'contents differs' ].
-!
-
-test04_ZipStream_NextN
- "
- CompressionStream doTestNextN
- "
- |stream time file zipCont nxtCont|
-
- file := '/boot/vmlinuz' asFilename.
- file isReadable ifFalse:[^ self error:'not existant'].
-
- time := Time millisecondsToRun:[ |zipStream|
- zipStream := stream := zipCont := nil.
- [
- stream := file readStream.
- zipStream := BZip2Stream readOpenOn:stream.
- zipCont := zipStream contents.
- ] ensure:[
- zipStream notNil ifTrue:[zipStream close].
- stream notNil ifTrue:[stream close].
- ].
- ].
- Transcript showCR:('STX Time : %1 Size: %2' bindWith:time with:(zipCont size)).
-
- time := Time millisecondsToRun:[ |zipStream wstream|
- zipStream := stream := nxtCont := nil.
- [
- stream := file readStream.
- wstream := String writeStream.
- zipStream := BZip2Stream readOpenOn:stream.
-
- [zipStream atEnd] whileFalse:[
- wstream nextPutAll:(zipStream next:117)
- ].
- nxtCont := wstream contents.
- ] ensure:[
- zipStream notNil ifTrue:[zipStream close].
- stream notNil ifTrue:[stream close].
- ].
- ].
- Transcript showCR:('NEXT Time : %1 Size: %2' bindWith:time with:(nxtCont size)).
-
- nxtCont = zipCont ifTrue:[ Transcript showCR:'OK' ]
- ifFalse:[ self error:'contents differs' ].
-!
-
-test04_ZipStream_SkipN
-"
- CompressionStream doTestSkipN
-"
- |stream time file skpCont nxtCont skip|
-
- file := '/boot/vmlinuz' asFilename.
- file isReadable ifFalse:[^ self error:'not existant'].
-
- skip := 6885379.
-
- time := Time millisecondsToRun:[ |zipStream wstream|
- zipStream := stream := nxtCont := nil.
- [
- stream := file readStream.
- wstream := String writeStream.
- zipStream := BZip2Stream readOpenOn:stream.
- skip timesRepeat:[ zipStream next ].
-
- [zipStream atEnd] whileFalse:[
- wstream nextPutAll:(zipStream next:117)
- ].
- nxtCont := wstream contents.
- ] ensure:[
- zipStream notNil ifTrue:[zipStream close].
- stream notNil ifTrue:[stream close].
- ].
- ].
-
- Transcript showCR:('STX Time : %1 Size: %2' bindWith:time with:(nxtCont size)).
-
- time := Time millisecondsToRun:[ |zipStream wstream|
- zipStream := stream := skpCont := nil.
- [
- stream := file readStream.
- wstream := '' writeStream.
- zipStream := BZip2Stream readOpenOn:stream.
- zipStream skip:skip.
- [zipStream atEnd] whileFalse:[
- wstream nextPutAll:(zipStream next:117)
- ].
- skpCont := wstream contents.
- ] ensure:[
- zipStream notNil ifTrue:[zipStream close].
- stream notNil ifTrue:[stream close].
- ].
- ].
- Transcript showCR:('NEXT Time : %1 Size: %2' bindWith:time with:(skpCont size)).
-
- nxtCont = skpCont ifTrue:[ Transcript showCR:'OK' ]
- ifFalse:[ self error:'contents differs' ].
-! !
-
-!CompressionStreamTest class methodsFor:'documentation'!
-
-version
- ^ '$Header$'
-!
-
-version_CVS
- ^ '$Header$'
-! !
-