From 47d3c9ffffb362a29861217bd5870d4e2a1db52a Mon Sep 17 00:00:00 2001 From: David Anderson Date: Tue, 19 Feb 2013 21:24:42 -0800 Subject: [PATCH] - wrapper: eliminate spurious error message in zip parsing; make it work if stderr.txt is one of the files being zipped. - user web: show GPU driver version as 341.07 --- html/inc/host.inc | 2 +- samples/wrapper/Makefile | 2 +- samples/wrapper/job.xml | 21 +++++++++++---------- samples/wrapper/wrapper.cpp | 25 +++++++++++++++---------- 4 files changed, 28 insertions(+), 22 deletions(-) diff --git a/html/inc/host.inc b/html/inc/host.inc index b46ef5ce91..4aeaac2ffb 100644 --- a/html/inc/host.inc +++ b/html/inc/host.inc @@ -272,7 +272,7 @@ function gpu_desc($x) { $i = (int)$d[4]; $maj = (int)($i/100); $min = $i%100; - $str .= " driver: $maj.$min"; + $str .= sprintf(" driver: %d.%02d", $maj, $min); } } } diff --git a/samples/wrapper/Makefile b/samples/wrapper/Makefile index 6864b24c48..226a28d4cc 100644 --- a/samples/wrapper/Makefile +++ b/samples/wrapper/Makefile @@ -6,7 +6,7 @@ BOINC_API_DIR = $(BOINC_DIR)/api BOINC_LIB_DIR = $(BOINC_DIR)/lib BOINC_ZIP_DIR = $(BOINC_DIR)/zip -CXXFLAGS = -g \ +CXXFLAGS = -g -O0 \ -Wall -W -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -fno-common \ -I$(BOINC_DIR) \ -I$(BOINC_LIB_DIR) \ diff --git a/samples/wrapper/job.xml b/samples/wrapper/job.xml index 4bc0cdfa24..9df3a8462b 100644 --- a/samples/wrapper/job.xml +++ b/samples/wrapper/job.xml @@ -1,14 +1,15 @@ - worker - stdin - stdout - 10 - - - worker - stdin - stdout - 10 + ./echo + Hello World + stdout_file + stderr_file + + in.zip + + + out.zip + stderr.txt + diff --git a/samples/wrapper/wrapper.cpp b/samples/wrapper/wrapper.cpp index ed88b08a86..4ba3af4904 100644 --- a/samples/wrapper/wrapper.cpp +++ b/samples/wrapper/wrapper.cpp @@ -400,6 +400,7 @@ int parse_unzip_input(XML_PARSER& xp) { } if (xp.parse_string("zipfilename", s)) { unzip_filenames.push_back(s); + continue; } fprintf(stderr, "%s unexpected tag in job.xml: %s\n", @@ -938,16 +939,6 @@ int main(int argc, char** argv) { } } - memset(&options, 0, sizeof(options)); - options.main_program = true; - options.check_heartbeat = true; - options.handle_process_control = true; - - boinc_init_options(&options); - fprintf(stderr, "wrapper: starting\n"); - - boinc_get_init_data(aid); - retval = parse_job_file(); if (retval) { fprintf(stderr, "can't parse job file: %d\n", retval); @@ -966,6 +957,20 @@ int main(int argc, char** argv) { write_checkpoint(0, 0); get_initial_file_list(); } + + // do initialization after getting initial file list, + // in case we're supposed to zip stderr.txt + // + memset(&options, 0, sizeof(options)); + options.main_program = true; + options.check_heartbeat = true; + options.handle_process_control = true; + + boinc_init_options(&options); + fprintf(stderr, "wrapper: starting\n"); + + boinc_get_init_data(aid); + if (ntasks_completed > (int)tasks.size()) { fprintf(stderr, "Checkpoint file: ntasks_completed too large: %d > %d\n",