Blog entries
2008 Apr 03

Strawberry Perl for Windows.
2008 Apr 01

Oslo Hackathon day -4.
2008 Mar 28

Blogging about Perl outside the community?.
2008 Mar 27

OSCON Proposals rejected.
2008 Mar 26

Preparing for the QA Hackathon in Oslo.
2008 Mar 25

Missing licenses on CPAN modules?.
2008 Mar 24

License of Perl Modules on CPAN.
2007 Dec 24

Joining Technorati?.
2007 Dec 24

Regular Expressions in Perl 5.10.
2007 Dec 24

Switching in Perl 5.10.
2007 Dec 24

Smart Matching in Perl 5.10.
2007 Dec 24

What's new in Perl 5.10? say, //, state.
2007 Dec 23

The Zulo interview was published.
2007 Dec 08

Frequency of programming languages on LinkedIn.
2007 Dec 06

Interview in Zulo.
2007 Dec 06

Sun Startup Essentials Launch.
2007 Aug 25

Testing PostgresSQL.
2007 Aug 25

Testing Pugs and Perl 6.
2007 Aug 22

Testing Ruby.
2007 Aug 22

Testing GHC, the Glasgow Haskell Compiler.
2007 Aug 22

Testing NUT, the Network UPS Tools.
2007 Aug 21

Testing SQLite .
2007 Aug 20

Smoked Parrot.
2007 Aug 20

Quality Assurance of Perl 5.
2007 Jul 09

Using mod_perl for szabgab.com.
2007 Jul 07

Quality Assurance and Automated Testing in Open Source Software.
2007 Jul 07

Add tags to CPAN modules via CPAN::Forum .
2007 Jun 15

Windows on VMware.
2007 Jun 13

Reducing the social gap of the information age.
2007 May 25

Moving to a new server.
2007 May 04

Preparing an application for distribution.
2007 May 01

Spreadsheet::ParseExcel is looking for a maintainer.
2007 Apr 28

CPAN Modules in Linux Distributions.
2007 Apr 18

Version control of single files using Subversion.
2007 Apr 13

Testing results, Perl and CPAN module availability.
2006 Aug 05

Perltraining.org split into two.
2006 Jul 23

Upgrading Ubuntu to 6.06, (Dapper Drake).
2006 Jul 22

Ginger Spam Salad.
2006 Jul 20

Automating the blog.
2006 Jul 19

Wish list: search engine for Perl related sites.
2006 Jul 19

Perltraining.org .
2006 Jul 19

More blog related issues.
2006 Jul 19

Starting a blog.

 

home | blog

Testing PostgresSQL

PostgreSQL is one of the leading Open Source databases. While it has a smaller installed base than MySQL it is usually regarded to be more robust with more features than any other Open Source Database.

Development

Source code is kept in CVS. See instructions on how to get it. There is a huge set of documentation on how to get involved in the development of PostgreSQL.

The team provides nightly code builds, though the last one was on the 10th August and today is the 21st. It seems they had a long night there.

Testing

Automated testing

PostgreSQL has a distributed build farm consisting, partially their own, partially volunteers

The build-farm itself is written in Perl, it has it own separate project page. The main page of the build-farm has a link to the documentation on how to setup a client. It looks frightening, but actually it is a lot simpler than what the text looks like. Actually before you do that you have to first login to the CVS server as described on the Source Code Repository page.

They require a bunch of Perl modules - most of them are standard - so they should not get people worried right at the beginning. They might also want to add instructions on how to install the missing modules.

The configuration files is a bit funny as it is a Perl data structure.

AFAIK they should move to something with less parentheses such as an INI file or YAML.

The smoke testing client can run the whole build/testing cycle. Each client has a single configuration and that is what it is testing

Before one can actually send the test result s/he needs to register. During registration I had to provide Operating System, OS Version, Compiler Compiler Version, Architecture, my name and e-mail. I gave the following values (Ubuntu, 7.04, gcc, 4.1.2, i686) answering the first five questions. I am still not sure if that's what they meant by architecture and why don't they collect this information during by the client. What if I upgrade my machine and forget to tell them? Will they notice it? What if I want to setup another client on another machine? Do I need to register again?

I like the fact that I need to provide a verifiable e-mail with my report. While this make reporting slightly more difficult at the beginning, if I happen to send bogus reports by mistake, they can easily contact me.

Using a username and password also reduces the risk of someone else sending bogus reports in my name.

While trying to setup the client, on the first run I got the following, quite cryptic error message: Stage Configure failed with status 77 First it seemed as an actual failure in the code base of PostgreSQL but after some research I found several log files in the HEAD/lastrun-logs/ that pointed me to my error. I have not installed ccache. I bumped into another problem till I got my smoke client up but eventually it worked. Now I am still waiting for them to process my request to join the build farm. That's a bit disappointing, though it is August. So it might be just because of the Holidays.

The status page of the PostgreSQL Build Farm is very nice. On the main page you can see the latest status of each machine. Success/failure and when was it last reported. They have cute flags to show what flags are on for that particular build machine. (I wonder why not let the same machine run several configurations one after the other.) Clicking on the "Config" link they provide a drill down to the many phases of the smoke testing. Starting by checking out from CVS, configuring, building and running several tests.

They also provide a history for the specific machine to see when did it run previously and what were the results.

BTW I found this article about the PostgreSQL BuildFarm OnLamp.

TODO

See how tests are written and how can one add a new test.

Last Update: Tue Sep 25 17:06:26 2007