On this page:
1.1 Choose a utility
1.2 Add asserts to the utility
1.3 Test the utility
1.4 Bonus:   Find a bug

1 Project 1: Unix Utilities

This project is due Tuesday, February 25th at midnight.

1.1 Choose a utility

Download and compile the GNU coreutils. The web page is here.

Pick one of the utilities listed in the documentation, and send an email to the course staff stating which one.

1.2 Add asserts to the utility

Add at least 10 assertions to the source of utility. Remember the defintion of assertions from class. Write a text file with an entry for each assertion, and why failing it would indicate a bug.

1.3 Test the utility

Generate both manual and random tests for the utility. Run them with both your asserts enabled, and disabled. Do any of the asserts fire? If they do, is that really a bug in the program?

Write a program which runs your tests on the utility, so that the course staff can reproduce it.

Submit both the text file and the tester program via OnCourse.

1.4 Bonus: Find a bug

If you find an assertion which fires on some input, and you can reproduce this and convince me that it’s a bug, you will recieve full credit for the assignment, regardless of what else you do.