# New Ticket Created by James Keenan # Please include the string: [perl #50302] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=50302 >
As previously reported, I've begun looking at how to get us a better smoke server setup. http://rt.perl.org/rt3/Ticket/Display.html?id=49276 http://www.perlfoundation.org/parrot/index.cgi? rfp_parrot_needs_better_smoke_reports In the course of this research, I've had occasion to look at the whole chain of programs which lead to smoke reports. Roughly speaking, here's the sequence. Client Side * 'make smoke' invokes 't/harness --html' and then 'tools/util/ smokeserv-client.pl smoke.html' ** 't/harness', in addition to running all the other varieties of 'make test', creates a data structure of test results, then creates an HTML representation of those results. These are done via Test::TAP::Model and Test::TAP::HTMLMatrix, which sit atop Petal. ** 'tools/util/smokeserve-client.pl' does some sanity-checking to verify that smoke.html is a smoke report, parses the report for values with which the file is renamed more descriptively, then transmits that HTML file to the Parrot smoke server Server Side * 'tools/util/smokeserve-server.pl' does a number of things, including: ** creating the home page for that server, which is a giant index of recent smoke reports ** displays the HTML versions of individual recent smoke reports The fact anyone can transmit .html to our smoke server means that the server is insecure. The fact that we transmit our smoke data to the server as fully coded HTML means that, except for parsing the arriving file's name, we can't easily treat its contents as data. We can't construct a queryable database. I believe that we should only be sending smoke data to our server. We should let the server transform it into HTML, and we should have the server store it in a queryable database. But to that we have to go back to the client side and refactor t/ harness so that it, when invoked by 'make smoke', it emits data rather than html. And to do that refactoring, we have to do preliminary refactoring on t/harness so that we can easily swap in a different behavior when it is invoked by 'make smoke'. I've begun that refactoring in the 'harness' branch in our SVN repository. Anybody want to join me there? kid51