diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2023-10-16 15:04:30 +0200 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2023-10-16 15:04:30 +0200 |
commit | 0d600b53df3ab20cc3b9ab84ee5c79e5afe41b96 (patch) | |
tree | f7fd385a9a24337e8a302dffe2e9bee0bc180d80 /module | |
parent | Add number of clearifying comments + minor cleanup. (diff) | |
download | calp-0d600b53df3ab20cc3b9ab84ee5c79e5afe41b96.tar.gz calp-0d600b53df3ab20cc3b9ab84ee5c79e5afe41b96.tar.xz |
Better test diffs for strings.
Previously everything was passed through pretty print, meaning that
strings would be squashed to one line. Instead handle strings
separately, and do a line diff on them, but still pretty print actual
scheme structures.
Also change display to write to be able to differentiate different forms
which prints the same.
Diffstat (limited to 'module')
-rw-r--r-- | module/hnh/test/testrunner.scm | 14 | ||||
-rw-r--r-- | module/hnh/test/util.scm | 14 |
2 files changed, 18 insertions, 10 deletions
diff --git a/module/hnh/test/testrunner.scm b/module/hnh/test/testrunner.scm index b3951c34..a45bd421 100644 --- a/module/hnh/test/testrunner.scm +++ b/module/hnh/test/testrunner.scm @@ -19,7 +19,7 @@ (with-output-to-string (lambda () (pretty-print form - display?: #t + display?: #f per-line-prefix: prefix width: (- 79 (string-length indent))))) (string-append indent prefix-1)))) @@ -61,13 +61,11 @@ (begin (display (pp expected indent "Expected: ")) (display (pp actual indent "Received: ")) - (let ((d (diff (pp expected "" "") - (pp actual "" "")))) - (display - (string-join - (map (lambda (line) (string-append indent "|" line)) - (string-split d #\newline)) - "\n" 'suffix)))))))))) + (display + (string-join + (map (lambda (line) (string-append indent "|" line)) + (string-split (diff expected actual) #\newline)) + "\n" 'suffix))))))))) (format #t "~aNear ~a:~a~%" (make-indent (1+ depth)) diff --git a/module/hnh/test/util.scm b/module/hnh/test/util.scm index 3d51e162..b0f3342a 100644 --- a/module/hnh/test/util.scm +++ b/module/hnh/test/util.scm @@ -48,8 +48,18 @@ ) (define (diff s1 s2) - (let ((filename1 (call-with-tmpfile (lambda (p f) (pretty-print s1 p display?: #t) f))) - (filename2 (call-with-tmpfile (lambda (p f) (pretty-print s2 p display?: #t) f)))) + (let ((filename1 (call-with-tmpfile + (lambda (p f) + (if (and (string? s1) (string? s2)) + (display s1 p) + (pretty-print s1 p display?: #f)) + f))) + (filename2 (call-with-tmpfile + (lambda (p f) + (if (and (string? s1) (string? s2)) + (display s2 p) + (pretty-print s2 p display?: #f)) + f)))) (let ((pipe (apply open-pipe* OPEN_READ (append diff-cmd (list filename1 filename2))))) |