winetest, winrash and new volunteers
Ferenc Wagner
wferi at afavant.elte.hu
Wed Mar 16 17:55:00 CST 2005
Steven Edwards <steven_ed4153 at 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);
--
HTH,
Feri.
More information about the wine-devel
mailing list