aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2015, 2020 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-base32)
  #:use-module (gcrypt hash)
  #:use-module (guix base32)
  #:use-module (guix utils)
  #:use-module (srfi srfi-1)
  #:use-module (srfi srfi-34)
  #:use-module (srfi srfi-64)
  #:use-module (ice-9 match)
  #:use-module (rnrs bytevectors)
  #:use-module (rnrs io ports))

;; Test the (guix base32) module.

(test-begin "base32")

(test-assert "bytevector->base32-string"
  (fold (lambda (bv expected result)
          (and result
               (string=? (bytevector->base32-string bv)
                         expected)))
        #t

        ;; Examples from RFC 4648.
        (map string->utf8 '("" "f" "fo" "foo" "foob" "fooba" "foobar"))
        '(""
          "my"
          "mzxq"
          "mzxw6"
          "mzxw6yq"
          "mzxw6ytb"
          "mzxw6ytboi")))

(test-assert "base32-string->bytevector"
  (every (lambda (bv)
           (equal? (base32-string->bytevector
                    (bytevector->base32-string bv))
                   bv))
         ;; Examples from RFC 4648.
         (map string->utf8 '("" "f" "fo" "foo" "foob" "fooba" "foobar"))))

(test-assert "nix-base32-string->bytevector"
  (every (lambda (bv)
           (equal? (nix-base32-string->bytevector
                    (bytevector->nix-base32-string bv))
                   bv))
         ;; Examples from RFC 4648.
         (map string->utf8 '("" "f" "fo" "foo" "foob" "fooba" "foobar"))))

(test-equal "&invalid-base32-character"
  #\e
  (guard (c ((invalid-base32-character? c)
             (invalid-base32-character-value c)))
    (nix-base32-string->bytevector
     (string-append (make-string 51 #\a) "e"))))

(test-end)
: Add file-name. Efraim Flashner 2019-11-04gnu: scrot: Update to 1.2....* gnu/packages/xdisorg.scm (scrot): Update to 1.2, [native-inputs]: Add autoconf-archive, [inputs]: Add libxcursor and libxfixes. Signed-off-by: Mathieu Othacehe <m.othacehe@gmail.com> Tanguy Le Carrour 2019-10-29gnu: Add bemenu....* gnu/packages/xdisorg.scm (bemenu): New public variable. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr> Josh Holland 2019-10-29gnu: xf86-input-wacom: Update to 0.38.0....* gnu/packages/xdisorg.scm (xf86-input-wacom): Update to 0.38.0. Tobias Geerinckx-Rice 2019-10-18gnu: libwacom: Do not build static libraries....* gnu/packages/xdisorg.scm (libwacom)[arguments]: New field. Marius Bakke 2019-10-18gnu: libwacom: Update to 1.1....* gnu/packages/xdisorg.scm (libwacom): Update to 1.1. Marius Bakke 2019-10-01Merge branch 'master' into core-updatesLudovic Courtès 2019-09-29gnu: Add xftwidth....* gnu/packages/xdisorg.scm: added xftwidth package. Kyle Andrews 2019-09-27Merge branch 'master' into core-updatesMarius Bakke 2019-09-25gnu: xf86-input-wacom: Don't use NAME in source URI....* gnu/packages/xdisorg.scm (xf86-input-wacom)[source]: Hard-code NAME. Tobias Geerinckx-Rice 2019-09-25gnu: rofi: Update to 1.5.4....* gnu/packages/xdisorg.scm (rofi): Update to 1.5.4. Tobias Geerinckx-Rice 2019-09-24Merge branch 'master' into core-updatesLudovic Courtès 2019-09-24gnu: sxhkd: Sensibly name source checkout....* gnu/packages/xdisorg.scm (sxhkd)[source]: Use GIT-FILE-NAME. Tobias Geerinckx-Rice 2019-09-24gnu: sxhkd: Update to 0.6.1....* gnu/packages/xdisorg.scm (sxhkd): Update to 0.6.1. Tobias Geerinckx-Rice 2019-09-23gnu: wl-clipboard: Update to 2.0.0_beta2....* gnu/packages/xdisorg.scm (wl-clipboard): Update to 2.0.0_beta2. Efraim Flashner 2019-09-21gnu: Add autocutsel....* gnu/packages/xdisorg.scm (autocutsel): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Wiktor Żelazny s/libcanberra.scm, gnu/packages/linux.scm, gnu/packages/lisp.scm, gnu/packages/lolcode.scm, gnu/packages/lxde.scm, gnu/packages/lxqt.scm, gnu/packages/mail.scm, gnu/packages/markup.scm, gnu/packages/mate.scm, gnu/packages/maths.scm, gnu/packages/mc.scm, gnu/packages/messaging.scm, gnu/packages/music.scm, gnu/packages/ncurses.scm, gnu/packages/networking.scm, gnu/packages/nickle.scm, gnu/packages/openbox.scm, gnu/packages/pdf.scm, gnu/packages/perl-check.scm, gnu/packages/perl.scm, gnu/packages/python-compression.scm, gnu/packages/python-crypto.scm, gnu/packages/python-web.scm, gnu/packages/python-xyz.scm, gnu/packages/python.scm, gnu/packages/qt.scm, gnu/packages/ruby.scm, gnu/packages/rust.scm, gnu/packages/scheme.scm, gnu/packages/serialization.scm, gnu/packages/shells.scm, gnu/packages/ssh.scm, gnu/packages/suckless.scm, gnu/packages/tbb.scm, gnu/packages/telephony.scm, gnu/packages/text-editors.scm, gnu/packages/textutils.scm, gnu/packages/time.scm, gnu/packages/tls.scm, gnu/packages/tor.scm, gnu/packages/version-control.scm, gnu/packages/video.scm, gnu/packages/vim.scm, gnu/packages/web.scm, gnu/packages/wm.scm, gnu/packages/xdisorg.scm, gnu/packages/xfce.scm, gnu/packages/xml.scm, gnu/packages/xorg.scm, gnu/services/certbot.scm, gnu/services/desktop.scm, gnu/services/version-control.scm, gnu/services/web.scm, guix/import/hackage.scm, guix/licenses.scm: Correct name and email address for ng0. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr> ng0 2019-02-21gnu: cdrtools: Disable build parallelism....* gnu/packages/cdrom.scm (cdrtools)[arguments]: Add '#:parallel-build? #f'. Eric Bavier 2019-02-06gnu: abcde: Update to 2.9.3....* gnu/packages/cdrom.scm (abcde): Update to 2.9.3. [source]: Update snippet. Kei Kebreau 2019-01-23gnu: cdrtools: Remove custom build and install phases....* gnu/packages/cdrom.scm (cdrtools)[arguments]: Add make-flags; remove custom "build" and "install" phases. Ricardo Wurmus 2019-01-08gnu: dvdisaster: Run regression tests....* gnu/packages/cdrom.scm (dvdisaster)[arguments]: Remove #:tests? argument. Add 'check' phase. Eric Bavier 2019-01-08gnu: dvdisaster: Install desktop file....* gnu/packages/cdrom.scm (dvdisaster)[arguments]: Add 'install-desktop phase. Eric Bavier 2018-12-28gnu: cdrtools: Do not record the kernel version....This allows for reproducible builds across machines running different versions of the kernel Linux. * gnu/packages/cdrom.scm (cdrtools)[source](modules, snippet): New fields. Ludovic Courtès 2018-12-20gnu: abcde: Return #t from all phases....* gnu/packages/cdrom.scm (abcde)[arguments]: Return #t from all phases. Efraim Flashner 2018-12-03Merge branch 'core-updates'Ludovic Courtès 2018-11-29gnu: libcue: Fetch sources from git....* gnu/packages/cdrom.scm (libcue)[source]: Fetch from git. Ricardo Wurmus 2018-11-10gnu: dvd+rw-tools: Use invoke....* gnu/packages/cdrom.scm (dvd+rw-tools): Use 'invoke'. Efraim Flashner 2018-11-10gnu: dvd+rw-tools: Fix building with glibc@2.28....* gnu/packages/cdrom.scm (dvd+rw-tools)[arguments]: Add custom phase to add missing import. Efraim Flashner 2018-09-18gnu: xorriso: Update to 1.5.0....* gnu/packages/cdrom.scm (xorriso): Update to 1.5.0. Tobias Geerinckx-Rice 2018-09-18gnu: libisofs: Update to 1.5.0....* gnu/packages/cdrom.scm (libisofs): Update to 1.5.0. Tobias Geerinckx-Rice 2018-09-18gnu: libburn: Update to 1.5.0....* gnu/packages/cdrom.scm (libburn): Update to 1.5.0. Tobias Geerinckx-Rice scm, gnu/packages/gimp.scm, gnu/packages/gl.scm, gnu/packages/gnome-xyz.scm, gnu/packages/gnome.scm, gnu/packages/gnuzilla.scm, gnu/packages/golang.scm, gnu/packages/gpodder.scm, gnu/packages/graph.scm, gnu/packages/graphics.scm, gnu/packages/graphviz.scm, gnu/packages/groff.scm, gnu/packages/groovy.scm, gnu/packages/gtk.scm, gnu/packages/guile-xyz.scm, gnu/packages/guile.scm, gnu/packages/hardware.scm, gnu/packages/haskell-apps.scm, gnu/packages/haskell-xyz.scm, gnu/packages/hexedit.scm, gnu/packages/i2p.scm, gnu/packages/ibus.scm, gnu/packages/image-processing.scm, gnu/packages/image-viewers.scm, gnu/packages/image.scm, gnu/packages/ipfs.scm, gnu/packages/java-graphics.scm, gnu/packages/java-maths.scm, gnu/packages/java.scm, gnu/packages/javascript.scm, gnu/packages/jrnl.scm, gnu/packages/julia.scm, gnu/packages/jupyter.scm, gnu/packages/kodi.scm, gnu/packages/language.scm, gnu/packages/lego.scm, gnu/packages/less.scm, gnu/packages/libusb.scm, gnu/packages/linux.scm, gnu/packages/lirc.scm, gnu/packages/lisp-xyz.scm, gnu/packages/llvm.scm, gnu/packages/logging.scm, gnu/packages/lolcode.scm, gnu/packages/lua.scm, gnu/packages/lxde.scm, gnu/packages/lxqt.scm, gnu/packages/machine-learning.scm, gnu/packages/mail.scm, gnu/packages/markup.scm, gnu/packages/maths.scm, gnu/packages/maven.scm, gnu/packages/mes.scm, gnu/packages/messaging.scm, gnu/packages/monitoring.scm, gnu/packages/mpd.scm, gnu/packages/music.scm, gnu/packages/networking.scm, gnu/packages/node-xyz.scm, gnu/packages/ocaml.scm, gnu/packages/ocr.scm, gnu/packages/onc-rpc.scm, gnu/packages/opencl.scm, gnu/packages/opencog.scm, gnu/packages/pantheon.scm, gnu/packages/password-utils.scm, gnu/packages/patchutils.scm, gnu/packages/pdf.scm, gnu/packages/perl6.scm, gnu/packages/phabricator.scm, gnu/packages/popt.scm, gnu/packages/printers.scm, gnu/packages/prolog.scm, gnu/packages/protobuf.scm, gnu/packages/pulseaudio.scm, gnu/packages/python-crypto.scm, gnu/packages/python-web.scm, gnu/packages/python-xyz.scm, gnu/packages/qt.scm, gnu/packages/radio.scm, gnu/packages/rails.scm, gnu/packages/rdf.scm, gnu/packages/rednotebook.scm, gnu/packages/rpc.scm, gnu/packages/rsync.scm, gnu/packages/ruby.scm, gnu/packages/rust.scm, gnu/packages/scheme.scm, gnu/packages/screen.scm, gnu/packages/security-token.scm, gnu/packages/selinux.scm, gnu/packages/serialization.scm, gnu/packages/shells.scm, gnu/packages/shellutils.scm, gnu/packages/simh.scm, gnu/packages/sml.scm, gnu/packages/ssh.scm, gnu/packages/statistics.scm, gnu/packages/stenography.scm, gnu/packages/sync.scm, gnu/packages/syncthing.scm, gnu/packages/synergy.scm, gnu/packages/telephony.scm, gnu/packages/terminals.scm, gnu/packages/tex.scm, gnu/packages/texinfo.scm, gnu/packages/text-editors.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: dump: Fix typo in description....* gnu/packages/backup.scm (dump)[synopsis, description]: Fix typo. Tobias Geerinckx-Rice 2020-06-09gnu: borg: Update to 1.1.13....* gnu/packages/backup.scm (borg): Update to 1.1.13. [arguments]: Skip a new FUSE test. Tobias Geerinckx-Rice 2020-06-06gnu: burp: Update to 2.3.28....* gnu/packages/backup.scm (burp): Update to 2.3.28. Tobias Geerinckx-Rice 2020-05-27gnu: wimlib: Update to 1.13.2....* gnu/packages/backup.scm (wimlib): Update to 1.13.2. Tobias Geerinckx-Rice 2020-05-26gnu: Add dump....* gnu/packages/backup.scm (dump): New variable. Signed-off-by: Marius Bakke <marius@gnu.org> Marcin Karpezo 2020-05-17gnu: burp: Update to 2.3.26....* gnu/packages/backup.scm (burp): Update to 2.3.26. Tobias Geerinckx-Rice