summary refs log tree commit diff
path: root/tests/uuid.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-05-07 10:50:28 +0200
committerLudovic Courtès <ludo@gnu.org>2019-05-07 12:18:44 +0200
commit6c5790a2faf8ffc401e43b13425a707394e40874 (patch)
tree9e22384039a5b35a1d829a758abff1f41f750fa6 /tests/uuid.scm
parent08c06cd8acbd960c483292f9c3df32fe304ef04f (diff)
downloadguix-6c5790a2faf8ffc401e43b13425a707394e40874.tar.gz
uuid: 'fat-uuid->string' preserves leading zeros.
Fixes <https://bugs.gnu.org/35582>.
Reported by sirgazil <sirgazil@zoho.com>.

Previously, leading zeros would be removed, leading to an "invalid"
UUID:

  (uuid->string (uuid "00CA-050E" 'fat32))
  ⇒ "CA-50E"
  (string->uuid "CA-50E" 'fat32)
  ⇒ #f

* gnu/system/uuid.scm (fat-uuid->string): Pad digits with zeros.
* tests/uuid.scm ("uuid, FAT32, leading zeros preserved"): New test.
Diffstat (limited to 'tests/uuid.scm')
-rw-r--r--tests/uuid.scm6
1 files changed, 5 insertions, 1 deletions
diff --git a/tests/uuid.scm b/tests/uuid.scm
index 260614f079..1c6d1e9e57 100644
--- a/tests/uuid.scm
+++ b/tests/uuid.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -57,6 +57,10 @@
   "1234-ABCD"
   (uuid->string (uuid "1234-abcd" 'fat32)))
 
+(test-equal "uuid, FAT32, leading zeros preserved"
+  "00CA-050E"                                    ;<https://bugs.gnu.org/35582>
+  (uuid->string (uuid "00CA-050E" 'fat32)))
+
 (test-assert "uuid, dynamic value"
   (let* ((good "4dab5feb-d176-45de-b287-9b0a6e4c01cb")
          (bad  (string-drop good 3)))