~ruther/guix-local

ref: d032bb7464e90e6cea07111f1845ac441d7bc318 guix-local/tests d---------
831bc146 — David Thompson 10 years ago
build: container: Add #:host-uids argument to call-with-container.

It's not always possible to map 65536 uids when creating a container as the
root user within another user namespace.  This is true when building Guix
within the build daemon's container.  By using a uid range of 1 by default,
even as the root user, the tests now pass.

* gnu/build/linux-container.scm (initialize-user-namespace, run-container):
  Add 'host-uids' argument.
  (call-with-container): Add #:host-uids keyword argument.
* tests/containers.scm ("container-excursion"): Update 'run-container' call.
e7f5691d — Ludovic Courtès 10 years ago
syscalls: Add 'network-interfaces', which wraps libc's 'getifaddrs'.

Based on discussions with Rohan Prinja <rohan.prinja@gmail.com>.

* guix/build/syscalls.scm (<interface>): New record type.
  (write-interface, values->interface, unfold-interface-list,
  network-interfaces, free-ifaddrs): New procedures.
  (ifaddrs): New C struct.
  (%struct-ifaddrs-type, %sizeof-ifaddrs): New macros.
* tests/syscalls.scm ("network-interfaces returns one or more interfaces",
  "network-interfaces returns \"lo\""): New tests.
b89e7405 — Ludovic Courtès 10 years ago
syscalls: Rename 'network-interfaces' and 'all-network-interfaces'.

* guix/build/syscalls.scm (network-interfaces): Rename to...
  (network-interface-names): ... this.
  (all-network-interfaces): Rename to...
  (all-network-interface-names): ... this.
* gnu/services/networking.scm (dhcp-client-service): Adjust accordingly.
* tests/syscalls.scm ("all-network-interfaces"): Rename to...
  ("all-network-interface-names"): ... this, and adjust accordingly.
  ("network-interfaces"): Rename to...
  ("network-interface-names"): ... this, and adjust accordingly.
8bff3d1e — David Thompson 10 years ago
tests: Skip container tests if namespaces are not available.

* tests/containers.scm: Skip all tests if user namespaces do not exist.
72cd8ec0 — Ludovic Courtès 10 years ago
tests: Make #:references-graphs gexp test more tolerant.

* tests/gexp.scm ("gexp->derivation #:references-graphs"): Use 'lset=' instead
  of 'equal?' since the order in which references are listed in not
  guaranteed.
e1705718 — Mark H Weaver 10 years ago
Merge branch 'core-updates'
1b4e48d4 — Mark H Weaver 10 years ago
Merge branch 'master' into core-updates
9cced526 — Alex Kost 10 years ago
tests: Fix 'publish' test for nix-base32 format.

This is a followup to commit 3b307162e892e0050836434b12e14376758419cc.

* tests/publish.scm ("/*.narinfo"): Use 'bytevector->nix-base32-string',
  not 'bytevector->base32-string'.
1cab9e81 — Ludovic Courtès 10 years ago
file-systems: 'uuid' raises a syntax error for invalid UUIDs.

* gnu/system/file-systems.scm (uuid): Call 'syntax-violation' when
  'string->uuid' returns #f.
* tests/file-systems.scm ("uuid, syntax error"): New test.
35995769 — Mark H Weaver 10 years ago
Merge branch 'master' into core-updates
661a1d79 — Ludovic Courtès 10 years ago
file-systems: Allow users to specify file system UUIDs as strings.

Fixes <http://bugs.gnu.org/19778>.
Reported by Mark H Weaver <mhw@netris.org>.

* gnu/system/file-systems.scm (%uuid-rx): New variable.
  (string->uuid): New procedure.
  (uuid): New macro.
* tests/file-systems.scm: New file.
* Makefile.am (SCM_TESTS): Add it.
* doc/guix.texi (File Systems): Give an example of UUID.
24f5aaaf — Ludovic Courtès 10 years ago
substitute: Honor "substitute-urls" option passed by "untrusted" clients.

* guix/scripts/substitute.scm (or*): New macro.
  (%cache-url): Honor "untrusted-substitute-urls".
* guix/tests.scm (%test-substitute-urls): New variable.
  (open-connection-for-tests): Use it.
