;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès ;;; ;;; 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 . (define-module (test-records) #:use-module (srfi srfi-1) #:use-module (srfi srfi-64) #:use-module (ice-9 match) #:use-module (ice-9 regex) #:use-module (guix records)) (define (test-module) ;; A module in which t
aboutsummaryrefslogtreecommitdiff
path: root/THANKS
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2019-08-28 11:11:21 +0300
committerEfraim Flashner <efraim@flashner.co.il>2019-08-28 13:29:47 +0300
commit3ecbda71aab0bba7e6b6d7e5cd7897d10a51183c (patch)
treee1e39b02aadc23f8fdecddf2a7b19d6b60158185 /THANKS
parent2f57fa10f4ee09c74e57fd968d24dc657fa45be2 (diff)
downloadguix-3ecbda71aab0bba7e6b6d7e5cd7897d10a51183c.tar.gz
guix-3ecbda71aab0bba7e6b6d7e5cd7897d10a51183c.zip
gnu: enlightenment: Don't use NAME in source URI.
* gnu/packages/enlightenment.scm (enlightenment)[source]: Hard-code NAME.
Diffstat (limited to 'THANKS')
0 files changed, 0 insertions, 0 deletions
(x (foo (bar (begin (set! calls (1+ calls)) 3))))) (and (zero? calls) (equal? (foo-bar x) 3) (= 1 calls) (equal? (foo-bar x) 3) (= 1 calls) (equal? (foo-bar x) 3) (= 1 calls))))) (test-assert "define-record-type* & delayed & default" (let ((mark #f)) (define-record-type* foo make-foo foo? (bar foo-bar (delayed) (default mark))) (let ((x (foo))) (set! mark 42) (and (equal? (foo-bar x) 42) (begin (set! mark 7) (equal? (foo-bar x) 42)))))) (test-assert "define-record-type* & delayed & inherited" (begin (define-record-type* foo make-foo foo? (bar foo-bar (delayed)) (baz foo-baz (delayed))) (let* ((m 1) (n #f) (x (foo (bar m) (baz n))) (y (foo (inherit x) (baz 'b)))) (set! n 'a) (and (equal? (foo-bar x) 1) (eq? (foo-baz x) 'a) (begin (set! m 777) (equal? (foo-bar y) 1)) ;promise was already forced (eq? (foo-baz y) 'b))))) (test-assert "define-record-type* & wrong field specifier" (let ((exp '(begin (define-record-type* foo make-foo foo? (bar foo-bar (default 42)) (baz foo-baz)) (foo (baz 1 2 3 4 5)))) ;syntax error (loc (current-source-location))) ;keep this alignment! (catch 'syntax-error (lambda () (eval exp (test-module)) #f) (lambda (key proc message location form . args) (and (eq? proc 'foo) (string-match "invalid field" message) (equal? form '(baz 1 2 3 4 5)) ;; Make sure the location is that of the field specifier. ;; See . (lset= equal? (pk 'expected-loc `((line . ,(- (assq-ref loc 'line) 1)) ,@(alist-delete 'line loc))) (pk 'actual-loc location))))))) (test-assert "define-record-type* & missing initializers" (catch 'syntax-error (lambda () (eval '(begin (define-record-type* foo make-foo foo? (bar foo-bar (default 42)) (baz foo-baz)) (foo)) (test-module)) #f) (lambda (key proc message location form . args) (and (eq? proc 'foo) (string-match "missing .*initialize.*baz" message) (equal? form '(foo)))))) (test-assert "define-record-type* & extra initializers" (catch 'syntax-error (lambda () (eval '(begin (define-record-type* foo make-foo foo? (bar foo-bar (default 42))) (foo (baz 'what?))) (test-module)) #f) (lambda (key proc message location form . args) (and (string-match "extra.*initializer.*baz" message) (eq? proc 'foo))))) (test-assert "define-record-type* & inherit & extra initializers" (catch 'syntax-error (lambda () (eval '(begin (define-record-type* foo make-foo foo? (bar foo-bar (default 42))) (foo (inherit (foo)) (baz 'what?))) (test-module)) #f) (lambda (key proc message location form . args) (and (string-match "extra.*initializer.*baz" message) (eq? proc 'foo))))) (test-equal "recutils->alist" '((("Name" . "foo") ("Version" . "0.1") ("Synopsis" . "foo bar") ("Something_else" . "chbouib")) (("Name" . "bar") ("Version" . "1.5"))) (let ((p (open-input-string " # Comment following an empty line, and # preceding a couple of empty lines, all of # which should be silently consumed. Name: foo Version: 0.1 # Comment right in the middle, # spanning two lines. Synopsis: foo bar Something_else: chbouib # Comment right before. Name: bar Version: 1.5 # Comment at the end."))) (list (recutils->alist p) (recutils->alist p)))) (test-equal "recutils->alist with + lines" '(("Name" . "foo") ("Description" . "1st line,\n2nd line,\n 3rd line with extra space,\n4th line without space.")) (recutils->alist (open-input-string " Name: foo Description: 1st line, + 2nd line, + 3rd line with extra space, +4th line without space."))) (test-equal "alist->record" '((1 2) b c) (alist->record '(("a" . 1) ("b" . b) ("c" . c) ("a" . 2)) list '("a" "b" "c") '("a"))) (test-end)