Index: Makefile ================================================================== --- Makefile +++ Makefile @@ -20,20 +20,20 @@ MTESTHASH=$(shell fossil info|grep checkout:| awk '{print $$2}') CSIPATH=$(shell which csi) CKPATH=$(shell dirname $(shell dirname $(CSIPATH))) -all : mtest dboard newdashboard +all : mtest dboard newdboard mtest: $(OFILES) megatest.o csc $(CSCOPTS) $(OFILES) megatest.o -o mtest dboard : $(OFILES) $(GOFILES) dashboard.scm csc $(OFILES) dashboard.scm $(GOFILES) -o dboard -newdashboard : newdashboard.scm $(OFILES) - csc $(OFILES) newdashboard.scm -o newdashboard +newdboard : newdashboard.scm $(OFILES) $(GOFILES) + csc $(OFILES) $(GOFILES) newdashboard.scm -o newdboard deploytarg/libiupcd.so : $(CKPATH)/lib/libiupcd.so for i in iup im cd av call sqlite; do \ cp $(CKPATH)/lib/lib$$i* deploytarg/ ; \ done @@ -70,12 +70,14 @@ @echo Installing to PREFIX=$(PREFIX) $(INSTALL) mtest $(PREFIX)/bin/mtest utils/mk_wrapper $(PREFIX) mtest > $(PREFIX)/bin/megatest chmod a+x $(PREFIX)/bin/megatest -$(PREFIX)/bin/newdashboard : newdashboard - $(INSTALL) newdashboard $(PREFIX)/bin/newdashboard +$(PREFIX)/bin/newdboard : newdboard + $(INSTALL) newdboard $(PREFIX)/bin/newdboard + utils/mk_wrapper $(PREFIX) newdboard > $(PREFIX)/bin/newdashboard + chmod a+x $(PREFIX)/bin/newdashboard $(HELPERS) : utils/mt_* $(INSTALL) $< $@ chmod a+x $@ @@ -104,11 +106,11 @@ $(PREFIX)/bin/dboard : dboard $(FILES) $(INSTALL) dboard $(PREFIX)/bin/dboard utils/mk_wrapper $(PREFIX) dboard > $(PREFIX)/bin/dashboard chmod a+x $(PREFIX)/bin/dashboard -install : bin $(PREFIX)/bin/mtest $(PREFIX)/bin/megatest $(PREFIX)/bin/dboard $(PREFIX)/bin/dashboard $(HELPERS) $(PREFIX)/bin/nbfake $(PREFIX)/bin/nbfind $(PREFIX)/bin/newdashboard +install : bin $(PREFIX)/bin/mtest $(PREFIX)/bin/megatest $(PREFIX)/bin/dboard $(PREFIX)/bin/dashboard $(HELPERS) $(PREFIX)/bin/nbfake $(PREFIX)/bin/nbfind $(PREFIX)/bin/newdboard deploytarg/apropos.so : Makefile for i in apropos base64 canvas-draw csv-xml directory-utils dot-locking extras fmt format hostinfo http-client intarweb json md5 message-digest posix posix-extras readline regex regex-case s11n spiffy spiffy-request-vars sqlite3 srfi-1 srfi-18 srfi-69 tcp test uri-common zmq check-errors synch matchable sql-null tcp-server rpc blob-utils string-utils variable-item defstruct uri-generic sendfile opensll openssl lookup-table list-utils stack; do \ chicken-install -prefix deploytarg -deploy $$i;done Index: configf.scm ================================================================== --- configf.scm +++ configf.scm @@ -11,11 +11,11 @@ ;;====================================================================== ;; Config file handling ;;====================================================================== -(use regex regex-case) +(use regex regex-case directory-utils) (declare (unit configf)) (declare (uses common)) (declare (uses process)) (include "common_records.scm") @@ -148,16 +148,21 @@ res) (regex-case inl (configf:comment-rx _ (loop (configf:read-line inp res allow-system) curr-section-name #f #f)) (configf:blank-l-rx _ (loop (configf:read-line inp res allow-system) curr-section-name #f #f)) - (configf:include-rx ( x include-file ) (let ((curr-dir (current-directory)) - (conf-dir (pathname-directory path))) - (if conf-dir (change-directory conf-dir)) - (read-config include-file res allow-system environ-patt: environ-patt curr-section: curr-section-name sections: sections) - (change-directory curr-dir) - (loop (configf:read-line inp res allow-system) curr-section-name #f #f))) + (configf:include-rx ( x include-file ) (if (file-exists? include-file) + (let ((curr-dir (current-directory)) + (conf-dir (pathname-directory include-file)) + (incfname (pathname-strip-directory include-file))) + (push-directory conf-dir) + (read-config incfname res allow-system environ-patt: environ-patt curr-section: curr-section-name sections: sections) + (pop-directory) + (loop (configf:read-line inp res allow-system) curr-section-name #f #f)) + (begin + (debug:print 0 "INFO: include file " include-file " not found (called from " path ")") + (loop (configf:read-line inp res allow-system) curr-section-name #f #f)))) (configf:section-rx ( x section-name ) (loop (configf:read-line inp res allow-system) ;; if we have the sections list then force all settings into "" and delete it later? (if (or (not sections) (member section-name sections)) section-name "") ;; stick everything into "" Index: docs/manual/megatest_manual.txt ================================================================== --- docs/manual/megatest_manual.txt +++ docs/manual/megatest_manual.txt @@ -63,17 +63,25 @@ include::getting_started.txt[] include::writing_tests.txt[] include::reference.txt[] +Controlled waiver propagation +============================= +If test is FAIL and previous test in run with same MT_TARGET is WAIVED then apply the following rules from the testconfig: +If a waiver check is specified in the testconfig apply the check and if it passes then set this FAIL to WAIVED + +Waiver check has two parts, 1) a list of waiver, rulename, filepatterns and 2) the rulename script spec (note that "diff" and "logpro" are predefined) + ========================================================= -# logpro_file input_glob +###### EXAMPLE FROM testconfig ######### # matching file(s) will be diff'd with previous run and logpro applied # if PASS or WARN result from logpro then WAIVER state is set # [waivers] -waiver_1 logpro lookittmp.log +# logpro_file rulename input_glob +waiver_1 logpro lookittmp.log [waiver_rules] # This builtin rule is the default if there is no .logpro file # diff diff %file1% %file2% Index: docs/megatest-training.odp ================================================================== --- docs/megatest-training.odp +++ docs/megatest-training.odp cannot compute difference between binary files Index: megatest-version.scm ================================================================== --- megatest-version.scm +++ megatest-version.scm @@ -1,7 +1,7 @@ ;; Always use two digit decimal ;; 1.01, 1.02...1.10,1.11 ... 1.99,2.00.. (declare (unit megatest-version)) -(define megatest-version 1.5405) +(define megatest-version 1.5406) Index: megatest.scm ================================================================== --- megatest.scm +++ megatest.scm @@ -40,11 +40,11 @@ ;; cdb:client-call ;; tests:check-waiver-eligibility) (define help (conc " -Megatest, documentation at http://chiselapp.com/user/kiatoa/repository/megatest +Megatest, documentation at http://www.kiatoa.com/fossils/megatest version " megatest-version " license GPL, Copyright Matt Welland 2006-2012 Usage: megatest [options] -h : this help Index: tests/fullrun/megatest.config ================================================================== --- tests/fullrun/megatest.config +++ tests/fullrun/megatest.config @@ -6,11 +6,11 @@ # refareas can be searched to find previous runs # the path points to where megatest.db exists [refareas] area1 /tmp/oldarea/megatest -[include #{getenv MT_RUN_AREA_HOME}/config/mt_include_1.config] +[include config/mt_include_1.config] [setup] # It is possible (but not recommended) to override the rsync command used # to populate the test directories. For test development the following