Index: db.scm ================================================================== --- db.scm +++ db.scm @@ -482,13 +482,11 @@ db "UPDATE tests SET rundir=? WHERE run_id=? AND testname=? AND item_path=?;" rundir run-id testname item-path)) ;; Misc. test related queries -(define (db:test-get-paths-matching db keyvallst runname keys keynames target) - ;; (print "keyvallst: " keyvallst ", runname: " runname) - ;; (print "keys: " keys " keynames: " keynames) +(define (db:test-get-paths-matching db runname keynames target) (let ((res '()) (itempatt (if (args:get-arg "-itempatt")(args:get-arg "-itempatt") "%")) (testpatt (if (args:get-arg "-testpatt")(args:get-arg "-testpatt") "%")) (qrystr (string-intersperse (map (lambda (key val) Index: megatest.scm ================================================================== --- megatest.scm +++ megatest.scm @@ -393,19 +393,44 @@ ;;====================================================================== ;; Get paths to tests ;;====================================================================== ;; run all tests are are Not COMPLETED and PASS or CHECK (if (args:get-arg "-test-paths") - (general-run-call - "-test-paths" - "Get paths to tests" - (lambda (db target runname keys keynames keyvallst) - (let* ((itempatt (args:get-arg "-itempatt")) - (paths (db:test-get-paths-matching db keyvallst runname keys keynames target))) - (for-each (lambda (path) - (print path)) - paths))))) + ;; if we are in a test use the MT_CMDINFO data + (if (getenv "MT_CMDINFO") + (let* ((startingdir (current-directory)) + (cmdinfo (read (open-input-string (base64:base64-decode (getenv "MT_CMDINFO"))))) + (testpath (assoc/default 'testpath cmdinfo)) + (test-name (assoc/default 'test-name cmdinfo)) + (runscript (assoc/default 'runscript cmdinfo)) + (db-host (assoc/default 'db-host cmdinfo)) + (run-id (assoc/default 'run-id cmdinfo)) + (itemdat (assoc/default 'itemdat cmdinfo)) + (db #f) + (state (args:get-arg ":state")) + (status (args:get-arg ":status"))) + (change-directory testpath) + (if (not (setup-for-run)) + (begin + (debug:print 0 "Failed to setup, giving up on -test-paths, exiting") + (exit 1))) + (set! db (open-db)) + (let* ((itempatt (args:get-arg "-itempatt")) + (paths (db:test-get-paths-matching db keyvallst runname keys keynames target))) + (for-each (lambda (path) + (print path)) + paths))) + ;; else do a general-run-call + (general-run-call + "-test-paths" + "Get paths to tests" + (lambda (db target runname keys keynames keyvallst) + (let* ((itempatt (args:get-arg "-itempatt")) + (paths (db:test-get-paths-matching db keyvallst runname keys keynames target))) + (for-each (lambda (path) + (print path)) + paths)))))) ;;====================================================================== ;; Extract a spreadsheet from the runs database ;;======================================================================