# 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

Reply via email to