Blog entries
2008 May 14

Adding tag cloud to the blog.
2008 May 14

Ubuntu 7.04 (beta) Feisty Fawn on Compaq (HP) nc6400.
2008 May 13

Test automation using Perl master class in Chicago.
2008 May 13

Adding tags to the blog.
2008 May 09

Automated Testing in PHP, Python, Ruby and Perl.
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 GHC, the Glasgow Haskell Compiler

Tags: testing, GHC, Haskell, Darcs, Build Bot, Python

This is part of a series of articles I started with Quality Assurance and Automated Testing in Open Source Software.

GHC - The Glasgow Haskell Compiler is probably the strongest compiler and interactive environment for the Haskell functional language .

Development

The GHC team uses Trac to manage their project. The main developer page provides a lot of information on how to get involved.
They are using Darcs for version control, which itself is written in Haskell.

To get the source look at the Getting The Sources page. It has the detailed instructions but there are many of them and each one takes a long time. So be patient!

Testing

Writing and running tests on the GHC Test framework is documented rather well.
Tests are divided into separate files. The tests themselfs are written in Haskell. For each such test file (where the code lives) you have to provide three additional files:

  • a file containing what should be placed on STDIN
  • one containing the expected output on STDOUT
  • and another one containing the expected output on STDERR

The test framework is written in Python. For each test file the author has to give an expected behavior which (such as normal, skip, expect_broken(#trac bug number), expect_broken_if_platform(bug_number, platform), etc... These are all Python functions provided by the framework.

Smoke Testing

The GHC team uses Buildbot for automatic smoke testing.
In order to setup a build slave interested people need to get a username/password - which I got in a few hours.
Setting up client (or slave) part of BuildBot is rather simple. There are some prerequisites for setting it up and building GHC, but they are all nicely described on the GHC BuildBot page.

So far I managed to setup the BuildBot slave but it seems the build did not start in the scheduled time. Once the buildbot is running I'll be able to see the results on the status page.

TODO

I still would like to see how test are running, maybe write a simple one and I would like to get my buildbot slave do its job.

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