Bug 165985 - Review Request: Aeryn - A C++ testing framework
Review Request: Aeryn - A C++ testing framework
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
All Linux
medium Severity medium
: ---
: ---
Assigned To: John Mahowald
David Lawrence
Depends On:
  Show dependency treegraph
Reported: 2005-08-15 10:40 EDT by Paul F. Johnson
Modified: 2007-11-30 17:11 EST (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2006-10-12 12:18:01 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
spec patch (3.59 KB, patch)
2005-12-16 16:39 EST, John Mahowald
no flags Details | Diff

  None (edit)
Description Paul F. Johnson 2005-08-15 10:40:01 EDT
Description: Aeryn is a C++ testing framework. Although it is primarily intended for unit testing, Aeryn is adaptable enough to handle integration testing and can be adapted for most other forms of C++ testing.

Aeryn is intended to be light weight with the minimal of code needed to create a test fixture. Unlike other testing frameworks Aeryn does not require all test fixtures to be inherited from a particular class. Test fixtures can be standalone functions or standalone classes.

Aeryn is adaptable via context objects that can be passed to test fixtures prior to running and through its call back reporting interface.
Comment 1 Ville Skyttä 2005-08-15 10:53:10 EDT
specfile/SRPM URL missing. 
Comment 2 Paul F. Johnson 2005-08-15 12:48:00 EDT
http://www.all-the-johnsons.co.uk/aeryn/aeryn2.spec for the spec, the source
archive is there also. I'm having a problem with the install though (it's the
first time I've done this!)
Comment 3 Paul F. Johnson 2005-08-20 17:16:09 EDT
The spec file has now been updated and the RPM builds cleanly. Can you please
review it for inclusion?


The RPMs are also there

Comment 4 Paul F. Johnson 2005-08-20 17:17:43 EDT
src.rpm also available from
Comment 5 Michael Schwendt 2005-08-20 19:55:29 EDT
Okay, let's start somewhere. A first rather brief look:

Package builds as "aeryn2-2-1.1.i386.rpm" although the upstream version
is "2.1.1", so why not name the package "aeryn" with version "2.1.1"
and release "1"?

> $ rpmls aeryn2 | grep ^d
> drwxr-xr-x  /usr/include/aeryn/aeryn
> drwxr-xr-x  /usr/include/aeryn/aeryn/details

This reveals that the directory


is not included in the package. A look at the complete package listing
reveals that


is not included either.

Further, /usr/bin/TestClient is a rather generic name. It doesn't look
like a useful binary that should be included, as it only runs a test suite
which most likely ought to be ran during rpmbuild in %check or so instead.
It looks like it returns a proper exit code for "failed/successful" state.

> $ rpm -qd aeryn2
> $

No documentation included at all?


Now to the spec file (I usually start a review at the spec level, but moved
it here):

> Summary: Aeryn2 is a C++ unit test package

Better IMO  =>  Summary: C++ unit testing framework

> Name: aeryn2
> Version: 2
> Release: 1.1%{?dist}

As mentioned above, I believe this should be "Name: aeryn", "Version: 2.1.1"
and "Release: 1%{?dist}".

> Source0: http://www.all-the-johnsons.co.uk/aeryn/aeryn2.tar.bz2

This was a surprise, since the Source0 URL should point to the upstream
projects download location. It seems you repackaged upstream author's ZIP
archive and included the PDF documentation file in the tarball. Why not
just take his ZIP as "Source0" and put the PDF into "Source1"? Sort of:

%setup -T -c -n %{name}
unzip %{SOURCE0}

and everything you did to build your tar.bz2 should be done after
extracting the zip.

> $ rpmlint aeryn2-2-1.1.src.rpm 
> E: aeryn2 description-line-too-long

Keep %description lines below 80 characters.

> %build
> make %{?_smp_mflags}

Code compiles without $RPM_OPT_FLAGS, e.g.

> g++ -W -Wall -Werror -pedantic -Wcast-qual -Wcast-align -Wwrite-strings
> -Winline -finline-limit=1048576 -g3 -c -o noncopyable.o
> ../src/noncopyable.cpp -I../include -DNO_OUTPUT_OPERATOR_DETECTION

It may be necessary to patch ./make/common.mk and adjust CXXFLAGS there.

> %clean
> [ "x${RPM_BUILD_ROOT}" != "x/" ] && rm -rf "${RPM_BUILD_ROOT}"

Just "rm -rf $RPM_BUILD_ROOT" is enough and more readable. You do define
a default buildroot. Rare users, who rpmbuild as superuser and redefine
the buildroot play with fire anyway.

> %files
> %defattr(-, root, root)
> %{_bindir}/*
> %{_includedir}/aeryn/*
> %{_libdir}/aeryn/*

Instead, these two


would also include the two directories and not just their contents.
Comment 6 Paul F. Johnson 2005-08-21 09:29:12 EDT
The package is actually called Aeryn2 with a version number of 2.1.1 hense the name!

Documentation is a couple of PDFs - I can convert them to something sane, so
that's not an issue and I'll change the TestClient executable to be performed as
%check. I'll also make the changes so that it's not /usr/include/aeryn/aeryn but

No problems with the others. Thanks for the pointers and I'll get a newer
version up at some point today. Other things are pressing though :-(
Comment 7 Michael Schwendt 2005-09-08 12:41:19 EDT
> The package is actually called Aeryn2 with a version number
> of 2.1.1 hense the name!

Okay, then let me prove the opposite:

$ ls aeryn2-2-1.1.src.rpm 

$ grep 'Ver\|Nam\|Rel' aeryn2.spec 
Name: aeryn2
Version: 2
Release: 1.1%{?dist}
Comment 8 John Mahowald 2005-12-16 16:39:02 EST
Created attachment 122353 [details]
spec patch

Makes most of the recommended changes in comment 5.

* Fri Dec 16 2005 John Mahowald <jpmahowald@gmail.com> - 2.1.1-2
- Rename to aeryn
- Add devel package
- Copy files to build root
- ldconfig
- Use upstream sources
Comment 9 John Mahowald 2006-10-02 21:14:59 EDT
Any progress on this? If not, will close in a week as per
Comment 10 John Mahowald 2006-10-12 12:18:01 EDT
Closing. Reopen to resume work on this.

Note You need to log in before you can comment on or make changes to this bug.