mirror of https://github.com/BOINC/boinc.git
server: add sample validator that checks for string in stderr
This commit is contained in:
parent
6752f78ec8
commit
834ac11661
|
@ -113,6 +113,7 @@ schedshare_PROGRAMS = \
|
|||
sample_assimilator \
|
||||
sample_dummy_assimilator \
|
||||
sample_bitwise_validator \
|
||||
sample_substr_validator \
|
||||
sample_trivial_validator \
|
||||
sample_work_generator \
|
||||
single_job_assimilator \
|
||||
|
@ -218,6 +219,10 @@ sample_bitwise_validator_SOURCES = $(VALIDATOR_SOURCES) \
|
|||
sample_bitwise_validator.cpp
|
||||
sample_bitwise_validator_LDADD = $(SERVERLIBS)
|
||||
|
||||
sample_substr_validator_SOURCES = $(VALIDATOR_SOURCES) \
|
||||
sample_substr_validator.cpp
|
||||
sample_substr_validator_LDADD = $(SERVERLIBS)
|
||||
|
||||
sample_trivial_validator_SOURCES = $(VALIDATOR_SOURCES) \
|
||||
sample_trivial_validator.cpp
|
||||
sample_trivial_validator_LDADD = $(SERVERLIBS)
|
||||
|
|
|
@ -0,0 +1,64 @@
|
|||
// This file is part of BOINC.
|
||||
// http://boinc.berkeley.edu
|
||||
// Copyright (C) 2014 University of California
|
||||
//
|
||||
// BOINC is free software; you can redistribute it and/or modify it
|
||||
// under the terms of the GNU Lesser General Public License
|
||||
// as published by the Free Software Foundation,
|
||||
// either version 3 of the License, or (at your option) any later version.
|
||||
//
|
||||
// BOINC is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
// See the GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public License
|
||||
// along with BOINC. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
// A sample validator that accepts results whose stderr output
|
||||
// contains a given string.
|
||||
// Usage:
|
||||
// sample_substr_validator --stderr_string xxx [other options]
|
||||
|
||||
#include "sched_msgs.h"
|
||||
#include "validate_util2.h"
|
||||
#include "validator.h"
|
||||
|
||||
bool first = true;
|
||||
char* stderr_string;
|
||||
|
||||
void parse_cmdline() {
|
||||
for (int i=1; i<g_argc; i++) {
|
||||
if (!strcmp(g_argv[i], "--stderr_string")) {
|
||||
stderr_string = g_argv[++i];
|
||||
return;
|
||||
}
|
||||
}
|
||||
log_messages.printf(MSG_CRITICAL,
|
||||
"--stderr_string missing from command line\n"
|
||||
);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
int init_result(RESULT& r, void*&) {
|
||||
if (first) {
|
||||
parse_cmdline();
|
||||
first = false;
|
||||
}
|
||||
if (strstr(r.stderr_out, stderr_string)) {
|
||||
return 0;
|
||||
} else {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
int compare_results(RESULT&, void*, RESULT const&, void*, bool& match) {
|
||||
match = true;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int cleanup_result(RESULT const&, void*) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char *BOINC_RCSID_f3a7a34795 = "$Id$";
|
|
@ -17,11 +17,7 @@
|
|||
|
||||
// A sample validator that accepts all results
|
||||
|
||||
#include <cstdlib>
|
||||
#include "config.h"
|
||||
#include "validate_util.h"
|
||||
|
||||
using std::vector;
|
||||
#include "validate_util2.h"
|
||||
|
||||
int init_result(RESULT&, void*&) {
|
||||
return 0;
|
||||
|
|
|
@ -101,6 +101,8 @@ bool credit_from_wu = false;
|
|||
bool credit_from_runtime = false;
|
||||
double max_runtime = 0;
|
||||
bool no_credit = false;
|
||||
int g_argc;
|
||||
char **g_argv;
|
||||
|
||||
WORKUNIT* g_wup;
|
||||
vector<DB_APP_VERSION> app_versions;
|
||||
|
@ -790,6 +792,8 @@ int main(int argc, char** argv) {
|
|||
exit(1);
|
||||
}
|
||||
}
|
||||
g_argc = argc;
|
||||
g_argv = argv;
|
||||
|
||||
if (app_name[0] == 0) {
|
||||
log_messages.printf(MSG_CRITICAL,
|
||||
|
|
|
@ -19,11 +19,11 @@
|
|||
|
||||
extern double max_granted_credit;
|
||||
// the --max_granted_credit cmdline arg, or 0
|
||||
extern double max_claimed_credit;
|
||||
// the --max_claimed_credit cmdline arg, or 0
|
||||
extern bool grant_claimed_credit;
|
||||
// the --grant_claimed_credit cmdline arg, or false
|
||||
|
||||
extern WORKUNIT* g_wup;
|
||||
// A pointer to the WU currently being processed;
|
||||
// you can use this in your init_result() etc. functions
|
||||
// you can access this in your init_result() etc. functions
|
||||
// (which are passed RESULT but not WORKUNIT)
|
||||
|
||||
extern int g_argc;
|
||||
extern char** g_argv;
|
||||
|
|
Loading…
Reference in New Issue