====== Test Suite Build System ======
This page records information about setting up the CSS2.1 test suite and known issues with the build system.
===== Building the Test Suite =====
The CSS2.1 Test Suite's final format is generated by a makefile from the XHTML 1.1 source files. To run this process on your own computer, you will need:
**This has not been tested on Windows.**
* **Standard unix commandline tools** If you're on Windows, you need to install [[http://www.cygwin.com/|Cygwin]]. The scripts currently rely on a lot of unix-specific shortcuts like ''xargs''.
* **make** GNU make is available on most *nix systems as ''make'' or ''gmake''.
* **Perl** Perl is available on Windows through [[http://www.cygwin.com/|Cygwin]] (make sure you check the box to install perl) and through the [[http://www.activestate.com/Products/ActivePerl/|ActivePerl]] distribution. It is usually pre-installed on *nix; install the ''perl'' package if it's not.
* **Perl's ''XML::Parser'' module** Run perl -MCPAN -e "install 'XML::Parser'" to get it from CPAN.
* **Perl's ''HTML::Entities::Numbered'' module** Run perl -MCPAN -e "install 'HTML::Entities::Numbered'" to get it from CPAN.
* **Perl's ''Template'' ([[http://template-toolkit.org/|Template Toolkit]]) module** Run perl -MCPAN -e "install 'Template'" to get it from CPAN.
* **ImageMagick**, which is needed for PNG->JPEG conversion in the xhtml1print format, can be downloaded from [[http://imagemagick.org/|imagemagick.org]]
Once you have the pre-requisites set up,
- Acquire a copy of the test suite source, e.g. by [[test:cvs|checking out]] the ''CSS/CSS2.1-test-suite'' directory from dev.w3.org.
- Run ''make'' within the ''CSS2.1-test-suite'' directory
The finished tests will be in the newly-created ''dist'' directory.
===== Build Script Issues =====
* auto-add flags from meta to filename during build process
* make sure build scripts add title to rel="help" links
* check build instructions for Windows
* generate HTML comments corresponding to requirements
* filter HTMLonly and XMLonly tests during test generation
* create flat-file database of test ID, title, flags, etc.