Megatest

Check-in [e3bc8b30e5]
Login
Overview
Comment:Improved unit tests system
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | v1.60
Files: files | file ages | folders
SHA1: e3bc8b30e5a5d8e387355ebede5fb32ed3e1ac73
User & Date: matt on 2015-06-13 08:50:46
Other Links: branch diff | manifest | tags
Context
2015-06-13
08:53
Improved deps for unit tests check-in: 6086fb91b5 user: matt tags: v1.60
08:50
Improved unit tests system check-in: e3bc8b30e5 user: matt tags: v1.60
2015-06-11
09:01
Minor deps ordering change in Makefile check-in: 5067eda27e user: mrwellan tags: v1.60
Changes

Modified tests/Makefile from [58d615ee76] to [62a6b34dfb].

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
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







-
+

-
-
+
+
+
+

+
+
+
+

-



-



-







FS  = $(shell df -T .|tail -1|awk '{print $$2}')
VER = $(shell fsl info|grep checkout|awk '{print $$2}'|cut -c 1-5)

# The NEWTARGET causes some tests to fail. Do not use until this is fixed.
NEWTARGET  = "$(OS)/$(FS)/$(VER)"
TARGET     = "ubuntu/nfs/none"

all : unit test1 test2 test3 test4 test5 test6 test7 test8 test9
all : build unit test1 test2 test3 test4 test5 test6 test7 test8 test9

unit :
	./rununittest.sh basicserver $(DEBUG)
unit : basicserver.log runs.log

## basicserver.log : unittests/basicserver.scm
## 	script -c "./rununittest.sh basicserver $(DEBUG)" basicserver.log

%.log : unittests/%.scm
	script -c "./rununittest.sh $* $(DEBUG)" $*.log
	if logpro unit.logpro $*.html < $*.log > /dev/null;then echo ALLPASS;else echo ALLFAIL;mv $*.log $*.log.FAIL;fi

server :
	cd ..;make -j;make install
	cd fullrun;$(MEGATEST) -server - -debug $(DEBUG) -run-id $(RUNID)

stopserver :
	cd ..;make -j && make install
	cd fullrun;$(MEGATEST) -stop-server 0

repl :
	cd ..;make -j && make install
	cd fullrun;$(MEGATEST) -:b -repl

test0 : cleanprep
	cd simplerun ; $(MEGATEST) -server - -debug $(DEBUG)

test1 : cleanprep

147
148
149
150
151
152
153
154


155






156
157
158
159
160
161
162

163
164
165
166
167
168
169
170
171
150
151
152
153
154
155
156

157
158
159
160
161
162
163
164
165
166
167
168
169
170
171

172
173

174
175
176
177
178
179
180







-
+
+

+
+
+
+
+
+






-
+

-







	     for dpath in none tmp; do \
	        (cd fullrun;$(MEGATEST) -preclean -runtests priority_10_waiton_1 -target $$sys/$$fs/$$dpath :runname $(RUNNAME) &);\
	     done;done;done

test11 :
	 cd fullrun;time (for a in 1 2 3 4 5 6 7 8 9 10  1 2 3 4 5 6 7 8 9 10  1 2 3 4 5 6 7 8 9 10  1 2 3 4 5 6 7 8 9 10 ;do   (megatest -test-paths -target %/%/% > /dev/null ) & done; wait; )

minsetup : 
build : ../*.scm
	killall mtest -v;if [ ! $$? ];then sleep 5;killall mtest -v -9;fi
	cd ..;make -j && make install
	touch build

cleanstart :
	killall mtest -v;if [ ! $$? ];then sleep 5;killall mtest -v -9;fi

minsetup : build
	mkdir -p mintest/runs mintest/links
	cd mintest;$(MEGATEST) -stop-server 0
	cd mintest;$(MEGATEST) -server - -debug $(DEBUG) > server.log 2> server.log & 
	sleep 3
	cd mintest;$(DASHBOARD) -rows 18 &

cleanprep : ../*.scm Makefile */*.config
cleanprep : ../*.scm Makefile */*.config build
	mkdir -p fullrun/tmp/mt_runs fullrun/tmp/mt_links /tmp/$(USER)/adisk1
	cd ..;make -j;make install
	rm -f */logging.db
	touch cleanprep

