CS 5500 Assignment #2. Assigned: Thursday, 16 January 2014 Due: Thursday, 23 January 2014 This is an individual assignment. Collaboration between students is forbidden on this assignment. You are responsible for keeping your code hidden from all other students. For this assignment, you will write a simple black-box test program for the syntax checkers specified in assignment 3. You must write all of your test program's source code by yourself. You are not allowed to use source code written by other students, you are not allowed to use source code obtained from the World-Wide Web or other sources, and you are not allowed to use software packages unless they are already installed on the standard CCIS Linux machines. Your software must include a README file (which *must* be in UTF-8 plain text, and must be named README) that 1. gives your name (as you want the instructor to spell it), 2. gives your preferred email address(es) for contacting you, 3. tells the grader(s) how your software can be compiled and run on any CCIS Linux machine in the main lab. All of the files necessary to construct and to run your test program must be combined into a gzip'ed tar file whose name ends in .tar.gz or .tgz. Submit that gzip'ed tar file before 6pm on the date it is due using the submit script that's described at the course assignments page: http://www.ccs.neu.edu/course/cs5500sp14/assignments.html Your software will be graded on these criteria: 1. the quality of the instructions and documentation in your README file, 2. the ease of constructing and running your test program on CCIS Linux machines, 3. your test program's correctness with respect to reporting that correct syntax checkers pass all tests reporting correct messages that a buggy syntax checker fails to accept reporting incorrect messages that a buggy syntax checker fails to reject 4. your test program's effectiveness at finding bugs in the tested syntax checkers, 5. and the readability of your source code. Your test program's build process must result in software that can be invoked by cd'ing to the directory containing both your test program's executable and the check5500 syntax checker to be tested and executing ./test5500 If your test program finds that check5500 fails to accept a correct input, then it should report that failure by writing at least two lines to standard output, of this form: Fails to accept: where the "" part is replaced by the actual input that check5500 fails to accept. For readability, that may be spread over multiple lines, in which case proper indentation of the may improve readability as well. If your test program finds that check5500 fails to reject an incorrect input, then it should report that failure by writing at least two lines to standard output, of this form: Fails to reject: where the "" part is replaced by the actual input that check5500 fails to accept. For readability, that may be spread over multiple lines, in which case proper indentation of the may improve readability as well. If your test program finds that check5500 passes all tests, it should write "Passed all tests." to standard output, followed by a newline (also sent to standard output), and should terminate with an exit status of 0. If, after running all tests, your test program has found one or more tests that check5500 does not pass, then your test program should terminate with an exit status other than 0. ----------------------------------------------------------------