Component-Focused Testing of Parrot's Build Tools



James E Keenan

YAPC::NA::2007
June 27, 2007


Table of Contents

1. Introduction and Objectives
2. Objectives

3. Background
4. Specialities
7. Chicago Perl Hackathon
8. Recruitment to Parrot

9. Definitions
10. Example: CPAN Distribution
11. Configuration and Build Tools Defined
12. Build Cycle
13. Example: Parrot
14. Example: Parrot's make

15. Refactoring tools/build/pmc2c.pl
16. pmc2c.pl: What Does It Do?
17. pmc2c.pl: How Is It Called?
18. pmc2c.pl: What Did It Look Like Pre-Phalanxing?
19. pmc2c.pl: What Was My Plan of Attack?
20. pmc2c.pl: How Did It Evolve?
21. pmc2c.pl: Tests of Parrot::Pmc2c::Utils Methods
22. pmc2c.pl: Use Devel::Cover with prove
23. pmc2c.pl: Coverage Analysis
24. pmc2c.pl: Uh-oh!
25. pmc2c.pl: What Has Going Wrong?
27. pmc2c.pl: Treatment
28. pmc2c.pl: Testing Creation of Files
29. pmc2c.pl: Timing of File Creation Tests
30. pmc2c.pl: Component-Focused Testing

31. Refactoring tools/build/ops2pm.pl
32. ops2pm.pl: What Did It Look Like Pre-Phalanxing?
33. ops2pm.pl: What Was My Plan of Attack?
34. ops2pm.pl: What Did I Accomplish?
35. ops2pm.pl: Testing of Options Processing
36. ops2pm.pl: Test Suite
37. Use of Subversion branches in development

38. Refactoring tools/build/ops2c.pl
39. ops2c.pl: What Did It Look Like Pre-Phalanxing?
40. ops2c.pl: What Was My Plan of Attack?
41. ops2c.pl: Testing

42. Configuration tools
43. Configure.pl: How I Worked
44. Configure.pl: What I Accomplished
45. Configure.pl: A "Temporary" Hack
46. Hack Already Marked for Cage-Cleaning
47. Configure.pl: Use a Singleton
48. Configure.pl: Adjust Tests for Singleton Object
49. Configure.pl: Component-Focused Testing
50. Configure.pl: --test Option
51. Configure.pl: Post-Configuration Tests

52. Summary
53. When You Run Tests Matter
54. Perl Best Testing Practices Apply to Parrot As Well
55. (In Which We Reveal the Third, Hidden Objective)

56. References