_____ _ ____ ____ ___ |_ _|__ ___| |_ _ _ / ___/ ___|_ _| _ _ | |/ _ \/ __| __| (_|_) | | | | _ | | (_|_) | | __/\__ \ |_ _ _ | |__| |_| || | _ _ |_|\___||___/\__| (_|_) \____\____|___| (_|_) _____ _ _ | ____|_ _| |_ ___ _ __ _ __ __ _| | | _| \ \/ / __/ _ \ '__| '_ \ / _` | | | |___ > <| || __/ | | | | | (_| | | |_____/_/\_\\__\___|_| |_| |_|\__,_|_| This is the README for Test::CGI::External version 0.03. Test::CGI::External is a "module" for the Perl computer programming language, a library of computer code to install on a computer. This document contains four sections: 1. About - what the module does 2. Documentation - how to learn more about the module 3. Installation - how to install this module on a computer 4. Help - what to do if you get stuck ----------------------------------------------------------------------------- 1. ABOUT Test::CGI::External - run tests on an external CGI program Test::CGI::External is a tool for running basic checks of the operation of a CGI (common gateway interface) program. It is meant to be used for "sanity checks" of CGI program operation. For example if a CGI program prints stuff on standard output before it prints its headers, this causes an obscure server error message when running from behind a server, so Test::CGI::External is meant for the testing stage before the program is put onto a web server. One of the main errors this module catches for the author is stray printf statements. If a program with stray printf statements is uploaded to the web server and run as a CGI program, the browser will show only a 500 Server Error message. Another typical mistake is forgetting to make the CGI program executable; again, this results in a weird server error. The tested CGI program can be in any language, not just Perl; Test::CGI::External is meant to test external programs which are completely independent of itself. Test::CGI::External was originally created to check the operation of CGI programs written in the C programming language. Test::CGI::External runs CGI programs as stand-alone programs, under a faked CGI-like environment created by manipulating environment variables. In a Perl script, my $tester = Test::CGI::External->new (); $tester->set_cgi_executable ('example.cgi'); my %options; $tester->run (\%options); For example, say there is a program called "example.cgi" and it is required to test that example.cgi produces a correct "Content-Type" header, does not print out ill-formed headers (for example, print debugging messages on standard output), or test whether "example.cgi" exits with a zero status, or does not print error messages during normal operations. ----------------------------------------------------------------------------- 2. DOCUMENTATION You can read the documentation for the module online at the following websites: * http://search.cpan.org/perldoc?Test::CGI::External * http://metacpan.org/release/Test-CGI-External (These links go to the latest version of the module.) After installing the module, you can read the documentation on your computer using perldoc Test::CGI::External ----------------------------------------------------------------------------- 3. INSTALLATION This module requires Perl version 5.0.6 or later. To install the module from CPAN, use cpan Test::CGI::External If you have the App::cpanminus installer, you may prefer cpanm Test::CGI::External To install the module from the source file, Test-CGI-External-0.03.tar.gz, follow this sequence of commands: tar xfz Test-CGI-External-0.03.tar.gz cd Test-CGI-External-0.03 perl Makefile.PL make make install If you want to test the module before installing it, use "make test" after "make" and before "make install". ----------------------------------------------------------------------------- 4. HELP To get help with the module, you can email the author, Ben Bullock, at . If you think there is a problem in the module, you can report a bug at , or if you want to alter the source code of Test::CGI::External, try the public repository on github at . ----------------------------------------------------------------------------- This README was written on Wed Apr 9 14:40:31 2014. -----------------------------------------------------------------------------