Changes In Branch development
Through [fa512c78ed]
Excluding Merge-Ins
This is equivalent to a diff from
601ea0a908
to fa512c78ed
Modified .fossil-settings/ignore-glob
from [f29b162901]
to [92ee512e61].
1
2
3
4
5
6
7
8
9
10
11
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
+
+
|
utils/build/*
*~
*.o
bin/*
tests/megatest.db
tests/monitor.db
megatest
dboard
tests/fullrun/tmp/*
tests/simpleruns
tests/simplelinks
mkdeploy/runs
mkdeploy/links
|
Modified Makefile
from [be97b6abe5]
to [060ce7f733].
︙ | | |
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
-
-
+
+
+
|
GUISRCF = dashboard-tests.scm dashboard-guimonitor.scm
OFILES = $(SRCFILES:%.scm=%.o)
GOFILES = $(GUISRCF:%.scm=%.o)
ADTLSCR=mt_laststep mt_runstep mt_ezstep
HELPERS=$(addprefix $(PREFIX)/bin/,$(ADTLSCR))
DEPLOYHELPERS=$(addprefix $(DEPLOYTARG)/,$(ADTLSCR))
DEPLOYHELPERS=$(addprefix deploytarg/,$(ADTLSCR))
MTESTHASH=$(shell fossil info|grep checkout:| awk '{print $$2}')
CSIPATH=$(shell which csi)
CKPATH=$(shell dirname $(shell dirname $(CSIPATH)))
all : mtest dboard newdashboard
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
deploytarg/libiupcd.so : $(CKPATH)/lib/libiupcd.so
for i in iup im cd av call sqlite; do \
cp $(CKPATH)/lib/lib$$i* deploytarg/ ; \
done
cp $(CKPATH)/include/*.h deploytarg
# puts deployed megatest in directory "megatest"
$(DEPLOYTARG)/megatest : $(OFILES) megatest.o
csc -deployed $(CSCOPTS) $(OFILES) megatest.o -o $(DEPLOYTARG)/megatest
deploytarg/megatest : $(OFILES) megatest.o
csc -deploy $(CSCOPTS) $(OFILES) megatest.scm
rsync -av megatest/ deploytarg/
$(DEPLOYTARG)/dashboard : $(OFILES) $(GOFILES)
csc -deployed $(OFILES) $(GOFILES) -o $(DEPLOYTARG)/dashboard
deploytarg/dashboard : $(OFILES) $(GOFILES)
csc -deploy $(OFILES) $(GOFILES) dashboard.scm
rsync -av dashboard/ deploytarg/
# Special dependencies for the includes
tests.o db.o launch.o runs.o dashboard-tests.o dashboard-guimonitor.o dashboard-main.o monitor.o dashboard.o megatest.o : db_records.scm
tests.o runs.o dashboard.o dashboard-tests.o dashboard-main.o : run_records.scm
db.o ezsteps.o keys.o launch.o megatest.o monitor.o runs-for-ref.o runs.o tests.o : key_records.scm
tests.o tasks.o dashboard-tasks.o : task_records.scm
|
︙ | | |
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
+
+
+
-
+
-
+
-
+
+
+
+
-
+
+
+
+
+
+
+
|
$(PREFIX)/bin/mtest : mtest
@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
$(HELPERS) : utils/mt_*
$(INSTALL) $< $@
chmod a+x $@
$(DEPLOYHELPERS) : utils/mt_*
$(INSTALL) $< $@
chmod a+X $@
$(PREFIX)/bin/nbfake : utils/nbfake
$(INSTALL) $< $@
chmod a+x $@
$(PREFIX)/bin/nbfind : utils/nbfind
$(INSTALL) $< $@
chmod a+x $@
$(DEPLOYTARG)/nbfake : utils/nbfake
deploytarg/nbfake : utils/nbfake
$(INSTALL) $< $@
chmod a+x $@
$(DEPLOYTARG)/nbfind : utils/nbfind
deploytarg/nbfind : utils/nbfind
$(INSTALL) $< $@
chmod a+x $@
# install dashboard as dboard so wrapper script can be called dashboard
$(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
install : bin $(PREFIX)/bin/mtest $(PREFIX)/bin/megatest $(PREFIX)/bin/dboard $(PREFIX)/bin/dashboard $(HELPERS) $(PREFIX)/bin/nbfake $(PREFIX)/bin/nbfind $(PREFIX)/bin/newdashboard
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
deploy : $(DEPLOYTARG)/megatest $(DEPLOYTARG)/dashboard $(DEPLOYHELPERS) $(DEPLOYTARG)/nbfake $(DEPLOYTARG)/nbfind
deploytarg/libsqlite3.so :
CSC_OPTIONS="-Ideploytarg -Ldeploytarg" $CHICKEN_INSTALL -prefix deploytarg -deploy sqlite3
deploy : deploytarg/megatest deploytarg/dashboard $(DEPLOYHELPERS) deploytarg/nbfake deploytarg/nbfind deploytarg/libiupcd.so deploytarg/apropos.so
bin :
mkdir -p $(PREFIX)/bin
test: tests/tests.scm
cd tests;csi -I .. -b -n tests.scm
clean :
rm -f $(OFILES) $(GOFILES) megatest dboard dboard.o megatest.o
|
Modified configf.scm
from [05823356b4]
to [c9fe6d3ae6].
︙ | | |
237
238
239
240
241
242
243
244
245
246
247
248
249
250
|
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
|
+
+
|
#f
(let ((match (assoc var sectdat)))
(if match ;; (and match (list? match)(> (length match) 1))
(cadr match)
#f))
))
#f))
(define configf:lookup config-lookup)
(define (configf:section-vars cfgdat section)
(let ((sectdat (hash-table-ref/default cfgdat section '())))
(if (null? sectdat)
'()
(map car sectdat))))
|
︙ | | |
Modified dashboard.scm
from [d676ee3f3f]
to [7c18e62e8f].
︙ | | |
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
+
|
(list "-rows"
"-run"
"-test"
"-debug"
"-host"
)
(list "-h"
"-use-server"
"-guimonitor"
"-main"
"-v"
"-q"
)
args:arg-hash
0))
|
︙ | | |
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
+
+
-
+
|
(define *db* #f) ;; (open-db))
(if (args:get-arg "-host")
(begin
(set! *runremote* (string-split (args:get-arg "-host" ":")))
(client:launch))
(if (not (args:get-arg "-use-server"))
(set! *transport-type* 'fs) ;; force fs access
(client:launch))
(client:launch)))
;; HACK ALERT: this is a hack, please fix.
(define *read-only* (not (file-read-access? (conc *toppath* "/megatest.db"))))
;; (client:setup *db*)
(define toplevel #f)
(define dlg #f)
|
︙ | | |
Modified db.scm
from [a79dc29e57]
to [0623ab4501].
︙ | | |
258
259
260
261
262
263
264
265
266
267
268
269
270
271
|
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
|
+
+
+
+
+
+
+
+
+
+
|
(if (not dbexists)
(begin
(sqlite3:execute db "PRAGMA synchronous = FULL;")
(debug:print-info 11 "Initialized test database " dbpath)
(db:testdb-initialize db)))
;; (sqlite3:execute db "PRAGMA synchronous = 0;")
(debug:print-info 11 "open-test-db END (sucessful)" testpath)
;; now let's test that everything is correct
(handle-exceptions
exn
(begin
(debug:print 0 "ERROR: problem accessing test db " testpath ", you probably should clean and re-run this test"
((condition-property-accessor 'exn 'message) exn))
#f)
;; Is there a cheaper single line operation that will check for existance of a table
;; and raise an exception ?
(sqlite3:execute db "SELECT id FROM test_data LIMIT 1;"))
db)
(begin
(debug:print-info 11 "open-test-db END (unsucessful)" testpath)
#f)))
;; find and open the testdat.db file for an existing test
(define (db:open-test-db-by-test-id db test-id)
|
︙ | | |
Added docs/dashboard-and-other-windows.png version [a35c6fd575].
cannot compute difference between binary files
Added docs/dashboard-small.png version [211ec54d32].
cannot compute difference between binary files
Modified docs/dashboard-test.png
from [14d4ee0830]
to [456084404a].
cannot compute difference between binary files
Modified docs/manual/megatest_manual.html
from [6c30402d62]
to [2055d691a1].
︙ | | |
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
|
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
|
-
+
-
-
-
+
-
-
-
-
-
-
-
+
+
+
+
+
|
<span id="revnumber">version 1.0,</span>
<span id="revdate">April 2012</span>
</div>
<div id="content">
<div class="sect1">
<h2 id="_dedication">Dedication</h2>
<div class="sectionbody">
<div class="paragraph"><p>Dedicated to my wife, Joanna, who has, for many years now, supported
<div class="paragraph"><p>Dedicated to my wife Joanna who has kindly supported my working on various projects over the years.</p></div>
all my wacky ideas and nutty projects with only the occasional grumble
and roll of the eyes.</p></div>
<div class="sect1">
<h2 id="_thanks">Thanks</h2>
<div class="sectionbody">
<div class="paragraph"><p>To all the great people from the various places I’ve worked over the
<div class="paragraph"><p>Thank you the many people I’ve worked over the years who have
years, thank you. I’ve benefitted from your patience and insight and I
hope that some of what I’ve learned from you has been incorporated
into Megatest.</p></div>
<div class="paragraph"><p>Also, my thanks to all the wonderful open source creators. These
truly free projects, from Linux, xemacs, chicken scheme, and fossil to
asciidoc and bash are the philosophical and direct underpinnings of
the Megatest project.</p></div>
shared their knowledge and insights with me.</p></div>
<div class="paragraph"><p>Thanks also to the creators of the various open source projects that
Megatest is built on. These include Linux, xemacs, chicken scheme,
fossil and asciidoc. Without these projects something like Megatest
would be difficult or impossible to do.</p></div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_preface">Preface</h2>
<div class="sectionbody">
|
︙ | | |
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
|
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
|
-
+
|
</div>
</div>
</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
Version 1.0<br />
Last updated 2012-05-03 07:53:32 MST
Last updated 2013-03-25 09:17:02 MST
</div>
</div>
</body>
</html>
|
Modified docs/manual/megatest_manual.txt
from [de94f0104e]
to [5c6fd3ea7c].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
-
+
-
-
-
-
+
+
-
-
-
-
+
+
-
-
+
+
|
The Megatest Users Manual
=========================
Matt Welland <matt@kiatoa.com>
v1.0, April 2012
:doctype: book
[dedication]
Dedication
==========
Dedicated to my wife, Joanna, who has, for many years now, supported
Dedicated to my wife Joanna who has kindly supported my working on various projects over the years.
all my wacky ideas and nutty projects with only the occasional grumble
and roll of the eyes.
Thanks
------
To all the great people from the various places I've worked over the
years, thank you. I've benefitted from your patience and insight and I
Thank you the many people I've worked over the years who have
shared their knowledge and insights with me.
hope that some of what I've learned from you has been incorporated
into Megatest.
Also, my thanks to all the wonderful open source creators. These
truly free projects, from Linux, xemacs, chicken scheme, and fossil to
Thanks also to the creators of the various open source projects that
Megatest is built on. These include Linux, xemacs, chicken scheme,
asciidoc and bash are the philosophical and direct underpinnings of
the Megatest project.
fossil and asciidoc. Without these projects something like Megatest
would be difficult or impossible to do.
[preface]
Preface
=======
This book is organised as three sub-books; getting started, writing tests and reference.
Why Megatest?
|
︙ | | |
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
the distributed compute platform in use. A template script is provided
which can launch jobs on local and remote Linux hosts. Currently
megatest uses the network filesystem to call home to your master
sqlite3 database.
include::getting_started.txt[] include::writing_tests.txt[]
include::reference.txt[]
=========================================================
# logpro_file input_glob
# 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
[waiver_rules]
# This builtin rule is the default if there is no <waivername>.logpro file
# diff diff %file1% %file2%
# This builtin rule is applied if a <waivername>.logpro file exists
# logpro diff %file1% %file2% | logpro %waivername%.logpro %waivername%.html
=========================================================
[appendix]
Example Appendix
================
One or more optional appendixes go here at section level zero.
Appendix Sub-section
|
︙ | | |
Added docs/megatest-training.odp version [093164d585].
cannot compute difference between binary files
Added docs/megatest-training.pdf version [201749c3bb].
cannot compute difference between binary files
Added docs/new-dashboard.png version [a952fb4cfb].
cannot compute difference between binary files
Added example/megatest.config version [f551a39ee6].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
[fields]
PLATFORM TEXT
OS TEXT
[setup]
# Adjust max_concurrent_jobs to limit parallel jobs
max_concurrent_jobs 50
# This is your link path, best to set it and then not change it
linktree #{getenv PWD}/linktree
# Job tools control how your jobs are launched
[jobtools]
useshell yes
launcher nbfind
# You can override environment variables for all your tests here
[env-override]
EXAMPLE_VAR example value
# As you run more tests you may need to add additional disks
# the names are arbitrary but must be unique
[disks]
disk0 #{getenv PWD}/runs
|
| | | | | | | | | | | | | | | | | | | | | | |
Added example/runconfigs.config version [346ed47154].
|
1
2
3
4
5
6
|
+
+
+
+
+
+
|
[default]
ALLTESTS see this variable
# Your variables here are grouped by targets [SYSTEM/RELEASE]
[SYSTEM_val/RELEASE_val]
ANOTHERVAR only defined if target is SYSTEM_val/RELEASE_val
|
| | | | |
Added example/tests/checkspace/checkspace.logpro version [ee0eb59e56].
|
1
2
3
|
+
+
+
|
(expect:error in "LogFileBody" = 0 "Any error" #/err/i)
(expect:required in "LogFileBody" = 1 "Sucess signature" #/adequate space/)
|
| |
Added example/tests/checkspace/checkspace.sh version [82b23e5995].
|
1
2
3
4
5
6
7
8
|
+
+
+
+
+
+
+
+
|
#!/bin/bash -e
freespace=`df -k $DIRECTORY | grep $DIRECTORY | awk '{print $4}'`
if [[ $freespace -lt $REQUIRED ]];then
echo "ERROR: insufficient space on $DIRECTORY"
exit 1
else
echo "There is adequate space on $DIRECTORY"
fi
|
| | | | | | |
Added example/tests/checkspace/testconfig version [10e3422ed2].
|
1
2
3
4
5
6
7
8
9
|
+
+
+
+
+
+
+
+
+
|
# Add steps here. Format is "stepname script"
[ezsteps]
checkspace checkspace.sh
# Iteration for your tests are controlled by the items section
[itemstable]
DIRECTORY /tmp /opt
REQUIRED 1000000 100000
|
| | | | | | | |
Modified launch.scm
from [f18b47fd5d]
to [4243d5cf59].
︙ | | |
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
|
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
|
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
-
+
-
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
-
+
|
;; Now create the link from the test path to the link tree, however
;; if the test is iterated it is necessary to create the parent path
;; to the iteration. use pathname-directory to trim the path by one
;; level
(if (not not-iterated) ;; i.e. iterated
(let ((iterated-parent (pathname-directory (conc lnkpath "/" item-path))))
(debug:print-info 2 "Creating iterated parent " iterated-parent)
(handle-exceptions
exn
(begin
(debug:print 0 "ERROR: Failed to create directory " iterated-parent ((condition-property-accessor 'exn 'message) exn) ", exiting")
(exit 1))
(create-directory iterated-parent #t)))
(create-directory iterated-parent #t))))
(if (symbolic-link? lnkpath) (delete-file lnkpath))
(if (symbolic-link? lnkpath)
(handle-exceptions
exn
(begin
(debug:print 0 "ERROR: Failed to remove symlink " lnkpath ((condition-property-accessor 'exn 'message) exn) ", exiting")
(exit 1))
(delete-file lnkpath)))
(if (not (or (file-exists? lnkpath)
(symbolic-link? lnkpath)))
(handle-exceptions
exn
(begin
(debug:print 0 "ERROR: Failed to create symlink " lnkpath ((condition-property-accessor 'exn 'message) exn) ", exiting")
(exit 1))
(create-symbolic-link toptest-path lnkpath))
(create-symbolic-link toptest-path lnkpath)))
;; The toptest path has been created, the link to the test in the linktree has
;; been created. Now, if this is an iterated test the real test dir must be created
(if (not not-iterated) ;; this is an iterated test
(let ((lnktarget (conc lnkpath "/" item-path)))
(debug:print 2 "Setting up sub test run area")
(debug:print 2 " - creating run area in " test-path)
(handle-exceptions
exn
(begin
(debug:print 0 "ERROR: Failed to create directory " test-path ((condition-property-accessor 'exn 'message) exn) ", exiting")
(exit 1))
(create-directory test-path #t) ;; (system (conc "mkdir -p " test-path))
(create-directory test-path #t))
(debug:print 2
" - creating link from: " test-path "\n"
" to: " lnktarget)
;; (create-directory lnkpath #t) ;; (system (conc "mkdir -p " lnkpath))
;; If there is already a symlink delete it and recreate it.
(handle-exceptions
exn
(begin
(debug:print 0 "ERROR: Failed to re-create link " linktarget ((condition-property-accessor 'exn 'message) exn) ", exiting")
(exit))
(if (symbolic-link? lnktarget) (delete-file lnktarget))
(if (not (file-exists? lnktarget)) (create-symbolic-link test-path lnktarget))))
(if (symbolic-link? lnktarget) (delete-file lnktarget))
(if (not (file-exists? lnktarget)) (create-symbolic-link test-path lnktarget)))))
;; I suspect this section was deleting test directories under some
;; wierd sitations? This doesn't make sense - reenabling the rm -f
;; I honestly don't remember *why* this chunk was needed...
;; (let ((testlink (conc lnkpath "/" testname)))
;; (if (and (file-exists? testlink)
;; (or (regular-file? testlink)
;; (symbolic-link? testlink)))
;; (system (conc "rm -f " testlink)))
;; (system (conc "ln -sf " test-path " " testlink)))
(if (directory? test-path)
(begin
(let* ((ovrcmd (let ((cmd (config-lookup *configdat* "setup" "testcopycmd")))
(if cmd
;; substitute the TEST_SRC_PATH and TEST_TARG_PATH
(string-substitute "TEST_TARG_PATH" test-path
(string-substitute "TEST_SRC_PATH" test-src-path cmd))
#f)))
(cmd (if ovrcmd
ovrcmd
(let* ((cmd (conc "rsync -av" (if (debug:debug-mode 1) "" "q") " " test-src-path "/ " test-path "/"))
(conc "rsync -av" (if (debug:debug-mode 1) "" "q") " " test-src-path "/ " test-path "/")))
(status (system cmd)))
(if (not (eq? status 0))
(debug:print 2 "ERROR: problem with running \"" cmd "\"")))
(list lnkpathf lnkpath ))
(list #f #f))))
;; 1. look though disks list for disk with most space
|
︙ | | |
Modified megatest-version.scm
from [b8f493a8cd]
to [82fd80ecd9].
1
2
3
4
5
6
7
|
1
2
3
4
5
6
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.54)
(define megatest-version 1.5404)
|
Modified megatest.scm
from [af1aafcd34]
to [0c1c2447d3].
︙ | | |
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
+
+
+
+
+
+
+
+
|
(define *db* #f) ;; this is only for the repl, do not use in general!!!!
(include "common_records.scm")
(include "key_records.scm")
(include "db_records.scm")
(include "megatest-fossil-hash.scm")
;; (use trace)
;; (trace db:teststep-set-status!
;; tests:test-set-status!
;; cdb:test-set-status-state
;; cdb:client-call
;; tests:check-waiver-eligibility)
(define help (conc "
Megatest, documentation at http://chiselapp.com/user/kiatoa/repository/megatest
version " megatest-version "
license GPL, Copyright Matt Welland 2006-2012
Usage: megatest [options]
|
︙ | | |
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
-
-
+
+
|
Spreadsheet generation
-extract-ods fname.ods : extract an open document spreadsheet from the database
-pathmod path : insert path, i.e. path/runame/itempath/logfile.html
will clear the field if no rundir/testname/itempath/logfile
if it contains forward slashes the path will be converted
to windows style
Getting started
-gen-megatest-area : create a skeleton megatest area. You will be prompted for paths
-gen-megatest-test : create a skeleton megatest test. You will be prompted for info
-gen-megatest-area : create a skeleton megatest area. You will be prompted for paths
-gen-megatest-test tname : create a skeleton megatest test. You will be prompted for info
Examples
# Get test path, use '.' to get a single path or a specific path/file pattern
megatest -test-files 'logs/*.log' -target ubuntu/n%/no% :runname w49% -testpatt test_mt%
Called as " (string-intersperse (argv) " ") "
|
︙ | | |
Added mkdeploy/megatest.config version [abe5540207].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
[fields]
PLATFORM TEXT
OS TEXT
OSVER TEXT
[setup]
# Adjust max_concurrent_jobs to limit parallel jobs
max_concurrent_jobs 20
# This is your link path, best to set it and then not change it
linktree #{getenv MT_RUN_AREA_HOME}/linktree
# Job tools control how your jobs are launched
[jobtools]
useshell yes
launcher nbfind
# As you run more tests you may need to add additional disks
# the names are arbitrary but must be unique
#
[disks]
disk0 #{getenv MT_RUN_AREA_HOME}/runs
# put env-override last so definitions in site.config by default
# are added as env-override variables
#
[env-override]
# if the file site.config exists it will be used
[include site.config]
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | |
Added mkdeploy/runconfigs.config version [739b3a2709].
|
1
2
3
4
5
6
7
8
9
|
+
+
+
+
+
+
+
+
+
|
[default]
TARGDIR_tmp /tmp
TARGDIR_opt /opt
TARGDIR_runs #{getenv MT_RUN_AREA_HOME}/runs
BUILDDIR #{getenv MT_RUN_AREA_HOME}/..
# Your variables here are grouped by targets [SYSTEM/RELEASE]
[SYSTEM_val/RELEASE_val]
ANOTHERVAR only defined if target is SYSTEM_val/RELEASE_val
|
| | | | | | | |
Added mkdeploy/tests/checkspace/checkspace.logpro version [ee0eb59e56].
|
1
2
3
|
+
+
+
|
(expect:error in "LogFileBody" = 0 "Any error" #/err/i)
(expect:required in "LogFileBody" = 1 "Sucess signature" #/adequate space/)
|
| |
Added mkdeploy/tests/checkspace/checkspace.sh version [dc233ea2bc].
|
1
2
3
4
5
6
7
8
|
+
+
+
+
+
+
+
+
|
#!/bin/bash -e
freespace=`df -k /$DIRECTORY | grep $DIRECTORY | awk '{print $4}'`
if [[ $freespace -lt $REQUIRED ]];then
echo "ERROR: insufficient space on /$DIRECTORY"
exit 1
else
echo "There is adequate space on /$DIRECTORY"
fi
|
| | | | | | |
Added mkdeploy/tests/checkspace/testconfig version [64ad5ec3fd].
|
1
2
3
4
5
6
7
8
9
10
11
|
+
+
+
+
+
+
+
+
+
+
+
|
# Add steps here. Format is "stepname script"
[ezsteps]
checkspace checkspace.sh
# Iteration for your tests are controlled by the items section
# However it is impractical to code the actual directory here
# so use names here and dereference to variables in runconfigs
[itemstable]
DIRECTORY tmp opt runs
REQUIRED 100000 100000 1000000
|
| | | | | | | | | |
Added mkdeploy/tests/eggs/install.logpro version [6d91c96c24].
|
1
2
3
4
5
|
+
+
+
+
+
|
(expect:ignore in "LogFileBody" >= 0 "ignore setup-error-handling" #/setup-error-handling/)
(expect:ignore in "LogFileBody" >= 0 "ignore check-errors" (list #/check-errors/ #/type-errors/ #/srfi-4-errors/))
(expect:error in "LogFileBody" = 0 "Any error" #/error/i)
(expect:required in "LogFileBody" = 1 "Sucess signature" #/DONE/)
|
| | | |
Added mkdeploy/tests/eggs/install.sh version [f4ea44ce25].
|
1
2
3
4
|
+
+
+
+
|
#!/bin/bash -e
targpath=`megatest -test-paths -target $MT_TARGET :runname $MT_RUNNAME -testpatt executables/megatest`
chicken-install -prefix $targpath/megatest -deploy $EGGNAME
echo DONE
|
| | |
Added mkdeploy/tests/eggs/testconfig version [9e809f74ce].
|
1
2
3
4
5
6
7
8
9
10
11
12
|
+
+
+
+
+
+
+
+
+
+
+
+
|
# Add steps here. Format is "stepname script"
[ezsteps]
install install.sh
[requirements]
waiton executables
# Iteration for your tests are controlled by the items section
# However it is impractical to code the actual directory here
# so use names here and dereference to variables in runconfigs
[items]
EGGNAME 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 openssl lookup-table list-utils stack
|
| | | | | | | | | | |
Added mkdeploy/tests/executables/addlibs.logpro version [6af16367a1].
|
1
2
3
|
+
+
+
|
(expect:error in "LogFileBody" = 0 "Any error" #/err/i)
(expect:required in "LogFileBody" = 1 "Sucess signature" #/libchicken.so.6/)
|
| |
Added mkdeploy/tests/executables/addlibs.sh version [8e40255426].
|
1
2
3
4
5
6
7
8
9
10
|
+
+
+
+
+
+
+
+
+
+
|
#!/bin/bash -e
CSIPATH=$(echo $(type csi)|awk '{print $3}')
CKPATH=$(dirname $(dirname $CSIPATH))
rsync -av $EXECUTABLE/ ../deploytarg/
for i in iup im cd av call sqlite; do
cp $(CKPATH)/lib/lib$i* ../deploytarg/
done
cp $(CKPATH)/include/*.h ../deploytarg/
|
| | | | | | | | |
Added mkdeploy/tests/executables/install.logpro version [6af16367a1].
|
1
2
3
|
+
+
+
|
(expect:error in "LogFileBody" = 0 "Any error" #/err/i)
(expect:required in "LogFileBody" = 1 "Sucess signature" #/libchicken.so.6/)
|
| |
Added mkdeploy/tests/executables/install.sh version [de5fcdb1f7].
|
1
2
3
4
5
6
7
|
+
+
+
+
+
+
+
|
#!/bin/bash -e
unset LD_LIBRARY_PATH
rm -rf $EXECUTABLE
mkdir $EXECUTABLE
csc -deploy $EXECUTABLE
ls $EXECUTABLE
|
| | | | | |
Added mkdeploy/tests/executables/linksrc.logpro version [174fad494f].
|
1
2
3
|
+
+
+
|
(expect:error in "LogFileBody" = 0 "Any error" #/err/i)
(expect:required in "LogFileBody" = 1 "Sucess signature" #/Makefile/)
|
| |
Added mkdeploy/tests/executables/linksrc.sh version [aeb7742b04].
|
1
2
3
4
5
6
|
+
+
+
+
+
+
|
#!/bin/bash -e
rm -f *.scm *.o Makefile
ln -s $BUILDDIR/*.scm .
ln -s $BUILDDIR/Makefile .
ls Makefile *.scm
|
| | | | |
Added mkdeploy/tests/executables/make_mt.logpro version [bd9b47de4a].
|
1
2
3
|
+
+
+
|
(expect:error in "LogFileBody" = 0 "Any error" #/err/i)
(expect:required in "LogFileBody" = 1 "Sucess signature" #/mtest/)
|
| |
Added mkdeploy/tests/executables/testconfig version [d82229732d].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
+
+
+
+
+
+
+
+
+
+
+
+
+
|
# Add steps here. Format is "stepname script"
[ezsteps]
linksrc linksrc.sh
make_mt make
install install.sh
addlibs addlibs.sh
# Iteration for your tests are controlled by the items section
# However it is impractical to code the actual directory here
# so use names here and dereference to variables in runconfigs
[itemstable]
EXECUTABLE megatest dashboard
|
| | | | | | | | | | | |
Added mkdeploy/tests/helpers/install.logpro version [ee0eb59e56].
|
1
2
3
|
+
+
+
|
(expect:error in "LogFileBody" = 0 "Any error" #/err/i)
(expect:required in "LogFileBody" = 1 "Sucess signature" #/adequate space/)
|
| |
Added mkdeploy/tests/helpers/install.sh version [dc233ea2bc].
|
1
2
3
4
5
6
7
8
|
+
+
+
+
+
+
+
+
|
#!/bin/bash -e
freespace=`df -k /$DIRECTORY | grep $DIRECTORY | awk '{print $4}'`
if [[ $freespace -lt $REQUIRED ]];then
echo "ERROR: insufficient space on /$DIRECTORY"
exit 1
else
echo "There is adequate space on /$DIRECTORY"
fi
|
| | | | | | |
Added mkdeploy/tests/helpers/testconfig version [f444692bff].
|
1
2
3
4
5
6
7
8
9
10
11
|
+
+
+
+
+
+
+
+
+
+
+
|
# Add steps here. Format is "stepname script"
[ezsteps]
install install.sh
# Iteration for your tests are controlled by the items section
# However it is impractical to code the actual directory here
# so use names here and dereference to variables in runconfigs
[itemstable]
DIRECTORY tmp opt runs
REQUIRED 100000 100000 1000000
|
| | | | | | | | | |
Modified runs.scm
from [8801ee7227]
to [7187084d9f].
︙ | | |
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
|
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
|
+
-
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
;; (sqlite3:finalize! db)
;; now add non-directly referenced dependencies (i.e. waiton)
(if (not (null? test-names))
(let loop ((hed (car test-names))
(tal (cdr test-names))) ;; 'return-procs tells the config reader to prep running system but return a proc
(debug:print-info 4 "hed=" hed " at top of loop")
(let* ((config (tests:get-testconfig hed 'return-procs))
(waitons (let ((instr (if config
(waitons (if config (string-split (let ((w (config-lookup config "requirements" "waiton")))
(config-lookup config "requirements" "waiton")
(if w w "")))
(begin
(debug:print 0 "ERROR: non-existent required test \"" hed "\"")
(if db (sqlite3:finalize! db))
(exit 1)))))
(begin ;; No config means this is a non-existant test
(debug:print 0 "ERROR: non-existent required test \"" hed "\"")
(if db (sqlite3:finalize! db))
(exit 1)))))
(debug:print-info 8 "waitons string is " instr)
(string-split (cond
((procedure? instr)
(let ((res (instr)))
(debug:print-info 8 "waiton procedure results in string " res " for test " hed)
res))
((string? instr) instr)
(else
;; NOTE: This is actually the case of *no* waitons! ;; (debug:print 0 "ERROR: something went wrong in processing waitons for test " hed)
""))))))
(debug:print-info 8 "waitons: " waitons)
;; check for hed in waitons => this would be circular, remove it and issue an
;; error
(if (member hed waitons)
(begin
(debug:print 0 "ERROR: test " hed " has listed itself as a waiton, please correct this!")
(set! waitons (filter (lambda (x)(not (equal? x hed))) waitons))))
|
︙ | | |
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
|
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
|
+
+
+
-
+
+
+
+
-
+
|
(debug:print 0 "WARNING: test dir " real-dir " appears to not exist or is not readable")))
(if real-dir
(debug:print 0 "WARNING: directory " real-dir " does not exist")
(debug:print 0 "WARNING: no real directory corrosponding to link " run-dir ", nothing done")))
(if (symbolic-link? run-dir)
(begin
(debug:print-info 1 "Removing symlink " run-dir)
(handle-exceptions
exn
(debug:print 0 "ERROR: Failed to remove symlink " run-dir ((condition-property-accessor 'exn 'message) exn) ", attempting to continue")
(delete-file run-dir))
(delete-file run-dir)))
(if (directory? run-dir)
(if (> (directory-fold (lambda (f x)(+ 1 x)) 0 run-dir) 0)
(debug:print 0 "WARNING: refusing to remove " run-dir " as it is not empty")
(handle-exceptions
exn
(debug:print 0 "ERROR: Failed to remove directory " run-dir ((condition-property-accessor 'exn 'message) exn) ", attempting to continue")
(delete-directory run-dir)) ;; it should be empty by here BUG BUG, add error catch
(delete-directory run-dir)))
(if run-dir
(debug:print 0 "WARNING: not removing " run-dir " as it either doesn't exist or is not a symlink")
(debug:print 0 "NOTE: the run dir for this test is undefined. Test may have already been deleted."))
)))
((set-state-status)
(debug:print-info 2 "new state " (car state-status) ", new status " (cadr state-status))
(open-run-close db:test-set-state-status-by-id db (db:test-get-id test) (car state-status)(cadr state-status) #f)))))
|
︙ | | |
Modified tests.scm
from [ab3c2465d2]
to [40dd9ff166].
︙ | | |
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
-
+
|
;; PURPOSE.
;;======================================================================
;;======================================================================
;; Tests
;;======================================================================
(use sqlite3 srfi-1 posix regex regex-case srfi-69 dot-locking tcp)
(use sqlite3 srfi-1 posix regex regex-case srfi-69 dot-locking tcp directory-utils)
(import (prefix sqlite3 sqlite3:))
(declare (unit tests))
(declare (uses db))
(declare (uses common))
(declare (uses items))
(declare (uses runconfig))
|
︙ | | |
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
|
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
-
+
|
(> (db:test-get-event_time testdat)(db:test-get-event_time stored-test))))
;; this test is younger, store it in the hash
(hash-table-set! tests-hash full-testname testdat))))
results)
(if (null? tal)
(map cdr (hash-table->alist tests-hash)) ;; return a list of the most recent tests
(loop (car tal)(cdr tal))))))))))
;; Check for waiver eligibility
;;
(define (tests:check-waiver-eligibility testdat prev-testdat)
(let* ((testconfig (tests:get-testconfig (db:test-get-testname testdat) #f))
(test-rundir (db:test-get-rundir testdat))
(prev-rundir (db:test-get-rundir prev-testdat))
(waivers (configf:section-vars testconfig "waivers"))
(waiver-rx (regexp "^(\\S+)\\s+(.*)$"))
(diff-rule "diff %file1% %file2%")
(logpro-rule "diff %file1% %file2% | logpro %waivername%.logpro %waivername%.html"))
(push-directory test-rundir)
(let ((result (if (null? waivers)
#f
(let loop ((hed (car waivers))
(tal (cdr waivers)))
(debug:print 0 "INFO: Applying waiver rule \"" hed "\"")
(let* ((waiver (configf:lookup testconfig "waivers" hed))
(wparts (if waiver (string-match waiver-rx waiver) #f))
(waiver-rule (if wparts (cadr wparts) #f))
(waiver-glob (if wparts (caddr wparts) #f))
(logpro-file (if waiver
(let ((fname (conc hed ".logpro")))
(if (file-exists? fname)
fname
(begin
(debug:print 0 "INFO: No logpro file " fname " falling back to diff")
#f)))
#f))
;; if rule by name of waiver-rule is found in testconfig - use it
;; else if waivername.logpro exists use logpro-rule
;; else default to diff-rule
(rule-string (let ((rule (configf:lookup testconfig "waiver_rules" waiver-rule)))
(if rule
rule
(if logpro-file
logpro-rule
(begin
(debug:print 0 "INFO: No logpro file " logpro-file " found, using diff rule")
diff-rule)))))
;; (string-substitute "%file1%" "foofoo.txt" "This is %file1% and so is this %file1%." #t)
(processed-cmd (string-substitute
"%file1%" (conc test-rundir "/" waiver-glob)
(string-substitute
"%file2%" (conc prev-rundir "/" waiver-glob)
(string-substitute
"%waivername%" hed rule-string #t) #t) #t))
(res #f))
(debug:print 0 "INFO: waiver command is \"" processed-cmd "\"")
(if (eq? (system processed-cmd) 0)
(if (null? tal)
#t
(loop (car tal)(cdr tal)))
#f))))))
(pop-directory)
result)))
;; Do not rpc this one, do the underlying calls!!!
(define (tests:test-set-status! test-id state status comment dat)
(debug:print-info 4 "tests:test-set-status! test-id=" test-id ", state=" state ", status=" status ", dat=" dat)
(let* ((db #f)
(real-status status)
(otherdat (if dat dat (make-hash-table)))
(testdat (cdb:get-test-info-by-id *runremote* test-id))
(run-id (db:test-get-run_id testdat))
(test-name (db:test-get-testname testdat))
(item-path (db:test-get-item-path testdat))
;; before proceeding we must find out if the previous test (where all keys matched except runname)
;; was WAIVED if this test is FAIL
;; NOTES:
;; 1. Is the call to test:get-previous-run-record remotified?
;; 2. Add test for testconfig waiver propagation control here
;;
(waived (if (equal? status "FAIL")
(let ((prev-test (open-run-close test:get-previous-test-run-record db run-id test-name item-path)))
(if prev-test ;; true if we found a previous test in this run series
(let ((prev-status (db:test-get-status prev-test))
(prev-state (db:test-get-state prev-test))
(prev-comment (db:test-get-comment prev-test)))
(debug:print 4 "prev-status " prev-status ", prev-state " prev-state ", prev-comment " prev-comment)
(if (and (equal? prev-state "COMPLETED")
(equal? prev-status "WAIVED"))
prev-comment ;; waived is either the comment or #f
#f))
#f))
(prev-test (if (equal? status "FAIL")
(open-run-close test:get-previous-test-run-record db run-id test-name item-path)
#f))
(waived (if prev-test
(if prev-test ;; true if we found a previous test in this run series
(let ((prev-status (db:test-get-status prev-test))
(prev-state (db:test-get-state prev-test))
(prev-comment (db:test-get-comment prev-test)))
(debug:print 4 "prev-status " prev-status ", prev-state " prev-state ", prev-comment " prev-comment)
(if (and (equal? prev-state "COMPLETED")
(equal? prev-status "WAIVED"))
(if comment
comment
prev-comment) ;; waived is either the comment or #f
#f))
#f)
#f)))
(if (and waived
(tests:check-waiver-eligibility testdat prev-test))
(if waived (set! real-status "WAIVED"))
(set! real-status "WAIVED"))
(debug:print 4 "real-status " real-status ", waived " waived ", status " status)
;; update the primary record IF state AND status are defined
(if (and state status)
(cdb:test-set-status-state *runremote* test-id real-status state #f))
(cdb:test-set-status-state *runremote* test-id real-status state (if waived waived comment)))
;; if status is "AUTO" then call rollup (note, this one modifies data in test
;; run area, it does remote calls under the hood.
(if (and test-id state status (equal? status "AUTO"))
(db:test-data-rollup #f test-id status))
;; add metadata (need to do this way to avoid SQL injection issues)
|
︙ | | |
Modified tests/fullrun/megatest.config
from [5c1993a08a]
to [5787cd5928].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
+
+
+
+
+
+
+
+
+
+
+
|
[fields]
sysname TEXT
fsname TEXT
datapath TEXT
# 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]
[setup]
# It is possible (but not recommended) to override the rsync command used
# to populate the test directories. For test development the following
# example can be useful
#
testcopycmd cp --remove-destination -rsv TEST_SRC_PATH/. TEST_TARG_PATH/.
# or for hard links
# testcopycmd cp --remove-destination -rlv TEST_SRC_PATH/ TEST_TARG_PATH/
# FULL or 2, NORMAL or 1, OFF or 0
synchronous OFF
# Throttle roughly scales the db access milliseconds to seconds delay
throttle 0.2
# Max retries allows megatest to re-check that a tests status has changed
# as tests can have transient FAIL status occasionally
maxretries 20
|
︙ | | |
Modified tests/fullrun/tests/ezlog_fail/testconfig
from [39388ec16f]
to [da8d5b9ba5].
1
2
3
4
5
6
7
8
9
10
11
12
13
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
[setup]
[ezsteps]
lookittmp ls /tmp
lookithome ls /home
# logpro_file input_glob
# 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
[waiver_rules]
# This builtin rule is the default if there is no <waivername>.logpro file
# diff diff %file1% %file2%
# This builtin rule is applied if a <waivername>.logpro file exists
# logpro diff %file1% %file2% | logpro %waivername%.logpro %waivername%.html
[test_meta]
author matt
owner bob
description This test runs two ezstep, the first of which is expected to fail using a simple logpro file.
tags first,single
reviewed 09/10/2011, by Matt
|
Added tests/fullrun/tests/ezlog_fail/waiver_1.logpro version [f9358fd909].
|
1
|
+
|
(expect:warning in "Body" = 0 "Any warning" #/WARNING/)
|
Modified utils/mk_wrapper
from [af950f4763]
to [d96f80e4dc].
1
2
3
4
5
6
7
8
9
10
11
12
13
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
-
+
|
#!/bin/bash
prefix=$1
cmd=$2
echo "#!/bin/bash"
if [ "$LD_LIBRARY_PATH" != "" ];then
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
fi
fullcmd="$prefix/bin/$cmd"
echo "$fullcmd \$*"
echo "$fullcmd \"\$@\""
|