Component-Focused Testing of Parrot's Build Tools
James E Keenan
Toronto Perlmongers
April 26, 2007
Table of Contents
1. Definitions
2. What Kind of Software Project Are We Talking About?
3. Example: CPAN Distribution
4. Example: Parrot
5. Each Phase is an Implicit Test
6. Example: Parrot's make
7. What If We Tested These Tools Before make Rather Than After?
8. Test the Component Before You Use It
9. Component-Focused Testing Defined
10. Origins
11. Sorry to Disappoint You, But ...
12. Chicago Perl Hackathon
13. At the Hackathon
14. Why I Said "Yes"
15. The Specifics
16. Diversity in Build Tools
17. Phalanxing the Parrot Build Tools
18. Phalanx Principles
19. Perl-Specific Phalanxing
20. Test::* Modules
21. Phalanx the Parrot Build Tools
22. Refactoring tools/build/pmc2c.pl
23. pmc2c.pl: How Is It Called?
24. pmc2c.pl: What Did It Look Like Pre-Phalanxing?
25. pmc2c.pl: What Was My Plan of Attack?
26. pmc2c.pl: How Did Things Go?
27. pmc2c.pl: What Did I Accomplish?
28. pmc2c.pl: Did Everything Go Smoothly?
29. pmc2c.pl: What Has Going Wrong?
30. pmc2c.pl: How Did I Fix It?
31. pmc2c.pl: What Has Happened Since Then?
32. pmc2c.pl: What Is to Be Done?
33. Refactoring tools/build/ops2pm.pl
34. ops2pm.pl: What Did It Look Like Pre-Phalanxing?
35. ops2pm.pl: What Was My Plan of Attack?
36. ops2pm.pl: What Did I Accomplish?
37. ops2pm.pl: What Else Did I Accomplish?
38. ops2pm.pl: What Has Happened Since Then?
39. ops2pm.pl: What Is to Be Done?
40. Refactoring tools/build/ops2c.pl
41. ops2c.pl: What Did It Look Like Pre-Phalanxing?
42. ops2c.pl: What Was My Plan of Attack?
43. ops2c.pl: What Decisions Did I Have to Make?
44. ops2c.pl: Organized Around Filehandles
45. ops2c.pl: What Did I Accomplish?
46. ops2c.pl: What Else Did I Accomplish?
47. ops2c.pl: What Has Happened Since Then?
48. ops2c.pl: What Is to Be Done?
49. Conclusion
50. What's Next?
51. The End
52. Future Hoplites, Welcome to the Re-factory!
53. References