Megatest

Check-in [1146144d5b]
Login
Overview
Comment:Fixed -m for test steps
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 1146144d5bee3bb7560e09849b8e8d0fd60c5430
User & Date: matt on 2011-05-05 01:46:25
Other Links: manifest | tags
Context
2011-05-05
10:12
Bumped version to 1.02 check-in: ad05ecc7d8 user: matt tags: trunk
01:46
Fixed -m for test steps check-in: 1146144d5b user: matt tags: trunk
01:37
Fixed -m missing from args check-in: e0413b29e1 user: matt tags: trunk
Changes

Modified megatest.scm from [beb9f35b7d] to [c234588fb1].

422
423
424
425
426
427
428
429

430
431
432
433
434
435
436
422
423
424
425
426
427
428

429
430
431
432
433
434
435
436







-
+







	  (change-directory testpath)
	  (if (not (setup-for-run))
	      (begin
		(print "Failed to setup, exiting")
		(exit 1)))
	  (set! db (open-db))
	  (if (and state status)
	      (teststep-set-status! db run-id test-name step state status itemdat)
	      (teststep-set-status! db run-id test-name step state status itemdat (args:get-arg "-m"))
	      (begin
		(print "ERROR: You must specify :state and :status with every call to -step")
		(exit 6)))
	  (sqlite3:finalize! db)
	  (set! *didsomething* #t))))

(if (or (args:get-arg "-setlog")       ;; since setting up is so costly lets piggyback on -test-status

Modified runs.scm from [689752ec03] to [1ff2811773].

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







-
+













-
-
+
+







  (let ((valid-values (let ((s (config-lookup *configdat* "validvalues" class)))
			(if s (string-split s) #f))))
    (if valid-values
	(if (member item valid-values)
	    item #f)
	item)))

(define (teststep-set-status! db run-id test-name teststep-name state-in status-in itemdat)
(define (teststep-set-status! db run-id test-name teststep-name state-in status-in itemdat comment)
  ;; (print "run-id: " run-id " test-name: " test-name)
  (let* ((state     (check-valid-items "state" state-in))
	 (status    (check-valid-items "status" status-in))
	 (item-path (item-list->path itemdat))
	 (testdat   (runs:get-test-info db run-id test-name item-path)))
    ;; (print "testdat: " testdat)
    (if (and testdat ;; if the section exists then force specification BUG, I don't like how this works.
	     (or (not state)(not status)))
	(print "WARNING: Invalid " (if status "status" "state")
	       " value \"" (if status status-in state-in) "\", update your validstates section in megatest.config"))
    (if testdat
	(let ((test-id (test:get-id testdat)))
	  (sqlite3:execute db 
			"INSERT OR REPLACE into test_steps (test_id,stepname,state,status,event_time) VALUES(?,?,?,?,strftime('%s','now'));"
			test-id teststep-name state status))
			"INSERT OR REPLACE into test_steps (test_id,stepname,state,status,event_time,comment) VALUES(?,?,?,?,strftime('%s','now'),?);"
			test-id teststep-name state status (if comment comment "")))
	(print "ERROR: Can't update " test-name " for run " run-id " -> no such test in db"))))

(define (test-get-kill-request db run-id test-name itemdat)
  (let* ((item-path (item-list->path itemdat))
	 (testdat   (runs:get-test-info db run-id test-name item-path)))
    (equal? (test:get-state testdat) "KILLREQ")))

Modified tests/tests/runfirst/main.sh from [509a06d02e] to [b6ac44a0c4].

1
2
3

4
5
6
7

1
2

3
4
5
6

7


-
+



-
+
#!/bin/bash

megatest -step wasting_time :state start :status n/a
megatest -step wasting_time :state start :status n/a -m "This is a test step comment"
sleep 20
megatest -step wasting_time :state end :status $?

megatest -test-status :state COMPLETED :status PASS -setlog thelogfile.log
megatest -test-status :state COMPLETED :status PASS -setlog thelogfile.log -m "This is a test level comment"