Re: [PATCH 0/1] Add lz4 (C implementation)

2015-09-13 Thread Ludovic Courtès
Leo Famulari  skribis:

> I'm looking for advice regarding the tests. The tests take >30 minutes on my 
> on
> my quad-core i5 with 8 gigabytes of RAM and they require Valgrind as a
> native-input. This seems excessive to me but if users install binary
> substitutes, they won't run the tests or need to install Valgrind, right? And 
> if distributions won't test software, then who will?

Indeed, I think it’s fine.  As Taylan noted, there are already several
cases of long test suites.

> +(name "lz4")
> +(version "r131")

I changed that to “131”, which conforms to the expectations of what a
version number is.  For instance:

--8<---cut here---start->8---
scheme@(guile-user)> (package-name->name+version "lz4-r131")
$3 = "lz4-r131"
$4 = #f
scheme@(guile-user)> (package-name->name+version "lz4-131")
$5 = "lz4"
$6 = "131"
--8<---cut here---end--->8---


> + (origin
> +   (method url-fetch)
> +   (uri (string-append "https://github.com/Cyan4973/lz4/archive/";
> +version ".tar.gz"))
> +   (sha256
> +(base32 "1vfg305zvj50hwscad24wan9jar6nqj14gdk2hqyr7bb9mhh0kcx"

Added a ‘file-name’ field here so we get “lz4-131.tar.gz” instead of
“r131.tar.gz” (this is purely cosmetic; no functional change.)

Thanks!

Ludo’.



Re: [PATCH 0/1] Add lz4 (C implementation)

2015-09-09 Thread Leo Famulari
So, it is confirmed that parallel testing is not supposed to work:
https://groups.google.com/forum/#!topic/lz4c/Egwtrrbb66M
"If you are talking about doing multiple `make test` in parallel,
then indeed, some tests involved writing, reading, and removing test
files from local directory,
so should multiple such operations happen randomly in parallel, there is
a high probability that it will not end well."

On Wed, Sep 9, 2015, at 17:26, Taylan Ulrich Bayırlı/Kammer wrote:
> Guix contains a lot of software with build and test phases that take a
> very long time.  When I was working on Qt it would take 5 GB of disk
> space and 6 hours to build every time.  Though that was a pathological
> case and this program is tiny in comparison, I'd still say ~30 minutes
> is harmless.  It's annoying, but that's the price of disciplined work.

In that case, I say we leave the tests in.



Re: [PATCH 0/1] Add lz4 (C implementation)

2015-09-09 Thread Taylan Ulrich Bayırlı/Kammer
Leo Famulari  writes:

> This patch adds the C reference implementation of the lz4 compression
> algorithm.
>
> I'm looking for advice regarding the tests. The tests take >30 minutes
> on my on my quad-core i5 with 8 gigabytes of RAM and they require
> Valgrind as a native-input. This seems excessive to me but if users
> install binary substitutes, they won't run the tests or need to
> install Valgrind, right? And if distributions won't test software,
> then who will?

Indeed users won't have to go through that unless they build from
source, and Valgrind won't become a run-time dependency so long as the
produced package does not contain any references to any files from the
Valgrind package.

Guix contains a lot of software with build and test phases that take a
very long time.  When I was working on Qt it would take 5 GB of disk
space and 6 hours to build every time.  Though that was a pathological
case and this program is tiny in comparison, I'd still say ~30 minutes
is harmless.  It's annoying, but that's the price of disciplined work.

Taylan



[PATCH 0/1] Add lz4 (C implementation)

2015-09-09 Thread Leo Famulari
This patch adds the C reference implementation of the lz4 compression
algorithm.

I'm looking for advice regarding the tests. The tests take >30 minutes on my on
my quad-core i5 with 8 gigabytes of RAM and they require Valgrind as a
native-input. This seems excessive to me but if users install binary
substitutes, they won't run the tests or need to install Valgrind, right? And 
if distributions won't test software, then who will?

It might be possible to cherry-pick which tests are used. `make test` is a
recursive call to a Makefile in the programs/ subdirectory of the tarball. That
Makefile builds the lists of test to run. For this reason, setting
'test-target' in the package definition won't work because it works on the 
top-level Makefile. If someone knows how to specify the test-targets on the 
second Makefile, we could ask upstream for advice on what tests to exclude.

Also, I have sent a message to the lz4 author asking if tests are expected to
fail when run in parallel. I expect the answer is yes, but I'd like to be sure.

Leo Famulari (1):
  gnu: Add lz4.

 gnu/packages/compression.scm | 33 +
 1 file changed, 33 insertions(+)

-- 
2.4.3