;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2014 Eric Bavier ;;; ;;; 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-combinators) #:use-module (guix combinators) #:use-module (srfi srfi-1) #:use-module (srfi srfi-64) #:use-module (ice-9 vlist)) (test-begin "combinators") (test-equal "fold2, 1 list" (list (reverse (iota 5)) (map - (reverse (iota 5)))) (call-with-values (lambda () (fold2 (lambda (i r1 r2) (values (cons i r1) (cons (- i) r2))) '() '() (iota 5))) list)) (test-equal "fold2, 2 lists" (list (reverse '((a . 0) (b . 1) (c . 2) (d . 3))) (reverse '((a . 0) (b . -1) (c . -2) (d . -3)))) (call-with-values (lambda () (fold2 (lambda (k v r1 r2) (values (alist-cons k v r1) (alist-cons k (- v) r2))) '() '() '(a b c d) '(0 1 2 3))) list)) (let* ((tree (alist->vhash '((0 2 3) (1 3 4) (2) (3 5 6) (4 6) (5) (6)) hashq)) (add-one (lambda (_ r) (1+ r))) (tree-lookup (lambda (n) (cdr (vhash-assq n tree))))) (test-equal "fold-tree, single root" 5 (fold-tree add-one 0 tree-lookup '(0))) (test-equal "fold-tree, two roots" 7 (fold-tree add-one 0 tree-lookup '(0 1))) (test-equal "fold-tree, sum" 16 (fold-tree + 0 tree-lookup '(0))) (test-equal "fold-tree, internal" 18 (fold-tree + 0 tree-lookup '(3 4))) (test-equal "fold-tree, cons" '(1 3 4 5 6) (sort (fold-tree cons '() tree-lookup '(1)) <)) (test-equal "fold-tree, overlapping paths" '(1 3 4 5 6) (sort (fold-tree cons '() tree-lookup '(1 4)) <)) (test-equal "fold-tree, cons, two roots" '(0 2 3 4 5 6) (sort (fold-tree cons '() tree-lookup '(0 4)) <)) (test-equal "fold-tree-leaves, single root" 2 (fold-tree-leaves add-one 0 tree-lookup '(1))) (test-equal "fold-tree-leaves, single root, sum" 11 (fold-tree-leaves + 0 tree-lookup '(1))) (test-equal "fold-tree-leaves, two roots" 3 (fold-tree-leaves add-one 0 tree-lookup '(0 1))) (test-equal "fold-tree-leaves, two roots, sum" 13 (fold-tree-leaves + 0 tree-lookup '(0 1)))) (test-end) ) (start-swapping, stop-swapping, run-installer-steps): Fix typo in docstring. Tobias Geerinckx-Rice 2020-04-19installer: connman: Fix Wifi connection....Issue reported by SergioBG here: https://lists.gnu.org/archive/html/bug-guix/2020-04/msg00432.html. Due to default buffering mode, the installer was reading from the pipe without having actually written a command before. * gnu/installer/connman.scm (connman-connect-with-auth): Set pipe buffering mode to 'line. Mathieu Othacehe 2019-05-29installer: Fix wifi menu crash with hidden SSIDs....This fixes https://issues.guix.gnu.org/issue/35622. * gnu/installer/connman.scm (<service>): Mention that name may be false. * gnu/installer/newt/wifi.scm (wifi-services): Filter out wifi services without name. Co-authored by: Pierre Neidhardt <mail@ambrevar.xyz> Mathieu Othacehe 2019-02-18gnu: Fix some typos in the installer....* gnu/installer/connman.scm (connman-connect-with-auth): Fix typo in documentation. * gnu/installer/newt/keymap.scm (sort-variants): Likewise. * gnu/installer/newt/page.scm (run-listbox-selection-page): Likewise. * gnu/installer/parted.scm (mkpart): Likewise. * gnu/installer/newt/utils.scm (destroy-form-and-pop): Likewise. * gnu/installer/newt/wifi.scm (run-unknown-error-page): Fix typo. (wifi-listbox-heigth): Rename to… (wifi-listbox-height): …this, and adjust caller. * gnu/installer/timezone.scm (locate-childrens): Rename to… (locate-children): …this. Adjust all callers. Tobias Geerinckx-Rice 2019-01-17gnu: Add graphical installer support....* configure.ac: Require that guile-newt is available. * gnu/installer.scm: New file. * gnu/installer/aux-files/logo.txt: New file. * gnu/installer/build-installer.scm: New file. * gnu/installer/connman.scm: New file. * gnu/installer/keymap.scm: New file. * gnu/installer/locale.scm: New file. * gnu/installer/newt.scm: New file. * gnu/installer/newt/ethernet.scm: New file. * gnu/installer/newt/hostname.scm: New file. * gnu/installer/newt/keymap.scm: New file. * gnu/installer/newt/locale.scm: New file. * gnu/installer/newt/menu.scm: New file. * gnu/installer/newt/network.scm: New file. * gnu/installer/newt/page.scm: New file. * gnu/installer/newt/timezone.scm: New file. * gnu/installer/newt/user.scm: New file. * gnu/installer/newt/utils.scm: New file. * gnu/installer/newt/welcome.scm: New file. * gnu/installer/newt/wifi.scm: New file. * gnu/installer/steps.scm: New file. * gnu/installer/timezone.scm: New file. * gnu/installer/utils.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add previous files. * gnu/system.scm: Export %root-account. * gnu/system/install.scm (%installation-services): Use kmscon instead of linux VT for all tty. (installation-os)[users]: Add the graphical installer as shell of the root account. [packages]: Add font related packages. * po/guix/POTFILES.in: Add installer files. Mathieu Othacehe