Megatest

Check-in [9bc4b32214]
Login
Overview
Comment:Completed loading arbitrary test data
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 9bc4b32214415da08c07f742adbeda98c166da22
User & Date: matt on 2011-09-05 22:49:39
Other Links: manifest | tags
Context
2011-09-05
23:16
Added a valuator to dashboard for scrolling but don't see how to use it :( check-in: af7195daa4 user: matt tags: trunk
22:49
Completed loading arbitrary test data check-in: 9bc4b32214 user: matt tags: trunk
22:34
Partial implementation of loading arbitrary test data check-in: dd5766961c user: matt tags: trunk
Changes

Modified db.scm from [8af0a21b47] to [2e3a7b8611].

75
76
77
78
79
80
81
82
83
84





85
86
87
88
89
90
91
75
76
77
78
79
80
81

82

83
84
85
86
87
88
89
90
91
92
93
94







-

-
+
+
+
+
+







                               state TEXT DEFAULT 'NOT_STARTED', 
                               status TEXT DEFAULT 'n/a',event_time TIMESTAMP,
                               comment TEXT DEFAULT '',
                               CONSTRAINT test_steps_constraint UNIQUE (test_id,stepname,state));")
	  (sqlite3:execute db "CREATE TABLE IF NOT EXISTS extradat (id INTEGER PRIMARY KEY, run_id INTEGER, key TEXT, val TEXT);")
	  (sqlite3:execute db "CREATE TABLE IF NOT EXISTS metadat (id INTEGER PRIMARY KEY, var TEXT, val TEXT,
                                  CONSTRAINT metadat_constraint UNIQUE (var));")
	  (db:set-var db "MEGATEST_VERSION" megatest-version)
	  (sqlite3:execute db "CREATE TABLE IF NOT EXISTS access_log (id INTEGER PRIMARY KEY, user TEXT, accessed TIMESTAMP, args TEXT);")
	  (patch-db db)))
	  (patch-db db)
	  (patch-db db) ;; yes, need to do it twice BUG FIXME
	  ;; Must do this *after* running patch db
	  (db:set-var db "MEGATEST_VERSION" megatest-version)
	  ))
    db))

;;======================================================================
;; TODO:
;;   put deltas into an assoc list with version numbers
;;   apply all from last to current
;;======================================================================
335
336
337
338
339
340
341

342
343
344
345
346
347
348
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352







+







;; this one is a bit broken BUG FIXME
(define (db:delete-test-step-records db run-id test-name itemdat)
  (sqlite3:execute db "DELETE FROM test_steps WHERE test_id in (SELECT id FROM tests WHERE run_id=? AND testname=? AND item_path=?);" 
		   run-id test-name (item-list->path itemdat)))
;; 
(define (db:delete-test-records db test-id)
  (sqlite3:execute db "DELETE FROM test_steps WHERE test_id=?;" test-id)
  (sqlite3:execute db "DELETE FROM test_data  WHERE test_id=?;" test-id)
  (sqlite3:execute db "DELETE FROM tests WHERE id=?;" test-id))

;; set tests with state currstate and status currstatus to newstate and newstatus
;; use currstate = #f and or currstatus = #f to apply to any state or status respectively
;; WARNING: SQL injection risk
(define (db:set-tests-state-status db run-id testnames currstate currstatus newstate newstatus)
  (for-each (lambda (testname)
472
473
474
475
476
477
478
479

480
481

482
483
484
485
486
487






488
489
490
491
492
493
494
476
477
478
479
480
481
482

483
484
485
486






487
488
489
490
491
492
493
494
495
496
497
498
499







-
+


+
-
-
-
-
-
-
+
+
+
+
+
+







       (apply sqlite3:execute db "INSERT OR REPLACE INTO test_data (test_id,category,variable,value,comment) VALUES (?,?,?,?,?);"
	      test-id (take (append csvrow '("" "" "" "")) 4)))
     csvlist)))

(define (db:load-test-data db run-id test-name itemdat)
  (let* ((item-path (item-list->path itemdat))
	 (testdat (db:get-test-info db run-id test-name item-path))
	 (test-id (db:test-get-id testdat)))
	 (test-id (if testdat (db:test-get-id testdat) #f)))
    (debug:print 1 "Enter records to insert in the test_data table, four fields, comma separated per line")
    (debug:print 4 "itemdat: " itemdat ", test-name: " test-name ", test-id: " test-id)
    (if test-id
    (let loop ((lin (read-line)))
      (if (not (eof-object? lin))
	  (begin
	    (debug:print 4 lin)
	    (db:csv->testdata db test-id lin)
	    (loop (read-line)))))))    
	(let loop ((lin (read-line)))
	  (if (not (eof-object? lin))
	      (begin
		(debug:print 4 lin)
		(db:csv->testdata db test-id lin)
		(loop (read-line)))))))    )

;;======================================================================
;; S T E P S 
;;======================================================================
;; Run steps
;; make-vector-record "Run steps" db step id test_id stepname step_complete step_pass event_time    
(define (make-db:step)(make-vector 6))

Modified runs.scm from [2c155a2315] to [653baf7c64].

902
903
904
905
906
907
908







909
910
911
912
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919







+
+
+
+
+
+
+




	 ;; Now duplicate the test steps
	 (debug:print 4 "Copying records in test_steps from test_id=" (db:test-get-id testdat) " to " (db:test-get-id new-testdat))
	 (sqlite3:execute 
	  db 
	  (conc "INSERT OR REPLACE INTO test_steps (test_id,stepname,state,status,event_time,comment) "
		"SELECT " (db:test-get-id new-testdat) ",stepname,state,status,event_time,comment FROM test_steps WHERE test_id=?;")
	  (db:test-get-id testdat))
	 ;; Now duplicate the test data
	 (debug:print 4 "Copying records in test_data from test_id=" (db:test-get-id testdat) " to " (db:test-get-id new-testdat))
	 (sqlite3:execute 
	  db 
	  (conc "INSERT OR REPLACE INTO test_data (test_id,category,variable,value,comment) "
		"SELECT " (db:test-get-id new-testdat) ",category,variable,value,comment FROM test_data WHERE test_id=?;")
	  (db:test-get-id testdat))
	 ))
     prev-tests)))