;;; guix-help-vars.el --- Variables related to --help output ;; Copyright © 2015 Alex Kost ;; 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 this program. If not, see . ;;; Commentary: ;; This file provides regular expressions to parse various "guix ;; ... --help" outputs and lists of non-receivable items (system types, ;; hash formats, etc.). ;;; Code: ;;; Regexps for parsing "guix ..." outputs (defvar guix-help-parse-option-regexp (rx bol " " (zero-or-one (group "-" (not (any "- "))) ",") (one-or-more " ") (group "--" (one-or-more (or wordchar "-"))) (group (zero-or-one "[") (zero-or-one "=")) (zero-or-more (not space)) (one-or-more space) (group (one-or-more any))) "Common regexp used to find command options.") (defvar guix-help-parse-command-regexp (rx bol " " (group wordchar (one-or-more (or wordchar "-")))) "Regexp used to find guix commands. 'Command' means any option not prefixed with '-'. For example, guix subcommand, system action, importer, etc.") (defvar guix-help-parse-long-option-regexp (rx (or " " ", ") (group "--" (one-or-more (or wordchar "-")) (zero-or-one "="))) "Regexp used to find long options.") (defvar guix-help-parse-short-option-regexp (rx bol (one-or-more blank) "-" (group (not (any "- ")))) "Regexp used to find short options.") (defvar guix-help-parse-package-regexp (rx bol (group (one-or-more (not blank)))) "Regexp used to find names of the packages.") (defvar guix-help-parse-list-regexp (rx bol (zero-or-more blank) "- " (group (one-or-more (or wordchar "-")))) "Regexp used to find various lists (lint checkers, graph types).") (defvar guix-help-parse-regexp-group 1 "Parenthesized expression of regexps used to find commands and options.") ;;; Non-receivable lists of system types, hash formats, etc. (defvar guix-help-system-types '("x86_64-linux" "i686-linux" "armhf-linux" "mips64el-linux") "List of supported systems.") (defvar guix-help-source-types '("package" "all" "transitive") "List of supported sources types.") (defvar guix-help-hash-formats '("nix-base32" "base32" "base16" "hex" "hexadecimal") "List of supported hash formats.") (defvar guix-help-refresh-subsets '("core" "non-core") "List of supported 'refresh' subsets.") (defvar guix-help-key-policies '("interactive" "always" "never") "List of supported key download policies.") (defvar guix-help-verify-options '("repair" "contents") "List of supported 'verify' options") (defvar guix-help-elpa-archives '("gnu" "melpa" "melpa-stable") "List of supported ELPA archives.") (provide 'guix-help-vars) ;;; guix-help-vars.el ends here tests: Fix texlive test by sorting locations.Ricardo Wurmus * tests/texlive.scm ("texlive->guix-package"): Correct order of locations. 2021-11-18tests: Replace texlive importer tests.Ricardo Wurmus * tests/texlive.scm (xml, sxml): Remove variables. ("fetch-sxml: returns SXML for valid XML", "sxml->package"): Remove tests. ("texlive->guix-package"): Add new test. 2021-03-06tests: do not hard code HTTP portsMaxime Devos Previously, test cases could fail if some process was listening at a hard-coded port. This patch eliminates most of these potential failures, by automatically assigning an unbound port. This should allow for building multiple guix trees in parallel outside a build container, though this is currently untested. The test "home-page: Connection refused" in tests/lint.scm still hardcodes port 9999, however. * guix/tests/http.scm (http-server-can-listen?): remove now unused procedure. (%http-server-port): default to port 0, meaning the OS will automatically choose a port. (open-http-server-socket): remove the false statement claiming this procedure is exported and also return the allocated port number. (%local-url): raise an error if the port is obviously unbound. (call-with-http-server): set %http-server-port to the allocated port while the thunk is called. * tests/derivations.scm: adjust test cases to use automatically assign a port. As there is no risk of a port conflict now, do not make any tests conditional upon 'http-server-can-listen?' anymore. * tests/elpa.scm: likewise. * tests/lint.scm: likewise, and add a TODO comment about a port that is still hard-coded. * tests/texlive.scm: likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org>