--- Chris Morgan cmorgan@alum.wpi.edu wrote:
winetest to upload the testing results. The winetest building is black magic to me :-)
Right now I am interested in the winetest side of things. Like how to get winetest and the server to talk to each other and what is needed in the build and url files.
Thanks Steven
__________________________________ Do you Yahoo!? Yahoo! Small Business - Try our new resources site! http://smallbusiness.yahoo.com/resources/
Steven Edwards steven_ed4153@yahoo.com writes:
Like how to get winetest and the server to talk to each other and what is needed in the build and url files.
programs/winetest/README contains some relevant information.
Is there some good documentation on how winrash and winetest work and communicate with the server? I am interested it in using it as part of the ReactOS build system.
Winetest sends back a single file to winetest.cgi, the one which is linked from the summary page (report).
service.cgi is pretty much a mystery for me, too. Let me offer these hunks containing some of my experiences. Be careful with submitting requests to service.cgi, I strongly suspect that it's easy to nuke the whole database with an empty $publisher or $build...
Index: winetest/service.cgi =================================================================== RCS file: /home/wine/tools/winetest/service.cgi,v retrieving revision 1.24 diff -u -r1.24 service.cgi --- winetest/service.cgi 14 Jul 2004 18:33:47 -0000 1.24 +++ winetest/service.cgi 16 Mar 2005 23:41:45 -0000 @@ -29,7 +29,7 @@ # # We rely on the server to have directories available for every # program that can be published. For example, we need a winetest directory: -# winetest/ +# $data_root/$publisher/winetest/ # <name>.url contains url to find latest winetests at, must be # writable # url.mask contains a reg ex to match against, only needs to @@ -112,6 +113,7 @@ # removes the current release from disk sub releases_purge { my ($project) = @_; + # FIXME remove files of ALL publishers? Too easy to get here! system("rm -f $data_root/*/$project/*.cookie"); system("rm -f $data_root/*/$project/*.url"); } @@ -179,6 +182,7 @@ # FIXME: maybe we should check here that $build is sane
# test if this is a valid publisher + # FIXME empty $publisher passes! if (opendir(IMD, "$data_root/$publisher/")) { closedir(IMD); } else { @@ -193,6 +198,7 @@ return "Build is old, current build is $current_build"; } if ($build ne $current_build) { + # FIXME this is VERY dangerous without $build sanitizing. releases_purge is broken, too. &releases_purge($program); }
@@ -208,6 +214,7 @@ $cookie = &read_one_line("$lynx -source $url.sig |");
# all is good, store the cookie, and URL now, this activetes the release + # FIXME isn't $cookie a binary fingerprint already? &write_file(">$base_path/$name.cookie", &md5sum($cookie)); &write_file(">$base_path/$name.url", $url); &write_file(">>$data_root/$program.builds", $build);