Index: commonmod.scm ================================================================== --- commonmod.scm +++ commonmod.scm @@ -838,10 +838,11 @@ (define *home-host* #f) ;; (define *total-non-write-delay* 0) (define *heartbeat-mutex* (make-mutex)) (define *server-overloaded* #f) +(define *send-receive-mutex* (make-mutex)) ;; should have separate mutex per run-id ;; client (define *rmt-mutex* (make-mutex)) ;; remote access calls mutex ;; RPC transport Index: dbmod.scm ================================================================== --- dbmod.scm +++ dbmod.scm @@ -2685,11 +2685,11 @@ ;; Get run-ids for runs with same target but different runnames and NOT run-id ;; (define (db:get-prev-run-ids dbstruct run-id) (let* ((keyvals (db:get-key-val-pairs dbstruct run-id)) (kvalues (map cadr keyvals)) - (keys (db:get-keys)) + (keys (db:get-keys dbstruct)) (qrystr (string-intersperse (map (lambda (x)(conc x "=?")) keys) " AND "))) (let ((prev-run-ids '())) (if (null? keyvals) '() (begin Index: megatest.scm ================================================================== --- megatest.scm +++ megatest.scm @@ -63,10 +63,14 @@ (declare (uses apimod)) (import apimod) (declare (uses apimod.import)) +(declare (uses rmtmod)) +(import rmtmod) +(declare (uses rmtmod.import)) + (define *db* #f) ;; this is only for the repl, do not use in general!!!! (include "common_records.scm") (include "key_records.scm") (include "db_records.scm") Index: rmt.scm ================================================================== --- rmt.scm +++ rmt.scm @@ -66,12 +66,10 @@ cinfo (if (server:check-if-running areapath) (client:setup areapath) #f)))) -(define *send-receive-mutex* (make-mutex)) ;; should have separate mutex per run-id - (define (create-remote-record) (let ((rr (make-remote))) (remote-hh-dat-set! rr (common:get-homehost)) ; (remote-server-info-set! rr (if *toppath* (server:check-if-running *toppath*) #f)) (remote-transport-set! rr *transport-type*) @@ -463,10 +461,11 @@ ;;====================================================================== ;; M I S C ;;====================================================================== (define (rmt:login run-id) + (assert *my-client-signature* "ERROR: login attempted without first calling (client:get-signature).") (rmt:send-receive 'login run-id (list *toppath* megatest-version *my-client-signature*))) ;; This login does no retries under the hood - it acts a bit like a ping. ;; Deprecated for nmsg-transport. ;; Index: tests/unittests/all-rmt.scm ================================================================== --- tests/unittests/all-rmt.scm +++ tests/unittests/all-rmt.scm @@ -31,11 +31,28 @@ ;; NED - function nested under others, no test needed. ;; DEF - deferred (import commonmod) (import dbmod) +(import rmtmod) (use matchable) + +(use trace) +(trace + rmt:login + db:login + rmt:send-receive + rmtmod:calc-ro-mode + create-remote-record + rmt:open-qry-close-locally + common:force-server? + server:check-if-running + server:record->id + extras-case-11 + extras-transport-failed + extras-transport-succeded + ) (print "start dir: " (current-directory)) (define toppath (current-directory)) @@ -79,14 +96,15 @@ (string? (getenv "MT_RUN_AREA_HOME")))) (test #f #t (string? (vector-ref (client:setup-http toppath) 0))) (test #f #t (vector? (client:setup toppath))) (test #f #t (vector? (rmt:get-connection-info toppath))) ;; TODO: push areapath down. -(test #f #t (string? (server:check-if-running toppath))) +(test #f #t (list? (server:check-if-running toppath))) ;; DEF (test #f #f (rmt:send-receive-no-auto-client-setup *runremote* 'get-keys #f '())) ;; DEF (rmt:kill-server run-id) ;; DEF (rmt:start-server run-id) +(test #f #t (string? (client:get-signature))) (test #f '(#t "successful login")(rmt:login #f)) ;; DEF (rmt:login-no-auto-client-setup connection-info) (test #f #t (pair? (rmt:get-latest-host-load (get-host-name)))) ;; get-latest-host-load does a lookup in the db, it won't return a useful value unless