Index: mt-pg.sql ================================================================== --- mt-pg.sql +++ mt-pg.sql @@ -239,10 +239,32 @@ fullname TEXT NOT NULL, email TEXT NOT NULL, default_view TEXT default '', deleted INTEGER default 0 ); + +CREATE TABLE IF NOT EXISTS base_paths( + id SERIAL PRIMARY KEY , + path TEXT NOT NULL, + deleted INTEGER default 0 +); + + +CREATE TABLE IF NOT EXISTS area_owners( + id SERIAL PRIMARY KEY , + user_id INTEGER, + base_path_id INTEGER, + deleted INTEGER default 0 +); + +CREATE TABLE IF NOT EXISTS shared_user_views( + id SERIAL PRIMARY KEY , + user_id INTEGER, + view_id INTEGER, + deleted INTEGER default 0 +); + CREATE TABLE IF NOT EXISTS webviews( id SERIAL PRIMARY KEY , owner_id INTEGER NOT NULL, name TEXT NOT NULL, @@ -259,12 +281,34 @@ CREATE TABLE IF NOT EXISTS users_webviews( id SERIAL PRIMARY KEY , user_id INTEGER NOT NULL, webview_id INTEGER NOT NULL, deleted INTEGER default 0, - searchpattern TEXT Default '' + searchpattern TEXT Default '', + web_page TEXT Default '', + other_search_data TEXT Default '' +); + +CREATE TABLE IF NOT EXISTS cctrl_info( + id SERIAL PRIMARY KEY , + user_id INTEGER NOT NULL, + input TEXT Default '', + result_file TEXT Default NULL, + chksum TEXT +); + +CREATE TABLE IF NOT EXISTS cctrl_config( + id SERIAL PRIMARY KEY , + area_type Text, + cmd TEXT +); + +CREATE TABLE IF NOT EXISTS platforms( + id SERIAL PRIMARY KEY , + name Text ); + -- TRUNCATE archive_blocks, archive_allocations, extradat, metadat, -- access_log, tests, test_steps, test_data, test_rundat, archives, runs, -- run_stats, test_meta, tasks_queue, archive_disks; Index: tests.scm ================================================================== --- tests.scm +++ tests.scm @@ -948,19 +948,33 @@ (define (tests:create-html-summary outf) (let* ((lockfile (conc outf ".lock")) (linktree (common:get-linktree)) (keys (rmt:get-keys)) - (area-name (common:get-testsuite-name))) + (area-name (common:get-testsuite-name)) + (run-patt (if (args:get-arg "-run-patt") + (args:get-arg "-run-patt") + "%")) + (target (if (args:get-arg "-target-patt") + (args:get-arg "-target-patt") + "%")) + (targlist (string-split target "/")) + (numkeys (length keys)) + (numtarg (length targlist)) + (targtweaked (if (> numkeys numtarg) + (append targlist (make-list (- numkeys numtarg) "%")) + targlist)) + (target-patt (string-join targtweaked "/"))) (if (common:simple-file-lock lockfile) (begin - (let* ((runsdat (rmt:get-runs "%" #f #f (map (lambda (x)(list x "%")) keys))) + (let* (;(runsdat1 (rmt:get-runs run-patt #f #f (map (lambda (x)(list x "%")) keys))) + (runsdat (rmt:get-runs-by-patt keys run-patt target-patt #f #f #f 0)) (runs (vector-ref runsdat 1)) (header (vector-ref runsdat 0)) (oup (open-output-file (or outf (conc linktree "/targets.html")))) (target-hash (test:create-target-hash runs header (length keys)))) - (test:create-target-html target-hash oup area-name linktree) + (test:create-target-html target-hash oup area-name linktree) (test:create-run-html runs area-name linktree (length keys) header)) (common:simple-file-release-lock lockfile)) #f))) (define (test:get-test-hash test-data) @@ -992,11 +1006,13 @@ (define (test:create-run-html runs area-name linktree numkeys header) (map (lambda (run) (let* ((target (string-join (take (vector->list run) numkeys) "/")) (run-name (db:get-value-by-header run header "runname")) (run-time (seconds->work-week/day-time (db:get-value-by-header run header "event_time"))) - (oup (open-output-file (conc linktree "/" target "/" run-name "/run.html"))) + (oup (if (file-exists? (conc linktree "/" target "/" run-name)) + (open-output-file (conc linktree "/" target "/" run-name "/run.html")) + #f)) (run-id (db:get-value-by-header run header "id")) (test-data (rmt:get-tests-for-run run-id "%" ;; testnamepatt '() ;; states @@ -1010,24 +1026,23 @@ 0 ;; last update #f)) (item-test-hash (test:get-test-hash test-data)) (items (hash-table-keys item-test-hash)) (test-names (test:get-data->b-keys item-test-hash items))) - (s:output-new + (if oup + (begin + (s:output-new oup (s:html tests:css-jscript-block (tests:css-jscript-block-cond #f) - (s:title "Runs View " run-name) (s:body (s:h1 "Runs View " ) (s:h3 "Target" target) (s:p (s:b "Run name" ) run-name) (s:p (s:b "Run Date" ) run-time) - - (s:table 'border 1 'cellspacing 0 (s:tr (s:th "Items") (map (lambda (test) (s:th test)) @@ -1048,11 +1063,12 @@ (s:td 'class status (s:a 'class "link" 'href link status )) (s:td "")))) test-names)))))) (sort items string<=?)))))) - (close-output-port oup))) + (close-output-port oup)) + (debug:print-info 0 "Skip: Dirctory structure " linktree "/" target "/" run-name " does not exist. Megatest will not create run.html")))) runs)) (define (test:create-target-hash runs header numkeys) (let ((resh (make-hash-table))) (for-each