* tests/derivations.scm ("derivation-prerequisites-to-build and substitutes",
  "derivation-prerequisites-to-build and substitutes, non-substitutable
  build", "derivation-prerequisites-to-build and substitutes, local build"):
  Pass it to 'set-build-options'.
* tests/guix-daemon.sh: Likewise.
* tests/store.scm ("substitute query, alternating URLs"): New test.
  ("substitute query", "substitute", "substitute + build-things with output
  path", "substitute, corrupt output hash", "substitute --fallback"): Pass
  #:substitute-urls to 'set-build-options'.
895d1eda — Ludovic Courtès 10 years ago
substitute: Store cached narinfo in cache-specific sub-directories.

This ensures that switching between different substitute servers doesn't lead
to a polluted narinfo cache.

* guix/scripts/substitute.scm (narinfo-cache-file): Add 'cache-url'
  parameter.  Add the base32 of CACHE-URL as a sub-directory under
  %NARINFO-CACHE-DIRECTORY.  Update callers.
  (cached-narinfo): Likewise.  Call 'mkdir-p' on the dirname of the cache
  file.  Update callers.
  (remove-expired-cached-narinfos): Add 'directory' parameter and use it
  instead of %NARINFO-CACHE-DIRECTORY.
  (narinfo-cache-directories): New procedure.
  (maybe-remove-expired-cached-narinfo): Call 'remove-expired-cached-narinfos'
  for each item returned by 'narinfo-cache-directories'.
161094c8 — Ludovic Courtès 11 years ago
packages: Rewrite 'transitive-inputs' to be linear and remove duplicates.

There were two issues:

  1. Use of 'delete-duplicates', which is quadratic, was a serious problem for
     closures with lots of propagated inputs, such as that of the 'hydra'
     package (several minutes for 'guix build hydra -n'!).

  2. The 'delete-duplicates' call essentially had no effect since duplicate
     inputs typically had a different label and were thus kept.  For
     instance, (bag-transitive-inputs (package->bag inkscape)) would return
     216 items whereas (delete-duplicates (map cdr THAT)) contains only 67
     items.

     The new implementation returns 67 items in this case.  For 'hydra', we're
     down from 42211 items to 361, and roughly 13s for 'guix build hydra'.

* guix/packages.scm (transitive-inputs): Rewrite as a breadth-first
  traversal.  Remove duplicate propagated inputs.
* tests/packages.scm ("package-transitive-inputs", "package->bag, propagated
  inputs"): Adjust to use simple labels for propagated inputs, without "/".
  ("package-transitive-inputs, no duplicates"): New test.
686784d0 — Ludovic Courtès 11 years ago
tests: Adjust tests for new bootstrap Guile.

This is a followup to commit 5d6792f ("gnu: bootstrap: Create a wrapper for
guile to set the system load path.")

* tests/size.scm ("store-profile"): Expect profile of 'bash' bootstrap binary.
* tests/gexp.scm ("gexp->derivation #:references-graphs"): Expect GUILE-DRV to
  depend on 'bash' bootstrap binary.
b62a3ebc — Ludovic Courtès 11 years ago
tests: Skip namespace-related tests when that feature is missing.

* tests/syscalls.scm ("clone", "setns", "pivot-root"): Skip
  unless (user-namespace (getpid)) exists.
c1f6a0c2 — David Thompson 11 years ago
gnu: build: Add Linux container module.

* gnu/build/linux-container.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* .dir-locals.el: Add Scheme indent rules for 'call-with-container', and
  'container-excursion'.
* tests/containers.scm: New file.
* Makefile.am (SCM_TESTS): Add it.
80ea7526 — Ludovic Courtès 11 years ago
tests: Use the right identifier in tests/elpa.scm.

* tests/elpa.scm: Change 'nil->empty' to 'ensure-list' in the whole file.
7f74a931 — Federico Beffa 11 years ago
import: Add 'elpa' importer.

* guix/import/elpa.scm: New file.
* guix/scripts/import.scm: Add "elpa" to 'importers'.
* guix/scripts/import/elpa.scm: New file.
* Makefile.am (MODULES): Add 'guix/import/elpa.scm' and
  'guix/scripts/import/elpa.scm'.
  (SCM_TESTS): Add 'tests/elpa.scm'.
* doc/guix.texi (Invoking guix import): Document it.
* tests/elpa.scm: New file.
* po/guix/POTFILES.in: Add 'guix/scripts/import/elpa.scm'.
df3ce5c1 — David Thompson 11 years ago
build: syscalls: Add pivot-root.

* guix/build/syscalls.scm (pivot-root): New procedure.
* tests/syscalls.scm ("pivot-root"): New test.
Next