@@ -97,5 +97,25 @@ ;; if a value is printable (i.e. string or number) return the value ;; else return an empty string (define-inline (printable val) (if (or (number? val)(string? val)) val "")) +;;====================================================================== +;; T E S T S U I T E R E C O R D S +;;====================================================================== + +;; make-vector-record common_records testsuite toppath linktree configdat envvars +(define (make-common_records:testsuite)(make-vector 4)) +(define-inline (common_records:testsuite-get-toppath vec) (vector-ref vec 0)) +(define-inline (common_records:testsuite-get-linktree vec) (vector-ref vec 1)) +(define-inline (common_records:testsuite-get-configdat vec) (vector-ref vec 2)) +(define-inline (common_records:testsuite-get-envvars vec) (vector-ref vec 3)) +(define-inline (common_records:testsuite-set-toppath! vec val)(vector-set! vec 0 val)) +(define-inline (common_records:testsuite-set-linktree! vec val)(vector-set! vec 1 val)) +(define-inline (common_records:testsuite-set-configdat! vec val)(vector-set! vec 2 val)) +(define-inline (common_records:testsuite-set-envvars! vec val)(vector-set! vec 3 val)) + +(define (common_records:testsuite-add-envvar! vec var val) + (let ((envvars (cons (cons var val) + (or (common_records:testsuite-get-envvars vec) '())))) + (common_records:testsuite-set-envvars! vec envvars) + envvars))