Megatest

Changes On Branch 72d5003fa75c3646
Login

Changes In Branch development Through [72d5003fa7] Excluding Merge-Ins

This is equivalent to a diff from 601ea0a908 to 72d5003fa7

2013-03-28
15:37
Merged development into trunk for release v1.5402 check-in: 1067e3e772 user: mrwellan tags: trunk, v1.5402
10:19
Protected most create directories, remove directories and links with exception handling and (hopefully) the appropriate recovery action. In many cases I exit as usually this is due to permissions. In some cases I continue on after putting an error on stderr. check-in: f95edbc998 user: mrwellan tags: development
07:43
Use -test-paths to find location to put eggs check-in: 72d5003fa7 user: matt tags: development
2013-03-27
23:55
Added deploy of the eggs check-in: 942beb12d3 user: matt tags: development
2013-03-24
12:15
Merged version bump from trunk, added initial copy of training presentation. check-in: d9a2c9a959 user: matt tags: development
2013-03-21
14:45
Bumped version to v1.54 check-in: 601ea0a908 user: mrwellan tags: trunk, v1.54
14:44
Merged development to trunk for v1.54 release check-in: 6e3531ec65 user: mrwellan tags: trunk

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

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&#8217;ve worked over the
<div class="paragraph"><p>Thank you the many people I&#8217;ve worked over the years who have
years, thank you. I&#8217;ve benefitted from your patience and insight and I
hope that some of what I&#8217;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 [2feb2da4e0].

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?

Added docs/megatest-training.odp version [d231c12bb1].

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

Added mkdeploy/megatest.config version [5868ae3469].





























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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
[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]
[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