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)


Reply via email to