aboutsummaryrefslogtreecommitdiff
path: root/tests/uuid.scm
blob: 1c6d1e9e579459ba684c4e563bc62874a4a990f9 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (test-uuid)
  #:use-module (gnu system uuid)
  #:use-module (srfi srfi-64)
  #:use-module (rnrs bytevectors))

(test-begin "uuid")

(test-equal "uuid->string"
  "c5307e6b-d1ba-499d-89c5-cb0b143577c4"
  (uuid->string
   #vu8(197 48 126 107 209 186 73 157 137 197 203 11 20 53 119 196)))

(test-equal "string->uuid"
  '(16 "4dab5feb-d176-45de-b287-9b0a6e4c01cb")
  (let ((uuid (string->uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb")))
    (list (bytevector-length uuid) (uuid->string uuid))))

(test-assert "uuid"
  (let ((str "4dab5feb-d176-45de-b287-9b0a6e4c01cb"))
    (bytevector=? (uuid-bytevector
                   (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb"))
                  (string->uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb"))))

(test-assert "uuid, syntax error"
  (catch 'syntax-error
    (lambda ()
      (eval '(uuid "foobar") (current-module))
      #f)
    (lambda (key proc message location form . args)
      (and (eq? proc 'uuid)
           (string-contains message "invalid UUID")
           (equal? form '(uuid "foobar" 'dce))))))

(test-equal "uuid, ISO-9660, format preserved"
  "1970-01-01-17-14-42-99"
  (uuid->string (uuid "1970-01-01-17-14-42-99" 'iso9660)))

(test-equal "uuid, FAT32, format preserved"
  "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)))
    (and (uuid? (uuid good))
         (string=? good (uuid->string (uuid good)))
         (not (uuid bad)))))

(test-assert "uuid=?"
  (and (uuid=? (uuid-bytevector (uuid "1234-abcd" 'fat32))
               (uuid "1234-abcd" 'fat32))
       (uuid=? (uuid "1234-abcd" 'fat32)
               (uuid "1234-abcd" 'fat))))

(test-end)
scm, gnu/packages/textutils.scm, gnu/packages/time.scm, gnu/packages/tmux.scm, gnu/packages/tor.scm, gnu/packages/toys.scm, gnu/packages/version-control.scm, gnu/packages/video.scm, gnu/packages/vim.scm, gnu/packages/virtualization.scm, gnu/packages/vlang.scm, gnu/packages/vnc.scm, gnu/packages/vpn.scm, gnu/packages/web-browsers.scm, gnu/packages/web.scm, gnu/packages/wireservice.scm, gnu/packages/wm.scm, gnu/packages/wxwidgets.scm, gnu/packages/xdisorg.scm, gnu/packages/xml.scm, gnu/packages/xorg.scm, tests/lint.scm: Remove trailing ".git" from 'git-reference' URL. Ludovic Courtès 2020-07-09gnu: gphotofs: Fix typo in description....* gnu/packages/file-systems.scm (gphotofs)[synopsis, description]: Fix typo. Tobias Geerinckx-Rice 2020-07-09gnu: mergerfs: Fix typo in description....* gnu/packages/file-systems.scm (mergerfs)[synopsis, description]: Fix typo. Tobias Geerinckx-Rice 2020-07-05gnu: bcachefs-tools: Display the correct version....* gnu/packages/file-systems.scm (bcachefs-tools)[arguments]: Add VERSION to make-flags. Tobias Geerinckx-Rice 2020-06-27gnu: Add autofs....* gnu/packages/file-systems.scm (autofs): New public variable. Co-authored-by: Oleg Pykhalov <go.wigust@gmail.com> Tobias Geerinckx-Rice 2020-06-10gnu: fsarchiver: Use HTTPS home page URI....* gnu/packages/file-systems.scm (fsarchiver)[home-page]: Use HTTPS URI. Nicolas Goaziou 2020-06-03gnu: Add mergerfs-tools....* gnu/packages/storage.scm (mergerfs-tools): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Lars-Dominik Braun 2020-06-03gnu: Add mergerfs....* gnu/packages/storage.scm (mergerfs): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Lars-Dominik Braun 2020-05-28gnu: Add exfatprogs....* gnu/packages/file-systems.scm (exfatprogs): New public variable. Signed-off-by: Leo Famulari <leo@famulari.name> Tobias Geerinckx-Rice 2020-05-27gnu: apfs-fuse: Update to 0.0.0-1.7b89418....* gnu/packages/file-systems.scm (apfs-fuse): Update to 0.0.0-1.7b89418. [arguments]: Install the README. Select FUSE 2 in #:configure-flags. Leo Famulari 2020-05-25gnu: disorderfs: Update to 0.5.10....* gnu/packages/file-systems (disorderfs): Update to 0.5.10. Vagrant Cascadian 2020-05-13gnu: fsarchiver: Edit synopsis & description....* gnu/packages/file-systems.scm (fsarchiver)[synopsis, description]: Fix spelling (file system, lose, …). Edit for grammar and style (‘…allows you to…’). Provide more information about the package. Tobias Geerinckx-Rice 2020-05-13gnu: fsarchiver: Move to (gnu packages file-systems)....* gnu/packages/disk.scm (fsarchiver): Move this variable… * gnu/packages/file-systems.scm (fsarchiver): …here. Tobias Geerinckx-Rice 2020-05-09gnu: zfs: Add missing input....Reported by ecbrown on IRC. * gnu/packages/file-systems.scm (zfs)[native-inputs]: Add kmod. Efraim Flashner 2020-05-08Merge branch 'core-updates'Marius Bakke 2020-05-08gnu: Add gphotofs....* gnu/packages/file-systems.scm (gphotofs): New variable. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> Raghav Gururajan 2020-04-19Merge branch 'master' into core-updatesMarius Bakke 2020-04-16gnu: disorderfs: Update to 0.5.9....* gnu/packages/file-systems (disorderfs): Update to 0.5.9. Vagrant Cascadian 2020-02-14Merge branch 'master' into core-updatesMarius Bakke 2020-02-05gnu: disoderfs: Update to 0.5.8....* gnu/packages/file-systems (disorderfs): Update to 0.5.8. [home-page]: Update. Vagrant Cascadian 2020-02-03Merge branch 'staging' into core-updatesMarius Bakke 2020-01-30gnu: bcachefs-tools: Fix spelling of "utilities"....* gnu/packages/file-systems (bcachefs-tools): Fix typo. Vagrant Cascadian 2020-01-28gnu: Add bcachefs-tools....* gnu/packages/file-systems.scm (bcachefs-tools): New public variable. Tobias Geerinckx-Rice 2020-01-15gnu: util-linux: Move libraries to separate output....Fixes <https://bugs.gnu.org/37732>. Reported by Diego Nicola Barbato <dnbarbato@posteo.de>. * gnu/packages/linux.scm (util-linux)[outputs]: Add "lib". [arguments]: Update #:configure-flags and the "move-static-libraries" phase accordingly. Add phases "patch-build-scripts" and "adjust-pkg-config-files". (e2fsprogs, psm, mtd-utils, f2fs-tools, f2fs-tools-1.7, eudev, xfsprogs)[inputs]: Change to the "lib" output of UTIL-LINUX. (btrfs-progs)[inputs]: Remove duplicate UTIL-LINUX inputs and change to use the "lib" output. * gnu/packages/admin.scm (pam-mount)[inputs]: Add UTIL-LINUX:LIB. (testdisk)[inputs]: Change to the "lib" output of UTIL-LINUX. * gnu/packages/android.scm (abootimg)[inputs]: Likewise. * gnu/packages/audio.scm (jack-1)[propagated-inputs]: Likewise. * gnu/packages/bootloaders.scm (syslinux, vboot-utils)[inputs]: Likewise. * gnu/packages/chez.scm (chez-scheme)[inputs]: Likewise. * gnu/packages/cryptsetup.scm (cryptsetup, cryptsetup-static)[inputs]: Likewise. * gnu/packages/databases.scm (postgresql, 4store)[inputs]: Likewise. * gnu/packages/disk.scm (ndctl, gptfdisk, fdisk, gparted, rmlint, volume-key)[inputs]: Likewise. (parted)[inputs]: Likewise. [native-inputs]: Add UTIL-LINUX. * gnu/packages/efi.scm (sbsigntools)[inputs]: Add UTIL-LINUX:LIB. * gnu/packages/engineering.scm (lib3mf)[inputs]: Change to the "lib" output of UTIL-LINUX. * gnu/packages/enlightenment.scm (efl)[propagated-inputs]: Likewise. * gnu/packages/file-systems.scm (glusterfs, jfsutils, zfs)[inputs]: Likewise. * gnu/packages/firmware.scm (ovmf)[inputs]: Likewise. * gnu/packages/fontutils.scm (fontconfig)[propagated-inputs]: Likewise. * gnu/packages/freedesktop.scm (localed)[inputs]: Likewise. * gnu/packages/glib.scm (glib, appstream-glib)[propagated-inputs]: Likewise. * gnu/packages/gnome.scm (tracker, gnome-terminal)[inputs]: Likewise. * gnu/packages/jupyter.scm (xeus)[inputs]: Likewise. * gnu/packages/kde.scm (kpmcore)[inputs]: Likewise. * gnu/packages/kodi.scm (crossguid)[inputs]: Likewise. * gnu/packages/lighting.scm (ola)[inputs]: Likewise. * gnu/packages/music.scm (libgig)[inputs]: Likewise. * gnu/packages/nfs.scm (nfs-utils)[inputs]: Likewise. * gnu/packages/opencog.scm (opencog)[inputs]: Likewise. * gnu/packages/package-management.scm (msitools)[inputs]: Change to the "lib" output of UTIL-LINUX. * gnu/packages/password-utils.scm (pwsafe)[inputs]: Likewise. * gnu/packages/telephony.scm (pjproject)[propagated-inputs]: Likewise. * gnu/packages/rdf.scm (rasqal)[inputs]: Likewise. * gnu/packages/search.scm (xapian)[inputs]: Likewise. * gnu/packages/sssd.scm (sssd)[native-inputs]: Likewise. * gnu/packages/storage.scm (ceph)[inputs]: Add UTIL-LINUX:LIB. * gnu/packages/task-management.scm (taskwarrior)[inputs]: Change to the "lib" output of UTIL-LINUX. * gnu/packages/virtualization.scm (libvirt, xen)[inputs]: Likewise. * gnu/packages/xorg.scm (libsm)[inputs]: Likewise. Marius Bakke 2020-01-03gnu: Add jfs_fsck-static....* gnu/packages/file-systems.scm (jfs_fsck-static): New public variable. Tobias Geerinckx-Rice 2020-01-03gnu: Add jfsutils-static....gnu/packages/file-systems.scm (jfsutils/static): New public variable. Tobias Geerinckx-Rice 2019-12-31gnu: Add jfsutils....* gnu/packages/file-systems.scm (jfsutils): New public variable. Tobias Geerinckx-Rice 2019-12-26gnu: Add zfs....* gnu/packages/file-systems.scm (zfs): New variable. Efraim Flashner 2019-12-19gnu: httpfs2: Don't use NAME in source URI....* gnu/packages/file-systems.scm (httpfs2)[source]: Hard-code NAME. Tobias Geerinckx-Rice 2019-12-08gnu: glusterfs: Update to 7.0...* gnu/packages/file-systems.scm (glusterfs): Update to 7.0. [source]: Update URL. [arguments]: Add "PYTHON=" and"--enable-cmocka" configure flags. Remove 'replace-config.sub and 'fix-lex phases. Add 'autogen. [native-inputs]: Add libtirpc, rpcsvc-proto, autoconf, automake, and libtool. [inputs]: Add fuse, libaio, and rdma-core. Remove lvm2 and sqlite. * gnu/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch: Remove. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Andrew Miloradovsky 2019-10-10gnu: apfs-fuse: Fix build....* gnu/packages/file-systems.scm (apfs-fuse)[arguments]: Install the LICENSE file with the default 'install-license-files' phase. Leo Famulari