Overview
Comment: | Partial refactoring fix of tests dependency tree |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | v1.60_defunct |
Files: | files | file ages | folders |
SHA1: |
5838fde95e8f1d54e859becbf183675c |
User & Date: | mrwellan on 2016-04-05 15:01:32 |
Other Links: | branch diff | manifest | tags |
Context
2016-04-06
| ||
11:47 | Fixed tests browser check-in: 8d6bd5974e user: mrwellan tags: v1.60_defunct | |
2016-04-05
| ||
15:01 | Partial refactoring fix of tests dependency tree check-in: 5838fde95e user: mrwellan tags: v1.60_defunct | |
2016-03-22
| ||
15:27 | Better way of handling scripts. Still needs improvement. check-in: 7254840ac9 user: mrwellan tags: v1.60_defunct | |
Changes
Modified dashboard.scm from [a2d6eeaf25] to [6f7731e32c].
︙ | ︙ | |||
859 860 861 862 863 864 865 | ((originx originy) (canvas-origin cnv))) ;; (print "originx: " originx " originy: " originy) ;; (canvas-origin-set! cnv 0 (- (/ sizey 2))) (if (hash-table-ref/default tests-draw-state 'first-time #t) (begin (hash-table-set! tests-draw-state 'first-time #f) (hash-table-set! tests-draw-state 'scalef 1) | < | 859 860 861 862 863 864 865 866 867 868 869 870 871 872 | ((originx originy) (canvas-origin cnv))) ;; (print "originx: " originx " originy: " originy) ;; (canvas-origin-set! cnv 0 (- (/ sizey 2))) (if (hash-table-ref/default tests-draw-state 'first-time #t) (begin (hash-table-set! tests-draw-state 'first-time #f) (hash-table-set! tests-draw-state 'scalef 1) (hash-table-set! tests-draw-state 'tests-info (make-hash-table)) (hash-table-set! tests-draw-state 'selected-tests (make-hash-table)) ;; set these (hash-table-set! tests-draw-state 'test-browse-xoffset 20) ;; (- 0 (* (/ sizex 2) (* 8 xadj)))) (hash-table-set! tests-draw-state 'test-browse-yoffset 20) ;; (- 0 (* (/ sizey 2) (* 8 (- 1 yadj))))))) (dcommon:initial-draw-tests cnv xadj yadj sizex sizey sizexmm sizeymm originx originy tests-draw-state sorted-testnames test-records)) (dcommon:redraw-tests cnv xadj yadj sizex sizey sizexmm sizeymm originx originy tests-draw-state sorted-testnames test-records)) |
︙ | ︙ | |||
897 898 899 900 901 902 903 | (dboard:data-set-target! *data* targ) (if updater-for-runs (updater-for-runs)) (dashboard:update-run-command)))) (tests-draw-state (make-hash-table)) ;; use for keeping state of the test canvas (test-patterns-textbox #f)) (hash-table-set! tests-draw-state 'first-time #t) ;; (hash-table-set! tests-draw-state 'scalef 1) | < | 896 897 898 899 900 901 902 903 904 905 906 907 908 909 | (dboard:data-set-target! *data* targ) (if updater-for-runs (updater-for-runs)) (dashboard:update-run-command)))) (tests-draw-state (make-hash-table)) ;; use for keeping state of the test canvas (test-patterns-textbox #f)) (hash-table-set! tests-draw-state 'first-time #t) ;; (hash-table-set! tests-draw-state 'scalef 1) (tests:get-full-data test-names test-records '() all-tests-registry) (set! sorted-testnames (tests:sort-by-priority-and-waiton test-records)) ;; refer to (d:alldat-keys *alldat*), (d:alldat-dbkeys *alldat*) for keys (iup:vbox ;; The command line display/exectution control (iup:frame |
︙ | ︙ | |||
1055 1056 1057 1058 1059 1060 1061 | (set! last-yadj yadj)))) (updater xadj yadj) (set! the-cnv cnv) )) ;; Following doesn't work #:wheel-cb (lambda (obj step x y dir) ;; dir is 4 for up and 5 for down. I think. (let ((scalef (hash-table-ref tests-draw-state 'scalef))) | < < < < < | | < < < < < | | > > > > | | | | | | 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 | (set! last-yadj yadj)))) (updater xadj yadj) (set! the-cnv cnv) )) ;; Following doesn't work #:wheel-cb (lambda (obj step x y dir) ;; dir is 4 for up and 5 for down. I think. (let ((scalef (hash-table-ref tests-draw-state 'scalef))) (hash-table-set! tests-draw-state 'scalef (+ scalef (if (> step 0) (* scalef 0.01) (* scalef -0.01)))) (if the-cnv (dashboard:draw-tests the-cnv last-xadj last-yadj tests-draw-state sorted-testnames test-records)) )) ;; #:size "50x50" #:expand "YES" #:scrollbar "YES" #:posx "0.5" #:posy "0.5" #:button-cb (lambda (obj btn pressed x y status) (print "obj: " obj ", pressed " pressed ", status " status) (print "canvas-origin: " (canvas-origin the-cnv)) (let-values (((xx yy)(canvas-origin the-cnv))) (canvas-transform-set! the-cnv #f) (print "canvas-origin: " xx " " yy " click at " x " " y)) (let* ((tests-info (hash-table-ref tests-draw-state 'tests-info)) (selected-tests (hash-table-ref tests-draw-state 'selected-tests)) (scalef (hash-table-ref tests-draw-state 'scalef)) (x-scaled (/ x scalef)) (y-scaled (/ y scalef))) ;; (print "\tx\ty\tllx\tlly\turx\tury") (for-each (lambda (test-name) (let* ((rec-coords (hash-table-ref tests-info test-name)) (llx (list-ref rec-coords 0)) (urx (list-ref rec-coords 1)) (lly (list-ref rec-coords 2)) (ury (list-ref rec-coords 3))) (if (eq? pressed 1) (print "\tx=" x "\ty=" y "\t" llx "\t" lly "\t" urx "\t" ury "\t" test-name " ")) (if (and (eq? pressed 1) (>= x-scaled llx) (>= y-scaled lly) (<= x-scaled urx) (<= y-scaled ury)) (let ((patterns (string-split (iup:attribute test-patterns-textbox "VALUE")))) (let* ((selected (not (member test-name patterns))) (newpatt-list (if selected (cons test-name patterns) (delete test-name patterns))) (newpatt (string-intersperse newpatt-list "\n"))) ;; (if cnv-obj |
︙ | ︙ |
Modified dcommon.scm from [500388d341] to [9cf5696503].
︙ | ︙ | |||
679 680 681 682 683 684 685 686 687 688 | (waiton-center (dcommon:get-box-center (or waiton-box-info test-box-info)))) (dcommon:draw-arrow cnv test-box-center waiton-center))) waitons) ;; (debug:print 0 "test-box-info=" test-box-info) ;; (debug:print 0 "test-record=" test-record) )) (define (dcommon:initial-draw-tests cnv xadj yadj sizex sizey sizexmm sizeymm originx originy tests-draw-state sorted-testnames test-records) (let* ((dot-data ;; (map cdr (filter ;; (lambda (x)(equal? "node" (car x))) | > > > > > > > > > > > > > > > > > > > > | < < | > > > > | | | | | | | | | 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 | (waiton-center (dcommon:get-box-center (or waiton-box-info test-box-info)))) (dcommon:draw-arrow cnv test-box-center waiton-center))) waitons) ;; (debug:print 0 "test-box-info=" test-box-info) ;; (debug:print 0 "test-record=" test-record) )) (define (dcommon:estimate-scale sizex sizey originx originy nodes) (print "sizex: " sizex " sizey: " sizey " originx: " originx " originy: " originy " nodes: " nodes) (let* ((maxx 1) (maxy 1)) (for-each (lambda (node) (if (equal? (car node) "node") (let ((x (string->number (list-ref node 2))) (y (string->number (list-ref node 3)))) (if (and x (> x maxx))(set! maxx x)) (if (and y (> y maxy))(set! maxy y))))) nodes) (let ((scalex (/ sizex maxx)) (scaley (/ sizey maxy))) (print "maxx: " maxx " maxy: " maxy " scalex: " scalex " scaley: " scaley) (min scalex scaley)))) ;; sizex, sizey - canvas size ;; originx, originy - canvas origin ;; (define (dcommon:initial-draw-tests cnv xadj yadj sizex sizey sizexmm sizeymm originx originy tests-draw-state sorted-testnames test-records) (let* ((dot-data ;; (map cdr (filter ;; (lambda (x)(equal? "node" (car x))) (map string-split (tests:lazy-dot test-records "plain" sizex sizey))) ;; (tests:easy-dot test-records "plain"))) (test-browse-xoffset (hash-table-ref tests-draw-state 'test-browse-xoffset)) (test-browse-yoffset (hash-table-ref tests-draw-state 'test-browse-yoffset)) (xtorig (+ test-browse-xoffset (* (/ sizex 2) 1 (- 0.5 xadj)))) ;; (- xadj 1)))) (ytorig (+ test-browse-yoffset (* (/ sizey 2) 1 (- yadj 0.5)))) (boxw 10) (tests-hash (hash-table-ref tests-draw-state 'tests-info)) (selected-tests (hash-table-ref tests-draw-state 'selected-tests )) (scalef (dcommon:estimate-scale sizex sizey originx originy dot-data))) (hash-table-set! tests-draw-state 'scalef scalef) ;; (print "dot-data=" dot-data) (hash-table-set! tests-draw-state 'xtorig xtorig) (hash-table-set! tests-draw-state 'ytorig ytorig) (let ((longest-str (if (null? sorted-testnames) " " (car (sort sorted-testnames (lambda (a b)(>= (string-length a)(string-length b)))))))) (let-values (((x-max y-max) (canvas-text-size cnv longest-str))) (if (> x-max boxw)(set! boxw (+ 10 x-max))))) ;; (print "sizex: " sizex " sizey: " sizey " font: " (canvas-font cnv) " originx: " originx " originy: " originy " xtorig: " xtorig " ytorig: " ytorig " xadj: " xadj " yadj: " yadj) (if (not (null? sorted-testnames)) (let loop ((hed (car (reverse sorted-testnames))) (tal (cdr (reverse sorted-testnames)))) (let* ((nodedat (let ((tmpres (filter (lambda (x) (if (and (not (null? x)) (equal? (car x) "node")) (equal? hed (cadr x)) #f)) dot-data))) (if (null? tmpres) ;; llx lly boxw boxh (list "0" "1" "1" (conc (length tal)) "2" "0.5") ;; return some placeholder junk if no dat found (car tmpres)))) (edgedat (let ((edges (filter (lambda (x) ;; filter for edge (if (and (not (null? x)) (equal? (car x) "edge")) (equal? hed (cadr x)) #f)) dot-data))) (map (lambda (inlst) (dcommon:process-polyline (map (lambda (instr) (string->number instr)) ;; convert to number and scale (let ((il (cddddr inlst))) (take il (- (length il) 2)))) (lambda (x y) (list (+ x 0) ;; xtorig) (+ y 0))) ;; ytorig))) #f #f)) ;; process polyline edges))) (llx (string->number (list-ref nodedat 2))) (lly (string->number (list-ref nodedat 3))) (boxw (string->number (list-ref nodedat 4))) (boxh (string->number (list-ref nodedat 5))) (urx (+ llx boxw)) (ury (+ lly boxh))) ; (print "hed " hed " llx " llx " lly " lly " urx " urx " ury " ury) (dcommon:draw-test cnv scalef llx lly boxw boxh hed (hash-table-ref/default selected-tests hed #f)) ;; (dcommon:draw-arrows cnv testname tests-hash test-records)) (dcommon:draw-edges cnv scalef edgedat) |
︙ | ︙ |
Modified http-transport.scm from [d387fec12a] to [bb0436ebfa].
︙ | ︙ | |||
87 88 89 90 91 92 93 94 95 96 97 98 99 100 | (send-response body: (api:process-request *inmemdb* $) ;; the $ is the request vars proc headers: '((content-type text/plain))) (mutex-lock! *heartbeat-mutex*) (set! *last-db-access* (current-seconds)) (mutex-unlock! *heartbeat-mutex*)) ((equal? (uri-path (request-uri (current-request))) '(/ "")) (send-response body: (http-transport:main-page))) ((equal? (uri-path (request-uri (current-request))) '(/ "runs")) (send-response body: (http-transport:main-page))) ((equal? (uri-path (request-uri (current-request))) '(/ any)) (send-response body: "hey there!\n" | > > > | 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | (send-response body: (api:process-request *inmemdb* $) ;; the $ is the request vars proc headers: '((content-type text/plain))) (mutex-lock! *heartbeat-mutex*) (set! *last-db-access* (current-seconds)) (mutex-unlock! *heartbeat-mutex*)) ((equal? (uri-path (request-uri (current-request))) '(/ "")) (send-response body: (http-transport:main-page))) ((equal? (uri-path (request-uri (current-request))) '(/ "json_api")) (send-response body: (http-transport:main-page))) ((equal? (uri-path (request-uri (current-request))) '(/ "runs")) (send-response body: (http-transport:main-page))) ((equal? (uri-path (request-uri (current-request))) '(/ any)) (send-response body: "hey there!\n" |
︙ | ︙ |
Modified tests.scm from [fd4aa50106] to [41a7ac7d26].
︙ | ︙ | |||
878 879 880 881 882 883 884 | (with-input-from-pipe (conc "env -i PATH=$PATH dot -T" outtype " < " temp-path) (lambda () (let ((res (read-lines))) ;; (delete-file temp-path) res)))))) | | | | | | > | | | 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 | (with-input-from-pipe (conc "env -i PATH=$PATH dot -T" outtype " < " temp-path) (lambda () (let ((res (read-lines))) ;; (delete-file temp-path) res)))))) (define (tests:write-dot-file test-records fname sizex sizey) (if (file-write-access? (pathname-directory fname)) (with-output-to-file fname (lambda () (map print (tests:tests->dot test-records sizex sizey)))))) (define (tests:tests->dot test-records sizex sizey) (let ((all-testnames (hash-table-keys test-records))) (if (null? all-testnames) '() (let loop ((hed (car all-testnames)) (tal (cdr all-testnames)) (res (list "digraph tests {" (conc " size=\"" (or sizex 11) "," (or sizey 11) "\";") " ratio=0.95;" ))) (let* ((testrec (hash-table-ref test-records hed)) (waitons (or (tests:testqueue-get-waitons testrec) '())) (newres (append res (if (null? waitons) (list (conc " \"" hed "\" [shape=box];")) (map (lambda (waiton) (conc " \"" waiton "\" -> \"" hed "\" [shape=box];")) waitons) )))) (if (null? tal) (append newres (list "}")) (loop (car tal)(cdr tal) newres) )))))) |
︙ | ︙ | |||
924 925 926 927 928 929 930 | (read-lines))))) (close-input-port inp) res))) ;; read data from tmp file or create if not exists ;; if exists regen in background ;; | | | | 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 | (read-lines))))) (close-input-port inp) res))) ;; read data from tmp file or create if not exists ;; if exists regen in background ;; (define (tests:lazy-dot testrecords outtype sizex sizey) (let ((dfile (conc "/tmp/." (current-user-name) "-" (server:mk-signature) ".dot")) (fname (conc "/tmp/." (current-user-name) "-" (server:mk-signature) ".dotdat"))) (tests:write-dot-file testrecords dfile sizex sizey) (if (file-exists? fname) (let ((res (with-input-from-file fname (lambda () (read-lines))))) (system (conc "env -i PATH=$PATH dot -T " outtype " < " dfile " > " fname "&")) res) (begin |
︙ | ︙ |