aboutsummaryrefslogtreecommitdiff
path: root/tests/base32.scm
blob: a999edcaccba2afc7b5d44551280413982312a73 (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
;;; 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)
ne failing test. Ricardo Wurmus 2018-03-14gnu: automake: Update to 1.16.1....* gnu/packages/autotools.scm (automake): Update to 1.16.1. (automake-1.16): Remove variable. Marius Bakke 2018-03-14Merge branch 'master' into core-updatesRicardo Wurmus 2018-03-12gnu: automake@1.16: Update to 1.16.1....* gnu/packages/autotools.scm (automake-1.16): Update to 1.16.1. Ludovic Courtès 2018-03-09gnu: 'autoconf-wrapper' is no longer a procedure....Fixes <https://bugs.gnu.org/30710>. Suggested by Björn Höfling <bjoern.hoefling@bjoernhoefling.de>. * gnu/packages/autotools.scm (autoconf-wrapper): Rename to... (make-autoconf-wrapper): ... this. Add 'properties' field. (autoconf-wrapper): New variable. * gnu/packages/gnunet.scm (guile-gnunet): Adjust accordingly. * gnu/packages/gnupg.scm (signing-party): Likewise. * gnu/packages/guile.scm (guile-ics, guile-bash): Likewise. * gnu/packages/libevent.scm (libuv): Likewise. * gnu/packages/logging.scm (glog): Likewise. * gnu/packages/mail.scm (libetpan): Likewise. * gnu/packages/mate.scm (mate-icon-theme-faenza) (mate-screensaver): Likewise. * gnu/packages/package-management.scm (guix): Likewise. * gnu/packages/sawfish.scm (librep): Likewise. * gnu/packages/video.scm (motion): Likewise. * gnu/packages/zile.scm (zile-on-guile): Likewise. Ludovic Courtès 2018-02-26gnu: automake: Add 1.16....* gnu/packages/autotools.scm (automake-1.16): New variable. Ludovic Courtès 2018-02-26gnu: automake: Update to 1.16....* gnu/packages/autotools.scm (automake): Update to 1.16. [arguments]: Fix indentation and end all phases with #t. Tobias Geerinckx-Rice 2018-01-23Merge branch 'master' into core-updatesMark H Weaver 2018-01-23gnu: Add 'pyconfigure'....* gnu/packages/autotools.scm (pyconfigure): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Mathieu Lirzin 2017-11-19Merge branch 'master' into core-updatesMarius Bakke 2017-11-19Update email address for ng0.ng0 2017-10-19gnu: libltdl: Use 'modify-phases'....* gnu/packages/autotools.scm (libltdl)[arguments]: Use 'modify-phases' syntax. Efraim Flashner 2017-10-19gnu: automake: Update to 1.15.1....* gnu/packages/autotools.scm (automake): Update to 1.15.1. [source]: Remove patches. (automake/latest): Remove package. * gnu/packages/patches/automake-regexp-syntax.patch, gnu/packages/patches/automake-test-gzip-warning.patch: Remove files. * gnu/local.mk (dist_patch_DATA): Remove them. Efraim Flashner 2017-10-19gnu: automake: Use 'modify-phases'....* gnu/packages/autotools.scm (automake)[arguments]: Use 'modify-phases' syntax. Efraim Flashner 2017-10-02gnu: autoconf-archive: Update to 2017.09.28....* gnu/packages/autotools.scm (autoconf-archive): Update to 2017.09.28. Efraim Flashner 2017-07-30gnu: automake: Add 1.15.1....* gnu/packages/autotools.scm (automake/latest): New variable. Ludovic Courtès