Index: tests/Makefile ================================================================== --- tests/Makefile +++ tests/Makefile @@ -40,11 +40,11 @@ TARGET = "ubuntu/nfs/none" all : build unit test4 # test1 test2 test3 test4 test5 test6 test7 test8 test9 -unit : all-rmt.log all-api.log +unit : basicserver.log all-rmt.log all-api.log # basicserver.log runs.log misc.log tests.log # inter dependencies on the unit tests, I wish these could be "suggestions" all-rmt.log : all-api.log Index: tests/tests.scm ================================================================== --- tests/tests.scm +++ tests/tests.scm @@ -15,18 +15,11 @@ ;; You should have received a copy of the GNU General Public License ;; along with Megatest. If not, see . ;; ;; strftime('%m/%d/%Y %H:%M:%S','now','localtime') -(require-extension test) -(require-extension regex) -(require-extension srfi-18) -(require-extension posix) -(import posix) (import srfi-18) -;; (require-extension zmq) -;; (import zmq) (define test-work-dir (current-directory)) ;; given list of lists ;; ( ( msg expected param1 param2 ...) @@ -43,24 +36,18 @@ (test msg result (post-proc (apply proc params))) (test msg result (apply proc params))))) inlst)) ;; read in all the _record files -(let ((files (glob "*_records.scm"))) - (for-each - (lambda (file) - (print "Loading " file) - (load file)) - files)) +;; (let ((files (glob "*_records.scm"))) +;; (for-each +;; (lambda (file) +;; (print "Loading " file) +;; (load file)) +;; files)) (let* ((unit-test-name (list-ref (argv) 4)) (fname (conc "../unittests/" unit-test-name ".scm"))) (if (file-exists? fname) (load fname) (print "ERROR: Unit test " unit-test-name " not found in unittests directory"))) -;;; huh? why is this here? -;; (list "abc" "abc/%" "ab%/c%" "~abc/c%" "abc/~c%" "a,b/c,%/d" "%/,%/a" "%/,%/a" "%/,%/a" "%" "%" "%/" "%/" "%abc%") -;; (list "abc" "abc" "abcd" "abc" "abc" "a" "abc" "def" "ghi" "a" "a" "a" "a" "abc") -;; (list "" "" "cde" "cde" "cde" "" "" "a" "b" "" "b" "" "b" "abc") -;; (list #t #t #t #f #f #t #t #t #f #t #t #t #f #t) - Index: tests/unittests/basicserver.scm ================================================================== --- tests/unittests/basicserver.scm +++ tests/unittests/basicserver.scm @@ -21,151 +21,152 @@ ;; Run like this: ;; ;; ./rununittest.sh server 1;(cd simplerun;megatest -stop-server 0) (delete-file* "logs/1.log") -(define run-id 1) - -(test "setup for run" #t (begin (launch:setup) - (string? (getenv "MT_RUN_AREA_HOME")))) - -(test #f #t (and (server:kind-run *toppath*) #t)) - - -(define user (current-user-name)) -(define runname "mytestrun") -(define keys (rmt:get-keys)) -(define runinfo #f) -(define keyvals '(("SYSTEM" "abc")("RELEASE" "def"))) -(define header (list "SYSTEM" "RELEASE" "id" "runname" "state" "status" "owner" "event_time")) - -;; Setup -;; -;; (test #f #f (not (client:setup run-id))) -;; (test #f #f (not (hash-table-ref/default *runremote* run-id #f))) - -;; Login -;; -(test #f'(#t "successful login") - (rmt:login run-id)) - -;; Keys -;; -(test #f '("SYSTEM" "RELEASE") (rmt:get-keys)) - -;; No data in db -;; -(test #f '() (rmt:get-all-run-ids)) -(test #f #f (rmt:get-run-name-from-id run-id)) -(test #f - (vector - header - (vector #f #f #f #f)) - (rmt:get-run-info run-id)) - -;; Insert data into db -;; -(test #f 1 (rmt:register-run keyvals runname "new" "n/a" user)) -;; (test #f #f (rmt:get-runs-by-patt keys runname)) -(test #f #t (rmt:general-call 'register-test run-id run-id "test-one" "")) -(define test-one-id #f) -(test #f 1 (let ((test-id (rmt:get-test-id run-id "test-one" ""))) - (set! test-one-id test-id) - test-id)) -(define test-one-rec #f) -(test #f "test-one" (let ((test-rec (rmt:get-test-info-by-id run-id test-one-id))) - (set! test-one-rec test-rec) - (vector-ref test-rec 2))) - -;; With data in db -;; -(print "Using runame=" runname) -(test #f '(1) (rmt:get-all-run-ids)) -(test #f runname (rmt:get-run-name-from-id run-id)) -(test #f - runname - (let ((run-info (rmt:get-run-info run-id))) - (db:get-value-by-header (db:get-rows run-info) - (db:get-header run-info) - "runname"))) - -;; test killing server -;; -(for-each - (lambda (run-id) - (test #f #t (and (tasks:kill-server-run-id run-id) #t)) - (test #f #f (tasks:server-running-or-starting? (db:delay-if-busy (tasks:open-db)) run-id))) - (list 0 1)) - -;; Tests to assess reading/writing while servers are starting/stopping -;; NO LONGER APPLICABLE - -;; Server tests go here -(define (server-tests-dont-run-right-now) -(for-each - (lambda (run-id) - (test #f #f (tasks:server-running-or-starting? (db:delay-if-busy (tasks:open-db)) run-id)) - (server:kind-run run-id) - (test "did server start within 20 seconds?" - #t - (let loop ((remtries 20) - (running (tasks:server-running-or-starting? (db:delay-if-busy - (tasks:open-db)) - run-id))) - (if running - (> running 0) - (if (> remtries 0) - (begin - (thread-sleep! 1) - (loop (- remtries 1) - (tasks:server-running-or-starting? (db:delay-if-busy - (tasks:open-db)) - run-id))))))) - - (test "did server become available" #t - (let loop ((remtries 10) - (res (tasks:get-server (db:delay-if-busy (tasks:open-db)) run-id))) - (if res - (vector? res) - (begin - (if (> remtries 0) - (begin - (thread-sleep! 1.1) - (loop (- remtries 1)(tasks:get-server (db:delay-if-busy (tasks:open-db)) run-id))) - res))))) - ) - (list 0 1))) - -(define start-time (current-seconds)) -(define (reading-writing-while-server-starting-stopping-dont-run-now) -(let loop ((test-state 'start)) - (let* ((server-dats (tasks:get-server-records (db:delay-if-busy (tasks:open-db)) run-id)) - (first-dat (if (not (null? server-dats)) - (car server-dats) - #f))) - (map (lambda (dat) - (apply print (intersperse (vector->list dat) ", "))) - server-dats) - (test #f test-one-rec (rmt:get-test-info-by-id run-id test-one-id)) - (thread-sleep! 1) - (case test-state - ((start) - (print "Trying to start server") - (server:kind-run run-id) - (loop 'server-started)) - ((server-started) - (case (if first-dat (vector-ref first-dat 0) 'blah) - ((running) - (print "Server appears to be running. Now ask it to shutdown") - (rmt:kill-server run-id) - (loop 'server-shutdown)) - ((shutting-down) - (loop test-state)) - (else (print "Don't know what to do if get here")))) - ((server-shutdown) - (loop test-state))))) -) +;; (define run-id 1) + +;; (test "setup for run" #t (begin (launch:setup) +;; (string? (getenv "MT_RUN_AREA_HOME")))) +;; +;; (test #f #t (and (server:kind-run *toppath*) #t)) +;; +;; +;; (define user (current-user-name)) +;; (define runname "mytestrun") +;; (define keys (rmt:get-keys)) +;; (define runinfo #f) +;; (define keyvals '(("SYSTEM" "abc")("RELEASE" "def"))) +;; (define header (list "SYSTEM" "RELEASE" "id" "runname" "state" "status" "owner" "event_time")) +;; +;; ;; Setup +;; ;; +;; ;; (test #f #f (not (client:setup run-id))) +;; ;; (test #f #f (not (hash-table-ref/default *runremote* run-id #f))) +;; +;; ;; Login +;; ;; +;; (test #f'(#t "successful login") +;; (rmt:login run-id)) +;; +;; ;; Keys +;; ;; +;; (test #f '("SYSTEM" "RELEASE") (rmt:get-keys)) +;; +;; ;; No data in db +;; ;; +;; (test #f '() (rmt:get-all-run-ids)) +;; (test #f #f (rmt:get-run-name-from-id run-id)) +;; (test #f +;; (vector +;; header +;; (vector #f #f #f #f)) +;; (rmt:get-run-info run-id)) +;; +;; ;; Insert data into db +;; ;; +;; (test #f 1 (rmt:register-run keyvals runname "new" "n/a" user)) +;; ;; (test #f #f (rmt:get-runs-by-patt keys runname)) +;; (test #f #t (rmt:general-call 'register-test run-id run-id "test-one" "")) +;; (define test-one-id #f) +;; (test #f 1 (let ((test-id (rmt:get-test-id run-id "test-one" ""))) +;; (set! test-one-id test-id) +;; test-id)) +;; (define test-one-rec #f) +;; (test #f "test-one" (let ((test-rec (rmt:get-test-info-by-id run-id test-one-id))) +;; (set! test-one-rec test-rec) +;; (vector-ref test-rec 2))) +;; +;; ;; With data in db +;; ;; +;; (print "Using runame=" runname) +;; (test #f '(1) (rmt:get-all-run-ids)) +;; (test #f runname (rmt:get-run-name-from-id run-id)) +;; (test #f +;; runname +;; (let ((run-info (rmt:get-run-info run-id))) +;; (db:get-value-by-header (db:get-rows run-info) +;; (db:get-header run-info) +;; "runname"))) +;; +;; ;; test killing server +;; ;; +;; (for-each +;; (lambda (run-id) +;; (test #f #t (and (tasks:kill-server-run-id run-id) #t)) +;; (test #f #f (tasks:server-running-or-starting? (db:delay-if-busy (tasks:open-db)) run-id))) +;; (list 0 1)) +;; +;; ;; Tests to assess reading/writing while servers are starting/stopping +;; ;; NO LONGER APPLICABLE +;; +;; ;; Server tests go here +;; (define (server-tests-dont-run-right-now) +;; (for-each +;; (lambda (run-id) +;; (test #f #f (tasks:server-running-or-starting? (db:delay-if-busy (tasks:open-db)) run-id)) +;; (server:kind-run run-id) +;; (test "did server start within 20 seconds?" +;; #t +;; (let loop ((remtries 20) +;; (running (tasks:server-running-or-starting? (db:delay-if-busy +;; (tasks:open-db)) +;; run-id))) +;; (if running +;; (> running 0) +;; (if (> remtries 0) +;; (begin +;; (thread-sleep! 1) +;; (loop (- remtries 1) +;; (tasks:server-running-or-starting? (db:delay-if-busy +;; (tasks:open-db)) +;; run-id))))))) +;; +;; (test "did server become available" #t +;; (let loop ((remtries 10) +;; (res (tasks:get-server (db:delay-if-busy (tasks:open-db)) run-id))) +;; (if res +;; (vector? res) +;; (begin +;; (if (> remtries 0) +;; (begin +;; (thread-sleep! 1.1) +;; (loop (- remtries 1)(tasks:get-server (db:delay-if-busy (tasks:open-db)) run-id))) +;; res))))) +;; ) +;; (list 0 1))) +;; +;; (define start-time (current-seconds)) +;; (define (reading-writing-while-server-starting-stopping-dont-run-now) +;; (let loop ((test-state 'start)) +;; (let* ((server-dats (tasks:get-server-records (db:delay-if-busy (tasks:open-db)) run-id)) +;; (first-dat (if (not (null? server-dats)) +;; (car server-dats) +;; #f))) +;; (map (lambda (dat) +;; (apply print (intersperse (vector->list dat) ", "))) +;; server-dats) +;; (test #f test-one-rec (rmt:get-test-info-by-id run-id test-one-id)) +;; (thread-sleep! 1) +;; (case test-state +;; ((start) +;; (print "Trying to start server") +;; (server:kind-run run-id) +;; (loop 'server-started)) +;; ((server-started) +;; (case (if first-dat (vector-ref first-dat 0) 'blah) +;; ((running) +;; (print "Server appears to be running. Now ask it to shutdown") +;; (rmt:kill-server run-id) +;; (loop 'server-shutdown)) +;; ((shutting-down) +;; (loop test-state)) +;; (else (print "Don't know what to do if get here")))) +;; ((server-shutdown) +;; (loop test-state))))) +;; ) + ;;====================================================================== ;; END OF TESTS ;;======================================================================