We strongly encourage you to write and share test-case scripts/programs. Of course, you should acknowledge such sharing in your tests.txt file.
Halfway through the project, you will be provided with several test files (do not wait for these to begin testing!!!) as well as additional instructions. By this time, your server should be mainly functional. These will allow you to ensure that you are on the right track with your server.
In developing your test cases, you may find the following tools to be useful:
Expect is a program that ``talks'' to other interactive programs according to a script. Following the script, Expect knows what can be expected from a program and what the correct response should be. An interpreted language provides branching and high-level control structures to direct the dialogue.
A possible strategy for developing your test cases, then, is to use a command line IRC client, driven by an expect script.
Note that Net::IRC and a command line IRC client both implement the client-side IRC protocol for you. Presumably, they interact with the server in a standards-compliant manner. Thus, to test how your server behaves when given input that is not compliant with the IRC specification, you will need to use lower level tools. We describe how you might build such a tool in Section 6.