svn path=/trunk/boinc/; revision=1527
This commit is contained in:
Karl Chen 2003-06-18 03:01:37 +00:00
parent 42a26f2c06
commit 1adaeb55c1
1 changed files with 26 additions and 23 deletions

View File

@ -1,6 +1,9 @@
<title>Testing BOINC</title> <title>Testing BOINC</title>
<body bgcolor=ffffff> <body bgcolor=ffffff>
<h2>Testing BOINC</h2>
<font color=red>NOTE: this file needs to be updated, currently completely out of date</font>
<h2>Testing BOINC</h2>
<h3>1) PHP-based testing framework</h3> <h3>1) PHP-based testing framework</h3>
@ -88,7 +91,7 @@ class Project { // represents a project
function add_user($user); // add a User to project's DB function add_user($user); // add a User to project's DB
function add_app($app); // add an application function add_app($app); // add an application
function add_app_version($app_version); // add an app version function add_app_version($app_version); // add an app version
function install(optional: $scheduler_file); function install(optional: $scheduler_file);
//set up directories and DB. If $scheduler_file is provided, then //set up directories and DB. If $scheduler_file is provided, then
//there will be installed schedulers at the directories pointed by //there will be installed schedulers at the directories pointed by
//the schedulers //the schedulers
@ -112,19 +115,19 @@ class Project { // represents a project
// multiple cgis can be handles with passing in a file with // multiple cgis can be handles with passing in a file with
// scheduler_urls to project->install. Multiple download URLS are // scheduler_urls to project->install. Multiple download URLS are
// handled by adding a numer in between the download_url and the // handled by adding a numer in between the download_url and the
// file to be downloaded in the wu_template file of the Work class // file to be downloaded in the wu_template file of the Work class
// for example: <url><DOWNLOAD_URL/>0/<INFILE_0/></url>, in which // for example: <url><DOWNLOAD_URL/>0/<INFILE_0/></url>, in which
// a link from project_dir/download0/ will be added to project_dir/download // a link from project_dir/download0/ will be added to project_dir/download
// Similiar action can be taken by modifying the result_template file // Similiar action can be taken by modifying the result_template file
// of a Work class to handle multiple upload URLs: // of a Work class to handle multiple upload URLs:
// for example: <url><UPLOAD_URL/>0</url>, in which case // for example: <url><UPLOAD_URL/>0</url>, in which case
// file_upload_handler0 will be added to project_dir/cgi // file_upload_handler0 will be added to project_dir/cgi
function delete_masterindex() function delete_masterindex()
//deletes the index.php for this project //deletes the index.php for this project
function reestablish_masterindex() function reestablish_masterindex()
//reestablished the master index.php //reestablished the master index.php
function delete_scheduler($cgi_num) function delete_scheduler($cgi_num)
//deletes project_dir/cgi/cgi$cgi$num //deletes project_dir/cgi/cgi$cgi$num
function reinstall_scheduler($cgi_num) function reinstall_scheduler($cgi_num)
//copies the cgi program into project_dir/cgi/cgi$cgi$num //copies the cgi program into project_dir/cgi/cgi$cgi$num
@ -133,10 +136,10 @@ class Project { // represents a project
function reinstall_downloaddir($download_dir_num) function reinstall_downloaddir($download_dir_num)
//reestablished project_dir/download$download_dir_num //reestablished project_dir/download$download_dir_num
function remove_file_upload_handler($handler_num) function remove_file_upload_handler($handler_num)
//deletes project_dir/cgi/file_upload_handler$handler_num //deletes project_dir/cgi/file_upload_handler$handler_num
function reinstall_file_upload_handler($handler_num) function reinstall_file_upload_handler($handler_num)
//reinstalls project_dir/cgi/file_upload_handler$handler_num //reinstalls project_dir/cgi/file_upload_handler$handler_num
function kill_file_upload_handler() //blocks until a file_upload_handler is function kill_file_upload_handler() //blocks until a file_upload_handler is
//running in the system, kills it and returns //running in the system, kills it and returns
} }
@ -153,10 +156,10 @@ class Host { // represents a (virtual) host
//There are two run functions, one that blocks until the client //There are two run functions, one that blocks until the client
//being run by this host finishes execution: run() and then there //being run by this host finishes execution: run() and then there
//run_asynch which spawns a new php process running the client //run_asynch which spawns a new php process running the client
//and returns to the thread of execution of the parent php process //and returns to the thread of execution of the parent php process
//the php process_id of the child. This process_id can then be //the php process_id of the child. This process_id can then be
//used for a call to pcntl_waitpid() to block until the execution //used for a call to pcntl_waitpid() to block until the execution
//of the client. //of the client.
function run($args); function run($args);
function run_asynch($args); function run_asynch($args);
@ -164,7 +167,7 @@ class Host { // represents a (virtual) host
function get_new_client_pid($client_pid) function get_new_client_pid($client_pid)
//returns a pid for a client process running in the system that is //returns a pid for a client process running in the system that is
//different from $client_pid. This call blocks until such process is started. //different from $client_pid. This call blocks until such process is started.
function check_file_present($project, $name); function check_file_present($project, $name);
// check that a file exists // check that a file exists
} }
@ -308,7 +311,7 @@ each project in which this host participates.
</ul> </ul>
<h3>2) Test applications</h3> <h3>2) Test applications</h3>
<p> <p>
The <b>apps</b> directory contains the following test applications: The <b>apps</b> directory contains the following test applications:
<ul> <ul>
<li> <li>
<b>concat</b>: concatenates its input files. <b>concat</b>: concatenates its input files.
@ -326,7 +329,7 @@ Checkpoints every 5 characters. Restartable.
<p> <p>
The <b>test</b> directory contains PHP scripts, together with XML The <b>test</b> directory contains PHP scripts, together with XML
templates and sample input files, for initializing and testing the templates and sample input files, for initializing and testing the
entire system: entire system:
<ul> <ul>
<li> <li>
<b>test_uc.php</b>: tests I/O connection using descriptors. <b>test_uc.php</b>: tests I/O connection using descriptors.
@ -344,24 +347,24 @@ You have to run the client yourself, kill and restart it a few times.
<b>test_water.php</b>: tests some aspects of water marks. <b>test_water.php</b>: tests some aspects of water marks.
<li> <li>
<b>test_rsc.php</b>: tests that scheduling server only sends <b>test_rsc.php</b>: tests that scheduling server only sends
feasible work units. feasible work units.
<li> <li>
<b>test_pers.php</b>: tests the persistent file transfers for <b>test_pers.php</b>: tests the persistent file transfers for
download and upload. download and upload.
It interrupts them in the middle and makes It interrupts them in the middle and makes
sure that the filesize never decreases along interrupted transfers. sure that the filesize never decreases along interrupted transfers.
<li> <li>
<b>test_masterurl_failure.php</b>: tests the exponential backoff <b>test_masterurl_failure.php</b>: tests the exponential backoff
mechanism on the client in case of master IURL failures. mechanism on the client in case of master IURL failures.
This test is not automated. This test is not automated.
It has to be run, and then client.out It has to be run, and then client.out
(in the host directory) must be looked at to examine whether everything (in the host directory) must be looked at to examine whether everything
is working correctly. is working correctly.
<li> <li>
<b>test_sched_failure.php</b>:tests the exponential backoff mechanism <b>test_sched_failure.php</b>:tests the exponential backoff mechanism
on the client in case of scheduling server failures. on the client in case of scheduling server failures.
This test is not automated. This test is not automated.
It has to be run, and then client.out (in the host It has to be run, and then client.out (in the host
directory) must be looked at to examine whether everything directory) must be looked at to examine whether everything
is working correctly. is working correctly.
</ul> </ul>