fullprep : cleanprep
	cd fullrun;$(MEGATEST) -remove-runs :runname $(RUNNAME)% -target %/%/% -testpatt %/%
	cd fullrun;$(BINPATH)/dashboard -rows 15 &

Modified tests/rununittest.sh from [d9bb67915f] to [1c13c943af].

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1
2
3
4
5



6
7
8
9
10
11
12





-
-
-







#!/bin/bash

# Usage: rununittest.sh testname debuglevel
#

# Ensure all is made
(cd ..;make && make install)

# put megatest on path from correct location
mtbindir=$(readlink -f ../bin)

export PATH="${mtbindir}:$PATH"

# Clean setup
#

Added tests/unit.logpro version [64aefe97ac].









1
2
3
4
5
6
7
8
+
+
+
+
+
+
+
+
;; You should have at least one expect:required. This ensures that your process ran
(expect:required in "LogFileBody" > 0 "At least one PASS" #/\[.{0,4}PASS.{0,4}\]/)

;; You may need ignores to suppress false error or warning hits from the later expects
;; NOTE: Order is important here!
(expect:ignore   in "LogFileBody"  < 99 "Ignore the word error in comments" #/^\/\/.*error/)
(expect:warning  in "LogFileBody"  = 0 "Any warning" #/warn/)
(expect:error    in "LogFileBody"  = 0 "Any error"  (list #/error/i #/\[.{0,4}FAIL.{0,4}\]/)) ;; but disallow any other errors

Modified tests/unittests/runs.scm from [61908ea980] to [897bec0192].

1

2
3
4
5
6

7
8
9
10
11
12
13
14
15
16




17
18
19
20
21
22
23

1
2
3
4
5

6
7
8
9
10
11
12




13
14
15
16
17
18
19
20
21
22
23
-
+




-
+






-
-
-
-
+
+
+
+







(define keys (db:get-keys *db*))
(define keys (rmt:get-keys))

(test "get all legal tests" (list "test1" "test2") (sort (get-all-legal-tests) string<=?))

(test "register-run" #t (number?
			 (db:register-run *db*
			 (rmt:register-run 
					  '(("SYSTEM" "key1")("RELEASE" "key2"))
					  "myrun" 
					  "new"
					  "n/a" 
					  "bob")))

(test #f #t             (cdb:tests-register-test *runremote* 1 "nada" ""))
(test #f 1              (cdb:remote-run db:get-test-id #f 1 "nada" ""))
(test #f "NOT_STARTED"  (vector-ref (open-run-close db:get-test-info #f 1 "nada" "") 3))
(test #f "NOT_STARTED"  (vector-ref (cdb:get-test-info *runremote* 1 "nada" "") 3))
(test #f #t             (rmt:tests-register-test 1 "nada" ""))
(test #f 1              (rmt:get-test-id 1 "nada" ""))
(test #f "NOT_STARTED"  (vector-ref (rmt:get-test-info 1 "nada" "") 3))
(test #f "NOT_STARTED"  (vector-ref (rmt:get-test-info 1 "nada" "") 3))

(test #f "FOO LIKE 'abc%def'" (db:patt->like "FOO" "abc%def"))
(test #f "key2" (vector-ref (car (vector-ref (runs:get-runs-by-patt *db* '("SYSTEM" "RELEASE") "%" "key1/key2") 1)) 1))

(test #f "SYSTEM,RELEASE,id,runname,state,status,owner,event_time" (car (runs:get-std-run-fields keys '("id" "runname" "state" "status" "owner" "event_time"))))
(test #f #t (runs:operate-on 'print "%" "%" "%"))