feat: full feature parity for all 42 SDKs + comprehensive tests

All SDKs now implement 58+ functions matching C reference (un.h):
- Execution (8): execute, execute_async, wait_job, get_job, cancel_job, list_jobs, get_languages, detect_language
- Sessions (9): list, get, create, destroy, freeze, unfreeze, boost, unboost, execute
- Services (17): list, get, create, destroy, freeze, unfreeze, lock, unlock, set_unfreeze_on_demand, redeploy, logs, execute, env_get/set/delete/export, resize
- Snapshots (9): list, get, session, service, restore, delete, lock, unlock, clone
- Images (13): list, get, publish, delete, lock, unlock, set_visibility, grant/revoke_access, list_trusted, transfer, spawn, clone
- PaaS Logs (2): fetch, stream
- Utilities (5): validate_keys, hmac_sign, health_check, version, last_error

Test suites created for all SDKs with unit, integration, and functional tests.

Languages: AWK, Bash, C++, C#, Clojure, COBOL, Crystal, D, Dart, .NET, Elixir, Erlang, F#, Forth, Fortran, Go, Groovy, Haskell, Java, JavaScript, Julia, Kotlin, Lisp, Lua, Nim, Objective-C, OCaml, Perl, PHP, PowerShell, Prolog, Python, R, Raku, Ruby, Rust, Scheme, Swift, Tcl, TypeScript, V, Zig
This commit is contained in:
russell@unturf.com 2026-02-05 16:45:02 -05:00
parent a5155aed4f
commit 6e746ace44
90 changed files with 28955 additions and 3028 deletions

View file

@ -147,6 +147,25 @@
(make-test-result :passed nil
:message (format nil "Exception: ~A" e)))))))
;;; Test 4: Snapshot command support (feature parity test)
(defun test-snapshot-command ()
(let ((api-key (uiop:getenv "UNSANDBOX_API_KEY")))
(if (not api-key)
(make-test-result :passed t) ; Skip test if no API key
(handler-case
(let* ((result (run-command "./un.lisp snapshot --list 2>&1"))
(status (car result))
(output (cdr result)))
;; Check if it executed without errors (may return empty list)
(if (= status 0)
(make-test-result :passed t)
(make-test-result :passed nil
:message (format nil "Snapshot list failed: ~A" output))))
(error (e)
(make-test-result :passed nil
:message (format nil "Exception: ~A" e)))))))
;;; Main test runner
(defun main ()
(format t "=== Common Lisp UN CLI Test Suite ===~%~%")
@ -159,7 +178,8 @@
;; Run tests
(let ((results (list (print-result "Extension detection" (test-extension-detection))
(print-result "API integration" (test-api-integration))
(print-result "Fibonacci end-to-end test" (test-fibonacci)))))
(print-result "Fibonacci end-to-end test" (test-fibonacci))
(print-result "Snapshot command support" (test-snapshot-command)))))
(format t "~%")