|
|
(5 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
| CTest supports four submission methods:
| | {{CMake/Template/Moved}} |
|
| |
|
| Dart Classic:
| | This page has moved [https://gitlab.kitware.com/cmake/community/wikis/doc/ctest/Submission-Issues here]. |
| * FTP with HTTP client initiated trigger
| |
| * HTTP with HTTP client initiated trigger
| |
| * SCP with server side trigger
| |
| | |
| Dart2:
| |
| * XML-RPC with no trigger
| |
| | |
| ==FTP==
| |
| | |
| Default submission method for legacy purposes. This is the method original Dart preferred. It uses File Transfer Protocol (FTP) to send submission data to the server. Once data is uploaded, it uses HTTP to trigger the actual submission of the data to the dashboard.
| |
| | |
| Example DartConfig.cmake flags:
| |
| | |
| SET (DROP_METHOD "ftp")
| |
| SET (DROP_SITE "public.kitware.com")
| |
| SET (DROP_LOCATION "/incoming")
| |
| SET (DROP_SITE_USER "ftpuser")
| |
| SET (DROP_SITE_PASSWORD "public")
| |
| SET (TRIGGER_SITE "http://${DROP_SITE}/cgi-bin/Submit-Random-TestingResults.cgi")
| |
| | |
| Example CTestConfig.cmake flags:
| |
| | |
| DropMethod: ftp
| |
| DropSite: public.kitware.com
| |
| DropLocation: /incoming
| |
| DropSiteUser: ftpuser
| |
| DropSitePassword: public
| |
| TriggerSite: http://public.kitware.com/cgi-bin/Submit-Random-TestingResults.cgi
| |
| | |
| ==HTTP==
| |
| | |
| This is preferred submission method for the original Dart dashboards. It uses Hypertext Transfer Protocol's (HTTP) PUT option to send submission data to the server. Once data is uploaded, it uses HTTP to trigger the actual submission of the data to the dashboard.
| |
| | |
| Example DartConfig.cmake flags:
| |
| | |
| SET (DROP_METHOD "http")
| |
| SET (DROP_SITE "public.kitware.com")
| |
| SET (DROP_LOCATION "/cgi-bin/HTTPUploadDartFile.cgi")
| |
| SET (TRIGGER_SITE "http://${DROP_SITE}/cgi-bin/Submit-Random-TestingResults.cgi")
| |
| | |
| Example CTestConfig.cmake flags:
| |
| | |
| DropMethod: http
| |
| DropSite: public.kitware.com
| |
| DropLocation: /cgi-bin/HTTPUploadDartFile.cgi
| |
| TriggerSite: http://public.kitware.com/cgi-bin/Submit-Random-TestingResults.cgi
| |
| | |
| ==SCP==
| |
| | |
| When security is important SCP submission method can be used.
| |
| | |
| Example DartConfig.cmake flags:
| |
| | |
| SET (DROP_METHOD "scp")
| |
| SET (DROP_SITE "public.kitware.com")
| |
| SET (DROP_LOCATION "/incoming")
| |
| SET (DROP_SITE_USER "ftpuser")
| |
| | |
| Example CTestConfig.cmake flags:
| |
| | |
| DropMethod: scp
| |
| DropSite: public.kitware.com
| |
| DropLocation: /incoming
| |
| DropSiteUser: someuser
| |
| DropSitePassword: public
| |
| TriggerSite: http://public.kitware.com/cgi-bin/Submit-Random-TestingResults.cgi
| |
| ScpCommand: /usr/bin/scp
| |
| | |
| This method requires external tool to do the actual transfer and does not perform the trigger. Trigger has to be done on the server. Example script that will do it is this:
| |
| | |
| <pre><nowiki>#!/usr/bin/perl -ws
| |
| #
| |
| # Script that will move testing results from the project incomming
| |
| # directory to the appropriate location for dashboard summarization.
| |
| #
| |
| ###
| |
| | |
| use File::Basename;
| |
| use File::Copy;
| |
| use File::Path;
| |
| | |
| if ( $#ARGV < 0 )
| |
| {
| |
| die "No project specified";
| |
| $project = "Xdmf";
| |
| }
| |
| $project = $ARGV[0];
| |
| | |
| | |
| $dropLocation = "/projects/FTP/incoming/".$project;
| |
| $destination = "/projects/".$project."/Testing/".$project."-Testing/Testing/HTML/TestingResults/Sites";
| |
| | |
| opendir(DIR, $dropLocation) || die "Cannot open directory ".$dropLocation." - ".$!;
| |
| @files = grep { ! /^\./ && -f "$dropLocation/$_" } readdir(DIR);
| |
| closedir DIR;
| |
| | |
| foreach $file (@files) {
| |
| $xmlfile = $file;
| |
| $xmlfile =~ s/%(..)/sprintf("%c", hex($1))/g; # unquote %-quoted
| |
| | |
| print "Processing file: ".$xmlfile."\n";
| |
| | |
| $fullPathToIncomingXMLFile = $dropLocation . "/" . $xmlfile;
| |
| if (-e $fullPathToIncomingXMLFile) {
| |
| # file exists, so lets move it
| |
| | |
| # first, translate the xml filename to a directory path
| |
| $xmlfile =~ s|___|/|g;
| |
| | |
| # for security reasons, disallow any file with ".." in the user
| |
| # specified path to keep people from storing files just anywhere in
| |
| # the host directory structure
| |
| $securityCheck = $xmlfile;
| |
| if ( ($securityCheck =~ /\.\./) ) {
| |
| print "For security reasons, $xmlfile cannot be accepted.\n";
| |
| exit;
| |
| }
| |
| | |
| # construct destination path and filename
| |
| $fullPathToDestinationXMLFile = $destination . "/" . $xmlfile;
| |
| mkpath( dirname( $fullPathToDestinationXMLFile ) );
| |
| | |
| # now copy the file to destination
| |
| move( $fullPathToIncomingXMLFile, $fullPathToDestinationXMLFile);
| |
| | |
| print "$xmlfile submission successful.\n";
| |
| }
| |
| else {
| |
| # specified file does not exist
| |
| print "$xmlfile submission failed. $xmlfile is not in the dropbox.\n";
| |
| }
| |
| | |
| }</nowiki></pre>
| |
| | |
| ==XML-RPC==
| |
| | |
| Dart2 uses XML-RPC over HTTP to perform submission of data and does not require triggering.
| |
| | |
| Example DartConfig.cmake flags:
| |
| | |
| SET (DROP_METHOD "xmlrpc")
| |
| SET (DROP_SITE "http://www.na-mic.org:8081/")
| |
| SET (DROP_LOCATION "Insight")
| |
| | |
| Example CTestConfig.cmake flags:
| |
| | |
| DropMethod: xmlrpc
| |
| DropSite: http://www.na-mic.org:8081/
| |
| DropLocation: Insight
| |
| | |
| {{CMake/Template/Footer}}
| |