Hello community, here is the log from the commit of package jzlib for openSUSE:Factory checked in at 2017-06-10 18:33:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/jzlib (Old) and /work/SRC/openSUSE:Factory/.jzlib.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "jzlib" Sat Jun 10 18:33:29 2017 rev:20 rq:502559 version:1.1.3 Changes: -------- --- /work/SRC/openSUSE:Factory/jzlib/jzlib.changes 2014-07-16 16:50:02.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.jzlib.new/jzlib.changes 2017-06-10 18:33:29.351719369 +0200 @@ -1,0 +2,7 @@ +Fri Jun 9 10:39:43 UTC 2017 - [email protected] + +- Version update to 1.1.3: + * Various small fixes in from the github project +- Drop javadoc to bootstrap using gcj + +------------------------------------------------------------------- Old: ---- 1.1.2.tar.gz New: ---- 1.1.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ jzlib.spec ++++++ --- /var/tmp/diff_new_pack.2Xd1he/_old 2017-06-10 18:33:29.975631154 +0200 +++ /var/tmp/diff_new_pack.2Xd1he/_new 2017-06-10 18:33:29.979630588 +0200 @@ -1,7 +1,7 @@ # # spec file for package jzlib # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,20 +17,18 @@ Name: jzlib -Version: 1.1.2 +Version: 1.1.3 Release: 0 Summary: Re-implementation of zlib in pure Java License: BSD-3-Clause Group: Development/Libraries/Java Url: http://www.jcraft.com/jzlib/ -# FIXME: getting HTTP 500 from github atm, downloaded from -# http://pkgs.fedoraproject.org/repo/pkgs/jzlib/1.1.2.tar.gz/f220e253a1edde7394d13d3042978805/1.1.2.tar.gz -#Source0: https://github.com/ymnk/jzlib/archive/1.1.2.tar.gz -Source0: 1.1.2.tar.gz +Source0: https://github.com/ymnk/jzlib/archive/%{version}.tar.gz Source1: %{name}_build.xml BuildRequires: ant >= 1.6 BuildRequires: java-devel BuildRequires: javapackages-tools +Obsoletes: %{name}-javadoc BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildArch: noarch @@ -41,13 +39,6 @@ operating system. The zlib was written by Jean-loup Gailly (compression) and Mark Adler (decompression). -%package javadoc -Summary: Re-implementation of zlib in pure Java -Group: Development/Libraries/Java - -%description javadoc -Javadoc for %{summary}. - %package demo Summary: Re-implementation of zlib in pure Java Group: Development/Libraries/Java @@ -58,8 +49,6 @@ %prep %setup -q cp %{SOURCE1} build.xml -#mkdir src -#mv com src # bnc#500524 # be sure that we don't distribute GPL derived code marked as BSD @@ -68,17 +57,13 @@ %build ant \ -Dant.build.javac.source=1.5 -Dant.build.javac.target=1.5 \ - dist javadoc + dist %install # jar install -Dpm 644 dist/lib/%{name}.jar \ %{buildroot}%{_javadir}/%{name}.jar -# javadoc -install -dm 755 %{buildroot}%{_javadocdir}/%{name} -cp -pr javadoc/* %{buildroot}%{_javadocdir}/%{name} - # examples install -dm 755 %{buildroot}%{_datadir}/%{name}-%{version} cp -pr example/* %{buildroot}%{_datadir}/%{name}-%{version} @@ -88,10 +73,6 @@ %{_javadir}/%{name}.jar %doc LICENSE.txt -%files javadoc -%defattr(0644,root,root,0755) -%doc %{_javadocdir}/%{name} - %files demo %defattr(0644,root,root,0755) %doc %{_datadir}/%{name}-%{version} ++++++ 1.1.2.tar.gz -> 1.1.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jzlib-1.1.2/pom.xml new/jzlib-1.1.3/pom.xml --- old/jzlib-1.1.2/pom.xml 2013-02-20 01:39:41.000000000 +0100 +++ new/jzlib-1.1.3/pom.xml 2013-10-02 03:01:03.000000000 +0200 @@ -5,7 +5,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.jcraft</groupId> <artifactId>jzlib</artifactId> - <version>1.1.2</version> + <version>1.1.3</version> <name>JZlib</name> <description>JZlib is a re-implementation of zlib in pure Java</description> <url>http://www.jcraft.com/jzlib/</url> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jzlib-1.1.2/project/Build.scala new/jzlib-1.1.3/project/Build.scala --- old/jzlib-1.1.2/project/Build.scala 2013-02-20 01:39:41.000000000 +0100 +++ new/jzlib-1.1.3/project/Build.scala 2013-10-02 03:01:03.000000000 +0200 @@ -4,8 +4,8 @@ object BuildSettings { val buildName = "jzlib" val buildOrganization = "JCraft,Inc." - val buildVersion = "1.1.2" - val buildScalaVersion = "2.9.1" + val buildVersion = "1.1.3" + val buildScalaVersion = "2.10.1" val buildSettings = Defaults.defaultSettings ++ Seq ( organization := buildOrganization, @@ -22,20 +22,14 @@ import BuildSettings._ - val scalatest = "org.scalatest" %% "scalatest" % "1.6.1" - val junit = "junit" % "junit" % "4.8" - val junit_interface = "com.novocode" % "junit-interface" % "0.7" + val scalatest = "org.scalatest" % "scalatest_2.10" % "1.9.1" % "test" private val dependencies = Seq ( - scalatest, junit, junit_interface + scalatest ) - private val test_argument = - Tests.Argument( TestFrameworks.JUnit, "-q", "-v" ) - lazy val root = Project( buildName, file("."), settings = buildSettings ) .settings( libraryDependencies ++= dependencies ) - .settings( testOptions in Test += test_argument ) .settings( parallelExecution in Test := false ) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jzlib-1.1.2/project/build.properties new/jzlib-1.1.3/project/build.properties --- old/jzlib-1.1.2/project/build.properties 2013-02-20 01:39:41.000000000 +0100 +++ new/jzlib-1.1.3/project/build.properties 2013-10-02 03:01:03.000000000 +0200 @@ -2,7 +2,7 @@ #Sun Sep 11 12:01:16 JST 2011 project.organization=JCraft,Inc. project.name=JZlib -sbt.version=0.11.1 +sbt.version=0.12.3 project.version=1.1.2 -build.scala.versions=2.9.1 +build.scala.versions=2.10.1 project.initialize=false diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jzlib-1.1.2/src/main/java/com/jcraft/jzlib/Deflate.java new/jzlib-1.1.3/src/main/java/com/jcraft/jzlib/Deflate.java --- old/jzlib-1.1.2/src/main/java/com/jcraft/jzlib/Deflate.java 2013-02-20 01:39:41.000000000 +0100 +++ new/jzlib-1.1.3/src/main/java/com/jcraft/jzlib/Deflate.java 2013-10-02 03:01:03.000000000 +0200 @@ -277,7 +277,7 @@ // Depth of each subtree used as tie breaker for trees of equal frequency byte[] depth=new byte[2*L_CODES+1]; - int l_buf; // index for literals or lengths */ + byte[] l_buf; // index for literals or lengths */ // Size of match buffer for literals/lengths. There are 4 reasons for // limiting lit_bufsize to 64K: @@ -632,7 +632,7 @@ pending_buf[d_buf+last_lit*2] = (byte)(dist>>>8); pending_buf[d_buf+last_lit*2+1] = (byte)dist; - pending_buf[l_buf+last_lit] = (byte)lc; last_lit++; + l_buf[last_lit] = (byte)lc; last_lit++; if (dist == 0) { // lc is the unmatched char @@ -677,7 +677,7 @@ do{ dist=((pending_buf[d_buf+lx*2]<<8)&0xff00)| (pending_buf[d_buf+lx*2+1]&0xff); - lc=(pending_buf[l_buf+lx])&0xff; lx++; + lc=(l_buf[lx])&0xff; lx++; if(dist == 0){ send_code(lc, ltree); // send a literal byte @@ -1381,11 +1381,11 @@ // We overlay pending_buf and d_buf+l_buf. This works since the average // output size for (length,distance) codes is <= 24 bits. - pending_buf = new byte[lit_bufsize*4]; - pending_buf_size = lit_bufsize*4; + pending_buf = new byte[lit_bufsize*3]; + pending_buf_size = lit_bufsize*3; - d_buf = lit_bufsize/2; - l_buf = (1+2)*lit_bufsize; + d_buf = lit_bufsize; + l_buf = new byte[lit_bufsize]; this.level = level; @@ -1422,6 +1422,7 @@ } // Deallocate in reverse order of allocations: pending_buf=null; + l_buf=null; head=null; prev=null; window=null; @@ -1699,6 +1700,8 @@ Deflate dest = (Deflate)super.clone(); dest.pending_buf = dup(dest.pending_buf); + dest.d_buf = dest.d_buf; + dest.l_buf = dup(dest.l_buf); dest.window = dup(dest.window); dest.prev = dup(dest.prev); Binary files old/jzlib-1.1.2/src/test/resources/jzlib.fail.gz and new/jzlib-1.1.3/src/test/resources/jzlib.fail.gz differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jzlib-1.1.2/src/test/scala/Adler32Test.scala new/jzlib-1.1.3/src/test/scala/Adler32Test.scala --- old/jzlib-1.1.2/src/test/scala/Adler32Test.scala 2013-02-20 01:39:41.000000000 +0100 +++ new/jzlib-1.1.3/src/test/scala/Adler32Test.scala 2013-10-02 03:01:03.000000000 +0200 @@ -1,24 +1,24 @@ -/* -*-mode:java; c-basic-offset:2; indent-tabs-mode:nil -*- */ +/* -*-mode:scala; c-basic-offset:2; indent-tabs-mode:nil -*- */ package com.jcraft.jzlib -import org.junit.runner.RunWith -import org.junit.runners.JUnit4 -import org.junit.{Test, Before} -import org.junit.Assert._ -import org.hamcrest.CoreMatchers._ +import org.scalatest._ +import org.scalatest.matchers.ShouldMatchers + import java.util.zip.{Adler32 => juzAdler32} -@RunWith(classOf[JUnit4]) -class Adler32Test { +class Adler32Test extends FlatSpec with BeforeAndAfter with ShouldMatchers { private var adler: Adler32 = _ - @Before - def setUp = { + before { adler = new Adler32 } - @Test - def comat = { + after { + } + + behavior of "Adler32" + + it must "be compatible with java.util.zip.Adler32." in { val buf1 = randombuf(1024) val juza = new juzAdler32 val expected = { @@ -27,11 +27,10 @@ } val actual = getValue(List(buf1)); - assertThat(actual, is(expected)) + actual should equal (expected) } - @Test - def copy = { + it can "copy itself." in { val buf1 = randombuf(1024) val buf2 = randombuf(1024) @@ -47,11 +46,10 @@ val expected = adler1.getValue val actual = adler2.getValue - assertThat(actual, is(expected)) + actual should equal (expected) } - @Test - def combine = { + it can "combine adler values." in { val buf1 = randombuf(1024) val buf2 = randombuf(1024) @@ -62,7 +60,7 @@ val actual = Adler32.combine(adler1, adler2, buf2.length) - assertThat(actual, is(expected)) + actual should equal (expected) } private def getValue(buf:Seq[Array[Byte]]) = synchronized { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jzlib-1.1.2/src/test/scala/DeflateInflateTest.scala new/jzlib-1.1.3/src/test/scala/DeflateInflateTest.scala --- old/jzlib-1.1.2/src/test/scala/DeflateInflateTest.scala 2013-02-20 01:39:41.000000000 +0100 +++ new/jzlib-1.1.3/src/test/scala/DeflateInflateTest.scala 2013-10-02 03:01:03.000000000 +0200 @@ -1,16 +1,12 @@ -/* -*-mode:java; c-basic-offset:2; indent-tabs-mode:nil -*- */ +/* -*-mode:scala; c-basic-offset:2; indent-tabs-mode:nil -*- */ package com.jcraft.jzlib -import org.junit.runner.RunWith -import org.junit.runners.JUnit4 -import org.junit.{Test, Before} -import org.junit.Assert._ -import org.hamcrest.CoreMatchers._ +import org.scalatest._ +import org.scalatest.matchers.ShouldMatchers import JZlib._ -@RunWith(classOf[JUnit4]) -class DeflateInflateTest { +class DeflateInflateTest extends FlatSpec with BeforeAndAfter with ShouldMatchers { val comprLen = 40000 val uncomprLen = comprLen var compr:Array[Byte] = _ @@ -19,8 +15,8 @@ var deflater: Deflater = _ var inflater: Inflater = _ var err: Int = _ - @Before - def setUp = { + + before { compr = new Array[Byte](comprLen) uncompr = new Array[Byte](uncomprLen) @@ -30,68 +26,71 @@ err = Z_OK } - @Test - def large = { + after { + } + + behavior of "Deflter and Inflater" + + it can "deflate and infate data in the large buffer." in { val data = "hello, hello!".getBytes err = deflater.init(Z_BEST_SPEED) - assertThat(err, is(Z_OK)) + err should equal (Z_OK) deflater.setInput(uncompr) deflater.setOutput(compr) err = deflater.deflate(Z_NO_FLUSH) - assertThat(err, is(Z_OK)) + err should equal (Z_OK) - assertThat(deflater.avail_in, is(0)) + deflater.avail_in should equal (0) deflater.params(Z_NO_COMPRESSION, Z_DEFAULT_STRATEGY) deflater.setInput(compr) deflater.avail_in = comprLen/2 err = deflater.deflate(Z_NO_FLUSH) - assertThat(err, is(Z_OK)) + err should equal (Z_OK) deflater.params(Z_BEST_COMPRESSION, Z_FILTERED) deflater.setInput(uncompr) deflater.avail_in = uncomprLen err = deflater.deflate(Z_NO_FLUSH) - assertThat(err, is(Z_OK)) + err should equal (Z_OK) err = deflater.deflate(JZlib.Z_FINISH); - assertThat(err, is(Z_STREAM_END)) + err should equal (Z_STREAM_END) err = deflater.end - assertThat(err, is(Z_OK)) + err should equal (Z_OK) inflater.setInput(compr) err = inflater.init - assertThat(err, is(Z_OK)) + err should equal (Z_OK) var loop = true while(loop) { inflater.setOutput(uncompr) err = inflater.inflate(Z_NO_FLUSH) if(err == Z_STREAM_END) loop = false - else assertThat(err, is(Z_OK)) + else err should equal (Z_OK) } err = inflater.end - assertThat(err, is(Z_OK)) + err should equal (Z_OK) val total_out = inflater.total_out.asInstanceOf[Int] - assertThat(total_out, is(2*uncomprLen + comprLen/2)) + total_out should equal (2*uncomprLen + comprLen/2) } - @Test - def small_buffers = { + it can "deflate and infate data in the small buffer." in { val data = "hello, hello!".getBytes err = deflater.init(Z_DEFAULT_COMPRESSION) - assertThat(err, is(Z_OK)) + err should equal (Z_OK) deflater.setInput(data) deflater.setOutput(compr) @@ -101,7 +100,7 @@ deflater.avail_in = 1 deflater.avail_out = 1 err = deflater.deflate(Z_NO_FLUSH) - assertThat(err, is(Z_OK)) + err should equal (Z_OK) } do { @@ -111,13 +110,13 @@ while(err != Z_STREAM_END); err = deflater.end - assertThat(err, is(Z_OK)) + err should equal (Z_OK) inflater.setInput(compr) inflater.setOutput(uncompr) err = inflater.init - assertThat(err, is(Z_OK)) + err should equal (Z_OK) var loop = true while(inflater.total_out<uncomprLen && @@ -127,29 +126,28 @@ inflater.avail_out = 1; // force small buffers err = inflater.inflate(Z_NO_FLUSH) if(err == Z_STREAM_END) loop = false - else assertThat(err, is(Z_OK)) + else err should equal (Z_OK) } err = inflater.end - assertThat(err, is(Z_OK)) + err should equal (Z_OK) val total_out = inflater.total_out.asInstanceOf[Int] val actual = new Array[Byte](total_out) System.arraycopy(uncompr, 0, actual, 0, total_out) - assertThat(actual, is(data)) + actual should equal (data) } - @Test - def dictionary = { + it should "support the dictionary." in { val hello = "hello".getBytes val dictionary = "hello, hello!".getBytes err = deflater.init(Z_DEFAULT_COMPRESSION) - assertThat(err, is(Z_OK)) + err should equal (Z_OK) deflater.setDictionary(dictionary, dictionary.length) - assertThat(err, is(Z_OK)) + err should equal (Z_OK) val dictID = deflater.getAdler @@ -157,13 +155,13 @@ deflater.setOutput(compr) err = deflater.deflate(Z_FINISH) - assertThat(err, is(Z_STREAM_END)) + err should equal (Z_STREAM_END) err = deflater.end - assertThat(err, is(Z_OK)) + err should equal (Z_OK) err = inflater.init - assertThat(err, is(Z_OK)) + err should equal (Z_OK) inflater.setInput(compr) inflater.setOutput(uncompr) @@ -175,51 +173,50 @@ case Z_STREAM_END => loop = false case Z_NEED_DICT => - assertThat(dictID, is(inflater.getAdler)) + dictID should equal (inflater.getAdler) err = inflater.setDictionary(dictionary, dictionary.length); - assertThat(err, is(Z_OK)) + err should equal (Z_OK) case _ => - assertThat(err, is(Z_OK)) + err should equal (Z_OK) } } while(loop) err = inflater.end - assertThat(err, is(Z_OK)) + err should equal (Z_OK) val total_out = inflater.total_out.asInstanceOf[Int] val actual = new Array[Byte](total_out) System.arraycopy(uncompr, 0, actual, 0, total_out) - assertThat(actual, is(hello)) + actual should equal (hello) } - @Test - def sync = { + it should "support the sync." in { val hello = "hello".getBytes err = deflater.init(Z_DEFAULT_COMPRESSION) - assertThat(err, is(Z_OK)) + err should equal (Z_OK) deflater.setInput(hello) deflater.avail_in = 3; deflater.setOutput(compr) err = deflater.deflate(Z_FULL_FLUSH) - assertThat(err, is(Z_OK)) + err should equal (Z_OK) compr(3) = (compr(3) + 1).asInstanceOf[Byte] deflater.avail_in = hello.length - 3; err = deflater.deflate(Z_FINISH) - assertThat(err, is(Z_STREAM_END)) + err should equal (Z_STREAM_END) val comprLen= deflater.total_out.asInstanceOf[Int] err = deflater.end - assertThat(err, is(Z_OK)) + err should equal (Z_OK) err = inflater.init - assertThat(err, is(Z_OK)) + err should equal (Z_OK) inflater.setInput(compr) inflater.avail_in = 2 @@ -227,26 +224,27 @@ inflater.setOutput(uncompr) err = inflater.inflate(JZlib.Z_NO_FLUSH) - assertThat(err, is(Z_OK)) + err should equal (Z_OK) inflater.avail_in = comprLen-2 err = inflater.sync err = inflater.inflate(Z_FINISH) - assertThat(err, is(Z_DATA_ERROR)) + err should equal (Z_DATA_ERROR) err = inflater.end - assertThat(err, is(Z_OK)) + err should equal (Z_OK) val total_out = inflater.total_out.asInstanceOf[Int] val actual = new Array[Byte](total_out) System.arraycopy(uncompr, 0, actual, 0, total_out) - assertThat("hel"+new String(actual), is(new String(hello))) + "hel"+new String(actual) should equal (new String(hello)) } - @Test - def gzip_inflater = { + behavior of "Inflater" + + it can "inflate gzip data." in { val hello = "foo".getBytes val data = List(0x1f, 0x8b, 0x08, 0x18, 0x08, 0xeb, 0x7a, 0x0b, 0x00, 0x0b, 0x58, 0x00, 0x59, 0x00, 0x4b, 0xcb, 0xcf, 0x07, 0x00, 0x21, @@ -255,7 +253,7 @@ toArray err = inflater.init(15 + 32) - assertThat(err, is(Z_OK)) + err should equal (Z_OK) inflater.setInput(data) inflater.setOutput(uncompr) @@ -268,25 +266,26 @@ loop) { err = inflater.inflate(Z_NO_FLUSH) if(err == Z_STREAM_END) loop = false - else assertThat(err, is(Z_OK)) + else err should equal (Z_OK) } err = inflater.end - assertThat(err, is(Z_OK)) + err should equal (Z_OK) val total_out = inflater.total_out.asInstanceOf[Int] val actual = new Array[Byte](total_out) System.arraycopy(uncompr, 0, actual, 0, total_out) - assertThat(actual, is(hello)) + actual should equal (hello) } - @Test - def gzip_deflate_inflate = { + behavior of "Inflater and Deflater" + + it can "support gzip data." in { val data = "hello, hello!".getBytes err = deflater.init(Z_DEFAULT_COMPRESSION, 15+16) - assertThat(err, is(Z_OK)) + err should equal (Z_OK) deflater.setInput(data) deflater.setOutput(compr) @@ -296,7 +295,7 @@ deflater.avail_in = 1 deflater.avail_out = 1 err = deflater.deflate(Z_NO_FLUSH) - assertThat(err, is(Z_OK)) + err should equal (Z_OK) } do { @@ -306,13 +305,13 @@ while(err != Z_STREAM_END); err = deflater.end - assertThat(err, is(Z_OK)) + err should equal (Z_OK) inflater.setInput(compr) inflater.setOutput(uncompr) err = inflater.init(15 + 32) - assertThat(err, is(Z_OK)) + err should equal (Z_OK) var loop = true while(inflater.total_out<uncomprLen && @@ -322,16 +321,16 @@ inflater.avail_out = 1; // force small buffers err = inflater.inflate(Z_NO_FLUSH) if(err == Z_STREAM_END) loop = false - else assertThat(err, is(Z_OK)) + else err should equal (Z_OK) } err = inflater.end - assertThat(err, is(Z_OK)) + err should equal (Z_OK) val total_out = inflater.total_out.asInstanceOf[Int] val actual = new Array[Byte](total_out) System.arraycopy(uncompr, 0, actual, 0, total_out) - assertThat(actual, is(data)) + actual should equal (data) } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jzlib-1.1.2/src/test/scala/DeflaterInflaterStreamTest.scala new/jzlib-1.1.3/src/test/scala/DeflaterInflaterStreamTest.scala --- old/jzlib-1.1.2/src/test/scala/DeflaterInflaterStreamTest.scala 2013-02-20 01:39:41.000000000 +0100 +++ new/jzlib-1.1.3/src/test/scala/DeflaterInflaterStreamTest.scala 2013-10-02 03:01:03.000000000 +0200 @@ -1,25 +1,24 @@ -/* -*-mode:java; c-basic-offset:2; indent-tabs-mode:nil -*- */ +/* -*-mode:scala; c-basic-offset:2; indent-tabs-mode:nil -*- */ package com.jcraft.jzlib -import org.junit.runner.RunWith -import org.junit.runners.JUnit4 -import org.junit.{Test, Before} -import org.junit.Assert._ -import org.hamcrest.CoreMatchers._ +import org.scalatest._ +import org.scalatest.matchers.ShouldMatchers import java.io.{ByteArrayOutputStream => BAOS, ByteArrayInputStream => BAIS} import JZlib._ -@RunWith(classOf[JUnit4]) -class DeflaterInflaterStreamTest { +class DeflaterInflaterStreamTest extends FlatSpec with BeforeAndAfter with ShouldMatchers { - @Before - def setUp = { + before { } - @Test - def one_by_one = { + after { + } + + behavior of "Deflter and Inflater" + + it can "deflate and infate data one by one." in { val data1 = randombuf(1024) implicit val buf = new Array[Byte](1) @@ -32,12 +31,13 @@ new InflaterInputStream(new BAIS(baos.toByteArray)) -> baos2 val data2 = baos2.toByteArray - assertThat(data2.length, is(data1.length)) - assertThat(data2, is(data1)) + data2.length should equal (data1.length) + data2 should equal (data1) } - @Test - def read_write_with_buf = { + behavior of "DeflterOutputStream and InflaterInputStream" + + it can "deflate and infate." in { (1 to 100 by 3).foreach { i => @@ -54,13 +54,14 @@ new InflaterInputStream(new BAIS(baos.toByteArray)) -> baos2 val data2 = baos2.toByteArray - assertThat(data2.length, is(data1.length)) - assertThat(data2, is(data1)) + data2.length should equal (data1.length) + data2 should equal (data1) } } - @Test - def read_write_with_buf_nowrap = { + behavior of "Deflter and Inflater" + + it can "deflate and infate nowrap data." in { (1 to 100 by 3).foreach { i => @@ -81,13 +82,12 @@ new InflaterInputStream(new BAIS(baos.toByteArray), inflater) -> baos2 val data2 = baos2.toByteArray - assertThat(data2.length, is(data1.length)) - assertThat(data2, is(data1)) + data2.length should equal (data1.length) + data2 should equal (data1) } } - @Test - def read_write_with_nowrap = { + it can "deflate and infate nowrap data with MAX_WBITS." in { implicit val buf = new Array[Byte](100) List(randombuf(10240), @@ -108,8 +108,8 @@ new InflaterInputStream(new BAIS(baos.toByteArray), inflater) -> baos2 val data2 = baos2.toByteArray - assertThat(data2.length, is(data1.length)) - assertThat(data2, is(data1)) + data2.length should equal (data1.length) + data2 should equal (data1) } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jzlib-1.1.2/src/test/scala/GZIPIOStreamTest.scala new/jzlib-1.1.3/src/test/scala/GZIPIOStreamTest.scala --- old/jzlib-1.1.2/src/test/scala/GZIPIOStreamTest.scala 2013-02-20 01:39:41.000000000 +0100 +++ new/jzlib-1.1.3/src/test/scala/GZIPIOStreamTest.scala 2013-10-02 03:01:03.000000000 +0200 @@ -1,25 +1,28 @@ -/* -*-mode:java; c-basic-offset:2; indent-tabs-mode:nil -*- */ +/* -*-mode:scala; c-basic-offset:2; indent-tabs-mode:nil -*- */ package com.jcraft.jzlib -import org.junit.runner.RunWith -import org.junit.runners.JUnit4 -import org.junit.{Test, Before} -import org.junit.Assert._ -import org.hamcrest.CoreMatchers._ +import org.scalatest._ +import org.scalatest.matchers.ShouldMatchers import java.io._ +import java.util.zip.CheckedOutputStream +import java.util.zip.CheckedInputStream +import java.util.zip.{GZIPInputStream => juzGZIPInputStream} +import java.util.zip.{CRC32 => juzCRC32} import JZlib._ -@RunWith(classOf[JUnit4]) -class GZIPIOStreamTest { +class GZIPIOStreamTest extends FlatSpec with BeforeAndAfter with ShouldMatchers { - @Before - def setUp = { + before { } - @Test - def outstream = { + after { + } + + behavior of "GZIPOutputStream and GZIPInputStream" + + it can "deflate and infate data." in { val comment = "hi" val name = "/tmp/foo" @@ -41,17 +44,47 @@ val buf = new Array[Byte](1024) val i = gis.read(buf) - assertThat(content.length, is(i)) + content.length should equal(i) (0 until i) foreach { i => - assertThat(content(i).asInstanceOf[Byte], is(buf(i).asInstanceOf[Byte])) + content(i).asInstanceOf[Byte] should equal(buf(i).asInstanceOf[Byte]) } - assertThat(comment, is(gis.getComment)) - assertThat(name, is(gis.getName)) + comment should equal(gis.getComment) + name should equal(gis.getName) val crc32 = new CRC32 crc32.update(content, 0, content.length) - assertThat(crc32.getValue, is(gis.getCRC.asInstanceOf[Long])) + crc32.getValue should equal(gis.getCRC.asInstanceOf[Long]) + } + + behavior of "GZIPOutputStream" + + // https://github.com/ymnk/jzlib/issues/9 + // https://github.com/jglick/jzlib-9-demo + it can "deflate some file without AIOOBE." in { + val pos = new PipedOutputStream() + val pis = new PipedInputStream(pos) + val csOut = new juzCRC32() + val gos = new GZIPOutputStream(pos) + val cos = new CheckedOutputStream(gos, csOut) + + val t = new Thread() { + override def run = { + val fail = "/jzlib.fail.gz".fromResource + val fis = new juzGZIPInputStream(new ByteArrayInputStream(fail)) + fis -> cos + cos.close() + } + } + t.start(); + + val gis = new GZIPInputStream(pis) + val csIn = new juzCRC32(); + new CheckedInputStream(gis, csIn) -> new ByteArrayOutputStream() + + t.join() + + csIn.getValue() should equal(csOut.getValue) } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jzlib-1.1.2/src/test/scala/WrapperTypeTest.scala new/jzlib-1.1.3/src/test/scala/WrapperTypeTest.scala --- old/jzlib-1.1.2/src/test/scala/WrapperTypeTest.scala 2013-02-20 01:39:41.000000000 +0100 +++ new/jzlib-1.1.3/src/test/scala/WrapperTypeTest.scala 2013-10-02 03:01:03.000000000 +0200 @@ -1,17 +1,14 @@ -/* -*-mode:java; c-basic-offset:2; indent-tabs-mode:nil -*- */ +/* -*-mode:scala; c-basic-offset:2; indent-tabs-mode:nil -*- */ package com.jcraft.jzlib -import org.junit.runner.RunWith -import org.junit.runners.JUnit4 -import org.junit.{Test, Before} -import org.junit.Assert._ -import org.hamcrest.CoreMatchers._ +import org.scalatest._ +import org.scalatest.matchers.ShouldMatchers + import java.io.{ByteArrayOutputStream => BAOS, ByteArrayInputStream => BAIS} import JZlib._ -@RunWith(classOf[JUnit4]) -class WrapperTypeTest { +class WrapperTypeTest extends FlatSpec with BeforeAndAfter with ShouldMatchers { val data = "hello, hello!".getBytes val comprLen = 40000 @@ -25,16 +22,19 @@ (W_GZIP, (List(W_GZIP, W_ANY), List(W_ZLIB, W_NONE))), (W_NONE, (List(W_NONE, W_ANY), List(W_ZLIB, W_GZIP)))) - @Before - def setUp = { + before { compr = new Array[Byte](comprLen) uncompr = new Array[Byte](uncomprLen) err = Z_OK } - @Test - def DeflterInflaterStream = { + after { + } + + behavior of "Deflater" + + it can "detect data type of input." in { implicit val buf = compr cases foreach { case (iflag, (good, bad)) => @@ -51,11 +51,11 @@ val inflater = new Inflater(w) new InflaterInputStream(new BAIS(deflated), inflater) -> baos2 val data1 = baos2.toByteArray - assertThat(data1.length, is(data.length)) - assertThat(data1, is(data)) + data1.length should equal (data.length) + data1 should equal (data) import inflater._ (avail_in, avail_out, total_in, total_out) - } reduceLeft { (x, y) => assertThat(x, is(y)); x } + } reduceLeft { (x, y) => x should equal (y); x } bad foreach { w => val baos2 = new BAOS @@ -71,20 +71,21 @@ } } - @Test - def ZStream = { + behavior of "ZStream" + + it can "detect data type of input." in { cases foreach { case (iflag, (good, bad)) => val deflater = new ZStream err = deflater.deflateInit(Z_BEST_SPEED, DEF_WBITS, 9, iflag) - assertThat(err, is(Z_OK)) + err should equal (Z_OK) deflate(deflater, data, compr) good foreach { w => val inflater = inflate(compr, uncompr, w) val total_out = inflater.total_out.asInstanceOf[Int] - assertThat(new String(uncompr, 0, total_out), is(new String(data))) + new String(uncompr, 0, total_out) should equal (new String(data)) } bad foreach { w => @@ -93,18 +94,19 @@ } } - @Test - def wbits_plus_32 = { + behavior of "Deflater" + + it should "support wbits+32." in { var deflater = new Deflater err = deflater.init(Z_BEST_SPEED, DEF_WBITS, 9) - assertThat(err, is(Z_OK)) + err should equal (Z_OK) deflate(deflater, data, compr) var inflater = new Inflater err = inflater.init(DEF_WBITS + 32) - assertThat(err, is(Z_OK)) + err should equal (Z_OK) inflater.setInput(compr) @@ -113,23 +115,23 @@ inflater.setOutput(uncompr) err = inflater.inflate(Z_NO_FLUSH) if(err == Z_STREAM_END) loop = false - else assertThat(err, is(Z_OK)) + else err should equal (Z_OK) } err = inflater.end - assertThat(err, is(Z_OK)) + err should equal (Z_OK) var total_out = inflater.total_out.asInstanceOf[Int] - assertThat(new String(uncompr, 0, total_out), is(new String(data))) + new String(uncompr, 0, total_out) should equal (new String(data)) deflater = new Deflater err = deflater.init(Z_BEST_SPEED, DEF_WBITS + 16, 9) - assertThat(err, is(Z_OK)) + err should equal (Z_OK) deflate(deflater, data, compr) inflater = new Inflater err = inflater.init(DEF_WBITS + 32) - assertThat(err, is(Z_OK)) + err should equal (Z_OK) inflater.setInput(compr) @@ -138,13 +140,13 @@ inflater.setOutput(uncompr) err = inflater.inflate(Z_NO_FLUSH) if(err == Z_STREAM_END) loop = false - else assertThat(err, is(Z_OK)) + else err should equal (Z_OK) } err = inflater.end - assertThat(err, is(Z_OK)) + err should equal (Z_OK) total_out = inflater.total_out.asInstanceOf[Int] - assertThat(new String(uncompr, 0, total_out), is(new String(data))) + new String(uncompr, 0, total_out) should equal (new String(data)) } private def deflate(deflater: ZStream, @@ -153,10 +155,10 @@ deflater.setOutput(compr) err = deflater.deflate(JZlib.Z_FINISH) - assertThat(err, is(Z_STREAM_END)) + err should equal (Z_STREAM_END) err = deflater.end - assertThat(err, is(Z_OK)) + err should equal (Z_OK) } private def inflate(compr: Array[Byte], @@ -164,7 +166,7 @@ w: WrapperType) = { val inflater = new ZStream err = inflater.inflateInit(w) - assertThat(err, is(Z_OK)) + err should equal (Z_OK) inflater.setInput(compr) @@ -173,10 +175,10 @@ inflater.setOutput(uncompr) err = inflater.inflate(Z_NO_FLUSH) if(err == Z_STREAM_END) loop = false - else assertThat(err, is(Z_OK)) + else err should equal (Z_OK) } err = inflater.end - assertThat(err, is(Z_OK)) + err should equal (Z_OK) inflater } @@ -187,7 +189,7 @@ val inflater = new ZStream err = inflater.inflateInit(w) - assertThat(err, is(Z_OK)) + err should equal (Z_OK) inflater.setInput(compr) @@ -197,7 +199,7 @@ err = inflater.inflate(Z_NO_FLUSH) if(err == Z_STREAM_END) loop = false else { - assertThat(err, is(Z_DATA_ERROR)) + err should equal (Z_DATA_ERROR) loop = false } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jzlib-1.1.2/src/test/scala/ZIOStreamTest.scala new/jzlib-1.1.3/src/test/scala/ZIOStreamTest.scala --- old/jzlib-1.1.2/src/test/scala/ZIOStreamTest.scala 2013-02-20 01:39:41.000000000 +0100 +++ new/jzlib-1.1.3/src/test/scala/ZIOStreamTest.scala 2013-10-02 03:01:03.000000000 +0200 @@ -1,11 +1,8 @@ -/* -*-mode:java; c-basic-offset:2; indent-tabs-mode:nil -*- */ +/* -*-mode:scala; c-basic-offset:2; indent-tabs-mode:nil -*- */ package com.jcraft.jzlib -import org.junit.runner.RunWith -import org.junit.runners.JUnit4 -import org.junit.{Test, Before} -import org.junit.Assert._ -import org.hamcrest.CoreMatchers._ +import org.scalatest._ +import org.scalatest.matchers.ShouldMatchers import java.io.{ByteArrayOutputStream => BAOS, ByteArrayInputStream => BAIS} import java.io.{ObjectOutputStream => OOS, ObjectInputStream => OIS} @@ -13,15 +10,17 @@ import JZlib._ -@RunWith(classOf[JUnit4]) -class ZIOStreamTest { +class ZIOStreamTest extends FlatSpec with BeforeAndAfter with ShouldMatchers { - @Before - def setUp = { + before { } - @Test - def deflate_inflate = { + after { + } + + behavior of "ZOutputStream and ZInputStream" + + it can "deflate and inflate data." in { val hello = "Hello World!" val out = new BAOS() @@ -34,11 +33,12 @@ val zIn = new ZInputStream(in) val objIn = new OIS(zIn) - assertThat(objIn.readObject.toString, is(hello)) + objIn.readObject.toString should equal (hello) } - @Test - def nowrap = { + behavior of "ZOutputStream and ZInputStream" + + it can "support nowrap data." in { implicit val buf = new Array[Byte](100) @@ -54,7 +54,7 @@ zis -> baos2 val data2 = baos2.toByteArray - assertThat(data2.length, is(hello.length)) - assertThat(data2, is(hello)) + data2.length should equal (hello.length) + data2 should equal (hello) } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jzlib-1.1.2/src/test/scala/package.scala new/jzlib-1.1.3/src/test/scala/package.scala --- old/jzlib-1.1.2/src/test/scala/package.scala 2013-02-20 01:39:41.000000000 +0100 +++ new/jzlib-1.1.3/src/test/scala/package.scala 2013-10-02 03:01:03.000000000 +0200 @@ -1,17 +1,29 @@ -/* -*-mode:java; c-basic-offset:2; indent-tabs-mode:nil -*- */ +/* -*-mode:scala; c-basic-offset:2; indent-tabs-mode:nil -*- */ package com.jcraft import java.io._ package object jzlib { implicit def readIS(is: InputStream) = new { - def ->(out: OutputStream)(implicit buf: Array[Byte]) = { - Stream.continually(is.read(buf)). - takeWhile(-1 !=).foreach(i => out.write(buf, 0, i)) + def ->(out: OutputStream) + (implicit buf: Array[Byte] = new Array[Byte](1024)) = { + Stream. + continually(is.read(buf)). + takeWhile(-1 !=). + foreach(i => out.write(buf, 0, i)) is.close } } + // reading a resource file + implicit def fromResource(str: String ) = new { + def fromResource: Array[Byte] = + io.Source. + fromURL(getClass.getResource(str))(io.Codec.ISO8859). + map(_.toByte). + toArray + } + implicit def readArray(is: Array[Byte]) = new { def ->(out: OutputStream)(implicit buf: Array[Byte]) = { new ByteArrayInputStream(is) -> (out)
