Re: squid test suite question

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Fri, 18 Feb 2011 15:38:10 +1300

On 18/02/11 09:56, Ryan wrote:
> Dear Squid developers,
>
> I'm not sure if this is the appropriate mailing list to send to. If
> not, sorry for the spam and please tell me where can I get help.

This is the right place.

>
> I plan to do some coverage statistics of squid based on the in-house test suite.
> But the released version does not come with a test suite directory.
> The repository version has one,
> but seems mostly unit testing. Is that all the testing that has been
> done before release?

Unit-tests are pretty much all of what is automatically tested on a
systematic basis. They form the core basis of what we test BUT are still
very patchy despite attempts to cover more of the code. Help wanted to
extend them.

We have an audit process that code of any significance submitted needs
to pass at least two developer eyeballs before it enters even the main
testing process.

  *** At this point the code is deemed suitable for commit to the 3.HEAD
release branch and begins its formal testing. (this is being changed at
present to have a pre-commit stage as well).

 From 3.HEAD we have continuous integration testing through
Hudson/Jenkins at build.squid-cache.org which tests the full auto-tools
testing sequence using the test-suite scripts. The tests include whether
bootstrap works, basic compile, package, and the unit tests. They are
run for several permutations of the ./configure options (where the
option affects code being tested) every hour if the code has changed.
This is done on a range of different operating systems and compilers.

We also have certain structures built into the low-level code to fail to
build with unsafe functions (like sprintf or strcat with their buffer
overflow problems). And daily maintenance code updates to enforce some
good programming practices and retain consistent code style.

It is usually only at this point that its deemed suitable for
*potential* porting down to the beta branch depending on the maintainers
(myself) knowledge of the situation and possibly some additional manual
testing (below).

Each branch is run through the full BuildFarm level of testing *again*
after commit to ensure the porting did not corrupt anything.

On top of this there is an additional single build test run during the
tarball generation. Largely redundant now.

** At this point we have the daily tarball and rsync gets updated for
beta testers to begin their manual checks on the new behaviour.

Patches which have all the above and some extra delay for the beta
testes to catch behaviour problems are potentials for porting down
further into the production branch. Where they face the testing process
all over again before the daily production release tarball goes out.

Additional to the units and in-house automated stuff:

At irregular periods we also manually run valgrind memory leak checks,
cppcheck static analysis. Or other tools we find that may provide useful
checks. Before their systems got broke for our project we also used to
participate in Coverity scan project.
  IRcache, The Measurement Factory and other institutions also run
testing systems and scans which are not open to the general public (or
even ourselves at times) but provide feedback on what needs fixing.

On top of all that machine testing we have people in various networks
attempting to run the 3.HEAD and/or the beta code for personal LAN
through to production network use. The squid project websites are among
these.

Amos

-- 
Please be using
   Current Stable Squid 2.7.STABLE9 or 3.1.11
   Beta testers wanted for 3.2.0.5
Received on Fri Feb 18 2011 - 02:38:15 MST

This archive was generated by hypermail 2.2.0 : Fri Feb 18 2011 - 12:00:05 MST