_____ _ ____ ____ ___ |_ _|__ ___| |_ _ _ / ___/ ___|_ _| _ _ | |/ _ \/ __| __| (_|_) | | | | _ | | (_|_) | | __/\__ \ |_ _ _ | |__| |_| || | _ _ |_|\___||___/\__| (_|_) \____\____|___| (_|_) _____ _ _ | ____|_ _| |_ ___ _ __ _ __ __ _| | | _| \ \/ / __/ _ \ '__| '_ \ / _` | | | |___ > <| || __/ | | | | | (_| | | |_____/_/\_\\__\___|_| |_| |_|\__,_|_| This is the README for Test::CGI::External version 0.09. 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 HTTP headers, when running from behind a server, the only output visible from a browser is an obscure server error message. In a Perl script, use Test::More; my $tester = Test::CGI::External->new (); $tester->set_cgi_executable ('example.cgi'); $tester->run ({}); done_testing (); The above tests whether debugging messages on standard output) In other words, this tests for extremely simple "slip-up" mistakes and basic program execution. Test::CGI::External runs CGI programs as stand-alone programs, under a faked CGI-like environment created by manipulating environment variables. Thus it does not require a web server. 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 C. 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. Test::CGI::External is TAP (Test Anything Protocol)-compliant and should work with Perl testing modules like "Test::More". ----------------------------------------------------------------------------- 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.09.tar.gz, follow this sequence of commands: tar xfz Test-CGI-External-0.09.tar.gz cd Test-CGI-External-0.09 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 Nov 4 22:34:22 2015. -----------------------------------------------------------------------------