From 10c65c60627b75053045a6718d02c466189517a6 Mon Sep 17 00:00:00 2001 From: Gilad Hoch Date: Thu, 17 Aug 2017 19:31:20 +0300 Subject: [PATCH] added acceptense for more possible forms of checksum patterns (#640) added acceptance for more possible forms of checksum patterns --- cache/src/main/scala/coursier/Cache.scala | 7 ++++++- .../src/test/scala/coursier/test/ChecksumTests.scala | 11 +++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/cache/src/main/scala/coursier/Cache.scala b/cache/src/main/scala/coursier/Cache.scala index 376b1e78a..b5aeb1974 100644 --- a/cache/src/main/scala/coursier/Cache.scala +++ b/cache/src/main/scala/coursier/Cache.scala @@ -884,7 +884,12 @@ object Cache { findChecksum(lines.map(_.toLowerCase.replaceAll("\\s", ""))) private def parseChecksumAlternative(lines: Seq[String]): Option[BigInteger] = - findChecksum(lines.flatMap(_.toLowerCase.split("\\s+"))) + findChecksum(lines.flatMap(_.toLowerCase.split("\\s+"))) orElse { + findChecksum(lines.map(_.toLowerCase + .split("\\s+") + .filter(_.matches("[0-9a-f]+")) + .mkString)) + } def validateChecksum( artifact: Artifact, diff --git a/tests/jvm/src/test/scala/coursier/test/ChecksumTests.scala b/tests/jvm/src/test/scala/coursier/test/ChecksumTests.scala index 45915785a..0df27e310 100644 --- a/tests/jvm/src/test/scala/coursier/test/ChecksumTests.scala +++ b/tests/jvm/src/test/scala/coursier/test/ChecksumTests.scala @@ -46,6 +46,17 @@ object ChecksumTests extends TestSuite { sha1ParseTest(cleanSha1, dirtySha1) } + 'singleLineEndingWithChunkedSha1 - { + // http://www-eu.apache.org/dist/kafka/0.10.1.0/kafka_2.11-0.10.1.0.tgz.sha1 + // as of 2017-08-17 + val dirtySha1 = + "kafka_2.11-0.10.1.0.tgz: 710F 31E7 0AB7 54BF D533 3278 E226 82C9 8DD0 56CA\n" + + val cleanSha1 = "710f31e70ab754bfd5333278e22682c98dd056ca" + + sha1ParseTest(cleanSha1, dirtySha1) + } + 'binarySha1 - { val content = Platform.readFullySync(getClass.getResource("/empty.sha1").openStream()) val res = Cache.parseRawChecksum(content)