summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorArun Isaac2023-04-15 13:33:58 +0100
committerArun Isaac2023-04-15 13:33:58 +0100
commit4007e8daca4d960c91ba38d5ee4778dbab5b0020 (patch)
tree885435eaf4c5860737d00e77c94b421e5ac2abde /tests
parentdab45c2753089898214abebf4840267264b53a19 (diff)
downloadtissue-4007e8daca4d960c91ba38d5ee4778dbab5b0020.tar.gz
tissue-4007e8daca4d960c91ba38d5ee4778dbab5b0020.tar.lz
tissue-4007e8daca4d960c91ba38d5ee4778dbab5b0020.zip
tests: Sort alist entries after converting hashtable.
The order of entries in an association list is insignificant. Sorting association list entries prevents tests from breaking simply because the order of the entries is different. * tests/issue.scm: Import (ice-9 match). (hashtable->alist): Sort alist entries after converting hashtable. Document this in the docstring.
Diffstat (limited to 'tests')
-rw-r--r--tests/issue.scm19
1 files changed, 15 insertions, 4 deletions
diff --git a/tests/issue.scm b/tests/issue.scm
index 22982db..db2595f 100644
--- a/tests/issue.scm
+++ b/tests/issue.scm
@@ -1,5 +1,5 @@
;;; tissue --- Text based issue tracker
-;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2022, 2023 Arun Isaac <arunisaac@systemreboot.net>
;;;
;;; This file is part of tissue.
;;;
@@ -19,6 +19,7 @@
(import (rnrs hashtables)
(srfi srfi-64)
(srfi srfi-71)
+ (ice-9 match)
(tissue issue))
(define hashtable-prepend!
@@ -31,10 +32,20 @@
(@@ (tissue issue) file-details))
(define (hashtable->alist hashtable)
+ "Convert @var{hashtable} to association list with keys sorted as
+strings."
(let ((keys values (hashtable-entries hashtable)))
- (map cons
- (vector->list keys)
- (vector->list values))))
+ (sort (map cons
+ (vector->list keys)
+ (vector->list values))
+ (match-lambda*
+ (((key1 . _) (key2 . _))
+ (let ((maybe-symbol->string (lambda (x)
+ (if (symbol? x)
+ (symbol->string x)
+ x))))
+ (string<? (maybe-symbol->string key1)
+ (maybe-symbol->string key2))))))))
(test-begin "issue")