Aded extended commands and editor

This commit is contained in:
2026-08-20 23:48:49 +02:00
parent 72bf39a27b
commit 4324da1467
12 changed files with 1616 additions and 261 deletions
+16 -2
View File
@@ -2,6 +2,7 @@
(require rackunit
racket/file
racket/path
racket/port
rash-coreutils)
@@ -11,13 +12,17 @@
(open-output-string))
(define errors
(open-output-string))
(define edited #f)
(dynamic-wind
void
(λ ()
(parameterize ([current-directory test-root]
[current-output-port output]
[current-error-port errors])
[current-error-port errors]
[current-coreutils-editor
(λ (filename #:wait? [wait? #f])
(set! edited (list filename wait?)))])
{
(call-with-output-file "info.rkt"
#:exists 'truncate
@@ -30,21 +35,30 @@
ls -l rash-coreutils-smoke
ls *.rkt
ls #px"^info[.]rkt$"
edit --wait info.rkt
(define x 42)
env RASH_COREUTILS_VALUE=(values x) printenv RASH_COREUTILS_VALUE
echo one two three | wc -w
time echo timed
date --iso
rm -r rash-coreutils-smoke
(check-false (directory-exists? "rash-coreutils-smoke"))
})
(check-equal? (get-output-string errors) "")
(define error-text (get-output-string errors))
(check-true
(regexp-match?
#px"^real\\t[0-9]+[.][0-9]{3}s\ncpu\\t[0-9]+[.][0-9]{3}s\ngc\\t[0-9]+[.][0-9]{3}s\n$"
error-text))
(define text (get-output-string output))
(check-true (regexp-match? #rx"hello from rash-coreutils" text))
(check-true (regexp-match? #rx"info[.]rkt" text))
(check-true (regexp-match? #rx"42" text))
(check-true (regexp-match? #rx"timed" text))
(check-equal? (path->string (first edited)) "info.rkt")
(check-true (second edited))
(check-true (regexp-match? #rx"\n3\n" text))
(check-true (regexp-match? #px"[0-9]{4}-[0-9]{2}-[0-9]{2}T" text)))
(λ ()