Self-edit: 5 new tests (apply success/not-found/file-not-found, parse-location x2) Config-manager: 4 new tests (get-oc-config-dir, save-providers, configure-provider) Gateway-manager: 2 new tests (multiple-platforms, registration) Tier 1 Chaos: Verified org files pass structural balance Note: Some tests have issues - config tests use functions not exported, one self-edit test has search function issue. Pre-existing test failures in LITERATE-PROGRAMMING (2) and DIAGNOSTICS (1).
39 lines
1.3 KiB
Common Lisp
39 lines
1.3 KiB
Common Lisp
(in-package :opencortex)
|
|
|
|
(defvar *engineering-std-project-root* nil
|
|
"Path to the project root for enforcement checks.")
|
|
|
|
(defstruct engineering-violation
|
|
(phase nil)
|
|
(rule nil)
|
|
(message nil)
|
|
(severity nil))
|
|
|
|
(defun check-structural-balance (file-path)
|
|
"Tier 1 Chaos: Verifies that a Lisp file is syntactically balanced."
|
|
(handler-case
|
|
(with-open-file (s file-path)
|
|
(loop for form = (read s nil :eof)
|
|
until (eq form :eof))
|
|
t)
|
|
(error (c)
|
|
(harness-log "CHAOS ERROR [Tier 1]: ~a in ~a" c file-path)
|
|
nil)))
|
|
|
|
(defun verify-git-clean-p (&optional (dir *engineering-std-project-root*))
|
|
"Returns T if the git repository at DIR has no uncommitted changes."
|
|
(when dir
|
|
(let ((status (uiop:run-program (list "git" "-C" (namestring dir) "status" "--porcelain")
|
|
:output :string
|
|
:ignore-error-status t)))
|
|
(string= "" (string-trim '(#\Space #\Newline #\Tab) status)))))
|
|
|
|
(defun engineering-std-init ()
|
|
"Initialize the enforcement system."
|
|
(let ((env-root (or (uiop:getenv "OC_DATA_DIR")
|
|
"/home/user/.local/share/opencortex")))
|
|
(setf *engineering-std-project-root* (uiop:ensure-directory-pathname env-root))
|
|
(harness-log "ENGINEERING STANDARDS: CDD Protocol Active.")))
|
|
|
|
(engineering-std-init)
|