Guest User

Untitled

a guest
Oct 16th, 2017
892
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. =================================
  2. GNU Guix : ./test-suite.log
  3. =================================
  4.  
  5. # TOTAL: 739
  6. # PASS: 706
  7. # SKIP: 32
  8. # XFAIL: 0
  9. # FAIL: 1
  10. # XPASS: 0
  11. # ERROR: 0
  12.  
  13. .. contents:: :depth: 2
  14.  
  15. SKIP: tests/base32
  16. ==================
  17.  
  18. sh: nix-hash: command not found
  19. test-name: bytevector->base32-string
  20. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/base32.scm:48
  21. source:
  22. + (test-assert
  23. + "bytevector->base32-string"
  24. + (fold (lambda (bv expected result)
  25. + (and result
  26. + (string=?
  27. + (bytevector->base32-string bv)
  28. + expected)))
  29. + #t
  30. + (map string->utf8
  31. + '("" "f" "fo" "foo" "foob" "fooba" "foobar"))
  32. + '(""
  33. + "my"
  34. + "mzxq"
  35. + "mzxw6"
  36. + "mzxw6yq"
  37. + "mzxw6ytb"
  38. + "mzxw6ytboi")))
  39. actual-value: #t
  40. result: PASS
  41.  
  42. test-name: base32-string->bytevector
  43. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/base32.scm:65
  44. source:
  45. + (test-assert
  46. + "base32-string->bytevector"
  47. + (every (lambda (bv)
  48. + (equal?
  49. + (base32-string->bytevector
  50. + (bytevector->base32-string bv))
  51. + bv))
  52. + (map string->utf8
  53. + '("" "f" "fo" "foo" "foob" "fooba" "foobar"))))
  54. actual-value: #t
  55. result: PASS
  56.  
  57. test-name: nix-base32-string->bytevector
  58. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/base32.scm:73
  59. source:
  60. + (test-assert
  61. + "nix-base32-string->bytevector"
  62. + (every (lambda (bv)
  63. + (equal?
  64. + (nix-base32-string->bytevector
  65. + (bytevector->nix-base32-string bv))
  66. + bv))
  67. + (map string->utf8
  68. + '("" "f" "fo" "foo" "foob" "fooba" "foobar"))))
  69. actual-value: #t
  70. result: PASS
  71.  
  72. test-name: &invalid-base32-character
  73. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/base32.scm:81
  74. source:
  75. + (test-equal
  76. + "&invalid-base32-character"
  77. + #\e
  78. + (guard (c ((invalid-base32-character? c)
  79. + (invalid-base32-character-value c)))
  80. + (nix-base32-string->bytevector
  81. + (string-append (make-string 51 #\a) "e"))))
  82. expected-value: #\e
  83. actual-value: #\e
  84. result: PASS
  85.  
  86. test-name: sha256 & bytevector->nix-base32-string
  87. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/base32.scm:92
  88. source:
  89. + (test-assert
  90. + "sha256 & bytevector->nix-base32-string"
  91. + (let ((file (search-path %load-path "tests/test.drv")))
  92. + (equal?
  93. + (bytevector->nix-base32-string
  94. + (sha256
  95. + (call-with-input-file file get-bytevector-all)))
  96. + (let* ((c (format
  97. + #f
  98. + "~a --type sha256 --base32 --flat \"~a\""
  99. + %nix-hash
  100. + file))
  101. + (p (open-input-pipe c))
  102. + (l (read-line p)))
  103. + (close-pipe p)
  104. + l))))
  105. result: SKIP
  106.  
  107.  
  108. SKIP: tests/cpio
  109. ================
  110.  
  111. random seed for tests: 1508164768
  112. test-name: file->cpio-header + write-cpio-header + read-cpio-header
  113. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/cpio.scm:37
  114. source:
  115. + (test-assert
  116. + "file->cpio-header + write-cpio-header + read-cpio-header"
  117. + (let* ((file (search-path %load-path "guix.scm"))
  118. + (header (file->cpio-header file)))
  119. + (call-with-values
  120. + (lambda () (open-bytevector-output-port))
  121. + (lambda (port get-bv)
  122. + (write-cpio-header header port)
  123. + (let ((port (open-bytevector-input-port (get-bv))))
  124. + (equal? header (read-cpio-header port)))))))
  125. actual-value: #t
  126. result: PASS
  127.  
  128. test-name: bit-identical to GNU cpio's output
  129. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/cpio.scm:49
  130. source:
  131. + (test-assert
  132. + "bit-identical to GNU cpio's output"
  133. + (call-with-temporary-output-file
  134. + (lambda (link _)
  135. + (delete-file link)
  136. + (symlink "chbouib" link)
  137. + (let ((files (cons* "/"
  138. + (canonicalize-path
  139. + (dirname (search-path %load-path "guix.scm")))
  140. + link
  141. + (map (compose
  142. + canonicalize-path
  143. + (cut search-path %load-path <>))
  144. + '("guix.scm"
  145. + "guix/build/syscalls.scm"
  146. + "guix/packages.scm")))))
  147. + (call-with-temporary-output-file
  148. + (lambda (ref-file _)
  149. + (let ((pipe (open-pipe*
  150. + OPEN_WRITE
  151. + %cpio-program
  152. + "-o"
  153. + "-O"
  154. + ref-file
  155. + "-H"
  156. + "newc"
  157. + "--null")))
  158. + (for-each
  159. + (lambda (file) (format pipe "~a\x00" file))
  160. + files)
  161. + (and (zero? (close-pipe pipe))
  162. + (call-with-temporary-output-file
  163. + (lambda (file port)
  164. + (write-cpio-archive files port)
  165. + (close-port port)
  166. + (or (file=? ref-file file)
  167. + (throw 'cpio-archives-differ
  168. + files
  169. + ref-file
  170. + file
  171. + (stat:size (stat ref-file))
  172. + (stat:size (stat file))))))))))))))
  173. result: SKIP
  174.  
  175.  
  176. SKIP: tests/builders
  177. ====================
  178.  
  179. random seed for tests: 1508165038
  180. test-name: url-fetch
  181. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/builders.scm:66
  182. source:
  183. + (test-assert
  184. + "url-fetch"
  185. + (let* ((url '("http://ftp.gnu.org/gnu/hello/hello-2.8.tar.gz"
  186. + "ftp://ftp.gnu.org/gnu/hello/hello-2.8.tar.gz"))
  187. + (hash (nix-base32-string->bytevector
  188. + "0wqd8sjmxfskrflaxywc7gqw7sfawrfvdxd9skxawzfgyy0pzdz6"))
  189. + (drv (url-fetch*
  190. + %store
  191. + url
  192. + 'sha256
  193. + hash
  194. + #:guile
  195. + %bootstrap-guile))
  196. + (out-path (derivation->output-path drv)))
  197. + (and (build-derivations %store (list drv))
  198. + (file-exists? out-path)
  199. + (valid-path? %store out-path))))
  200. result: SKIP
  201.  
  202. test-name: url-fetch, file
  203. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/builders.scm:78
  204. source:
  205. + (test-assert
  206. + "url-fetch, file"
  207. + (let* ((file (search-path %load-path "guix.scm"))
  208. + (hash (call-with-input-file file port-sha256))
  209. + (out (url-fetch* %store file 'sha256 hash)))
  210. + (and (file-exists? out) (valid-path? %store out))))
  211. actual-value: #t
  212. result: PASS
  213.  
  214. test-name: url-fetch, file URI
  215. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/builders.scm:85
  216. source:
  217. + (test-assert
  218. + "url-fetch, file URI"
  219. + (let* ((file (search-path %load-path "guix.scm"))
  220. + (hash (call-with-input-file file port-sha256))
  221. + (out (url-fetch*
  222. + %store
  223. + (string-append
  224. + "file://"
  225. + (canonicalize-path file))
  226. + 'sha256
  227. + hash)))
  228. + (and (file-exists? out) (valid-path? %store out))))
  229. actual-value: #t
  230. result: PASS
  231.  
  232. test-name: gnu-build-system
  233. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/builders.scm:94
  234. source:
  235. + (test-assert
  236. + "gnu-build-system"
  237. + (build-system? gnu-build-system))
  238. actual-value: #t
  239. result: PASS
  240.  
  241. test-name: gnu-build
  242. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/builders.scm:99
  243. source:
  244. + (test-assert
  245. + "gnu-build"
  246. + (let* ((url "http://ftp.gnu.org/gnu/hello/hello-2.8.tar.gz")
  247. + (hash (nix-base32-string->bytevector
  248. + "0wqd8sjmxfskrflaxywc7gqw7sfawrfvdxd9skxawzfgyy0pzdz6"))
  249. + (tarball
  250. + (url-fetch*
  251. + %store
  252. + url
  253. + 'sha256
  254. + hash
  255. + #:guile
  256. + %bootstrap-guile))
  257. + (build (gnu-build
  258. + %store
  259. + "hello-2.8"
  260. + `(("source" ,tarball) ,@%bootstrap-inputs)
  261. + #:guile
  262. + %bootstrap-guile
  263. + #:search-paths
  264. + %bootstrap-search-paths))
  265. + (out (derivation->output-path build)))
  266. + (and (build-derivations
  267. + %store
  268. + (list (pk 'hello-drv build)))
  269. + (valid-path? %store out)
  270. + (file-exists? (string-append out "/bin/hello")))))
  271. result: SKIP
  272.  
  273.  
  274. SKIP: tests/derivations
  275. =======================
  276.  
  277. random seed for tests: 1508165004
  278. @ build-started /tmp/guix-tests/store/vcj9833sk577wd7qxzvmgqcfbf9b4sjz-foo.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/vc//j9833sk577wd7qxzvmgqcfbf9b4sjz-foo.drv.bz2
  279. @ build-succeeded /tmp/guix-tests/store/vcj9833sk577wd7qxzvmgqcfbf9b4sjz-foo.drv -
  280. test-name: parse & export
  281. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:87
  282. source:
  283. + (test-assert
  284. + "parse & export"
  285. + (let* ((f (search-path %load-path "tests/test.drv"))
  286. + (b1 (call-with-input-file f get-bytevector-all))
  287. + (d1 (read-derivation (open-bytevector-input-port b1)))
  288. + (b2 (call-with-bytevector-output-port
  289. + (cut write-derivation d1 <>)))
  290. + (d2 (read-derivation (open-bytevector-input-port b2))))
  291. + (and (equal? b1 b2) (equal? d1 d2))))
  292. actual-value: #t
  293. result: PASS
  294.  
  295. test-name: add-to-store, flat
  296. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:98
  297. source:
  298. + (test-assert
  299. + "add-to-store, flat"
  300. + (let* ((file (search-path
  301. + %load-path
  302. + "language/tree-il/spec.scm"))
  303. + (drv (add-to-store
  304. + %store
  305. + "flat-test"
  306. + #f
  307. + "sha256"
  308. + file)))
  309. + (and (eq? 'regular (stat:type (stat drv)))
  310. + (valid-path? %store drv)
  311. + (equal?
  312. + (call-with-input-file file get-bytevector-all)
  313. + (call-with-input-file drv get-bytevector-all)))))
  314. actual-value: #t
  315. result: PASS
  316.  
  317. test-name: add-to-store, recursive
  318. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:106
  319. source:
  320. + (test-assert
  321. + "add-to-store, recursive"
  322. + (let* ((dir (dirname
  323. + (search-path
  324. + %load-path
  325. + "language/tree-il/spec.scm")))
  326. + (drv (add-to-store
  327. + %store
  328. + "dir-tree-test"
  329. + #t
  330. + "sha256"
  331. + dir)))
  332. + (and (eq? 'directory (stat:type (stat drv)))
  333. + (valid-path? %store drv)
  334. + (equal?
  335. + (directory-contents dir)
  336. + (directory-contents drv)))))
  337. actual-value: #t
  338. result: PASS
  339.  
  340. test-name: derivation with no inputs
  341. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:114
  342. source:
  343. + (test-assert
  344. + "derivation with no inputs"
  345. + (let* ((builder
  346. + (add-text-to-store
  347. + %store
  348. + "my-builder.sh"
  349. + "echo hello, world\n"
  350. + '()))
  351. + (drv (derivation
  352. + %store
  353. + "foo"
  354. + %bash
  355. + `("-e" ,builder)
  356. + #:env-vars
  357. + '(("HOME" . "/homeless")))))
  358. + (and (store-path? (derivation-file-name drv))
  359. + (valid-path? %store (derivation-file-name drv)))))
  360. actual-value: #t
  361. result: PASS
  362.  
  363. test-name: build derivation with 1 source
  364. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:124
  365. source:
  366. + (test-assert
  367. + "build derivation with 1 source"
  368. + (let* ((builder
  369. + (add-text-to-store
  370. + %store
  371. + "my-builder.sh"
  372. + "echo hello, world > \"$out\"\n"
  373. + '()))
  374. + (drv (derivation
  375. + %store
  376. + "foo"
  377. + %bash
  378. + `(,builder)
  379. + #:env-vars
  380. + '(("HOME" . "/homeless")
  381. + ("zzz" . "Z!")
  382. + ("AAA" . "A!"))
  383. + #:inputs
  384. + `((,%bash) (,builder))))
  385. + (succeeded?
  386. + (build-derivations %store (list drv))))
  387. + (and succeeded?
  388. + (let ((path (derivation->output-path drv)))
  389. + (and (valid-path? %store path)
  390. + (string=?
  391. + (call-with-input-file path read-line)
  392. + "hello, world"))))))
  393. actual-value: #t
  394. result: PASS
  395.  
  396. test-name: derivation with local file as input
  397. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:142
  398. source:
  399. + (test-assert
  400. + "derivation with local file as input"
  401. + (let* ((builder
  402. + (add-text-to-store
  403. + %store
  404. + "my-builder.sh"
  405. + @ build-started /tmp/guix-tests/store/fjv236z7l209d8zz9z8jxmnw3dfi8lam-derivation-with-input-file.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/fj//v236z7l209d8zz9z8jxmnw3dfi8lam-derivation-with-input-file.drv.bz2
  406. @ build-succeeded /tmp/guix-tests/store/fjv236z7l209d8zz9z8jxmnw3dfi8lam-derivation-with-input-file.drv -
  407. @ build-started /tmp/guix-tests/store/p81vnkbra9z5w45hg0hni5l3yf596ja2-fails.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/p8//1vnkbra9z5w45hg0hni5l3yf596ja2-fails.drv.bz2
  408. builder for `/tmp/guix-tests/store/p81vnkbra9z5w45hg0hni5l3yf596ja2-fails.drv' failed with exit code 1
  409. @ build-failed /tmp/guix-tests/store/p81vnkbra9z5w45hg0hni5l3yf596ja2-fails.drv - 1 builder for `/tmp/guix-tests/store/p81vnkbra9z5w45hg0hni5l3yf596ja2-fails.drv' failed with exit code 1
  410. @ build-started /tmp/guix-tests/store/kn0gx5na8k2nilq6c362bmavywnilkhq-guile-bootstrap-2.0.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/kn//0gx5na8k2nilq6c362bmavywnilkhq-guile-bootstrap-2.0.drv.bz2
  411. unpacking bootstrap Guile to '/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0'...
  412. ./
  413. ./share/
  414. ./share/guile/
  415. ./share/guile/2.0/
  416. ./share/guile/2.0/system/
  417. ./share/guile/2.0/system/xref.scm
  418. ./share/guile/2.0/system/foreign.scm
  419. ./share/guile/2.0/system/repl/
  420. ./share/guile/2.0/system/repl/error-handling.scm
  421. ./share/guile/2.0/system/repl/debug.scm
  422. ./share/guile/2.0/system/repl/describe.scm
  423. ./share/guile/2.0/system/repl/common.scm
  424. ./share/guile/2.0/system/repl/command.scm
  425. ./share/guile/2.0/system/repl/server.scm
  426. ./share/guile/2.0/system/repl/repl.scm
  427. ./share/guile/2.0/system/base/
  428. ./share/guile/2.0/system/base/lalr.upstream.scm
  429. ./share/guile/2.0/system/base/pmatch.scm
  430. ./share/guile/2.0/system/base/lalr.scm
  431. ./share/guile/2.0/system/base/language.scm
  432. ./share/guile/2.0/system/base/syntax.scm
  433. ./share/guile/2.0/system/base/compile.scm
  434. ./share/guile/2.0/system/base/ck.scm
  435. ./share/guile/2.0/system/base/message.scm
  436. ./share/guile/2.0/system/base/target.scm
  437. ./share/guile/2.0/system/vm/
  438. ./share/guile/2.0/system/vm/trace.scm
  439. ./share/guile/2.0/system/vm/trap-state.scm
  440. ./share/guile/2.0/system/vm/vm.scm
  441. ./share/guile/2.0/system/vm/coverage.scm
  442. ./share/guile/2.0/system/vm/program.scm
  443. ./share/guile/2.0/system/vm/objcode.scm
  444. ./share/guile/2.0/system/vm/traps.scm
  445. ./share/guile/2.0/system/vm/inspect.scm
  446. ./share/guile/2.0/system/vm/instruction.scm
  447. ./share/guile/2.0/system/vm/frame.scm
  448. ./share/guile/2.0/scripts/
  449. ./share/guile/2.0/scripts/scan-api.scm
  450. ./share/guile/2.0/scripts/autofrisk.scm
  451. ./share/guile/2.0/scripts/snarf-check-and-output-texi.scm
  452. ./share/guile/2.0/scripts/read-rfc822.scm
  453. ./share/guile/2.0/scripts/read-text-outline.scm
  454. ./share/guile/2.0/scripts/help.scm
  455. ./share/guile/2.0/scripts/frisk.scm
  456. ./share/guile/2.0/scripts/punify.scm
  457. ./share/guile/2.0/scripts/lint.scm
  458. ./share/guile/2.0/scripts/disassemble.scm
  459. ./share/guile/2.0/scripts/summarize-guile-TODO.scm
  460. ./share/guile/2.0/scripts/generate-autoload.scm
  461. ./share/guile/2.0/scripts/display-commentary.scm
  462. ./share/guile/2.0/scripts/compile.scm
  463. ./share/guile/2.0/scripts/api-diff.scm
  464. ./share/guile/2.0/scripts/use2dot.scm
  465. ./share/guile/2.0/scripts/doc-snarf.scm
  466. ./share/guile/2.0/scripts/read-scheme-source.scm
  467. ./share/guile/2.0/scripts/snarf-guile-m4-docs.scm
  468. ./share/guile/2.0/scripts/list.scm
  469. ./share/guile/2.0/texinfo/
  470. ./share/guile/2.0/texinfo/indexing.scm
  471. ./share/guile/2.0/texinfo/html.scm
  472. ./share/guile/2.0/texinfo/docbook.scm
  473. ./share/guile/2.0/texinfo/serialize.scm
  474. ./share/guile/2.0/texinfo/reflection.scm
  475. ./share/guile/2.0/texinfo/plain-text.scm
  476. ./share/guile/2.0/texinfo/string-utils.scm
  477. ./share/guile/2.0/ice-9/
  478. ./share/guile/2.0/ice-9/documentation.scm
  479. ./share/guile/2.0/ice-9/scm-style-repl.scm
  480. ./share/guile/2.0/ice-9/time.scm
  481. ./share/guile/2.0/ice-9/format.scm
  482. ./share/guile/2.0/ice-9/networking.scm
  483. ./share/guile/2.0/ice-9/getopt-long.scm
  484. ./share/guile/2.0/ice-9/vlist.scm
  485. ./share/guile/2.0/ice-9/psyntax.scm
  486. ./share/guile/2.0/ice-9/gap-buffer.scm
  487. ./share/guile/2.0/ice-9/and-let-star.scm
  488. ./share/guile/2.0/ice-9/posix.scm
  489. ./share/guile/2.0/ice-9/ls.scm
  490. ./share/guile/2.0/ice-9/syncase.scm
  491. ./share/guile/2.0/ice-9/save-stack.scm
  492. ./share/guile/2.0/ice-9/stack-catch.scm
  493. ./share/guile/2.0/ice-9/futures.scm
  494. ./share/guile/2.0/ice-9/debug.scm
  495. ./share/guile/2.0/ice-9/pretty-print.scm
  496. ./share/guile/2.0/ice-9/mapping.scm
  497. ./share/guile/2.0/ice-9/occam-channel.scm
  498. ./share/guile/2.0/ice-9/top-repl.scm
  499. ./share/guile/2.0/ice-9/boot-9.scm
  500. ./share/guile/2.0/ice-9/string-fun.scm
  501. ./share/guile/2.0/ice-9/i18n.scm
  502. ./share/guile/2.0/ice-9/match.upstream.scm
  503. ./share/guile/2.0/ice-9/streams.scm
  504. ./share/guile/2.0/ice-9/lineio.scm
  505. ./share/guile/2.0/ice-9/threads.scm
  506. ./share/guile/2.0/ice-9/weak-vector.scm
  507. ./share/guile/2.0/ice-9/history.scm
  508. ./share/guile/2.0/ice-9/expect.scm
  509. ./share/guile/2.0/ice-9/poll.scm
  510. ./share/guile/2.0/ice-9/popen.scm
  511. ./share/guile/2.0/ice-9/control.scm
  512. ./share/guile/2.0/ice-9/session.scm
  513. ./share/guile/2.0/ice-9/ftw.scm
  514. ./share/guile/2.0/ice-9/local-eval.scm
  515. ./share/guile/2.0/ice-9/receive.scm
  516. ./share/guile/2.0/ice-9/safe-r5rs.scm
  517. ./share/guile/2.0/ice-9/calling.scm
  518. ./share/guile/2.0/ice-9/curried-definitions.scm
  519. ./share/guile/2.0/ice-9/eval-string.scm
  520. ./share/guile/2.0/ice-9/q.scm
  521. ./share/guile/2.0/ice-9/serialize.scm
  522. ./share/guile/2.0/ice-9/quasisyntax.scm
  523. ./share/guile/2.0/ice-9/slib.scm
  524. ./share/guile/2.0/ice-9/hcons.scm
  525. ./share/guile/2.0/ice-9/rw.scm
  526. ./share/guile/2.0/ice-9/regex.scm
  527. ./share/guile/2.0/ice-9/match.scm
  528. ./share/guile/2.0/ice-9/buffered-input.scm
  529. ./share/guile/2.0/ice-9/iconv.scm
  530. ./share/guile/2.0/ice-9/poe.scm
  531. ./share/guile/2.0/ice-9/common-list.scm
  532. ./share/guile/2.0/ice-9/r5rs.scm
  533. ./share/guile/2.0/ice-9/command-line.scm
  534. ./share/guile/2.0/ice-9/deprecated.scm
  535. ./share/guile/2.0/ice-9/psyntax-pp.scm
  536. ./share/guile/2.0/ice-9/null.scm
  537. ./share/guile/2.0/ice-9/optargs.scm
  538. ./share/guile/2.0/ice-9/rdelim.scm
  539. ./share/guile/2.0/ice-9/runq.scm
  540. ./share/guile/2.0/ice-9/safe.scm
  541. ./share/guile/2.0/ice-9/channel.scm
  542. ./share/guile/2.0/ice-9/readline.scm
  543. ./share/guile/2.0/ice-9/binary-ports.scm
  544. ./share/guile/2.0/ice-9/eval.scm
  545. ./share/guile/2.0/ice-9/r4rs.scm
  546. ./share/guile/2.0/ice-9/r6rs-libraries.scm
  547. ./share/guile/2.0/ice-9/list.scm
  548. ./share/guile/2.0/language/
  549. ./share/guile/2.0/language/elisp/
  550. ./share/guile/2.0/language/elisp/compile-tree-il.scm
  551. ./share/guile/2.0/language/elisp/bindings.scm
  552. ./share/guile/2.0/language/elisp/runtime.scm
  553. ./share/guile/2.0/language/elisp/lexer.scm
  554. ./share/guile/2.0/language/elisp/spec.scm
  555. ./share/guile/2.0/language/elisp/runtime/
  556. ./share/guile/2.0/language/elisp/runtime/macros.scm
  557. ./share/guile/2.0/language/elisp/runtime/function-slot.scm
  558. ./share/guile/2.0/language/elisp/runtime/subrs.scm
  559. ./share/guile/2.0/language/elisp/runtime/value-slot.scm
  560. ./share/guile/2.0/language/elisp/parser.scm
  561. ./share/guile/2.0/language/assembly/
  562. ./share/guile/2.0/language/assembly/compile-bytecode.scm
  563. ./share/guile/2.0/language/assembly/disassemble.scm
  564. ./share/guile/2.0/language/assembly/spec.scm
  565. ./share/guile/2.0/language/assembly/decompile-bytecode.scm
  566. ./share/guile/2.0/language/scheme/
  567. ./share/guile/2.0/language/scheme/compile-tree-il.scm
  568. ./share/guile/2.0/language/scheme/decompile-tree-il.scm
  569. ./share/guile/2.0/language/scheme/spec.scm
  570. ./share/guile/2.0/language/brainfuck/
  571. ./share/guile/2.0/language/brainfuck/compile-tree-il.scm
  572. ./share/guile/2.0/language/brainfuck/compile-scheme.scm
  573. ./share/guile/2.0/language/brainfuck/spec.scm
  574. ./share/guile/2.0/language/brainfuck/parse.scm
  575. ./share/guile/2.0/language/objcode/
  576. ./share/guile/2.0/language/objcode/spec.scm
  577. ./share/guile/2.0/language/assembly.scm
  578. ./share/guile/2.0/language/bytecode/
  579. ./share/guile/2.0/language/bytecode/spec.scm
  580. ./share/guile/2.0/language/glil/
  581. ./share/guile/2.0/language/glil/spec.scm
  582. ./share/guile/2.0/language/glil/compile-assembly.scm
  583. ./share/guile/2.0/language/tree-il/
  584. ./share/guile/2.0/language/tree-il/analyze.scm
  585. ./share/guile/2.0/language/tree-il/inline.scm
  586. ./share/guile/2.0/language/tree-il/debug.scm
  587. ./share/guile/2.0/language/tree-il/primitives.scm
  588. ./share/guile/2.0/language/tree-il/optimize.scm
  589. ./share/guile/2.0/language/tree-il/fix-letrec.scm
  590. ./share/guile/2.0/language/tree-il/spec.scm
  591. ./share/guile/2.0/language/tree-il/peval.scm
  592. ./share/guile/2.0/language/tree-il/compile-glil.scm
  593. ./share/guile/2.0/language/tree-il/cse.scm
  594. ./share/guile/2.0/language/tree-il/canonicalize.scm
  595. ./share/guile/2.0/language/tree-il/effects.scm
  596. ./share/guile/2.0/language/ecmascript/
  597. ./share/guile/2.0/language/ecmascript/base.scm
  598. ./share/guile/2.0/language/ecmascript/compile-tree-il.scm
  599. ./share/guile/2.0/language/ecmascript/function.scm
  600. ./share/guile/2.0/language/ecmascript/array.scm
  601. ./share/guile/2.0/language/ecmascript/tokenize.scm
  602. ./share/guile/2.0/language/ecmascript/spec.scm
  603. ./share/guile/2.0/language/ecmascript/impl.scm
  604. ./share/guile/2.0/language/ecmascript/parse.scm
  605. ./share/guile/2.0/language/value/
  606. ./share/guile/2.0/language/value/spec.scm
  607. ./share/guile/2.0/language/glil.scm
  608. ./share/guile/2.0/language/tree-il.scm
  609. ./share/guile/2.0/rnrs.scm
  610. ./share/guile/2.0/statprof.scm
  611. ./share/guile/2.0/web/
  612. ./share/guile/2.0/web/client.scm
  613. ./share/guile/2.0/web/response.scm
  614. ./share/guile/2.0/web/uri.scm
  615. ./share/guile/2.0/web/server/
  616. ./share/guile/2.0/web/server/http.scm
  617. ./share/guile/2.0/web/request.scm
  618. ./share/guile/2.0/web/server.scm
  619. ./share/guile/2.0/web/http.scm
  620. ./share/guile/2.0/oop/
  621. ./share/guile/2.0/oop/goops.scm
  622. ./share/guile/2.0/oop/goops/
  623. ./share/guile/2.0/oop/goops/save.scm
  624. ./share/guile/2.0/oop/goops/stklos.scm
  625. ./share/guile/2.0/oop/goops/accessors.scm
  626. ./share/guile/2.0/oop/goops/describe.scm
  627. ./share/guile/2.0/oop/goops/dispatch.scm
  628. ./share/guile/2.0/oop/goops/active-slot.scm
  629. ./share/guile/2.0/oop/goops/composite-slot.scm
  630. ./share/guile/2.0/oop/goops/compile.scm
  631. ./share/guile/2.0/oop/goops/internal.scm
  632. ./share/guile/2.0/oop/goops/util.scm
  633. ./share/guile/2.0/oop/goops/simple.scm
  634. ./share/guile/2.0/guile-procedures.txt
  635. ./share/guile/2.0/texinfo.scm
  636. ./share/guile/2.0/rnrs/
  637. ./share/guile/2.0/rnrs/base.scm
  638. ./share/guile/2.0/rnrs/records/
  639. ./share/guile/2.0/rnrs/records/syntactic.scm
  640. ./share/guile/2.0/rnrs/records/inspection.scm
  641. ./share/guile/2.0/rnrs/records/procedural.scm
  642. ./share/guile/2.0/rnrs/arithmetic/
  643. ./share/guile/2.0/rnrs/arithmetic/bitwise.scm
  644. ./share/guile/2.0/rnrs/arithmetic/fixnums.scm
  645. ./share/guile/2.0/rnrs/arithmetic/flonums.scm
  646. ./share/guile/2.0/rnrs/unicode.scm
  647. ./share/guile/2.0/rnrs/enums.scm
  648. ./share/guile/2.0/rnrs/hashtables.scm
  649. ./share/guile/2.0/rnrs/control.scm
  650. ./share/guile/2.0/rnrs/syntax-case.scm
  651. ./share/guile/2.0/rnrs/sorting.scm
  652. ./share/guile/2.0/rnrs/lists.scm
  653. ./share/guile/2.0/rnrs/mutable-strings.scm
  654. ./share/guile/2.0/rnrs/conditions.scm
  655. ./share/guile/2.0/rnrs/r5rs.scm
  656. ./share/guile/2.0/rnrs/mutable-pairs.scm
  657. ./share/guile/2.0/rnrs/programs.scm
  658. ./share/guile/2.0/rnrs/exceptions.scm
  659. ./share/guile/2.0/rnrs/eval.scm
  660. ./share/guile/2.0/rnrs/files.scm
  661. ./share/guile/2.0/rnrs/io/
  662. ./share/guile/2.0/rnrs/io/ports.scm
  663. ./share/guile/2.0/rnrs/io/simple.scm
  664. ./share/guile/2.0/rnrs/bytevectors.scm
  665. ./share/guile/2.0/sxml/
  666. ./share/guile/2.0/sxml/sxml-match.ss
  667. ./share/guile/2.0/sxml/fold.scm
  668. ./share/guile/2.0/sxml/ssax.scm
  669. ./share/guile/2.0/sxml/apply-templates.scm
  670. ./share/guile/2.0/sxml/xpath.scm
  671. ./share/guile/2.0/sxml/upstream/
  672. ./share/guile/2.0/sxml/upstream/SSAX.scm
  673. ./share/guile/2.0/sxml/upstream/assert.scm
  674. ./share/guile/2.0/sxml/upstream/SXPath-old.scm
  675. ./share/guile/2.0/sxml/upstream/input-parse.scm
  676. ./share/guile/2.0/sxml/upstream/SXML-tree-trans.scm
  677. ./share/guile/2.0/sxml/transform.scm
  678. ./share/guile/2.0/sxml/match.scm
  679. ./share/guile/2.0/sxml/simple.scm
  680. ./share/guile/2.0/sxml/ssax/
  681. ./share/guile/2.0/sxml/ssax/input-parse.scm
  682. ./share/guile/2.0/srfi/
  683. ./share/guile/2.0/srfi/srfi-88.scm
  684. ./share/guile/2.0/srfi/srfi-14.scm
  685. ./share/guile/2.0/srfi/srfi-6.scm
  686. ./share/guile/2.0/srfi/srfi-67.scm
  687. ./share/guile/2.0/srfi/srfi-42/
  688. ./share/guile/2.0/srfi/srfi-42/ec.scm
  689. ./share/guile/2.0/srfi/srfi-19.scm
  690. ./share/guile/2.0/srfi/srfi-31.scm
  691. ./share/guile/2.0/srfi/srfi-41.scm
  692. ./share/guile/2.0/srfi/srfi-35.scm
  693. ./share/guile/2.0/srfi/srfi-34.scm
  694. ./share/guile/2.0/srfi/srfi-60.scm
  695. ./share/guile/2.0/srfi/srfi-18.scm
  696. ./share/guile/2.0/srfi/srfi-37.scm
  697. ./share/guile/2.0/srfi/srfi-4/
  698. ./share/guile/2.0/srfi/srfi-4/gnu.scm
  699. ./share/guile/2.0/srfi/srfi-16.scm
  700. ./share/guile/2.0/srfi/srfi-69.scm
  701. ./share/guile/2.0/srfi/srfi-17.scm
  702. ./share/guile/2.0/srfi/srfi-2.scm
  703. ./share/guile/2.0/srfi/srfi-27.scm
  704. ./share/guile/2.0/srfi/srfi-26.scm
  705. ./share/guile/2.0/srfi/srfi-8.scm
  706. ./share/guile/2.0/srfi/srfi-4.scm
  707. ./share/guile/2.0/srfi/srfi-11.scm
  708. ./share/guile/2.0/srfi/srfi-13.scm
  709. ./share/guile/2.0/srfi/srfi-67/
  710. ./share/guile/2.0/srfi/srfi-67/compare.scm
  711. ./share/guile/2.0/srfi/srfi-45.scm
  712. ./share/guile/2.0/srfi/srfi-9.scm
  713. ./share/guile/2.0/srfi/srfi-9/
  714. ./share/guile/2.0/srfi/srfi-9/gnu.scm
  715. ./share/guile/2.0/srfi/srfi-10.scm
  716. ./share/guile/2.0/srfi/srfi-42.scm
  717. ./share/guile/2.0/srfi/srfi-39.scm
  718. ./share/guile/2.0/srfi/srfi-1.scm
  719. ./share/guile/2.0/srfi/srfi-38.scm
  720. ./share/guile/2.0/srfi/srfi-98.scm
  721. ./lib/
  722. ./lib/guile/
  723. ./lib/guile/2.0/
  724. ./lib/guile/2.0/ccache/
  725. ./lib/guile/2.0/ccache/system/
  726. ./lib/guile/2.0/ccache/system/foreign.go
  727. ./lib/guile/2.0/ccache/system/repl/
  728. ./lib/guile/2.0/ccache/system/repl/command.go
  729. ./lib/guile/2.0/ccache/system/repl/error-handling.go
  730. ./lib/guile/2.0/ccache/system/repl/repl.go
  731. ./lib/guile/2.0/ccache/system/repl/debug.go
  732. ./lib/guile/2.0/ccache/system/repl/server.go
  733. ./lib/guile/2.0/ccache/system/repl/common.go
  734. ./lib/guile/2.0/ccache/system/xref.go
  735. ./lib/guile/2.0/ccache/system/base/
  736. ./lib/guile/2.0/ccache/system/base/ck.go
  737. ./lib/guile/2.0/ccache/system/base/lalr.go
  738. ./lib/guile/2.0/ccache/system/base/pmatch.go
  739. ./lib/guile/2.0/ccache/system/base/message.go
  740. ./lib/guile/2.0/ccache/system/base/syntax.go
  741. ./lib/guile/2.0/ccache/system/base/language.go
  742. ./lib/guile/2.0/ccache/system/base/target.go
  743. ./lib/guile/2.0/ccache/system/base/compile.go
  744. ./lib/guile/2.0/ccache/system/vm/
  745. ./lib/guile/2.0/ccache/system/vm/traps.go
  746. ./lib/guile/2.0/ccache/system/vm/frame.go
  747. ./lib/guile/2.0/ccache/system/vm/objcode.go
  748. ./lib/guile/2.0/ccache/system/vm/program.go
  749. ./lib/guile/2.0/ccache/system/vm/instruction.go
  750. ./lib/guile/2.0/ccache/system/vm/coverage.go
  751. ./lib/guile/2.0/ccache/system/vm/vm.go
  752. ./lib/guile/2.0/ccache/system/vm/trap-state.go
  753. ./lib/guile/2.0/ccache/system/vm/inspect.go
  754. ./lib/guile/2.0/ccache/system/vm/trace.go
  755. ./lib/guile/2.0/ccache/scripts/
  756. ./lib/guile/2.0/ccache/scripts/scan-api.go
  757. ./lib/guile/2.0/ccache/scripts/use2dot.go
  758. ./lib/guile/2.0/ccache/scripts/autofrisk.go
  759. ./lib/guile/2.0/ccache/scripts/api-diff.go
  760. ./lib/guile/2.0/ccache/scripts/read-text-outline.go
  761. ./lib/guile/2.0/ccache/scripts/punify.go
  762. ./lib/guile/2.0/ccache/scripts/snarf-guile-m4-docs.go
  763. ./lib/guile/2.0/ccache/scripts/read-scheme-source.go
  764. ./lib/guile/2.0/ccache/scripts/frisk.go
  765. ./lib/guile/2.0/ccache/scripts/summarize-guile-TODO.go
  766. ./lib/guile/2.0/ccache/scripts/lint.go
  767. ./lib/guile/2.0/ccache/scripts/display-commentary.go
  768. ./lib/guile/2.0/ccache/scripts/disassemble.go
  769. ./lib/guile/2.0/ccache/scripts/generate-autoload.go
  770. ./lib/guile/2.0/ccache/scripts/snarf-check-and-output-texi.go
  771. ./lib/guile/2.0/ccache/scripts/read-rfc822.go
  772. ./lib/guile/2.0/ccache/scripts/doc-snarf.go
  773. ./lib/guile/2.0/ccache/scripts/compile.go
  774. ./lib/guile/2.0/ccache/scripts/help.go
  775. ./lib/guile/2.0/ccache/scripts/list.go
  776. ./lib/guile/2.0/ccache/texinfo/
  777. ./lib/guile/2.0/ccache/texinfo/docbook.go
  778. ./lib/guile/2.0/ccache/texinfo/serialize.go
  779. ./lib/guile/2.0/ccache/texinfo/html.go
  780. ./lib/guile/2.0/ccache/texinfo/reflection.go
  781. ./lib/guile/2.0/ccache/texinfo/indexing.go
  782. ./lib/guile/2.0/ccache/texinfo/plain-text.go
  783. ./lib/guile/2.0/ccache/texinfo/string-utils.go
  784. ./lib/guile/2.0/ccache/ice-9/
  785. ./lib/guile/2.0/ccache/ice-9/r4rs.go
  786. ./lib/guile/2.0/ccache/ice-9/poll.go
  787. ./lib/guile/2.0/ccache/ice-9/syncase.go
  788. ./lib/guile/2.0/ccache/ice-9/common-list.go
  789. ./lib/guile/2.0/ccache/ice-9/stack-catch.go
  790. ./lib/guile/2.0/ccache/ice-9/control.go
  791. ./lib/guile/2.0/ccache/ice-9/binary-ports.go
  792. ./lib/guile/2.0/ccache/ice-9/regex.go
  793. ./lib/guile/2.0/ccache/ice-9/safe.go
  794. ./lib/guile/2.0/ccache/ice-9/buffered-input.go
  795. ./lib/guile/2.0/ccache/ice-9/boot-9.go
  796. ./lib/guile/2.0/ccache/ice-9/and-let-star.go
  797. ./lib/guile/2.0/ccache/ice-9/expect.go
  798. ./lib/guile/2.0/ccache/ice-9/gap-buffer.go
  799. ./lib/guile/2.0/ccache/ice-9/pretty-print.go
  800. ./lib/guile/2.0/ccache/ice-9/time.go
  801. ./lib/guile/2.0/ccache/ice-9/serialize.go
  802. ./lib/guile/2.0/ccache/ice-9/debug.go
  803. ./lib/guile/2.0/ccache/ice-9/rw.go
  804. ./lib/guile/2.0/ccache/ice-9/command-line.go
  805. ./lib/guile/2.0/ccache/ice-9/networking.go
  806. ./lib/guile/2.0/ccache/ice-9/posix.go
  807. ./lib/guile/2.0/ccache/ice-9/psyntax-pp.go
  808. ./lib/guile/2.0/ccache/ice-9/format.go
  809. ./lib/guile/2.0/ccache/ice-9/optargs.go
  810. ./lib/guile/2.0/ccache/ice-9/history.go
  811. ./lib/guile/2.0/ccache/ice-9/vlist.go
  812. ./lib/guile/2.0/ccache/ice-9/threads.go
  813. ./lib/guile/2.0/ccache/ice-9/safe-r5rs.go
  814. ./lib/guile/2.0/ccache/ice-9/streams.go
  815. ./lib/guile/2.0/ccache/ice-9/readline.go
  816. ./lib/guile/2.0/ccache/ice-9/slib.go
  817. ./lib/guile/2.0/ccache/ice-9/scm-style-repl.go
  818. ./lib/guile/2.0/ccache/ice-9/session.go
  819. ./lib/guile/2.0/ccache/ice-9/top-repl.go
  820. ./lib/guile/2.0/ccache/ice-9/channel.go
  821. ./lib/guile/2.0/ccache/ice-9/q.go
  822. ./lib/guile/2.0/ccache/ice-9/string-fun.go
  823. ./lib/guile/2.0/ccache/ice-9/r5rs.go
  824. ./lib/guile/2.0/ccache/ice-9/calling.go
  825. ./lib/guile/2.0/ccache/ice-9/futures.go
  826. ./lib/guile/2.0/ccache/ice-9/null.go
  827. ./lib/guile/2.0/ccache/ice-9/occam-channel.go
  828. ./lib/guile/2.0/ccache/ice-9/eval.go
  829. ./lib/guile/2.0/ccache/ice-9/receive.go
  830. ./lib/guile/2.0/ccache/ice-9/ftw.go
  831. ./lib/guile/2.0/ccache/ice-9/runq.go
  832. ./lib/guile/2.0/ccache/ice-9/rdelim.go
  833. ./lib/guile/2.0/ccache/ice-9/save-stack.go
  834. ./lib/guile/2.0/ccache/ice-9/local-eval.go
  835. ./lib/guile/2.0/ccache/ice-9/getopt-long.go
  836. ./lib/guile/2.0/ccache/ice-9/ls.go
  837. ./lib/guile/2.0/ccache/ice-9/lineio.go
  838. ./lib/guile/2.0/ccache/ice-9/i18n.go
  839. ./lib/guile/2.0/ccache/ice-9/deprecated.go
  840. ./lib/guile/2.0/ccache/ice-9/hcons.go
  841. ./lib/guile/2.0/ccache/ice-9/popen.go
  842. ./lib/guile/2.0/ccache/ice-9/curried-definitions.go
  843. ./lib/guile/2.0/ccache/ice-9/eval-string.go
  844. ./lib/guile/2.0/ccache/ice-9/match.go
  845. ./lib/guile/2.0/ccache/ice-9/weak-vector.go
  846. ./lib/guile/2.0/ccache/ice-9/poe.go
  847. ./lib/guile/2.0/ccache/ice-9/mapping.go
  848. ./lib/guile/2.0/ccache/ice-9/list.go
  849. ./lib/guile/2.0/ccache/ice-9/documentation.go
  850. ./lib/guile/2.0/ccache/ice-9/iconv.go
  851. ./lib/guile/2.0/ccache/language/
  852. ./lib/guile/2.0/ccache/language/assembly.go
  853. ./lib/guile/2.0/ccache/language/elisp/
  854. ./lib/guile/2.0/ccache/language/elisp/compile-tree-il.go
  855. ./lib/guile/2.0/ccache/language/elisp/spec.go
  856. ./lib/guile/2.0/ccache/language/elisp/parser.go
  857. ./lib/guile/2.0/ccache/language/elisp/runtime.go
  858. ./lib/guile/2.0/ccache/language/elisp/bindings.go
  859. ./lib/guile/2.0/ccache/language/elisp/lexer.go
  860. ./lib/guile/2.0/ccache/language/elisp/runtime/
  861. ./lib/guile/2.0/ccache/language/elisp/runtime/value-slot.go
  862. ./lib/guile/2.0/ccache/language/elisp/runtime/function-slot.go
  863. ./lib/guile/2.0/ccache/language/elisp/runtime/subrs.go
  864. ./lib/guile/2.0/ccache/language/elisp/runtime/macros.go
  865. ./lib/guile/2.0/ccache/language/assembly/
  866. ./lib/guile/2.0/ccache/language/assembly/decompile-bytecode.go
  867. ./lib/guile/2.0/ccache/language/assembly/spec.go
  868. ./lib/guile/2.0/ccache/language/assembly/compile-bytecode.go
  869. ./lib/guile/2.0/ccache/language/assembly/disassemble.go
  870. ./lib/guile/2.0/ccache/language/tree-il.go
  871. ./lib/guile/2.0/ccache/language/glil.go
  872. ./lib/guile/2.0/ccache/language/scheme/
  873. ./lib/guile/2.0/ccache/language/scheme/compile-tree-il.go
  874. ./lib/guile/2.0/ccache/language/scheme/spec.go
  875. ./lib/guile/2.0/ccache/language/scheme/decompile-tree-il.go
  876. ./lib/guile/2.0/ccache/language/brainfuck/
  877. ./lib/guile/2.0/ccache/language/brainfuck/compile-tree-il.go
  878. ./lib/guile/2.0/ccache/language/brainfuck/spec.go
  879. ./lib/guile/2.0/ccache/language/brainfuck/parse.go
  880. ./lib/guile/2.0/ccache/language/brainfuck/compile-scheme.go
  881. ./lib/guile/2.0/ccache/language/objcode/
  882. ./lib/guile/2.0/ccache/language/objcode/spec.go
  883. ./lib/guile/2.0/ccache/language/bytecode/
  884. ./lib/guile/2.0/ccache/language/bytecode/spec.go
  885. ./lib/guile/2.0/ccache/language/glil/
  886. ./lib/guile/2.0/ccache/language/glil/compile-assembly.go
  887. ./lib/guile/2.0/ccache/language/glil/spec.go
  888. ./lib/guile/2.0/ccache/language/tree-il/
  889. ./lib/guile/2.0/ccache/language/tree-il/debug.go
  890. ./lib/guile/2.0/ccache/language/tree-il/compile-glil.go
  891. ./lib/guile/2.0/ccache/language/tree-il/optimize.go
  892. ./lib/guile/2.0/ccache/language/tree-il/spec.go
  893. ./lib/guile/2.0/ccache/language/tree-il/canonicalize.go
  894. ./lib/guile/2.0/ccache/language/tree-il/inline.go
  895. ./lib/guile/2.0/ccache/language/tree-il/analyze.go
  896. ./lib/guile/2.0/ccache/language/tree-il/peval.go
  897. ./lib/guile/2.0/ccache/language/tree-il/cse.go
  898. ./lib/guile/2.0/ccache/language/tree-il/fix-letrec.go
  899. ./lib/guile/2.0/ccache/language/tree-il/effects.go
  900. ./lib/guile/2.0/ccache/language/tree-il/primitives.go
  901. ./lib/guile/2.0/ccache/language/ecmascript/
  902. ./lib/guile/2.0/ccache/language/ecmascript/compile-tree-il.go
  903. ./lib/guile/2.0/ccache/language/ecmascript/spec.go
  904. ./lib/guile/2.0/ccache/language/ecmascript/parse.go
  905. ./lib/guile/2.0/ccache/language/ecmascript/tokenize.go
  906. ./lib/guile/2.0/ccache/language/ecmascript/array.go
  907. ./lib/guile/2.0/ccache/language/ecmascript/impl.go
  908. ./lib/guile/2.0/ccache/language/ecmascript/function.go
  909. ./lib/guile/2.0/ccache/language/ecmascript/base.go
  910. ./lib/guile/2.0/ccache/language/value/
  911. ./lib/guile/2.0/ccache/language/value/spec.go
  912. ./lib/guile/2.0/ccache/web/
  913. ./lib/guile/2.0/ccache/web/http.go
  914. ./lib/guile/2.0/ccache/web/server/
  915. ./lib/guile/2.0/ccache/web/server/http.go
  916. ./lib/guile/2.0/ccache/web/client.go
  917. ./lib/guile/2.0/ccache/web/request.go
  918. ./lib/guile/2.0/ccache/web/server.go
  919. ./lib/guile/2.0/ccache/web/uri.go
  920. ./lib/guile/2.0/ccache/web/response.go
  921. ./lib/guile/2.0/ccache/oop/
  922. ./lib/guile/2.0/ccache/oop/goops.go
  923. ./lib/guile/2.0/ccache/oop/goops/
  924. ./lib/guile/2.0/ccache/oop/goops/composite-slot.go
  925. ./lib/guile/2.0/ccache/oop/goops/internal.go
  926. ./lib/guile/2.0/ccache/oop/goops/stklos.go
  927. ./lib/guile/2.0/ccache/oop/goops/save.go
  928. ./lib/guile/2.0/ccache/oop/goops/dispatch.go
  929. ./lib/guile/2.0/ccache/oop/goops/util.go
  930. ./lib/guile/2.0/ccache/oop/goops/active-slot.go
  931. ./lib/guile/2.0/ccache/oop/goops/simple.go
  932. ./lib/guile/2.0/ccache/oop/goops/describe.go
  933. ./lib/guile/2.0/ccache/oop/goops/compile.go
  934. ./lib/guile/2.0/ccache/oop/goops/accessors.go
  935. ./lib/guile/2.0/ccache/rnrs/
  936. ./lib/guile/2.0/ccache/rnrs/mutable-pairs.go
  937. ./lib/guile/2.0/ccache/rnrs/control.go
  938. ./lib/guile/2.0/ccache/rnrs/records/
  939. ./lib/guile/2.0/ccache/rnrs/records/procedural.go
  940. ./lib/guile/2.0/ccache/rnrs/records/syntactic.go
  941. ./lib/guile/2.0/ccache/rnrs/records/inspection.go
  942. ./lib/guile/2.0/ccache/rnrs/arithmetic/
  943. ./lib/guile/2.0/ccache/rnrs/arithmetic/fixnums.go
  944. ./lib/guile/2.0/ccache/rnrs/arithmetic/bitwise.go
  945. ./lib/guile/2.0/ccache/rnrs/arithmetic/flonums.go
  946. ./lib/guile/2.0/ccache/rnrs/enums.go
  947. ./lib/guile/2.0/ccache/rnrs/programs.go
  948. ./lib/guile/2.0/ccache/rnrs/exceptions.go
  949. ./lib/guile/2.0/ccache/rnrs/files.go
  950. ./lib/guile/2.0/ccache/rnrs/syntax-case.go
  951. ./lib/guile/2.0/ccache/rnrs/lists.go
  952. ./lib/guile/2.0/ccache/rnrs/mutable-strings.go
  953. ./lib/guile/2.0/ccache/rnrs/unicode.go
  954. ./lib/guile/2.0/ccache/rnrs/r5rs.go
  955. ./lib/guile/2.0/ccache/rnrs/hashtables.go
  956. ./lib/guile/2.0/ccache/rnrs/eval.go
  957. ./lib/guile/2.0/ccache/rnrs/conditions.go
  958. ./lib/guile/2.0/ccache/rnrs/bytevectors.go
  959. ./lib/guile/2.0/ccache/rnrs/sorting.go
  960. ./lib/guile/2.0/ccache/rnrs/base.go
  961. ./lib/guile/2.0/ccache/rnrs/io/
  962. ./lib/guile/2.0/ccache/rnrs/io/ports.go
  963. ./lib/guile/2.0/ccache/rnrs/io/simple.go
  964. ./lib/guile/2.0/ccache/sxml/
  965. ./lib/guile/2.0/ccache/sxml/transform.go
  966. ./lib/guile/2.0/ccache/sxml/ssax.go
  967. ./lib/guile/2.0/ccache/sxml/simple.go
  968. ./lib/guile/2.0/ccache/sxml/apply-templates.go
  969. ./lib/guile/2.0/ccache/sxml/xpath.go
  970. ./lib/guile/2.0/ccache/sxml/match.go
  971. ./lib/guile/2.0/ccache/sxml/fold.go
  972. ./lib/guile/2.0/ccache/sxml/ssax/
  973. ./lib/guile/2.0/ccache/sxml/ssax/input-parse.go
  974. ./lib/guile/2.0/ccache/rnrs.go
  975. ./lib/guile/2.0/ccache/srfi/
  976. ./lib/guile/2.0/ccache/srfi/srfi-4.go
  977. ./lib/guile/2.0/ccache/srfi/srfi-14.go
  978. ./lib/guile/2.0/ccache/srfi/srfi-26.go
  979. ./lib/guile/2.0/ccache/srfi/srfi-17.go
  980. ./lib/guile/2.0/ccache/srfi/srfi-27.go
  981. ./lib/guile/2.0/ccache/srfi/srfi-38.go
  982. ./lib/guile/2.0/ccache/srfi/srfi-34.go
  983. ./lib/guile/2.0/ccache/srfi/srfi-13.go
  984. ./lib/guile/2.0/ccache/srfi/srfi-41.go
  985. ./lib/guile/2.0/ccache/srfi/srfi-19.go
  986. ./lib/guile/2.0/ccache/srfi/srfi-67.go
  987. ./lib/guile/2.0/ccache/srfi/srfi-9.go
  988. ./lib/guile/2.0/ccache/srfi/srfi-2.go
  989. ./lib/guile/2.0/ccache/srfi/srfi-4/
  990. ./lib/guile/2.0/ccache/srfi/srfi-4/gnu.go
  991. ./lib/guile/2.0/ccache/srfi/srfi-60.go
  992. ./lib/guile/2.0/ccache/srfi/srfi-11.go
  993. ./lib/guile/2.0/ccache/srfi/srfi-69.go
  994. ./lib/guile/2.0/ccache/srfi/srfi-6.go
  995. ./lib/guile/2.0/ccache/srfi/srfi-37.go
  996. ./lib/guile/2.0/ccache/srfi/srfi-39.go
  997. ./lib/guile/2.0/ccache/srfi/srfi-1.go
  998. ./lib/guile/2.0/ccache/srfi/srfi-8.go
  999. ./lib/guile/2.0/ccache/srfi/srfi-9/
  1000. ./lib/guile/2.0/ccache/srfi/srfi-9/gnu.go
  1001. ./lib/guile/2.0/ccache/srfi/srfi-45.go
  1002. ./lib/guile/2.0/ccache/srfi/srfi-42.go
  1003. ./lib/guile/2.0/ccache/srfi/srfi-16.go
  1004. ./lib/guile/2.0/ccache/srfi/srfi-31.go
  1005. ./lib/guile/2.0/ccache/srfi/srfi-18.go
  1006. ./lib/guile/2.0/ccache/srfi/srfi-88.go
  1007. ./lib/guile/2.0/ccache/srfi/srfi-10.go
  1008. ./lib/guile/2.0/ccache/srfi/srfi-35.go
  1009. ./lib/guile/2.0/ccache/srfi/srfi-98.go
  1010. ./lib/guile/2.0/ccache/texinfo.go
  1011. ./lib/guile/2.0/ccache/statprof.go
  1012. ./bin/
  1013. ./bin/guile
  1014. guile (GNU Guile) 2.0.9
  1015. Copyright (C) 2013 Free Software Foundation, Inc.
  1016.  
  1017. License LGPLv3+: GNU LGPL 3 or later <http://gnu.org/licenses/lgpl.html>.
  1018. This is free software: you are free to change and redistribute it.
  1019. There is NO WARRANTY, to the extent permitted by law.
  1020. @ build-succeeded /tmp/guix-tests/store/kn0gx5na8k2nilq6c362bmavywnilkhq-guile-bootstrap-2.0.drv -
  1021. @ build-started /tmp/guix-tests/store/2zriikib87z0w6bv9yixm5l7n8f98iyp-sleep-then-succeed.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/2z//riikib87z0w6bv9yixm5l7n8f98iyp-sleep-then-succeed.drv.bz2
  1022. @ build-succeeded /tmp/guix-tests/store/2zriikib87z0w6bv9yixm5l7n8f98iyp-sleep-then-succeed.drv -
  1023. @ build-started /tmp/guix-tests/store/nzs8yyjwcl3b3pw7yrwvshq7km0slqqg-bar.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/nz//s8yyjwcl3b3pw7yrwvshq7km0slqqg-bar.drv.bz2
  1024. @ build-succeeded /tmp/guix-tests/store/nzs8yyjwcl3b3pw7yrwvshq7km0slqqg-bar.drv -
  1025. @ build-started /tmp/guix-tests/store/7amfgi1b8y64ckydz2w6sl125ajdzh6w-foo.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/7a//mfgi1b8y64ckydz2w6sl125ajdzh6w-foo.drv.bz2
  1026. @ build-succeeded /tmp/guix-tests/store/7amfgi1b8y64ckydz2w6sl125ajdzh6w-foo.drv -
  1027. "(while read line ; do echo \"$line\" ; done) < $in > $out"
  1028. + '()))
  1029. + (input (search-path %load-path "ice-9/boot-9.scm"))
  1030. + (input*
  1031. + (add-to-store
  1032. + %store
  1033. + (basename input)
  1034. + #t
  1035. + "sha256"
  1036. + input))
  1037. + (drv (derivation
  1038. + %store
  1039. + "derivation-with-input-file"
  1040. + %bash
  1041. + `(,builder)
  1042. + #:env-vars
  1043. + `(("in" unquote input*))
  1044. + #:inputs
  1045. + `((,%bash) (,builder) (,input)))))
  1046. + (and (build-derivations %store (list drv))
  1047. + (valid-path?
  1048. + %store
  1049. + (derivation->output-path drv)))))
  1050. actual-value: #t
  1051. result: PASS
  1052.  
  1053. test-name: derivation fails but keep going
  1054. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:165
  1055. source:
  1056. + (test-assert
  1057. + "derivation fails but keep going"
  1058. + (with-store
  1059. + store
  1060. + (let* ((d1 (derivation
  1061. + %store
  1062. + "fails"
  1063. + %bash
  1064. + `("-c" "false")
  1065. + #:inputs
  1066. + `((,%bash))))
  1067. + (d2 (build-expression->derivation
  1068. + %store
  1069. + "sleep-then-succeed"
  1070. + `(begin ,(random-text) (sleep 2) (mkdir %output)))))
  1071. + (set-build-options
  1072. + %store
  1073. + #:use-substitutes?
  1074. + #f
  1075. + #:keep-going?
  1076. + #t)
  1077. + (guard (c ((nix-protocol-error? c)
  1078. + (and (= 100 (nix-protocol-error-status c))
  1079. + (string-contains
  1080. + (nix-protocol-error-message c)
  1081. + (derivation-file-name d1))
  1082. + (not (valid-path? %store (derivation->output-path d1)))
  1083. + (valid-path? %store (derivation->output-path d2)))))
  1084. + (build-derivations %store (list d1 d2))
  1085. + #f))))
  1086. actual-value: #t
  1087. result: PASS
  1088.  
  1089. test-name: identical files are deduplicated
  1090. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:192
  1091. source:
  1092. + (test-assert
  1093. + "identical files are deduplicated"
  1094. + (let* ((build1
  1095. + (add-text-to-store
  1096. + %store
  1097. + "one.sh"
  1098. + "echo hello, world > \"$out\"\n"
  1099. + '()))
  1100. + (build2
  1101. + (add-text-to-store
  1102. + %store
  1103. + "two.sh"
  1104. + "# Hey!\necho hello, world > \"$out\"\n"
  1105. + '()))
  1106. + (drv1 (derivation
  1107. + %store
  1108. + "foo"
  1109. + %bash
  1110. + `(,build1)
  1111. + #:inputs
  1112. + `((,%bash) (,build1))))
  1113. + (drv2 (derivation
  1114. + %store
  1115. + "bar"
  1116. + %bash
  1117. + `(,build2)
  1118. + #:inputs
  1119. + `((,%bash) (,build2)))))
  1120. + (and (build-derivations %store (list drv1 drv2))
  1121. + (let ((file1 (derivation->output-path drv1))
  1122. + (file2 (derivation->output-path drv2)))
  1123. + (and (valid-path? %store file1)
  1124. + (valid-path? %store file2)
  1125. + (string=?
  1126. + (call-with-input-file file1 get-string-all)
  1127. + "hello, world\n")
  1128. + (= (stat:ino (lstat file1))
  1129. + (stat:ino (lstat file2))))))))
  1130. actual-value: #t
  1131. result: PASS
  1132.  
  1133. test-name: built-in-builders
  1134. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:214
  1135. source:
  1136. + (test-equal
  1137. + "built-in-builders"
  1138. + '("download")
  1139. + (built-in-builders %store))
  1140. expected-value: ("download")
  1141. actual-value: ("download")
  1142. result: PASS
  1143.  
  1144. test-name: unknown built-in builder
  1145. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:218
  1146. source:
  1147. + (test-assert
  1148. + "unknown built-in builder"
  1149. + (let ((drv (derivation
  1150. + %store
  1151. + "ohoh"
  1152. + "builtin:does-not-exist"
  1153. + @ build-started /tmp/guix-tests/store/96bncx0a55ryyvb2i6z8i6rycxwlpwhg-ohoh.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/96//bncx0a55ryyvb2i6z8i6rycxwlpwhg-ohoh.drv.bz2
  1154. error: unsupported builtin function 'does-not-exist'
  1155. builder for `/tmp/guix-tests/store/96bncx0a55ryyvb2i6z8i6rycxwlpwhg-ohoh.drv' failed with exit code 1
  1156. @ build-failed /tmp/guix-tests/store/96bncx0a55ryyvb2i6z8i6rycxwlpwhg-ohoh.drv - 1 builder for `/tmp/guix-tests/store/96bncx0a55ryyvb2i6z8i6rycxwlpwhg-ohoh.drv' failed with exit code 1
  1157. @ build-started /tmp/guix-tests/store/5hj02bz54ww1c16a2d2pnfbpfimx8xgk-world.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/5h//j02bz54ww1c16a2d2pnfbpfimx8xgk-world.drv.bz2
  1158.  
  1159. Starting download of /tmp/guix-tests/store/bpf8wwilvf8nca1vqm0kg40p5mhxksp8-world
  1160. From http://localhost:10500/foo/bar...
  1161.  
  1162.  bar 64B 0B/s 00:00 [ ] 0.0%
  1163.  bar 64B 24KiB/s 00:00 [####################] 100.0%
  1164.  bar 64B 23KiB/s 00:00 [####################] 100.0%
  1165. @ build-succeeded /tmp/guix-tests/store/5hj02bz54ww1c16a2d2pnfbpfimx8xgk-world.drv -
  1166. @ build-started /tmp/guix-tests/store/42ijx66n05a7gwszzqgin3gms2gsnp1k-world.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/42//ijx66n05a7gwszzqgin3gms2gsnp1k-world.drv.bz2
  1167.  
  1168. Starting download of /tmp/guix-tests/store/rrzlncvgv9zp8267hp598njli6svj1i0-world
  1169. From http://localhost:10500/foo/bar...
  1170.  
  1171.  bar 13B 0B/s 00:00 [ ] 0.0%
  1172.  bar 13B 5KiB/s 00:00 [####################] 100.0%
  1173.  bar 13B 5KiB/s 00:00 [####################] 100.0%
  1174. sha256 hash mismatch for output path `/tmp/guix-tests/store/rrzlncvgv9zp8267hp598njli6svj1i0-world'
  1175. expected: 03drw7y4svc3zq0vgh1zlb4xan1gm25k7iillr64d3yq4hjzlqfi
  1176. actual: 0a7pd3rizm1qb3kz1ad1wzrijrhwsnq3lj7qprc86zp6a6r5drk8
  1177. @ build-failed /tmp/guix-tests/store/42ijx66n05a7gwszzqgin3gms2gsnp1k-world.drv - 1 sha256 hash mismatch for output path `/tmp/guix-tests/store/rrzlncvgv9zp8267hp598njli6svj1i0-world'
  1178. expected: 03drw7y4svc3zq0vgh1zlb4xan1gm25k7iillr64d3yq4hjzlqfi
  1179. actual: 0a7pd3rizm1qb3kz1ad1wzrijrhwsnq3lj7qprc86zp6a6r5drk8
  1180. @ build-started /tmp/guix-tests/store/71h5gc8ffk417lgg84xfmwf7f1aqziz2-will-never-be-found.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/71//h5gc8ffk417lgg84xfmwf7f1aqziz2-will-never-be-found.drv.bz2
  1181.  
  1182. Starting download of /tmp/guix-tests/store/g52hahbfg1r2jk2cjl388k84c78kkdp2-will-never-be-found
  1183. From http://localhost:10500/foo/bar...
  1184. ERROR: download failed "http://localhost:10500/foo/bar" 404 "Such is life"
  1185. failed to download "/tmp/guix-tests/store/g52hahbfg1r2jk2cjl388k84c78kkdp2-will-never-be-found" from "http://localhost:10500/foo/bar"
  1186. builder for `/tmp/guix-tests/store/71h5gc8ffk417lgg84xfmwf7f1aqziz2-will-never-be-found.drv' failed to produce output path `/tmp/guix-tests/store/g52hahbfg1r2jk2cjl388k84c78kkdp2-will-never-be-found'
  1187. @ build-failed /tmp/guix-tests/store/71h5gc8ffk417lgg84xfmwf7f1aqziz2-will-never-be-found.drv - 1 builder for `/tmp/guix-tests/store/71h5gc8ffk417lgg84xfmwf7f1aqziz2-will-never-be-found.drv' failed to produce output path `/tmp/guix-tests/store/g52hahbfg1r2jk2cjl388k84c78kkdp2-will-never-be-found'
  1188. @ build-started /tmp/guix-tests/store/5hqvbsh3kc0mgh41rda902fk0vqjcq01-world.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/5h//qvbsh3kc0mgh41rda902fk0vqjcq01-world.drv.bz2
  1189. guix perform-download: error: /tmp/guix-tests/store/5hqvbsh3kc0mgh41rda902fk0vqjcq01-world.drv is not a fixed-output derivation
  1190. builder for `/tmp/guix-tests/store/5hqvbsh3kc0mgh41rda902fk0vqjcq01-world.drv' failed with exit code 1
  1191. @ build-failed /tmp/guix-tests/store/5hqvbsh3kc0mgh41rda902fk0vqjcq01-world.drv - 1 builder for `/tmp/guix-tests/store/5hqvbsh3kc0mgh41rda902fk0vqjcq01-world.drv' failed with exit code 1
  1192. '())))
  1193. + (guard (c ((nix-protocol-error? c)
  1194. + (string-contains
  1195. + (nix-protocol-error-message c)
  1196. + "failed")))
  1197. + (build-derivations %store (list drv))
  1198. + #f)))
  1199. actual-value: 75
  1200. result: PASS
  1201.  
  1202. test-name: 'download' built-in builder
  1203. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:227
  1204. source:
  1205. + (test-assert
  1206. + "'download' built-in builder"
  1207. + (let ((text (random-text)))
  1208. + (with-http-server
  1209. + 200
  1210. + text
  1211. + (let* ((drv (derivation
  1212. + %store
  1213. + "world"
  1214. + "builtin:download"
  1215. + '()
  1216. + #:env-vars
  1217. + `(("url" unquote (object->string (%local-url))))
  1218. + #:hash-algo
  1219. + 'sha256
  1220. + #:hash
  1221. + (sha256 (string->utf8 text)))))
  1222. + (and (build-derivations %store (list drv))
  1223. + (string=?
  1224. + (call-with-input-file
  1225. + (derivation->output-path drv)
  1226. + get-string-all)
  1227. + text))))))
  1228. actual-value: #t
  1229. result: PASS
  1230.  
  1231. test-name: 'download' built-in builder, invalid hash
  1232. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:243
  1233. source:
  1234. + (test-assert
  1235. + "'download' built-in builder, invalid hash"
  1236. + (with-http-server
  1237. + 200
  1238. + "hello, world!"
  1239. + (let* ((drv (derivation
  1240. + %store
  1241. + "world"
  1242. + "builtin:download"
  1243. + '()
  1244. + #:env-vars
  1245. + `(("url" unquote (object->string (%local-url))))
  1246. + #:hash-algo
  1247. + 'sha256
  1248. + #:hash
  1249. + (sha256 (random-bytevector 100)))))
  1250. + (guard (c ((nix-protocol-error? c)
  1251. + (string-contains
  1252. + (nix-protocol-error-message c)
  1253. + "failed")))
  1254. + (build-derivations %store (list drv))
  1255. + #f))))
  1256. actual-value: 76
  1257. result: PASS
  1258.  
  1259. test-name: 'download' built-in builder, not found
  1260. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:258
  1261. source:
  1262. + (test-assert
  1263. + "'download' built-in builder, not found"
  1264. + (with-http-server
  1265. + 404
  1266. + "not found"
  1267. + (let* ((drv (derivation
  1268. + %store
  1269. + "will-never-be-found"
  1270. + "builtin:download"
  1271. + '()
  1272. + #:env-vars
  1273. + `(("url" unquote (object->string (%local-url))))
  1274. + #:hash-algo
  1275. + 'sha256
  1276. + #:hash
  1277. + (sha256 (random-bytevector 100)))))
  1278. + (guard (c ((nix-protocol-error? c)
  1279. + (string-contains
  1280. + (nix-protocol-error-message (pk c))
  1281. + "failed")))
  1282. + (build-derivations %store (list drv))
  1283. + #f))))
  1284.  
  1285. ;;; (#<condition &nix-protocol-error [message: "build of `/tmp/guix-tests/store/71h5gc8ffk417lgg84xfmwf7f1aqziz2-will-never-be-found.drv' failed" status: 1] 1f2c600>)
  1286. actual-value: 90
  1287. result: PASS
  1288.  
  1289. test-name: 'download' built-in builder, not fixed-output
  1290. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:271
  1291. source:
  1292. + (test-assert
  1293. + "'download' built-in builder, not fixed-output"
  1294. + (let* ((source (add-text-to-store %store "hello" "hi!"))
  1295. + (url (string-append "file://" source))
  1296. + (drv (derivation
  1297. + %store
  1298. + "world"
  1299. + "builtin:download"
  1300. + '()
  1301. + #:env-vars
  1302. + `(("url" unquote (object->string url))))))
  1303. + (guard (c ((nix-protocol-error? c)
  1304. + (string-contains
  1305. + (nix-protocol-error-message c)
  1306. + "failed")))
  1307. + (build-derivations %store (list drv))
  1308. + #f)))
  1309. actual-value: 76
  1310. result: PASS
  1311.  
  1312. test-name: 'download' built-in builder, check mode
  1313. loca@ build-started /tmp/guix-tests/store/qsw90yn9azg6k1abkj4xji70ir0yf43m-world.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/qs//w90yn9azg6k1abkj4xji70ir0yf43m-world.drv.bz2
  1314.  
  1315. Starting download of /tmp/guix-tests/store/609lz6b99775gdr1l4svxd4313rxkgzc-world
  1316. From http://localhost:10500/foo/bar...
  1317.  
  1318.  bar 64B 0B/s 00:00 [ ] 0.0%
  1319.  bar 64B 26KiB/s 00:00 [####################] 100.0%
  1320.  bar 64B 25KiB/s 00:00 [####################] 100.0%
  1321. @ build-succeeded /tmp/guix-tests/store/qsw90yn9azg6k1abkj4xji70ir0yf43m-world.drv -
  1322. @ build-started /tmp/guix-tests/store/qsw90yn9azg6k1abkj4xji70ir0yf43m-world.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/qs//w90yn9azg6k1abkj4xji70ir0yf43m-world.drv.bz2
  1323.  
  1324. Starting download of /tmp/guix-tests/store/1gnygpnax0l0a49ykzznjnxwam058a65-world
  1325. From http://localhost:10500/foo/bar...
  1326.  
  1327.  bar 64B 0B/s 00:00 [ ] 0.0%
  1328.  bar 64B 27KiB/s 00:00 [####################] 100.0%
  1329.  bar 64B 25KiB/s 00:00 [####################] 100.0%
  1330. warning: rewriting hashes in `/tmp/guix-tests/store/609lz6b99775gdr1l4svxd4313rxkgzc-world'; cross fingers
  1331. tion: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:284
  1332. source:
  1333. + (test-assert
  1334. + "'download' built-in builder, check mode"
  1335. + (let* ((text (random-text))
  1336. + (drv (derivation
  1337. + %store
  1338. + "world"
  1339. + "builtin:download"
  1340. + '()
  1341. + #:env-vars
  1342. + `(("url" unquote (object->string (%local-url))))
  1343. + #:hash-algo
  1344. + 'sha256
  1345. + #:hash
  1346. + (sha256 (string->utf8 text)))))
  1347. + (and (with-http-server
  1348. + 200
  1349. + text
  1350. + (build-derivations %store (list drv)))
  1351. + (with-http-server
  1352. + 200
  1353. + text
  1354. + (build-derivations
  1355. + %store
  1356. + (list drv)
  1357. + (build-mode check)))
  1358. + (string=?
  1359. + (call-with-input-file
  1360. + (derivation->output-path drv)
  1361. + get-string-all)
  1362. + text))))
  1363. actual-value: #t
  1364. result: PASS
  1365.  
  1366. test-name: derivation-name
  1367. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:303
  1368. source:
  1369. + (test-equal
  1370. + "derivation-name"
  1371. + "foo-0.0"
  1372. + (let ((drv (derivation %store "foo-0.0" %bash '())))
  1373. + (derivation-name drv)))
  1374. expected-value: "foo-0.0"
  1375. actual-value: "foo-0.0"
  1376. result: PASS
  1377.  
  1378. test-name: derivation-output-names
  1379. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:308
  1380. source:
  1381. + (test-equal
  1382. + "derivation-output-names"
  1383. + '(("out") ("bar" "chbouib"))
  1384. + (let ((drv1 (derivation %store "foo-0.0" %bash '()))
  1385. + (drv2 (derivation
  1386. + %store
  1387. + "foo-0.0"
  1388. + %bash
  1389. + '()
  1390. + #:outputs
  1391. + '("bar" "chbouib"))))
  1392. + (list (derivation-output-names drv1)
  1393. + (derivation-output-names drv2))))
  1394. expected-value: (("out") ("bar" "chbouib"))
  1395. actual-value: (("out") ("bar" "chbouib"))
  1396. result: PASS
  1397.  
  1398. test-name: offloadable-derivation?
  1399. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:316
  1400. source:
  1401. + (test-assert
  1402. + "offloadable-derivation?"
  1403. + (and (offloadable-derivation?
  1404. + (derivation %store "foo" %bash '()))
  1405. + (offloadable-derivation?
  1406. + (derivation
  1407. + %store
  1408. + "foo"
  1409. + %bash
  1410. + '()
  1411. + #:substitutable?
  1412. + #f))
  1413. + (not (offloadable-derivation?
  1414. + (derivation
  1415. + %store
  1416. + "foo"
  1417. + %bash
  1418. + '()
  1419. + #:local-build?
  1420. + #t)))))
  1421. actual-value: #t
  1422. result: PASS
  1423.  
  1424. test-name: substitutable-derivation?
  1425. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:325
  1426. source:
  1427. + (test-assert
  1428. + "substitutable-derivation?"
  1429. + (and (substitutable-derivation?
  1430. + (derivation %store "foo" %bash '()))
  1431. + (substitutable-derivation?
  1432. + (derivation
  1433. + %store
  1434. + "foo"
  1435. + %bash
  1436. + '()
  1437. + #:local-build?
  1438. + #t))
  1439. + (not (substitutable-derivation?
  1440. + (derivation
  1441. + %store
  1442. + "foo"
  1443. + %bash
  1444. + '()
  1445. + #:substitutable?
  1446. + #f)))))
  1447. actual-value: #t
  1448. result: PASS
  1449.  
  1450. test-name: fixed-output-derivation?
  1451. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:334
  1452. source:
  1453. + (test-assert
  1454. + "fixed-output-derivation?"
  1455. + (let* ((builder
  1456. + (add-text-to-store
  1457. + %store
  1458. + "my-fixed-builder.sh"
  1459. + "echo -n hello > $out"
  1460. + '()))
  1461. + (hash (sha256 (string->utf8 "hello")))
  1462. + (drv (derivation
  1463. + %store
  1464. + "fixed"
  1465. + %bash
  1466. + `(,builder)
  1467. + #:inputs
  1468. + `((,builder))
  1469. + #:hash
  1470. + hash
  1471. + #:hash-algo
  1472. + 'sha256)))
  1473. + @ build-started /tmp/guix-tests/store/k4nhzjjfk1acbcpsvm2yhxkj5jvqm59l-fixed.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/k4//nhzjjfk1acbcpsvm2yhxkj5jvqm59l-fixed.drv.bz2
  1474. @ build-succeeded /tmp/guix-tests/store/k4nhzjjfk1acbcpsvm2yhxkj5jvqm59l-fixed.drv -
  1475. @ build-started /tmp/guix-tests/store/b85qz6zrg22iilj4wcvja2w69vvzp9hy-fixed-rec.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/b8//5qz6zrg22iilj4wcvja2w69vvzp9hy-fixed-rec.drv.bz2
  1476. @ build-succeeded /tmp/guix-tests/store/b85qz6zrg22iilj4wcvja2w69vvzp9hy-fixed-rec.drv -
  1477. (fixed-output-derivation? drv)))
  1478. actual-value: #t
  1479. result: PASS
  1480.  
  1481. test-name: fixed-output derivation
  1482. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:344
  1483. source:
  1484. + (test-assert
  1485. + "fixed-output derivation"
  1486. + (let* ((builder
  1487. + (add-text-to-store
  1488. + %store
  1489. + "my-fixed-builder.sh"
  1490. + "echo -n hello > $out"
  1491. + '()))
  1492. + (hash (sha256 (string->utf8 "hello")))
  1493. + (drv (derivation
  1494. + %store
  1495. + "fixed"
  1496. + %bash
  1497. + `(,builder)
  1498. + #:inputs
  1499. + `((,builder))
  1500. + #:hash
  1501. + hash
  1502. + #:hash-algo
  1503. + 'sha256))
  1504. + (succeeded?
  1505. + (build-derivations %store (list drv))))
  1506. + (and succeeded?
  1507. + (let ((p (derivation->output-path drv)))
  1508. + (and (equal?
  1509. + (string->utf8 "hello")
  1510. + (call-with-input-file p get-bytevector-all))
  1511. + (bytevector? (query-path-hash %store p)))))))
  1512. actual-value: #t
  1513. result: PASS
  1514.  
  1515. test-name: fixed-output derivation: output paths are equal
  1516. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:359
  1517. source:
  1518. + (test-assert
  1519. + "fixed-output derivation: output paths are equal"
  1520. + (let* ((builder1
  1521. + (add-text-to-store
  1522. + %store
  1523. + "fixed-builder1.sh"
  1524. + "echo -n hello > $out"
  1525. + '()))
  1526. + (builder2
  1527. + (add-text-to-store
  1528. + %store
  1529. + "fixed-builder2.sh"
  1530. + "echo hey; echo -n hello > $out"
  1531. + '()))
  1532. + (hash (sha256 (string->utf8 "hello")))
  1533. + (drv1 (derivation
  1534. + %store
  1535. + "fixed"
  1536. + %bash
  1537. + `(,builder1)
  1538. + #:hash
  1539. + hash
  1540. + #:hash-algo
  1541. + 'sha256))
  1542. + (drv2 (derivation
  1543. + %store
  1544. + "fixed"
  1545. + %bash
  1546. + `(,builder2)
  1547. + #:hash
  1548. + hash
  1549. + #:hash-algo
  1550. + 'sha256))
  1551. + (succeeded?
  1552. + (build-derivations %store (list drv1 drv2))))
  1553. + (and succeeded?
  1554. + (equal?
  1555. + (derivation->output-path drv1)
  1556. + (derivation->output-path drv2)))))
  1557. actual-value: #t
  1558. result: PASS
  1559.  
  1560. test-name: fixed-output derivation, recursive
  1561. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:376
  1562. source:
  1563. + (test-assert
  1564. + "fixed-output derivation, recursive"
  1565. + (let* ((builder
  1566. + (add-text-to-store
  1567. + %store
  1568. + "my-fixed-builder.sh"
  1569. + "echo -n hello > $out"
  1570. + '()))
  1571. + (hash (sha256 (string->utf8 "hello")))
  1572. + (drv (derivation
  1573. + %store
  1574. + "fixed-rec"
  1575. + %bash
  1576. + `(,builder)
  1577. + #:inputs
  1578. + `((,builder))
  1579. + #:hash
  1580. + (base32
  1581. + "0sg9f58l1jj88w6pdrfdpj5x9b1zrwszk84j81zvby36q9whhhqa")
  1582. + #:hash-algo
  1583. + 'sha256
  1584. + #:recursive?
  1585. + #t))
  1586. + (succeeded?
  1587. + (build-derivations %store (list drv))))
  1588. + (and succeeded?
  1589. + (let ((p (derivation->output-path drv)))
  1590. + (and (equal?
  1591. + (string->utf8 "hello")
  1592. + (call-with-input-file p get-bytevector-all))
  1593. + (bytevector? (query-path-hash %store p)))))))
  1594. actual-value: #t
  1595. result: PASS
  1596.  
  1597. test-name: derivation with a fixed-output input
  1598. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:393
  1599. source:
  1600. + (test-assert
  1601. + "derivation with a fixed-output input"
  1602. + (let* ((builder1
  1603. + (add-text-to-store
  1604. + %store
  1605. + "fixed-builder1.sh"
  1606. + "echo -n hello > $out"
  1607. + @ build-started /tmp/guix-tests/store/2q3q6qs3wvi5d5v807lgn76ab0q4341v-final.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/2q//3q6qs3wvi5d5v807lgn76ab0q4341v-final.drv.bz2
  1608. /tmp/guix-tests/store/7bdcga4xc915pgzf524xhjk677521whr-fixed
  1609. @ build-succeeded /tmp/guix-tests/store/2q3q6qs3wvi5d5v807lgn76ab0q4341v-final.drv -
  1610. @ build-started /tmp/guix-tests/store/jgsbqbf10dnfyjmyjsphx715znbn8rhv-fixed.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/jg//sbqbf10dnfyjmyjsphx715znbn8rhv-fixed.drv.bz2
  1611. @ build-succeeded /tmp/guix-tests/store/jgsbqbf10dnfyjmyjsphx715znbn8rhv-fixed.drv -
  1612. '()))
  1613. + (builder2
  1614. + (add-text-to-store
  1615. + %store
  1616. + "fixed-builder2.sh"
  1617. + "echo hey; echo -n hello > $out"
  1618. + '()))
  1619. + (hash (sha256 (string->utf8 "hello")))
  1620. + (fixed1
  1621. + (derivation
  1622. + %store
  1623. + "fixed"
  1624. + %bash
  1625. + `(,builder1)
  1626. + #:hash
  1627. + hash
  1628. + #:hash-algo
  1629. + 'sha256))
  1630. + (fixed2
  1631. + (derivation
  1632. + %store
  1633. + "fixed"
  1634. + %bash
  1635. + `(,builder2)
  1636. + #:hash
  1637. + hash
  1638. + #:hash-algo
  1639. + 'sha256))
  1640. + (fixed-out (derivation->output-path fixed1))
  1641. + (builder3
  1642. + (add-text-to-store
  1643. + %store
  1644. + "final-builder.sh"
  1645. + "echo $in ; (read -u 3 c; echo $c) 3< $in > $out"
  1646. + '()))
  1647. + (final1
  1648. + (derivation
  1649. + %store
  1650. + "final"
  1651. + %bash
  1652. + `(,builder3)
  1653. + #:env-vars
  1654. + `(("in" unquote fixed-out))
  1655. + #:inputs
  1656. + `((,%bash) (,builder3) (,fixed1))))
  1657. + (final2
  1658. + (derivation
  1659. + %store
  1660. + "final"
  1661. + %bash
  1662. + `(,builder3)
  1663. + #:env-vars
  1664. + `(("in" unquote fixed-out))
  1665. + #:inputs
  1666. + `((,%bash) (,builder3) (,fixed2))))
  1667. + (succeeded?
  1668. + (build-derivations %store (list final1 final2))))
  1669. + (and succeeded?
  1670. + (equal?
  1671. + (derivation->output-path final1)
  1672. + (derivation->output-path final2)))))
  1673. actual-value: #t
  1674. result: PASS
  1675.  
  1676. test-name: multiple-output derivation
  1677. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:427
  1678. source:
  1679. + (test-assert
  1680. + "multiple-output derivation"
  1681. + (let* ((builder
  1682. + (add-text-to-store
  1683. + %store
  1684. + "my-fixed-builder.sh"
  1685. + "echo one > $out ; echo two > $second"
  1686. + '()))
  1687. + (drv (derivation
  1688. + %store
  1689. + "fixed"
  1690. + %bash
  1691. + `(,builder)
  1692. + #:env-vars
  1693. + '(("HOME" . "/homeless")
  1694. + ("zzz" . "Z!")
  1695. + ("AAA" . "A!"))
  1696. + #:inputs
  1697. + `((,%bash) (,builder))
  1698. + #:outputs
  1699. + '("out" "second")))
  1700. + (succeeded?
  1701. + (build-derivations %store (list drv))))
  1702. + (and succeeded?
  1703. + (let ((one (derivation->output-path drv "out"))
  1704. + (two (derivation->output-path drv "second")))
  1705. + (and (lset= equal?
  1706. + (derivation->output-paths drv)
  1707. + `(("out" unquote one) ("second" unquote two)))
  1708. + (eq? 'one (call-with-input-file one read))
  1709. + (eq? 'two (call-with-input-file two read)))))))
  1710. actual-value: #t
  1711. result: PASS
  1712.  
  1713. test-name: multiple-output derivation, non-alphabetic order
  1714. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:448
  1715. source:
  1716. + (test-assert
  1717. + "multiple-output derivation, non-alphabetic order"
  1718. + (let* ((builder
  1719. + (add-text-to-store
  1720. + %store
  1721. + "my-fixed-builder.sh"
  1722. + "echo one > $out ; echo two > $AAA"
  1723. + '()))
  1724. + (drv (derivation
  1725. + %store
  1726. + "fixed"
  1727. + %bash
  1728. + `(,builder)
  1729. + #:inputs
  1730. + `((,%bash) (,builder))
  1731. + #:outputs
  1732. + '("out" "AAA")))
  1733. + (succeeded?
  1734. + (build-derivations %store (list drv))))
  1735. + (and succeeded?
  1736. + (let ((one (derivation->output-path drv "out"))
  1737. + (two (derivation->output-path drv "AAA")))
  1738. + (and (eq? 'one (call-with-input-file one read))
  1739. + (eq? 'two (call-with-input-file two read)))))@ build-started /tmp/guix-tests/store/1s96ljyrlllvp5b91s56i5hdy2chhyw2-fixed.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/1s//96ljyrlllvp5b91s56i5hdy2chhyw2-fixed.drv.bz2
  1740. @ build-succeeded /tmp/guix-tests/store/1s96ljyrlllvp5b91s56i5hdy2chhyw2-fixed.drv -
  1741. ))
  1742. actual-value: #t
  1743. result: PASS
  1744.  
  1745. test-name: read-derivation vs. derivation
  1746. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:465
  1747. source:
  1748. + (test-assert
  1749. + "read-derivation vs. derivation"
  1750. + (let* ((sources
  1751. + (unfold
  1752. + (cut >= <> 10)
  1753. + (lambda (n)
  1754. + (add-text-to-store
  1755. + %store
  1756. + (format #f "input~a" n)
  1757. + (random-text)))
  1758. + #{1+}#
  1759. + 0))
  1760. + (inputs
  1761. + (map (lambda (file)
  1762. + (derivation
  1763. + %store
  1764. + "derivation-input"
  1765. + %bash
  1766. + '()
  1767. + #:inputs
  1768. + `((,%bash) (,file))))
  1769. + sources))
  1770. + (builder
  1771. + (add-text-to-store
  1772. + %store
  1773. + "builder.sh"
  1774. + "echo one > $one ; echo two > $two"
  1775. + '()))
  1776. + (drv (derivation
  1777. + %store
  1778. + "derivation"
  1779. + %bash
  1780. + `(,builder)
  1781. + #:inputs
  1782. + `((,%bash)
  1783. + (,builder)
  1784. + ,@(map list (append sources inputs)))
  1785. + #:outputs
  1786. + '("two" "one")))
  1787. + (drv* (call-with-input-file
  1788. + (derivation-file-name drv)
  1789. + read-derivation)))
  1790. + (equal? drv* drv)))
  1791. actual-value: #t
  1792. result: PASS
  1793.  
  1794. test-name: multiple-output derivation, derivation-path->output-path
  1795. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:492
  1796. source:
  1797. + (test-assert
  1798. + "multiple-output derivation, derivation-path->output-path"
  1799. + (let* ((builder
  1800. + (add-text-to-store
  1801. + %store
  1802. + "builder.sh"
  1803. + "echo one > $out ; echo two > $second"
  1804. + '()))
  1805. + (drv (derivation
  1806. + %store
  1807. + "multiple"
  1808. + %bash
  1809. + `(,builder)
  1810. + #:outputs
  1811. + '("out" "second")))
  1812. + (drv-file (derivation-file-name drv))
  1813. + (one (derivation->output-path drv "out"))
  1814. + (two (derivation->output-path drv "second"))
  1815. + (first (derivation-path->output-path drv-file "out"))
  1816. + (second
  1817. + (derivation-path->output-path drv-file "second")))
  1818. + (and (not (string=? one two))
  1819. + (string-suffix? "-second" two)
  1820. + (string=? first one)
  1821. + (string=? second two))))
  1822. actual-value: #t
  1823. result: PASS
  1824.  
  1825. test-name: user of multiple-output derivation
  1826. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:509
  1827. source:
  1828. + (test-assert
  1829. + "user of multiple-output derivation"
  1830. + (let* ((builder1
  1831. + (add-text-to-store
  1832. + %store
  1833. + "my-mo-builder.sh"
  1834. + "echo one > $out ; echo two > $two"
  1835. + '()))
  1836. + (mdrv (derivation
  1837. + %store
  1838. + "multiple-output"
  1839. + %bash
  1840. + `(,builder1)
  1841. + #:inputs
  1842. + `((,%bash) (,builder1))
  1843. + #:outputs
  1844. + '("out" "two")))
  1845. + (builder2
  1846. + (add-text-to-store
  1847. + %store
  1848. + "my-mo-user-builder.sh"
  1849. + "read x < $one;\n read y < $two;\n echo \"($x $y)\" > $out"
  1850. + '()))
  1851. + (udrv (derivation
  1852. + %store
  1853. + "multiple-output-user"
  1854. + %bash
  1855. + `(,builder2)
  1856. + #:env-vars
  1857. + `(("one"
  1858. + unquote
  1859. + (derivation->output-path mdrv "out"))
  1860. + ("two"
  1861. + unquote
  1862. + (derivation->output-path mdrv "two")))
  1863. + #:inputs
  1864. + `((,%bash) (,builder2) (,mdrv) (,mdrv "two")))))
  1865. + (and@ build-started /tmp/guix-tests/store/iryf8h5akyy02qd3dd9ps1ka026cyanz-multiple-output.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/ir//yf8h5akyy02qd3dd9ps1ka026cyanz-multiple-output.drv.bz2
  1866. @ build-succeeded /tmp/guix-tests/store/iryf8h5akyy02qd3dd9ps1ka026cyanz-multiple-output.drv -
  1867. @ build-started /tmp/guix-tests/store/d1iq16cxzglxwmv478pk9viic0vm0ca2-multiple-output-user.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/d1//iq16cxzglxwmv478pk9viic0vm0ca2-multiple-output-user.drv.bz2
  1868. @ build-succeeded /tmp/guix-tests/store/d1iq16cxzglxwmv478pk9viic0vm0ca2-multiple-output-user.drv -
  1869. @ build-started /tmp/guix-tests/store/mbi7gj0nlckkz5xchza6rl5vwsnybh73-closure-graphs.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/mb//i7gj0nlckkz5xchza6rl5vwsnybh73-closure-graphs.drv.bz2
  1870. @ build-succeeded /tmp/guix-tests/store/mbi7gj0nlckkz5xchza6rl5vwsnybh73-closure-graphs.drv -
  1871. @ build-started /tmp/guix-tests/store/q4wh93j1i84snrx51al231wnj4g5i99b-allowed.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/q4//wh93j1i84snrx51al231wnj4g5i99b-allowed.drv.bz2
  1872. @ build-succeeded /tmp/guix-tests/store/q4wh93j1i84snrx51al231wnj4g5i99b-allowed.drv -
  1873. (build-derivations %store (list (pk 'udrv udrv)))
  1874. + (let ((p (derivation->output-path udrv)))
  1875. + (and (valid-path? %store p)
  1876. + (equal? '(one two) (call-with-input-file p read)))))))
  1877.  
  1878. ;;; (udrv #<derivation /tmp/guix-tests/store/d1iq16cxzglxwmv478pk9viic0vm0ca2-multiple-output-user.drv => /tmp/guix-tests/store/01sib6yydjyifqm8is82l8q4xr6g84lx-multiple-output-user 284a910>)
  1879. actual-value: #t
  1880. result: PASS
  1881.  
  1882. test-name: derivation with #:references-graphs
  1883. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:542
  1884. source:
  1885. + (test-assert
  1886. + "derivation with #:references-graphs"
  1887. + (let* ((input1
  1888. + (add-text-to-store
  1889. + %store
  1890. + "foo"
  1891. + "hello"
  1892. + (list %bash)))
  1893. + (input2
  1894. + (add-text-to-store
  1895. + %store
  1896. + "bar"
  1897. + (number->string (random 7777))
  1898. + (list input1)))
  1899. + (builder
  1900. + (add-text-to-store
  1901. + %store
  1902. + "build-graph"
  1903. + (format
  1904. + #f
  1905. + "\n~a $out\n (while read l ; do echo $l ; done) < bash > $out/bash\n (while read l ; do echo $l ; done) < input1 > $out/input1\n (while read l ; do echo $l ; done) < input2 > $out/input2"
  1906. + %mkdir)
  1907. + (list %mkdir)))
  1908. + (drv (derivation
  1909. + %store
  1910. + "closure-graphs"
  1911. + %bash
  1912. + `(,builder)
  1913. + #:references-graphs
  1914. + `(("bash" unquote %bash)
  1915. + ("input1" unquote input1)
  1916. + ("input2" unquote input2))
  1917. + #:inputs
  1918. + `((,%bash) (,builder))))
  1919. + (out (derivation->output-path drv)))
  1920. + (define (deps path . deps)
  1921. + (let ((count (length deps)))
  1922. + (string-append
  1923. + path
  1924. + "\n\n"
  1925. + (number->string count)
  1926. + "\n"
  1927. + (string-join (sort deps string<?) "\n")
  1928. + (if (zero? count) "" "\n"))))
  1929. + (and (build-derivations %store (list drv))
  1930. + (equal?
  1931. + (directory-contents out get-string-all)
  1932. + `(("/bash" unquote (string-append %bash "\n\n0\n"))
  1933. + ("/input1"
  1934. + unquote
  1935. + (if (string>? input1 %bash)
  1936. + (string-append (deps %bash) (deps input1 %bash))
  1937. + (string-append (deps input1 %bash) (deps %bash))))
  1938. + ("/input2"
  1939. + unquote
  1940. + (string-concatenate
  1941. + (map cdr
  1942. + (sort (map (lambda (p d) (cons p (apply deps p d)))
  1943. + (list %bash input1 input2)
  1944. + (list '() (list %bash) (list input1)))
  1945. + (lambda (x y)
  1946. + (match x
  1947. + ((p1 . _)
  1948. + (match y
  1949. + ((p2 . _)
  1950. + (string<? p1 p2)))))))))))))))
  1951. actual-value: #t
  1952. result: PASS
  1953.  
  1954. test-name: derivation #:allowed-references, ok
  1955. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:592
  1956. source:
  1957. + (test-assert
  1958. + "derivation #:allowed-references, ok"
  1959. + (let ((drv (derivation
  1960. + %store
  1961. + "allowed"
  1962. + %bash
  1963. + '("-c" "echo hello > $out")
  1964. + #:inputs
  1965. + `((,%bash))
  1966. + #:allowed-references
  1967. + '())))
  1968. + (build-derivations %store (list drv))))
  1969. actual-value: #t
  1970. result: PASS
  1971.  
  1972. test-name: derivation #:allowed-references, not allowed
  1973. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:599
  1974. source:
  1975. + (test-assert
  1976. + "derivation #:allowed-references, not allowed"
  1977. + (let* ((txt (add-text-to-store %store "foo" "Hello, world."))
  1978. + (drv (derivation
  1979. + %store
  1980. + "disallowed"
  1981. + %bash
  1982. + @ build-started /tmp/guix-tests/store/nxjmh1ipl69ak2x01igkqr2m0qg312bs-disallowed.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/nx//jmh1ipl69ak2x01igkqr2m0qg312bs-disallowed.drv.bz2
  1983. output (`/tmp/guix-tests/store/sjsz32mf9z3nwz33v72l68x0l3m4gdy0-disallowed') is not allowed to refer to path `/tmp/guix-tests/store/bdx3lhq3793i8lz6fvldrp917ba52v1v-foo'
  1984. @ build-failed /tmp/guix-tests/store/nxjmh1ipl69ak2x01igkqr2m0qg312bs-disallowed.drv - 1 output (`/tmp/guix-tests/store/sjsz32mf9z3nwz33v72l68x0l3m4gdy0-disallowed') is not allowed to refer to path `/tmp/guix-tests/store/bdx3lhq3793i8lz6fvldrp917ba52v1v-foo'
  1985. @ build-started /tmp/guix-tests/store/gn8l3dbhnpjd4xnaq16jnigicb2yqv68-allowed.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/gn//8l3dbhnpjd4xnaq16jnigicb2yqv68-allowed.drv.bz2
  1986. @ build-succeeded /tmp/guix-tests/store/gn8l3dbhnpjd4xnaq16jnigicb2yqv68-allowed.drv -
  1987. @ build-started /tmp/guix-tests/store/wi2xv7yipw4nx5xls95bygbj7dl62ml8-disallowed.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/wi//2xv7yipw4nx5xls95bygbj7dl62ml8-disallowed.drv.bz2
  1988. output (`/tmp/guix-tests/store/x16606f0yf78viwdwhzcgvqcm8p8m1zf-disallowed') is not allowed to refer to path `/tmp/guix-tests/store/x16606f0yf78viwdwhzcgvqcm8p8m1zf-disallowed'
  1989. @ build-failed /tmp/guix-tests/store/wi2xv7yipw4nx5xls95bygbj7dl62ml8-disallowed.drv - 1 output (`/tmp/guix-tests/store/x16606f0yf78viwdwhzcgvqcm8p8m1zf-disallowed') is not allowed to refer to path `/tmp/guix-tests/store/x16606f0yf78viwdwhzcgvqcm8p8m1zf-disallowed'
  1990. @ build-started /tmp/guix-tests/store/vbnwanpq295lszpzd9x5rw8gyvzdai6f-disallowed.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/vb//nwanpq295lszpzd9x5rw8gyvzdai6f-disallowed.drv.bz2
  1991. @ build-succeeded /tmp/guix-tests/store/vbnwanpq295lszpzd9x5rw8gyvzdai6f-disallowed.drv -
  1992. @ build-started /tmp/guix-tests/store/cbw7ax1vdz8i453gibbky564xs1iggmr-disdisallowed.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/cb//w7ax1vdz8i453gibbky564xs1iggmr-disdisallowed.drv.bz2
  1993. output (`/tmp/guix-tests/store/lnay1n74vhpqndqwd4r7k439xw98kd2a-disdisallowed') is not allowed to refer to path `/tmp/guix-tests/store/bdx3lhq3793i8lz6fvldrp917ba52v1v-foo'
  1994. @ build-failed /tmp/guix-tests/store/cbw7ax1vdz8i453gibbky564xs1iggmr-disdisallowed.drv - 1 output (`/tmp/guix-tests/store/lnay1n74vhpqndqwd4r7k439xw98kd2a-disdisallowed') is not allowed to refer to path `/tmp/guix-tests/store/bdx3lhq3793i8lz6fvldrp917ba52v1v-foo'
  1995. @ build-started /tmp/guix-tests/store/vh5w3ymc94njj8mssfhsa3pj9ccs3h73-leaked-env-vars.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/vh//5w3ymc94njj8mssfhsa3pj9ccs3h73-leaked-env-vars.drv.bz2
  1996. @ build-succeeded /tmp/guix-tests/store/vh5w3ymc94njj8mssfhsa3pj9ccs3h73-leaked-env-vars.drv -
  1997. `("-c" ,(string-append "echo " txt "> $out"))
  1998. + #:inputs
  1999. + `((,%bash) (,txt))
  2000. + #:allowed-references
  2001. + '())))
  2002. + (guard (c ((nix-protocol-error? c) #t))
  2003. + (build-derivations %store (list drv))
  2004. + #f)))
  2005. actual-value: #t
  2006. result: PASS
  2007.  
  2008. test-name: derivation #:allowed-references, self allowed
  2009. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:611
  2010. source:
  2011. + (test-assert
  2012. + "derivation #:allowed-references, self allowed"
  2013. + (let ((drv (derivation
  2014. + %store
  2015. + "allowed"
  2016. + %bash
  2017. + '("-c" "echo $out > $out")
  2018. + #:inputs
  2019. + `((,%bash))
  2020. + #:allowed-references
  2021. + '("out"))))
  2022. + (build-derivations %store (list drv))))
  2023. actual-value: #t
  2024. result: PASS
  2025.  
  2026. test-name: derivation #:allowed-references, self not allowed
  2027. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:618
  2028. source:
  2029. + (test-assert
  2030. + "derivation #:allowed-references, self not allowed"
  2031. + (let ((drv (derivation
  2032. + %store
  2033. + "disallowed"
  2034. + %bash
  2035. + `("-c" ,"echo $out > $out")
  2036. + #:inputs
  2037. + `((,%bash))
  2038. + #:allowed-references
  2039. + '())))
  2040. + (guard (c ((nix-protocol-error? c) #t))
  2041. + (build-derivations %store (list drv))
  2042. + #f)))
  2043. actual-value: #t
  2044. result: PASS
  2045.  
  2046. test-name: derivation #:disallowed-references, ok
  2047. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:629
  2048. source:
  2049. + (test-assert
  2050. + "derivation #:disallowed-references, ok"
  2051. + (let ((drv (derivation
  2052. + %store
  2053. + "disallowed"
  2054. + %bash
  2055. + '("-c" "echo hello > $out")
  2056. + #:inputs
  2057. + `((,%bash))
  2058. + #:disallowed-references
  2059. + '("out"))))
  2060. + (build-derivations %store (list drv))))
  2061. actual-value: #t
  2062. result: PASS
  2063.  
  2064. test-name: derivation #:disallowed-references, not ok
  2065. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:636
  2066. source:
  2067. + (test-assert
  2068. + "derivation #:disallowed-references, not ok"
  2069. + (let* ((txt (add-text-to-store %store "foo" "Hello, world."))
  2070. + (drv (derivation
  2071. + %store
  2072. + "disdisallowed"
  2073. + %bash
  2074. + `("-c" ,(string-append "echo " txt "> $out"))
  2075. + #:inputs
  2076. + `((,%bash) (,txt))
  2077. + #:disallowed-references
  2078. + (list txt))))
  2079. + (guard (c ((nix-protocol-error? c) #t))
  2080. + (build-derivations %store (list drv))
  2081. + #f)))
  2082. actual-value: #t
  2083. result: PASS
  2084.  
  2085. test-name: derivation #:leaked-env-vars
  2086. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:651
  2087. source:
  2088. + (test-equal
  2089. + "derivation #:leaked-env-vars"
  2090. + (getenv "NIX_STATE_DIR")
  2091. + (let* ((value (getenv "NIX_STATE_DIR"))
  2092. + (drv (derivation
  2093. + %store
  2094. + "leaked-env-vars"
  2095. + %bash
  2096. + '("-c" "echo -n $NIX_STATE_DIR > $out")
  2097. + #:hash
  2098. + (sha256 (string->utf8 value))
  2099. + #:hash-algo
  2100. + 'sha256
  2101. + #:inputs
  2102. + `((,%bash))
  2103. + #:leaked-env-vars
  2104. + '("NIX_STATE_DIR"))))
  2105. + (and (build-derivations %store (list drv))
  2106. + (call-with-input-file
  2107. + (derivation->output-path drv)
  2108. + get-string-all))))
  2109. expected-value: "/tmp/guix-tests/var/13156"
  2110. actual-value: "/tmp/guix-tests/var/13156"
  2111. result: PASS
  2112.  
  2113. test-name: build derivation with coreutils
  2114. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:672
  2115. source:
  2116. + (test-assert
  2117. + "build derivation with coreutils"
  2118. + (let* ((builder
  2119. + (add-text-to-store
  2120. + %store
  2121. + "build-with-coreutils.sh"
  2122. + @ build-started /tmp/guix-tests/store/9d7mw11w6hmhnzq7ns8fl91plvyyimpj-a.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/9d//7mw11w6hmhnzq7ns8fl91plvyyimpj-a.drv.bz2
  2123. @ build-succeeded /tmp/guix-tests/store/9d7mw11w6hmhnzq7ns8fl91plvyyimpj-a.drv -
  2124. "echo $PATH ; mkdir --version ; mkdir $out ; touch $out/good"
  2125. + '()))
  2126. + (drv (derivation
  2127. + %store
  2128. + "foo"
  2129. + %bash
  2130. + `(,builder)
  2131. + #:env-vars
  2132. + `(("PATH"
  2133. + unquote
  2134. + (string-append
  2135. + (derivation->output-path %coreutils)
  2136. + "/bin")))
  2137. + #:inputs
  2138. + `((,builder) (,%coreutils))))
  2139. + (succeeded?
  2140. + (build-derivations %store (list drv))))
  2141. + (and succeeded?
  2142. + (let ((p (derivation->output-path drv)))
  2143. + (and (valid-path? %store p)
  2144. + (file-exists? (string-append p "/good")))))))
  2145. result: SKIP
  2146.  
  2147. test-name: build-expression->derivation and invalid module name
  2148. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:695
  2149. source:
  2150. + (test-equal
  2151. + "build-expression->derivation and invalid module name"
  2152. + '(file-search-error
  2153. + "guix/module/that/does/not/exist.scm")
  2154. + (guard (c ((file-search-error? c)
  2155. + (list 'file-search-error
  2156. + (file-search-error-file-name c))))
  2157. + (build-expression->derivation
  2158. + %store
  2159. + "foo"
  2160. + #t
  2161. + #:modules
  2162. + '((guix module that does not exist)))))
  2163. expected-value: (file-search-error "guix/module/that/does/not/exist.scm")
  2164. actual-value: (file-search-error "guix/module/that/does/not/exist.scm")
  2165. result: PASS
  2166.  
  2167. test-name: build-expression->derivation and builder encoding
  2168. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:704
  2169. source:
  2170. + (test-equal
  2171. + "build-expression->derivation and builder encoding"
  2172. + '("UTF-8" #t)
  2173. + (let* ((exp '(λ (α) (+ α 1)))
  2174. + (drv (build-expression->derivation %store "foo" exp)))
  2175. + (match (derivation-builder-arguments drv)
  2176. + ((... builder)
  2177. + (with-fluids
  2178. + ((%default-port-encoding "UTF-8"))
  2179. + (call-with-input-file
  2180. + builder
  2181. + (lambda (port)
  2182. + (list (port-encoding port)
  2183. + (->bool
  2184. + (string-contains
  2185. + (get-string-all port)
  2186. + "(λ (α) (+ α 1))"))))))))))
  2187. expected-value: ("UTF-8" #t)
  2188. actual-value: ("UTF-8" #t)
  2189. result: PASS
  2190.  
  2191. test-name: build-expression->derivation and derivation-prerequisites
  2192. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:718
  2193. source:
  2194. + (test-assert
  2195. + "build-expression->derivation and derivation-prerequisites"
  2196. + (let ((drv (build-expression->derivation %store "fail" #f)))
  2197. + (any (match-lambda
  2198. + (($ <derivation-input> path)
  2199. + (string=?
  2200. + path
  2201. + (derivation-file-name (%guile-for-build)))))
  2202. + (derivation-prerequisites drv))))
  2203. actual-value: #t
  2204. result: PASS
  2205.  
  2206. test-name: derivation-prerequisites and valid-derivation-input?
  2207. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:725
  2208. source:
  2209. + (test-assert
  2210. + "derivation-prerequisites and valid-derivation-input?"
  2211. + (let* ((a (build-expression->derivation
  2212. + %store
  2213. + "a"
  2214. + '(mkdir %output)))
  2215. + (b (build-expression->derivation
  2216. + %store
  2217. + "b"
  2218. + `(list ,(random-text))))
  2219. + (c (build-expression->derivation
  2220. + %store
  2221. + "c"
  2222. + `(mkdir %output)
  2223. + #:inputs
  2224. + `(("a" ,a) ("b" ,b)))))
  2225. + (build-derivations
  2226. + %store
  2227. + (list a
  2228. + (package-derivation %store %bootstrap-guile)))
  2229. + (match (derivation-prerequisites
  2230. + c
  2231. + (cut valid-derivation-input? %store <>))
  2232. + ((($ <derivation-input> file ("out")))
  2233. + (string=? file (derivation-file-name b)))
  2234. + (x (pk 'fail x #f)))))
  2235. actual-value: #t
  2236. result: PASS
  2237.  
  2238. test-n@ build-started /tmp/guix-tests/store/siz27i7vk0g1xngsx049p9vrvss9c712-goo.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/si//z27i7vk0g1xngsx049p9vrvss9c712-goo.drv.bz2
  2239. @ build-succeeded /tmp/guix-tests/store/siz27i7vk0g1xngsx049p9vrvss9c712-goo.drv -
  2240. substitute: warning: authentication and authorization of substitutes disabled!
  2241. substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
  2242. @ build-started /tmp/guix-tests/store/qfl2559affw2jnz43j8c6dx0rjngqns3-silent.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/qf//l2559affw2jnz43j8c6dx0rjngqns3-silent.drv.bz2
  2243. building of `/tmp/guix-tests/store/qfl2559affw2jnz43j8c6dx0rjngqns3-silent.drv' timed out after 1 seconds of silence
  2244. @ build-failed /tmp/guix-tests/store/qfl2559affw2jnz43j8c6dx0rjngqns3-silent.drv - timeout
  2245. killing process 13563
  2246. substitute: warning: authentication and authorization of substitutes disabled!
  2247. substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
  2248. @ build-started /tmp/guix-tests/store/6d3dbcj98inv78d5abwp41fbis15kvy6-slow.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/6d//3dbcj98inv78d5abwp41fbis15kvy6-slow.drv.bz2
  2249. building of `/tmp/guix-tests/store/6d3dbcj98inv78d5abwp41fbis15kvy6-slow.drv' timed out after 1 seconds
  2250. @ build-failed /tmp/guix-tests/store/6d3dbcj98inv78d5abwp41fbis15kvy6-slow.drv - timeout
  2251. killing process 13585
  2252. ame: build-expression->derivation without inputs
  2253. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:743
  2254. source:
  2255. + (test-assert
  2256. + "build-expression->derivation without inputs"
  2257. + (let* ((builder
  2258. + '(begin
  2259. + (mkdir %output)
  2260. + (call-with-output-file
  2261. + (string-append %output "/test")
  2262. + (lambda (p) (display '(hello guix) p)))))
  2263. + (drv (build-expression->derivation
  2264. + %store
  2265. + "goo"
  2266. + builder))
  2267. + (succeeded?
  2268. + (build-derivations %store (list drv))))
  2269. + (and succeeded?
  2270. + (let ((p (derivation->output-path drv)))
  2271. + (equal?
  2272. + '(hello guix)
  2273. + (call-with-input-file
  2274. + (string-append p "/test")
  2275. + read))))))
  2276. actual-value: #t
  2277. result: PASS
  2278.  
  2279. test-name: build-expression->derivation and max-silent-time
  2280. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:756
  2281. source:
  2282. + (test-assert
  2283. + "build-expression->derivation and max-silent-time"
  2284. + (let* ((store (let ((s (open-connection)))
  2285. + (set-build-options s #:max-silent-time 1)
  2286. + s))
  2287. + (builder '(begin (sleep 100) (mkdir %output) #t))
  2288. + (drv (build-expression->derivation
  2289. + store
  2290. + "silent"
  2291. + builder))
  2292. + (out-path (derivation->output-path drv)))
  2293. + (guard (c ((nix-protocol-error? c)
  2294. + (and (string-contains
  2295. + (nix-protocol-error-message c)
  2296. + "failed")
  2297. + (not (valid-path? store out-path)))))
  2298. + (build-derivations store (list drv))
  2299. + #f)))
  2300. actual-value: #t
  2301. result: PASS
  2302.  
  2303. test-name: build-expression->derivation and timeout
  2304. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:770
  2305. source:
  2306. + (test-assert
  2307. + "build-expression->derivation and timeout"
  2308. + (let* ((store (let ((s (open-connection)))
  2309. + (set-build-options s #:timeout 1)
  2310. + s))
  2311. + (builder '(begin (sleep 100) (mkdir %output) #t))
  2312. + (drv (build-expression->derivation
  2313. + store
  2314. + "slow"
  2315. + builder))
  2316. + (out-path (derivation->output-path drv)))
  2317. + (guard (c ((nix-protocol-error? c)
  2318. + (and (string-contains
  2319. + (nix-protocol-error-message c)
  2320. + "failed")
  2321. + (not (valid-path? store out-path)))))
  2322. + (build-derivations store (list drv))
  2323. + #f)))
  2324. actual-value: #t
  2325. result: PASS
  2326.  
  2327. test-name: build-expression->derivation and derivation-prerequisites-to-build
  2328. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:784
  2329. source:
  2330. + (test-assert
  2331. + "build-expression->derivation and derivation-prerequisites-to-build"
  2332. + (let ((drv (build-expression->derivation %store "fail" #f)))
  2333. + (null? (derivation-prerequisites-to-build %store drv))))
  2334. actual-value: #t
  2335. result: PASS
  2336.  
  2337. test-name: derivation-prerequisites-to-build when outputs already present
  2338. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:790
  2339. source:
  2340. + (test-assert
  2341. + "derivation-prerequisites-to-build when outputs already present"
  2342. + (let* ((builder '(begin (mkdir %output) #t))
  2343. + (input-drv
  2344. + (build-expression->derivation
  2345. + %store
  2346. + "input"
  2347. + builder))
  2348. + (input-path
  2349. + (derivation-output-path
  2350. + (assoc-ref (derivation-outputs input-drv) "out")))
  2351. + (drv (build-expression->derivation
  2352. + %store
  2353. + "something"
  2354. + builder
  2355. + #:inputs
  2356. + `(("i" ,input-drv))))
  2357. + (output (derivation->output-path drv)))
  2358. + (when (valid-path? %store input-path)
  2359. + (delete-paths %store (list input-path)))
  2360. + (when (valid-path? %store output)
  2361. + @ build-started /tmp/guix-tests/store/cbc4v7vanc01h71qnngr0k35kvvvik9v-input.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/cb//c4v7vanc01h71qnngr0k35kvvvik9v-input.drv.bz2
  2362. @ build-succeeded /tmp/guix-tests/store/cbc4v7vanc01h71qnngr0k35kvvvik9v-input.drv -
  2363. @ build-started /tmp/guix-tests/store/5ykgrvz6nsm8rz51hww0wfb7kj83s5x7-something.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/5y//kgrvz6nsm8rz51hww0wfb7kj83s5x7-something.drv.bz2
  2364. @ build-succeeded /tmp/guix-tests/store/5ykgrvz6nsm8rz51hww0wfb7kj83s5x7-something.drv -
  2365. finding garbage collector roots...
  2366. removing stale temporary roots file `/tmp/guix-tests/var/13156/temproots/13178'
  2367. deleting unused links...
  2368. substitute: warning: authentication and authorization of substitutes disabled!
  2369. substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
  2370. substitute: warning: authentication and authorization of substitutes disabled!
  2371. substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
  2372. (delete-paths %store (list output)))
  2373. + (and (equal?
  2374. + (map derivation-input-path
  2375. + (derivation-prerequisites-to-build %store drv))
  2376. + (list (derivation-file-name input-drv)))
  2377. + (build-derivations %store (list drv))
  2378. + (delete-paths %store (list input-path))
  2379. + (not (valid-path? %store input-path))
  2380. + (null? (derivation-prerequisites-to-build %store drv)))))
  2381. actual-value: #t
  2382. result: PASS
  2383.  
  2384. test-name: derivation-prerequisites-to-build and substitutes
  2385. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:819
  2386. source:
  2387. + (test-assert
  2388. + "derivation-prerequisites-to-build and substitutes"
  2389. + (let* ((store (open-connection))
  2390. + (drv (build-expression->derivation
  2391. + store
  2392. + "prereq-subst"
  2393. + (random 1000)))
  2394. + (output (derivation->output-path drv)))
  2395. + (set-build-options
  2396. + store
  2397. + #:use-substitutes?
  2398. + #t
  2399. + #:substitute-urls
  2400. + (%test-substitute-urls))
  2401. + (with-derivation-narinfo
  2402. + drv
  2403. + (let-values
  2404. + (((build download)
  2405. + (derivation-prerequisites-to-build store drv))
  2406. + ((build* download*)
  2407. + (derivation-prerequisites-to-build
  2408. + store
  2409. + drv
  2410. + #:substitutable-info
  2411. + (const #f))))
  2412. + (and (null? build)
  2413. + (equal?
  2414. + (map substitutable-path download)
  2415. + (list output))
  2416. + (null? download*)
  2417. + (null? build*))))))
  2418. actual-value: #t
  2419. result: PASS
  2420.  
  2421. test-name: derivation-prerequisites-to-build and substitutes, non-substitutable build
  2422. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:841
  2423. source:
  2424. + (test-assert
  2425. + "derivation-prerequisites-to-build and substitutes, non-substitutable build"
  2426. + (let* ((store (open-connection))
  2427. + (drv (build-expression->derivation
  2428. + store
  2429. + "prereq-no-subst"
  2430. + (random 1000)
  2431. + #:substitutable?
  2432. + #f))
  2433. + (output (derivation->output-path drv)))
  2434. + (set-build-options
  2435. + store
  2436. + #:use-substitutes?
  2437. + #t
  2438. + #:substitute-urls
  2439. + (%test-substitute-urls))
  2440. + (with-derivation-narinfo
  2441. + drv
  2442. + (let-values
  2443. + (((build download)
  2444. + (derivation-prerequisites-to-build store drv)))
  2445. + (and (null? download)
  2446. + (match build
  2447. + (((? derivation-input? input))
  2448. + (string=?
  2449. + (derivation-input-path input)
  2450. + (derivation-file-name drv)))))))))
  2451. actual-value: #t
  2452. result: PASS
  2453.  
  2454. test-name: derivation-prerequisites-to-build and substitutes, local build
  2455. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:863
  2456. source:
  2457. + (test-assert
  2458. + "derivation-prerequisites-to-build and substitutes, local build"
  2459. + (with-store
  2460. + store
  2461. + (let* ((drv (build-expression->derivation
  2462. + store
  2463. + "prereq-subst-local"
  2464. + (random 1000)
  2465. + #:local-build?
  2466. + #t))
  2467. + (output (derivation->output-path drv)))
  2468. + (set-build-options
  2469. + store
  2470. + #:use-substitutes?
  2471. + #t
  2472. + #:substitute-urls
  2473. + (%test-substitute-urls))
  2474. + (with-derivation-narinfo
  2475. + drv
  2476. + (let-values
  2477. + (((build download)
  2478. + (derivation-prerequisites-to-build store drv)))
  2479. + (and (null? build)
  2480. + (match download
  2481. + (((= substitutable-path item))
  2482. + (string=? item (derivation->output-path drv))))))))))
  2483. actual-value: #t
  2484. result: PASS
  2485.  
  2486. test-name: derivation-prerequisites-to-build in 'check' mode
  2487. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:885
  2488. source:
  2489. + (test-assert
  2490. + "derivation-prerequisites-to-build in 'check' mode"
  2491. + (with-store
  2492. + store
  2493. substitute: warning: authentication and authorization of substitutes disabled!
  2494. substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
  2495. building path(s) `/tmp/guix-tests/store/dh8pf62a1939yphzjfrqdkh2mwb88mqv-dep'
  2496. building path(s) `/tmp/guix-tests/store/977amc4ad5bqfjznilw96ldry9ddmvq9-to-check'
  2497. finding garbage collector roots...
  2498. removing stale temporary roots file `/tmp/guix-tests/var/13156/temproots/13631'
  2499. deleting `/tmp/guix-tests/store/dh8pf62a1939yphzjfrqdkh2mwb88mqv-dep'
  2500. deleting `/tmp/guix-tests/store/trash'
  2501. deleting unused links...
  2502. note: currently hard linking saves 0.14 MiB
  2503. @ build-started /tmp/guix-tests/store/kvz3csrwpha43pk3mvhwsrzw2yz5qviv-fail.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/kv//z3csrwpha43pk3mvhwsrzw2yz5qviv-fail.drv.bz2
  2504. builder for `/tmp/guix-tests/store/kvz3csrwpha43pk3mvhwsrzw2yz5qviv-fail.drv' failed with exit code 1
  2505. @ build-failed /tmp/guix-tests/store/kvz3csrwpha43pk3mvhwsrzw2yz5qviv-fail.drv - 1 builder for `/tmp/guix-tests/store/kvz3csrwpha43pk3mvhwsrzw2yz5qviv-fail.drv' failed with exit code 1
  2506. + (let* ((dep (build-expression->derivation
  2507. + store
  2508. + "dep"
  2509. + `(begin ,(random-text) (mkdir %output))))
  2510. + (drv (build-expression->derivation
  2511. + store
  2512. + "to-check"
  2513. + '(mkdir %output)
  2514. + #:inputs
  2515. + `(("dep" ,dep)))))
  2516. + (build-derivations store (list drv))
  2517. + (delete-paths
  2518. + store
  2519. + (list (derivation->output-path dep)))
  2520. + (and (null? (derivation-prerequisites-to-build store drv))
  2521. + (match (derivation-prerequisites-to-build
  2522. + store
  2523. + drv
  2524. + #:mode
  2525. + (build-mode check))
  2526. + ((input)
  2527. + (string=?
  2528. + (derivation-input-path input)
  2529. + (derivation-file-name dep))))))))
  2530. actual-value: #t
  2531. result: PASS
  2532.  
  2533. test-name: substitution-oracle and #:substitute? #f
  2534. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:905
  2535. source:
  2536. + (test-assert
  2537. + "substitution-oracle and #:substitute? #f"
  2538. + (with-store
  2539. + store
  2540. + (let* ((dep (build-expression->derivation
  2541. + store
  2542. + "dep"
  2543. + `(begin ,(random-text) (mkdir %output))))
  2544. + (drv (build-expression->derivation
  2545. + store
  2546. + "not-subst"
  2547. + `(begin ,(random-text) (mkdir %output))
  2548. + #:substitutable?
  2549. + #f
  2550. + #:inputs
  2551. + `(("dep" ,dep))))
  2552. + (query #f))
  2553. + (define (record-substitutable-path-query store paths)
  2554. + (when query (error "already called!" query))
  2555. + (set! query paths)
  2556. + '())
  2557. + (mock ((guix store)
  2558. + substitutable-path-info
  2559. + record-substitutable-path-query)
  2560. + (let ((pred (substitution-oracle store (list drv))))
  2561. + (pred (derivation->output-path drv))))
  2562. + (equal?
  2563. + (pk 'query query)
  2564. + (list (derivation->output-path dep))))))
  2565.  
  2566. ;;; (query ("/tmp/guix-tests/store/39y3i06igd292n0ma3d9f8fx4i1v177h-dep"))
  2567. actual-value: #t
  2568. result: PASS
  2569.  
  2570. test-name: build-expression->derivation with expression returning #f
  2571. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:934
  2572. source:
  2573. + (test-assert
  2574. + "build-expression->derivation with expression returning #f"
  2575. + (let* ((builder '(begin (mkdir %output) #f))
  2576. + (drv (build-expression->derivation
  2577. + %store
  2578. + "fail"
  2579. + builder))
  2580. + (out-path (derivation->output-path drv)))
  2581. + (guard (c ((nix-protocol-error? c)
  2582. + (and (string-match
  2583. + "build .* failed"
  2584. + (nix-protocol-error-message c))
  2585. + (not (valid-path? %store out-path)))))
  2586. + (build-derivations %store (list drv))
  2587. + #f)))
  2588. actual-value: #t
  2589. result: PASS
  2590.  
  2591. test-name: build-expression->derivation with two outputs
  2592. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:949
  2593. source:
  2594. + (test-assert
  2595. + "build-expression->derivation with two outputs"
  2596. + (let* ((builder
  2597. + '(begin
  2598. + (call-with-output-file
  2599. + (assoc-ref %outputs "out")
  2600. + (lambda (p) (display '(hello) p)))
  2601. + (call-with-output-file
  2602. + (assoc-ref %outputs "second")
  2603. + (lambda (p) (display '(world) p)))))
  2604. + (drv (build-expression->derivation
  2605. + %store
  2606. + "double"
  2607. + builder
  2608. + #:outputs
  2609. + '("out" "second")))
  2610. + (succeeded?
  2611. + (build-derivations %store (list drv))))
  2612. + (and succeeded?
  2613. + (let ((one (derivation->output-path drv))
  2614. + (two (derivation->output-path drv "second")))
  2615. + (and (equal? '(hello) (call-with-input-file one read))
  2616. + @ build-started /tmp/guix-tests/store/v3d6ak4h46illn6yqkid6fsid3i749yy-double.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/v3//d6ak4h46illn6yqkid6fsid3i749yy-double.drv.bz2
  2617. @ build-succeeded /tmp/guix-tests/store/v3d6ak4h46illn6yqkid6fsid3i749yy-double.drv -
  2618. @ build-started /tmp/guix-tests/store/kgv4vhnck8n97ragpd33cdvfpifzmmq5-module-import.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/kg//v4vhnck8n97ragpd33cdvfpifzmmq5-module-import.drv.bz2
  2619. @ build-succeeded /tmp/guix-tests/store/kgv4vhnck8n97ragpd33cdvfpifzmmq5-module-import.drv -
  2620. @ build-started /tmp/guix-tests/store/jrinwx604040avwnza9k60vs267vdl7n-module-import-compiled.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/jr//inwx604040avwnza9k60vs267vdl7n-module-import-compiled.drv.bz2
  2621. @ build-succeeded /tmp/guix-tests/store/jrinwx604040avwnza9k60vs267vdl7n-module-import-compiled.drv -
  2622. @ build-started /tmp/guix-tests/store/ckb6f405qgjl1spgx1jnk6jpfil49iq0-test-with-modules.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/ck//b6f405qgjl1spgx1jnk6jpfil49iq0-test-with-modules.drv.bz2
  2623. @ build-succeeded /tmp/guix-tests/store/ckb6f405qgjl1spgx1jnk6jpfil49iq0-test-with-modules.drv -
  2624. (equal? '(world) (call-with-input-file two read)))))))
  2625. actual-value: #t
  2626. result: PASS
  2627.  
  2628. test-name: build-expression->derivation with one input
  2629. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:968
  2630. source:
  2631. + (test-assert
  2632. + "build-expression->derivation with one input"
  2633. + (let* ((builder
  2634. + '(call-with-output-file
  2635. + %output
  2636. + (lambda (p)
  2637. + (let ((cu (assoc-ref %build-inputs "cu")))
  2638. + (close 1)
  2639. + (dup2 (port->fdes p) 1)
  2640. + (execl (string-append cu "/bin/uname")
  2641. + "uname"
  2642. + "-a")))))
  2643. + (drv (build-expression->derivation
  2644. + %store
  2645. + "uname"
  2646. + builder
  2647. + #:inputs
  2648. + `(("cu" ,%coreutils))))
  2649. + (succeeded?
  2650. + (build-derivations %store (list drv))))
  2651. + (and succeeded?
  2652. + (let ((p (derivation->output-path drv)))
  2653. + (string-contains
  2654. + (call-with-input-file p read-line)
  2655. + "GNU")))))
  2656. result: SKIP
  2657.  
  2658. test-name: build-expression->derivation with modules
  2659. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:984
  2660. source:
  2661. + (test-assert
  2662. + "build-expression->derivation with modules"
  2663. + (let* ((builder
  2664. + `(begin
  2665. + (use-modules (guix build utils))
  2666. + (let ((out (assoc-ref %outputs "out")))
  2667. + (mkdir-p (string-append out "/guile/guix/nix"))
  2668. + #t)))
  2669. + (drv (build-expression->derivation
  2670. + %store
  2671. + "test-with-modules"
  2672. + builder
  2673. + #:modules
  2674. + '((guix build utils)))))
  2675. + (and (build-derivations %store (list drv))
  2676. + (let* ((p (derivation->output-path drv))
  2677. + (s (stat (string-append p "/guile/guix/nix"))))
  2678. + (eq? (stat:type s) 'directory)))))
  2679. actual-value: #t
  2680. result: PASS
  2681.  
  2682. test-name: build-expression->derivation: same fixed-output path
  2683. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:999
  2684. source:
  2685. + (test-assert
  2686. + "build-expression->derivation: same fixed-output path"
  2687. + (let* ((builder1
  2688. + '(call-with-output-file
  2689. + %output
  2690. + (lambda (p) (write "hello" p))))
  2691. + (builder2
  2692. + '(call-with-output-file
  2693. + (pk 'difference-here! %output)
  2694. + (lambda (p) (write "hello" p))))
  2695. + (hash (sha256 (string->utf8 "hello")))
  2696. + (input1
  2697. + (build-expression->derivation
  2698. + %store
  2699. + "fixed"
  2700. + builder1
  2701. + #:hash
  2702. + hash
  2703. + #:hash-algo
  2704. + 'sha256))
  2705. + (input2
  2706. + (build-expression->derivation
  2707. + %store
  2708. + "fixed"
  2709. + builder2
  2710. + #:hash
  2711. + hash
  2712. + #:hash-algo
  2713. + 'sha256))
  2714. + (succeeded?
  2715. + (build-derivations %store (list input1 input2))))
  2716. + (and succeeded?
  2717. + (not (string=?
  2718. + (derivation-file-name input1)
  2719. + (derivation-file-name input2)))
  2720. + (string=?
  2721. + (derivation->output-path input1)
  2722. + (derivation->output-path input2)))))
  2723. actual-value: #t
  2724. result: PASS
  2725.  
  2726. test-name: build-expression->derivation with a fixed-output input
  2727. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:1020
  2728. source:
  2729. + (test-assert
  2730. + "build-expression->derivation with a fixed-output input"
  2731. + (let* ((builder1
  2732. + '(call-with-output-file
  2733. + %output
  2734. + (lambda (p) (write "hello" p))))
  2735. + (builder2
  2736. + '(call-with-output-file
  2737. + (pk 'difference-here! %output)
  2738. + (lambda (p) (write "hello" p))))
  2739. + (hash (sha256 (string->utf8 "hello")))
  2740. + (input1
  2741. + (build-expression->derivation
  2742. + @ build-started /tmp/guix-tests/store/8dkhnfprkjn6p5hh6abjbvhcypif1djn-final.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/8d//khnfprkjn6p5hh6abjbvhcypif1djn-final.drv.bz2
  2743. @ build-succeeded /tmp/guix-tests/store/8dkhnfprkjn6p5hh6abjbvhcypif1djn-final.drv -
  2744. @ build-started /tmp/guix-tests/store/q9ml6iwz4b8jffgd6l3jkllm0lm9g7aw-fixed-rec.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/q9//ml6iwz4b8jffgd6l3jkllm0lm9g7aw-fixed-rec.drv.bz2
  2745. @ build-succeeded /tmp/guix-tests/store/q9ml6iwz4b8jffgd6l3jkllm0lm9g7aw-fixed-rec.drv -
  2746. %store
  2747. + "fixed"
  2748. + builder1
  2749. + #:hash
  2750. + hash
  2751. + #:hash-algo
  2752. + 'sha256))
  2753. + (input2
  2754. + (build-expression->derivation
  2755. + %store
  2756. + "fixed"
  2757. + builder2
  2758. + #:hash
  2759. + hash
  2760. + #:hash-algo
  2761. + 'sha256))
  2762. + (builder3
  2763. + '(let ((input (assoc-ref %build-inputs "input")))
  2764. + (call-with-output-file
  2765. + %output
  2766. + (lambda (out)
  2767. + (format #f "My input is ~a.~%" input)))))
  2768. + (final1
  2769. + (build-expression->derivation
  2770. + %store
  2771. + "final"
  2772. + builder3
  2773. + #:inputs
  2774. + `(("input" ,input1))))
  2775. + (final2
  2776. + (build-expression->derivation
  2777. + %store
  2778. + "final"
  2779. + builder3
  2780. + #:inputs
  2781. + `(("input" ,input2)))))
  2782. + (and (string=?
  2783. + (derivation->output-path final1)
  2784. + (derivation->output-path final2))
  2785. + (string=?
  2786. + (derivation->output-path final1)
  2787. + (derivation-path->output-path
  2788. + (derivation-file-name final1)))
  2789. + (build-derivations %store (list final1 final2)))))
  2790. actual-value: #t
  2791. result: PASS
  2792.  
  2793. test-name: build-expression->derivation produces recursive fixed-output
  2794. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:1051
  2795. source:
  2796. + (test-assert
  2797. + "build-expression->derivation produces recursive fixed-output"
  2798. + (let* ((builder
  2799. + '(begin
  2800. + (use-modules (srfi srfi-26))
  2801. + (mkdir %output)
  2802. + (chdir %output)
  2803. + (call-with-output-file
  2804. + "exe"
  2805. + (cut display "executable" <>))
  2806. + (chmod "exe" 511)
  2807. + (symlink "exe" "symlink")
  2808. + (mkdir "subdir")))
  2809. + (drv (build-expression->derivation
  2810. + %store
  2811. + "fixed-rec"
  2812. + builder
  2813. + #:hash-algo
  2814. + 'sha256
  2815. + #:hash
  2816. + (base32
  2817. + "10k1lw41wyrjf9mxydi0is5nkpynlsvgslinics4ppir13g7d74p")
  2818. + #:recursive?
  2819. + #t)))
  2820. + (and (build-derivations %store (list drv))
  2821. + (let* ((dir (derivation->output-path drv))
  2822. + (exe (string-append dir "/exe"))
  2823. + (link (string-append dir "/symlink"))
  2824. + (subdir (string-append dir "/subdir")))
  2825. + (and (executable-file? exe)
  2826. + (string=?
  2827. + "executable"
  2828. + (call-with-input-file exe get-string-all))
  2829. + (string=? "exe" (readlink link))
  2830. + (file-is-directory? subdir))))))
  2831. actual-value: #t
  2832. result: PASS
  2833.  
  2834. test-name: build-expression->derivation uses recursive fixed-output
  2835. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:1077
  2836. source:
  2837. + (test-assert
  2838. + "build-expression->derivation uses recursive fixed-output"
  2839. + (let* ((builder
  2840. + '(call-with-output-file
  2841. + %output
  2842. + (lambda (port) (display "hello" port))))
  2843. + (fixed (build-expression->derivation
  2844. + %store
  2845. + "small-fixed-rec"
  2846. + builder
  2847. + #:hash-algo
  2848. + 'sha256
  2849. + #:hash
  2850. + (base32
  2851. + "0sg9f58l1jj88w6pdrfdpj5x9b1zrwszk84j81zvby36q9whhhqa")
  2852. + #:recursive?
  2853. + #t))
  2854. + (in (derivation->output-path fixed))
  2855. + (builder
  2856. + `(begin
  2857. + (mkdir %output)
  2858. + (chdir %output)
  2859. + (symlink ,in "symlink")))
  2860. + (drv (build-expression->derivation
  2861. + %store
  2862. + "fixed-rec-user"
  2863. + builder
  2864. + #:inputs
  2865. + `(("fixed" ,fixed)))))
  2866. + (@ build-started /tmp/guix-tests/store/9a2z4zz7sraa065z4fa12g9sg6mlhkj5-small-fixed-rec.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/9a//2z4zz7sraa065z4fa12g9sg6mlhkj5-small-fixed-rec.drv.bz2
  2867. @ build-succeeded /tmp/guix-tests/store/9a2z4zz7sraa065z4fa12g9sg6mlhkj5-small-fixed-rec.drv -
  2868. @ build-started /tmp/guix-tests/store/aakag457jih22azd1mkhcvnlnv9115ky-fixed-rec-user.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/aa//kag457jih22azd1mkhcvnlnv9115ky-fixed-rec-user.drv.bz2
  2869. @ build-succeeded /tmp/guix-tests/store/aakag457jih22azd1mkhcvnlnv9115ky-fixed-rec-user.drv -
  2870. @ build-started /tmp/guix-tests/store/33xr95dfil5qna3dxlzlzyvrlw9nycn0-references-graphs.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/33//xr95dfil5qna3dxlzlzyvrlw9nycn0-references-graphs.drv.bz2
  2871. @ build-succeeded /tmp/guix-tests/store/33xr95dfil5qna3dxlzlzyvrlw9nycn0-references-graphs.drv -
  2872. @ build-started /tmp/guix-tests/store/ajqc0l1rbgd83hdid7ain2wr0wiwvvh4-original-drv2.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/aj//qc0l1rbgd83hdid7ain2wr0wiwvvh4-original-drv2.drv.bz2
  2873. @ build-succeeded /tmp/guix-tests/store/ajqc0l1rbgd83hdid7ain2wr0wiwvvh4-original-drv2.drv -
  2874. @ build-started /tmp/guix-tests/store/vks5g20fjlmi5daip35rrd34869fnql9-drv-to-remap.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/vk//s5g20fjlmi5daip35rrd34869fnql9-drv-to-remap.drv.bz2
  2875. @ build-succeeded /tmp/guix-tests/store/vks5g20fjlmi5daip35rrd34869fnql9-drv-to-remap.drv -
  2876. and (build-derivations %store (list drv))
  2877. + (let ((out (derivation->output-path drv)))
  2878. + (string=?
  2879. + (readlink (string-append out "/symlink"))
  2880. + in)))))
  2881. actual-value: #t
  2882. result: PASS
  2883.  
  2884. test-name: build-expression->derivation with #:references-graphs
  2885. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:1099
  2886. source:
  2887. + (test-assert
  2888. + "build-expression->derivation with #:references-graphs"
  2889. + (let* ((input (add-text-to-store
  2890. + %store
  2891. + "foo"
  2892. + "hello"
  2893. + (list %bash %mkdir)))
  2894. + (builder '(copy-file "input" %output))
  2895. + (drv (build-expression->derivation
  2896. + %store
  2897. + "references-graphs"
  2898. + builder
  2899. + #:references-graphs
  2900. + `(("input" unquote input))))
  2901. + (out (derivation->output-path drv)))
  2902. + (define (deps path . deps)
  2903. + (let ((count (length deps)))
  2904. + (string-append
  2905. + path
  2906. + "\n\n"
  2907. + (number->string count)
  2908. + "\n"
  2909. + (string-join (sort deps string<?) "\n")
  2910. + (if (zero? count) "" "\n"))))
  2911. + (and (build-derivations %store (list drv))
  2912. + (equal?
  2913. + (call-with-input-file out get-string-all)
  2914. + (string-concatenate
  2915. + (map cdr
  2916. + (sort (map (lambda (p d) (cons p (apply deps p d)))
  2917. + (list input %bash %mkdir)
  2918. + (list (list %bash %mkdir) '() '()))
  2919. + (lambda (x y)
  2920. + (match x
  2921. + ((p1 . _)
  2922. + (match y
  2923. + ((p2 . _)
  2924. + (string<? p1 p2)))))))))))))
  2925. actual-value: #t
  2926. result: PASS
  2927.  
  2928. test-name: map-derivation
  2929. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:1130
  2930. source:
  2931. + (test-equal
  2932. + "map-derivation"
  2933. + "hello"
  2934. + (let* ((joke (package-derivation %store guile-1.8))
  2935. + (good (package-derivation %store %bootstrap-guile))
  2936. + (drv1 (build-expression->derivation
  2937. + %store
  2938. + "original-drv1"
  2939. + #f
  2940. + #:guile-for-build
  2941. + joke))
  2942. + (drv2 (build-expression->derivation
  2943. + %store
  2944. + "original-drv2"
  2945. + '(call-with-output-file
  2946. + %output
  2947. + (lambda (p) (display "hello" p)))))
  2948. + (drv3 (build-expression->derivation
  2949. + %store
  2950. + "drv-to-remap"
  2951. + '(let ((in (assoc-ref %build-inputs "in")))
  2952. + (copy-file in %output))
  2953. + #:inputs
  2954. + `(("in" ,drv1))
  2955. + #:guile-for-build
  2956. + joke))
  2957. + (drv4 (map-derivation
  2958. + %store
  2959. + drv3
  2960. + `((,drv1 unquote drv2) (,joke unquote good))))
  2961. + (out (derivation->output-path drv4)))
  2962. + (and (build-derivations
  2963. + %store
  2964. + (list (pk 'remapped drv4)))
  2965. + (call-with-input-file out get-string-all))))
  2966.  
  2967. ;;; (remapped #<derivation /tmp/guix-tests/store/vks5g20fjlmi5daip35rrd34869fnql9-drv-to-remap.drv => /tmp/guix-tests/store/f8prvykpaplzl0gw9qykipviq3vil9ws-drv-to-remap 1ba0410>)
  2968. expected-value: "hello"
  2969. actual-value: "hello"
  2970. result: PASS
  2971.  
  2972. test-name: map-derivation, sources
  2973. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/derivations.scm:1153
  2974. source:
  2975. + (test-equal
  2976. + "map-derivation, sources"
  2977. + "hello"
  2978. + (let* ((script1
  2979. + (add-text-to-store %store "fail.sh" "exit 1"))
  2980. + (script2
  2981. + (add-text-to-store
  2982. + %store
  2983. + "hi.sh"
  2984. + "echo -n hello > $out"))
  2985. + (bash-full
  2986. + (package-derivation
  2987. + %store
  2988. + (@ (gnu packages bash) bash)))
  2989. @ build-started /tmp/guix-tests/store/3b1r9qvgpcami02g66iqgnbfm3xxsx95-drv-to-remap.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/3b//1r9qvgpcami02g66iqgnbfm3xxsx95-drv-to-remap.drv.bz2
  2990. @ build-succeeded /tmp/guix-tests/store/3b1r9qvgpcami02g66iqgnbfm3xxsx95-drv-to-remap.drv -
  2991. + (drv1 (derivation
  2992. + %store
  2993. + "drv-to-remap"
  2994. + (derivation->output-path bash-full)
  2995. + `("-e" ,script1)
  2996. + #:inputs
  2997. + `((,bash-full) (,script1))))
  2998. + (drv2 (map-derivation
  2999. + %store
  3000. + drv1
  3001. + `((,bash-full unquote %bash)
  3002. + (,script1 unquote script2))))
  3003. + (out (derivation->output-path drv2)))
  3004. + (and (build-derivations
  3005. + %store
  3006. + (list (pk 'remapped* drv2)))
  3007. + (call-with-input-file out get-string-all))))
  3008.  
  3009. ;;; (remapped* #<derivation /tmp/guix-tests/store/3b1r9qvgpcami02g66iqgnbfm3xxsx95-drv-to-remap.drv => /tmp/guix-tests/store/d16rf6zch2w23cn1v1gm8r3w12pc7y2m-drv-to-remap 99c0f0>)
  3010. expected-value: "hello"
  3011. actual-value: "hello"
  3012. result: PASS
  3013.  
  3014.  
  3015. SKIP: tests/packages
  3016. ====================
  3017.  
  3018. test-name: printer with location
  3019. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:69
  3020. source:
  3021. + (test-assert
  3022. + "printer with location"
  3023. + (string-match
  3024. + "^#<package foo@0 foo.scm:42 [[:xdigit:]]+>$"
  3025. + (with-output-to-string
  3026. + (lambda ()
  3027. + (write (dummy-package
  3028. + "foo"
  3029. + (location (make-location "foo.scm" 42 7))))))))
  3030. actual-value: #("#<package foo@0 foo.scm:42 1a8d0c0>" (0 . 35))
  3031. result: PASS
  3032.  
  3033. test-name: printer without location
  3034. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:77
  3035. source:
  3036. + (test-assert
  3037. + "printer without location"
  3038. + (string-match
  3039. + "^#<package foo@0 [[:xdigit:]]+>$"
  3040. + (with-output-to-string
  3041. + (lambda ()
  3042. + (write (dummy-package "foo" (location #f)))))))
  3043. actual-value: #("#<package foo@0 1bacf00>" (0 . 24))
  3044. result: PASS
  3045.  
  3046. test-name: hidden-package
  3047. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:84
  3048. source:
  3049. + (test-assert
  3050. + "hidden-package"
  3051. + (and (hidden-package?
  3052. + (hidden-package (dummy-package "foo")))
  3053. + (not (hidden-package? (dummy-package "foo")))))
  3054. actual-value: #t
  3055. result: PASS
  3056.  
  3057. test-name: package-superseded
  3058. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:88
  3059. source:
  3060. + (test-assert
  3061. + "package-superseded"
  3062. + (let* ((new (dummy-package "bar"))
  3063. + (old (deprecated-package "foo" new)))
  3064. + (and (eq? (package-superseded old) new)
  3065. + (mock ((gnu packages)
  3066. + find-best-packages-by-name
  3067. + (const (list old)))
  3068. + (specification->package "foo")
  3069. + (and (eq? new (specification->package "foo"))
  3070. + (eq? new (specification->package+output "foo")))))))
  3071. actual-value: #t
  3072. result: PASS
  3073.  
  3074. test-name: transaction-upgrade-entry, zero upgrades
  3075. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:97
  3076. source:
  3077. + (test-assert
  3078. + "transaction-upgrade-entry, zero upgrades"
  3079. + (let* ((old (dummy-package "foo" (version "1")))
  3080. + (tx (mock ((gnu packages)
  3081. + find-newest-available-packages
  3082. + (const vlist-null))
  3083. + ((@@ (guix scripts package)
  3084. + transaction-upgrade-entry)
  3085. + (manifest-entry
  3086. + (inherit (package->manifest-entry old))
  3087. + (item (string-append
  3088. + (%store-prefix)
  3089. + "/"
  3090. + (make-string 32 #\e)
  3091. + "-foo-1")))
  3092. + (manifest-transaction)))))
  3093. + (manifest-transaction-null? tx)))
  3094. actual-value: #t
  3095. result: PASS
  3096.  
  3097. test-name: transaction-upgrade-entry, one upgrade
  3098. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:109
  3099. source:
  3100. + (test-assert
  3101. + "transaction-upgrade-entry, one upgrade"
  3102. + (let* ((old (dummy-package "foo" (version "1")))
  3103. + (new (dummy-package "foo" (version "2")))
  3104. + (tx (mock ((gnu packages)
  3105. + find-newest-available-packages
  3106. + (const (vhash-cons "foo" (list "2" new) vlist-null)))
  3107. + ((@@ (guix scripts package)
  3108. + transaction-upgrade-entry)
  3109. + (manifest-entry
  3110. + (inherit (package->manifest-entry old))
  3111. + (item (string-append
  3112. + (%store-prefix)
  3113. + "/"
  3114. + (make-string 32 #\e)
  3115. + "-foo-1")))
  3116. + (manifest-transaction)))))
  3117. + (and (match (manifest-transaction-install tx)
  3118. + ((($ <manifest-entry> "foo" "2" "out" item))
  3119. + (eq? item new)))
  3120. + (null? (manifest-transaction-remove tx)))))
  3121. actual-value: #t
  3122. result: PASS
  3123.  
  3124. test-name: transaction-upgrade-entry, superseded package
  3125. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:125
  3126. source:
  3127. + (test-assert
  3128. + "transaction-upgrade-entry, superseded package"
  3129. + (let* ((old (dummy-package "foo" (version "1")))
  3130. + (new (dummy-package "bar" (version "2")))
  3131. + (dep (deprecated-package "foo" new))
  3132. + (tx (mock ((gnu packages)
  3133. + find-newest-available-packages
  3134. + (const (vhash-cons "foo" (list "2" dep) vlist-null)))
  3135. + ((@@ (guix scripts package)
  3136. + transaction-upgrade-entry)
  3137. + (manifest-entry
  3138. + (inherit (package->manifest-entry old))
  3139. + (item (string-append
  3140. + (%store-prefix)
  3141. + "/"
  3142. + (make-string 32 #\e)
  3143. + "-foo-1")))
  3144. + (manifest-transaction)))))
  3145. + (and (match (manifest-transaction-install tx)
  3146. + ((($ <manifest-entry> "bar" "2" "out" item))
  3147. + (eq? item new)))
  3148. + (match (manifest-transaction-remove tx)
  3149. + (((? manifest-pattern? pattern))
  3150. + (and (string=? (manifest-pattern-name pattern) "foo")
  3151. + (string=? (manifest-pattern-version pattern) "1")
  3152. + (string=?
  3153. + (manifest-pattern-output pattern)
  3154. + "out")))))))
  3155. actual-value: #t
  3156. result: PASS
  3157.  
  3158. test-name: package-field-location
  3159. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:146
  3160. source:
  3161. + (test-assert
  3162. + "package-field-location"
  3163. + (let ()
  3164. + (define (goto port line column)
  3165. + (unless
  3166. + (and (= (port-column port) (- column 1))
  3167. + (= (port-line port) (- line 1)))
  3168. + (unless
  3169. + (eof-object? (get-char port))
  3170. + (goto port line column))))
  3171. + (define read-at
  3172. + (match-lambda
  3173. + (($ <location> file line column)
  3174. + (call-with-input-file
  3175. + (search-path %load-path file)
  3176. + (lambda (port)
  3177. + (goto port line column)
  3178. + (read port))))))
  3179. + (and (member
  3180. + (read-at
  3181. + (package-field-location %bootstrap-guile 'name))
  3182. + (let ((name (package-name %bootstrap-guile)))
  3183. + (list name `(name ,name))))
  3184. + (member
  3185. + (read-at
  3186. + (package-field-location
  3187. + %bootstrap-guile
  3188. + 'version))
  3189. + (let ((version (package-version %bootstrap-guile)))
  3190. + (list version `(version ,version))))
  3191. + (not (package-field-location
  3192. + %bootstrap-guile
  3193. + 'does-not-exist)))))
  3194. actual-value: #t
  3195. result: PASS
  3196.  
  3197. test-name: package-field-location, relative file name
  3198. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:173
  3199. source:
  3200. + (test-equal
  3201. + "package-field-location, relative file name"
  3202. + (location-file
  3203. + (package-location %bootstrap-guile))
  3204. + (with-fluids
  3205. + ((%file-port-name-canonicalization 'absolute))
  3206. + (location-file
  3207. + (package-field-location
  3208. + %bootstrap-guile
  3209. + 'version))))
  3210. expected-value: "gnu/packages/bootstrap.scm"
  3211. actual-value: "gnu/packages/bootstrap.scm"
  3212. result: PASS
  3213.  
  3214. test-name: package-transitive-inputs
  3215. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:178
  3216. source:
  3217. + (test-assert
  3218. + "package-transitive-inputs"
  3219. + (let* ((a (dummy-package "a"))
  3220. + (b (dummy-package
  3221. + "b"
  3222. + (propagated-inputs `(("a" ,a)))))
  3223. + (c (dummy-package "c" (inputs `(("a" ,a)))))
  3224. + (d (dummy-package
  3225. + "d"
  3226. + (propagated-inputs `(("x" "something.drv")))))
  3227. + (e (dummy-package
  3228. + "e"
  3229. + (inputs `(("b" ,b) ("c" ,c) ("d" ,d))))))
  3230. + (and (null? (package-transitive-inputs a))
  3231. + (equal?
  3232. + `(("a" ,a))
  3233. + (package-transitive-inputs b))
  3234. + (equal?
  3235. + `(("a" ,a))
  3236. + (package-transitive-inputs c))
  3237. + (equal?
  3238. + (package-propagated-inputs d)
  3239. + (package-transitive-inputs d))
  3240. + (equal?
  3241. + `(("b" ,b)
  3242. + ("c" ,c)
  3243. + ("d" ,d)
  3244. + ("a" ,a)
  3245. + ("x" "something.drv"))
  3246. + (pk 'x (package-transitive-inputs e))))))
  3247.  
  3248. ;;; (x (("b" #<package b@0 /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:180 1a8d000>) ("c" #<package c@0 /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:182 1bace40>) ("d" #<package d@0 /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:184 1baccc0>) ("a" #<package a@0 /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:179 1a8d180>) ("x" "something.drv")))
  3249. actual-value: #t
  3250. result: PASS
  3251.  
  3252. test-name: package-transitive-inputs, no duplicates
  3253. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:197
  3254. source:
  3255. + (test-assert
  3256. + "package-transitive-inputs, no duplicates"
  3257. + (let* ((a (dummy-package "a"))
  3258. + (b (dummy-package
  3259. + "b"
  3260. + (inputs `(("a+" ,a)))
  3261. + (native-inputs `(("a*" ,a)))
  3262. + (propagated-inputs `(("a" ,a)))))
  3263. + (c (dummy-package
  3264. + "c"
  3265. + (propagated-inputs `(("b" ,b)))))
  3266. + (d (dummy-package "d" (inputs `(("a" ,a) ("c" ,c)))))
  3267. + (e (dummy-package "e" (inputs `(("b" ,b) ("c" ,c))))))
  3268. + (and (null? (package-transitive-inputs a))
  3269. + (equal?
  3270. + `(("a*" ,a) ("a+" ,a) ("a" ,a))
  3271. + (package-transitive-inputs b))
  3272. + (equal?
  3273. + `(("b" ,b) ("a" ,a))
  3274. + (package-transitive-inputs c))
  3275. + (equal?
  3276. + `(("a" ,a) ("c" ,c) ("b" ,b))
  3277. + (package-transitive-inputs d))
  3278. + (equal?
  3279. + `(("b" ,b) ("c" ,c) ("a" ,a))
  3280. + (package-transitive-inputs e)))))
  3281. actual-value: #t
  3282. result: PASS
  3283.  
  3284. test-name: package-transitive-supported-systems
  3285. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:219
  3286. source:
  3287. + (test-equal
  3288. + "package-transitive-supported-systems"
  3289. + '(("x" "y" "z") ("x" "y") ("y") ("y") ("y"))
  3290. + (let* ((a (dummy-package
  3291. + "a"
  3292. + (build-system trivial-build-system)
  3293. + (supported-systems '("x" "y" "z"))))
  3294. + (b (dummy-package
  3295. + "b"
  3296. + (build-system trivial-build-system)
  3297. + (supported-systems '("x" "y"))
  3298. + (inputs `(("a" ,a)))))
  3299. + (c (dummy-package
  3300. + "c"
  3301. + (build-system trivial-build-system)
  3302. + (supported-systems '("y" "z"))
  3303. + (inputs `(("b" ,b)))))
  3304. + (d (dummy-package
  3305. + "d"
  3306. + (build-system trivial-build-system)
  3307. + (supported-systems '("x" "y" "z"))
  3308. + (inputs `(("b" ,b) ("c" ,c)))))
  3309. + (e (dummy-package
  3310. + "e"
  3311. + (build-system trivial-build-system)
  3312. + (supported-systems '("x" "y" "z"))
  3313. + (inputs `(("d" ,d))))))
  3314. + (list (package-transitive-supported-systems a)
  3315. + (package-transitive-supported-systems b)
  3316. + (package-transitive-supported-systems c)
  3317. + (package-transitive-supported-systems d)
  3318. + (package-transitive-supported-systems e))))
  3319. expected-value: (("x" "y" "z") ("x" "y") ("y") ("y") ("y"))
  3320. actual-value: (("x" "y" "z") ("x" "y") ("y") ("y") ("y"))
  3321. result: PASS
  3322.  
  3323. test-name: origin-actual-file-name
  3324. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:252
  3325. source:
  3326. + (test-equal
  3327. + "origin-actual-file-name"
  3328. + "foo-1.tar.gz"
  3329. + (let ((o (dummy-origin
  3330. + (uri "http://www.example.com/foo-1.tar.gz"))))
  3331. + (origin-actual-file-name o)))
  3332. expected-value: "foo-1.tar.gz"
  3333. actual-value: "foo-1.tar.gz"
  3334. result: PASS
  3335.  
  3336. test-name: origin-actual-file-name, file-name
  3337. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:257
  3338. source:
  3339. + (test-equal
  3340. + "origin-actual-file-name, file-name"
  3341. + "foo-1.tar.gz"
  3342. + (let ((o (dummy-origin
  3343. + (uri "http://www.example.com/tarball")
  3344. + (file-name "foo-1.tar.gz"))))
  3345. + (origin-actual-file-name o)))
  3346. expected-value: "foo-1.tar.gz"
  3347. actual-value: "foo-1.tar.gz"
  3348. result: PASS
  3349.  
  3350. test-name: package-direct-sources, no source
  3351. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:274
  3352. source:
  3353. + (test-assert
  3354. + "package-direct-sources, no source"
  3355. + (null? (package-direct-sources a)))
  3356. actual-value: #t
  3357. result: PASS
  3358.  
  3359. test-name: package-direct-sources, #f source
  3360. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:276
  3361. source:
  3362. + (test-equal
  3363. + "package-direct-sources, #f source"
  3364. + (list i)
  3365. + (package-direct-sources b))
  3366. expected-value: (#<origin "http://www.example.com" xx35467pxx35467pxx35467pxx35467pxx35467pxx35467pxx3q () 20c4660>)
  3367. actual-value: (#<origin "http://www.example.com" xx35467pxx35467pxx35467pxx35467pxx35467pxx35467pxx3q () 20c4660>)
  3368. result: PASS
  3369.  
  3370. test-name: package-direct-sources, not input source
  3371. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:279
  3372. source:
  3373. + (test-equal
  3374. + "package-direct-sources, not input source"
  3375. + (list u)
  3376. + (package-direct-sources d))
  3377. expected-value: (#<origin "http://www.example.com" xx35467pxx35467pxx35467pxx35467pxx35467pxx35467pxx3q () 20c4720>)
  3378. actual-value: (#<origin "http://www.example.com" xx35467pxx35467pxx35467pxx35467pxx35467pxx35467pxx3q () 20c4720>)
  3379. result: PASS
  3380.  
  3381. test-name: package-direct-sources
  3382. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:282
  3383. source:
  3384. + (test-assert
  3385. + "package-direct-sources"
  3386. + (let ((s (package-direct-sources c)))
  3387. + (and (= (length (pk 's-sources s)) 2)
  3388. + (member o s)
  3389. + (member i s))))
  3390.  
  3391. ;;; (s-sources (#<origin "http://www.example.com" xx35467pxx35467pxx35467pxx35467pxx35467pxx35467pxx3q () 20c47e0> #<origin "http://www.example.com" xx35467pxx35467pxx35467pxx35467pxx35467pxx35467pxx3q () 20c4660>))
  3392. actual-value: (#<origin "http://www.example.com" xx35467pxx35467pxx35467pxx35467pxx35467pxx35467pxx3q () 20c4660>)
  3393. result: PASS
  3394.  
  3395. test-name: package-transitive-sources
  3396. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:287
  3397. source:
  3398. + (test-assert
  3399. + "package-transitive-sources"
  3400. + (let ((s (package-transitive-sources d)))
  3401. + (and (= (length (pk 'd-sources s)) 3)
  3402. + (member o s)
  3403. + (member i s)
  3404. + (member u s))))
  3405.  
  3406. ;;; (d-sources (#<origin "http://www.example.com" xx35467pxx35467pxx35467pxx35467pxx35467pxx35467pxx3q () 20c4720> #<origin "http://www.example.com" xx35467pxx35467pxx35467pxx35467pxx35467pxx35467pxx3q () 20c47e0> #<origin "http://www.example.com" xx35467pxx35467pxx35467pxx35467pxx35467pxx35467pxx3q () 20c4660>))
  3407. actual-value: (#<origin "http://www.example.com" xx35467pxx35467pxx35467pxx35467pxx35467pxx35467pxx3q () 20c4720> #<origin "http://www.example.com" xx35467pxx35467pxx35467pxx35467pxx35467pxx35467pxx3q () 20c47e0> #<origin "http://www.example.com" xx35467pxx35467pxx35467pxx35467pxx35467pxx35467pxx3q () 20c4660>)
  3408. result: PASS
  3409.  
  3410. test-name: transitive-input-references
  3411. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:294
  3412. source:
  3413. + (test-assert
  3414. + "transitive-input-references"
  3415. + (let* ((a (dummy-package "a"))
  3416. + (b (dummy-package "b"))
  3417. + (c (dummy-package
  3418. + "c"
  3419. + (inputs `(("a" ,a)))
  3420. + (propagated-inputs `(("boo" ,b)))))
  3421. + (d (dummy-package "d" (inputs `(("c*" ,c)))))
  3422. + (keys (map (match-lambda (('assoc-ref 'l key) key))
  3423. + (pk 'refs
  3424. + (transitive-input-references
  3425. + 'l
  3426. + (package-inputs d))))))
  3427. + (and (= (length keys) 2)
  3428. + (member "c*" keys)
  3429. + (member "boo" keys))))
  3430.  
  3431. ;;; (refs ((assoc-ref l "c*") (assoc-ref l "boo")))
  3432. actual-value: ("boo")
  3433. result: PASS
  3434.  
  3435. test-name: package-transitive-supported-systems, implicit inputs
  3436. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:311
  3437. source:
  3438. + (test-equal
  3439. + "package-transitive-supported-systems, implicit inputs"
  3440. + %supported-systems
  3441. + (let ((p (dummy-package
  3442. + "foo"
  3443. + (build-system gnu-build-system)
  3444. + (supported-systems
  3445. + `("does-not-exist" "foobar" ,@%supported-systems)))))
  3446. + (package-transitive-supported-systems p)))
  3447. expected-value: ("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" "mips64el-linux")
  3448. actual-value: ("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" "mips64el-linux")
  3449. result: PASS
  3450.  
  3451. test-name: supported-package?
  3452. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:322
  3453. source:
  3454. + (test-assert
  3455. + "supported-package?"
  3456. + (let ((p (dummy-package
  3457. + "foo"
  3458. + (build-system gnu-build-system)
  3459. + (supported-systems
  3460. + '("x86_64-linux" "does-not-exist")))))
  3461. + (and (supported-package? p "x86_64-linux")
  3462. + (not (supported-package? p "does-not-exist"))
  3463. + (not (supported-package? p "i686-linux")))))
  3464. actual-value: #t
  3465. result: PASS
  3466.  
  3467. test-name: package-source-derivation, file
  3468. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:332
  3469. source:
  3470. + (test-assert
  3471. + "package-source-derivation, file"
  3472. + (let* ((file (search-path %load-path "guix.scm"))
  3473. + (package
  3474. + (package
  3475. + (inherit (dummy-package "p"))
  3476. + (source file)))
  3477. + (source
  3478. + (package-source-derivation
  3479. + %store
  3480. + (package-source package))))
  3481. + (and (store-path? source)
  3482. + (valid-path? %store source)
  3483. + (equal?
  3484. + (call-with-input-file source get-bytevector-all)
  3485. + (call-with-input-file file get-bytevector-all)))))
  3486. actual-value: #t
  3487. result: PASS
  3488.  
  3489. test-name: package-source-derivation, store path
  3490. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:343
  3491. source:
  3492. + (test-assert
  3493. + "package-source-derivation, store path"
  3494. + (let* ((file (add-to-store
  3495. + %store
  3496. + "guix.scm"
  3497. + #t
  3498. + "sha256"
  3499. + (search-path %load-path "guix.scm")))
  3500. + (package
  3501. + (package
  3502. + (inherit (dummy-package "p"))
  3503. + (source file)))
  3504. + (source
  3505. + (package-source-derivation
  3506. + %store
  3507. + (package-source package))))
  3508. + (string=? file source)))
  3509. actual-value: #t
  3510. result: PASS
  3511.  
  3512. test-name: package-source-derivation, indirect store path
  3513. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:352
  3514. source:
  3515. + (test-assert
  3516. + "package-source-derivation, indirect store path"
  3517. + (let* ((dir (add-to-store
  3518. + %store
  3519. + "guix-build"
  3520. + #t
  3521. + "sha256"
  3522. + (dirname
  3523. + (search-path %load-path "guix/build/utils.scm"))))
  3524. + (package
  3525. + (package
  3526. + (inherit (dummy-package "p"))
  3527. + (source (string-append dir "/utils.scm"))))
  3528. + (source
  3529. + (package-source-derivation
  3530. + %store
  3531. + (package-source package))))
  3532. + (and (direct-store-path? source)
  3533. + (string-suffix? "utils.scm" source))))
  3534. actual-value: #t
  3535. result: PASS
  3536.  
  3537. test-name: package-source-derivation, local-file
  3538. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:363
  3539. source:
  3540. + (test-assert
  3541. + "package-source-derivation, local-file"
  3542. + (let* ((file (local-file "../guix/base32.scm"))
  3543. + (package
  3544. + (package
  3545. + (inherit (dummy-package "p"))
  3546. + (source file)))
  3547. + (source
  3548. + (package-source-derivation
  3549. + %store
  3550. + (package-source package))))
  3551. + (and (store-path? source)
  3552. + (string-suffix? "base32.scm" source)
  3553. + (valid-path? %store source)
  3554. + (equal?
  3555. + (call-with-input-file source get-bytevector-all)
  3556. + (call-with-input-file
  3557. + (search-path %load-path "guix/base32.scm")
  3558. + get-bytevector-all)))))
  3559. actual-value: #t
  3560. result: PASS
  3561.  
  3562. test-name: package-source-derivation, snippet
  3563. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:378
  3564. source:
  3565. + (test-equal
  3566. + "package-source-derivation, snippet"
  3567. + "OK"
  3568. + (let* ((file (search-bootstrap-binary
  3569. + (match (%current-system)
  3570. + ("armhf-linux" "guile-2.0.11.tar.xz")
  3571. + ("aarch64-linux" "guile-2.0.14.tar.xz")
  3572. + (_ "guile-2.0.9.tar.xz"))
  3573. + (%current-system)))
  3574. + (sha256 (call-with-input-file file port-sha256))
  3575. + (fetch (lambda* (url hash-algo hash #:optional name #:key system)
  3576. + (pk 'fetch url hash-algo hash name system)
  3577. + (interned-file url)))
  3578. + (source
  3579. + (bootstrap-origin
  3580. + (origin
  3581. + (method fetch)
  3582. + (uri file)
  3583. + (sha256 sha256)
  3584. + (patch-inputs
  3585. + `(("tar" ,%bootstrap-coreutils&co)
  3586. + ("xz" ,%bootstrap-coreutils&co)
  3587. + ("patch" ,%bootstrap-coreutils&co)))
  3588. + (patch-guile %bootstrap-guile)
  3589. + (modules '((guix build utils)))
  3590. + (snippet
  3591. + '(begin
  3592. + (chmod "." 511)
  3593. + (symlink "guile" "guile-rocks")
  3594. + (copy-recursively
  3595. + "../share/guile/2.0/scripts"
  3596. + "scripts")
  3597. + (chmod ".." 511))))))
  3598. + (package
  3599. + (package
  3600. + (inherit (dummy-package "with-snippet"))
  3601. + (source source)
  3602. + (build-system trivial-build-system)
  3603. + (inputs
  3604. + `(("tar"
  3605. + ,(search-bootstrap-binary "tar" (%current-system)))
  3606. + ("xz"
  3607. + ,(search-bootstrap-binary "xz" (%current-system)))))
  3608. + (arguments
  3609. + `(#:guile
  3610. + ,%bootstrap-guile
  3611. + #:builder
  3612. + (let ((tar (assoc-ref %build-inputs "tar"))
  3613. + (xz (assoc-ref %build-inputs "xz"))
  3614. + (source (assoc-ref %build-inputs "source")))
  3615. + (and (zero? (system*
  3616. + tar
  3617. + "xvf"
  3618. + source
  3619. + "--use-compress-program"
  3620. + xz))
  3621. + (string=? "guile" (readlink "bin/guile-rocks"))
  3622. + (file-exists? "bin/scripts/compile.scm")
  3623. + (let ((out (assoc-ref %outputs "out")))
  3624. + (call-with-output-file
  3625. + out
  3626. + (lambda (p) (display "OK" p))))))))))
  3627. + (drv (package-derivation %store package))
  3628. + (out (derivation->output-path drv)))
  3629. + (and (build-derivations
  3630. + %store
  3631. + (list (pk 'snippet-drv drv)))
  3632. + (call-with-input-file out get-string-all))))
  3633. result: SKIP
  3634.  
  3635. test-name: return value
  3636. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:442
  3637. source:
  3638. + (test-assert
  3639. + "return value"
  3640. + (let ((drv (package-derivation %store (dummy-package "p"))))
  3641. + (and (derivation? drv)
  3642. + (file-exists? (derivation-file-name drv)))))
  3643. actual-value: #t
  3644. result: PASS
  3645.  
  3646. test-name: package-output
  3647. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:447
  3648. source:
  3649. + (test-assert
  3650. + "package-output"
  3651. + (let* ((package (dummy-package "p"))
  3652. + (drv (package-derivation %store package)))
  3653. + (and (derivation? drv)
  3654. + (string=?
  3655. + random seed for tests: 1508163857
  3656. package 'foo' has been superseded by 'bar'
  3657. package 'foo' has been superseded by 'bar'
  3658. package 'foo' has been superseded by 'bar'
  3659. warning: package 'foo' no longer exists
  3660. package 'foo' has been superseded by 'bar'
  3661. @ build-started /tmp/guix-tests/store/hvyvgjygf729vfvbpl2k3dqvsiwx59cw-trivial-0.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/hv//yvgjygf729vfvbpl2k3dqvsiwx59cw-trivial-0.drv.bz2
  3662. @ build-succeeded /tmp/guix-tests/store/hvyvgjygf729vfvbpl2k3dqvsiwx59cw-trivial-0.drv -
  3663. (derivation->output-path drv)
  3664. + (package-output %store package "out")))))
  3665. actual-value: #t
  3666. result: PASS
  3667.  
  3668. test-name: patch not found yields a run-time error
  3669. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:454
  3670. source:
  3671. + (test-assert
  3672. + "patch not found yields a run-time error"
  3673. + (guard (c ((condition-has-type? c &message)
  3674. + (and (string-contains
  3675. + (condition-message c)
  3676. + "does-not-exist.patch")
  3677. + (string-contains
  3678. + (condition-message c)
  3679. + "not found"))))
  3680. + (let ((p (package
  3681. + (inherit (dummy-package "p"))
  3682. + (source
  3683. + (origin
  3684. + (method (const #f))
  3685. + (uri "http://whatever")
  3686. + (patches
  3687. + (list (search-patch "does-not-exist.patch")))
  3688. + (sha256
  3689. + (base32
  3690. + "0amn0bbwqvsvvsh6drfwz20ydc2czk374lzw5kksbh6bf78k4ks4")))))))
  3691. + (package-derivation %store p)
  3692. + #f)))
  3693. actual-value: 28
  3694. result: PASS
  3695.  
  3696. test-name: &package-input-error
  3697. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:474
  3698. source:
  3699. + (test-equal
  3700. + "&package-input-error"
  3701. + (list dummy (current-module))
  3702. + (guard (c ((package-input-error? c)
  3703. + (list (package-error-package c)
  3704. + (package-error-invalid-input c))))
  3705. + (package-derivation %store dummy)))
  3706. expected-value: (#<package foo@0 /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:473 2a119c0> #<directory (test-packages) 822320>)
  3707. actual-value: (#<package foo@0 /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:473 2a119c0> #<directory (test-packages) 822320>)
  3708. result: PASS
  3709.  
  3710. test-name: reference to non-existent output
  3711. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:481
  3712. source:
  3713. + (test-assert
  3714. + "reference to non-existent output"
  3715. + (parameterize
  3716. + ((%graft? #f))
  3717. + (let* ((dep (dummy-package "dep"))
  3718. + (p (dummy-package
  3719. + "p"
  3720. + (inputs `(("dep" ,dep "non-existent"))))))
  3721. + (guard (c ((derivation-missing-output-error? c)
  3722. + (and (string=?
  3723. + (derivation-missing-output c)
  3724. + "non-existent")
  3725. + (equal?
  3726. + (package-derivation %store dep)
  3727. + (derivation-error-derivation c)))))
  3728. + (package-derivation %store p)))))
  3729. actual-value: #t
  3730. result: PASS
  3731.  
  3732. test-name: trivial
  3733. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:493
  3734. source:
  3735. + (test-assert
  3736. + "trivial"
  3737. + (let* ((p (package
  3738. + (inherit (dummy-package "trivial"))
  3739. + (build-system trivial-build-system)
  3740. + (source #f)
  3741. + (arguments
  3742. + `(#:guile
  3743. + ,%bootstrap-guile
  3744. + #:builder
  3745. + (begin
  3746. + (mkdir %output)
  3747. + (call-with-output-file
  3748. + (string-append %output "/test")
  3749. + (lambda (p) (display '(hello guix) p))))))))
  3750. + (d (package-derivation %store p)))
  3751. + (and (build-derivations %store (list d))
  3752. + (let ((p (pk 'drv d (derivation->output-path d))))
  3753. + (equal?
  3754. + '(hello guix)
  3755. + (call-with-input-file
  3756. + (string-append p "/test")
  3757. + read))))))
  3758.  
  3759. ;;; (drv #<derivation /tmp/guix-tests/store/hvyvgjygf729vfvbpl2k3dqvsiwx59cw-trivial-0.drv => /tmp/guix-tests/store/3pp7cs8ycxg16yldqd62lrk306ck1g72-trivial-0 1ad6500> "/tmp/guix-tests/store/3pp7cs8ycxg16yldqd62lrk306ck1g72-trivial-0")
  3760. actual-value: #t
  3761. result: PASS
  3762.  
  3763. test-name: trivial with local file as input
  3764. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:511
  3765. source@ build-started /tmp/guix-tests/store/a6yjh360wy274bw6v69b7i4ybgznhc72-trivial-with-input-file-0.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/a6//yjh360wy274bw6v69b7i4ybgznhc72-trivial-with-input-file-0.drv.bz2
  3766. @ build-succeeded /tmp/guix-tests/store/a6yjh360wy274bw6v69b7i4ybgznhc72-trivial-with-input-file-0.drv -
  3767. @ build-started /tmp/guix-tests/store/62hvlyvzl8zdm919i5f51clhvy5a5yab-trivial-with-source-0.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/62//hvlyvzl8zdm919i5f51clhvy5a5yab-trivial-with-source-0.drv.bz2
  3768. @ build-succeeded /tmp/guix-tests/store/62hvlyvzl8zdm919i5f51clhvy5a5yab-trivial-with-source-0.drv -
  3769. @ build-started /tmp/guix-tests/store/jmw8n1jv0clislyswj0gnc7mm52q0kjv-trivial-system-dependent-input-0.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/jm//w8n1jv0clislyswj0gnc7mm52q0kjv-trivial-system-dependent-input-0.drv.bz2
  3770. @ build-succeeded /tmp/guix-tests/store/jmw8n1jv0clislyswj0gnc7mm52q0kjv-trivial-system-dependent-input-0.drv -
  3771. :
  3772. + (test-assert
  3773. + "trivial with local file as input"
  3774. + (let* ((i (search-path %load-path "ice-9/boot-9.scm"))
  3775. + (p (package
  3776. + (inherit
  3777. + (dummy-package "trivial-with-input-file"))
  3778. + (build-system trivial-build-system)
  3779. + (source #f)
  3780. + (arguments
  3781. + `(#:guile
  3782. + ,%bootstrap-guile
  3783. + #:builder
  3784. + (copy-file
  3785. + (assoc-ref %build-inputs "input")
  3786. + %output)))
  3787. + (inputs `(("input" ,i)))))
  3788. + (d (package-derivation %store p)))
  3789. + (and (build-derivations %store (list d))
  3790. + (let ((p (pk 'drv d (derivation->output-path d))))
  3791. + (equal?
  3792. + (call-with-input-file p get-bytevector-all)
  3793. + (call-with-input-file i get-bytevector-all))))))
  3794.  
  3795. ;;; (drv #<derivation /tmp/guix-tests/store/a6yjh360wy274bw6v69b7i4ybgznhc72-trivial-with-input-file-0.drv => /tmp/guix-tests/store/ig6yxsjih7q2g4zmlplm1psjz5yprqad-trivial-with-input-file-0 1ad61e0> "/tmp/guix-tests/store/ig6yxsjih7q2g4zmlplm1psjz5yprqad-trivial-with-input-file-0")
  3796. actual-value: #t
  3797. result: PASS
  3798.  
  3799. test-name: trivial with source
  3800. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:527
  3801. source:
  3802. + (test-assert
  3803. + "trivial with source"
  3804. + (let* ((i (search-path %load-path "ice-9/boot-9.scm"))
  3805. + (p (package
  3806. + (inherit (dummy-package "trivial-with-source"))
  3807. + (build-system trivial-build-system)
  3808. + (source i)
  3809. + (arguments
  3810. + `(#:guile
  3811. + ,%bootstrap-guile
  3812. + #:builder
  3813. + (copy-file
  3814. + (assoc-ref %build-inputs "source")
  3815. + %output)))))
  3816. + (d (package-derivation %store p)))
  3817. + (and (build-derivations %store (list d))
  3818. + (let ((p (derivation->output-path d)))
  3819. + (equal?
  3820. + (call-with-input-file p get-bytevector-all)
  3821. + (call-with-input-file i get-bytevector-all))))))
  3822. actual-value: #t
  3823. result: PASS
  3824.  
  3825. test-name: trivial with system-dependent input
  3826. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:542
  3827. source:
  3828. + (test-assert
  3829. + "trivial with system-dependent input"
  3830. + (let* ((p (package
  3831. + (inherit
  3832. + (dummy-package "trivial-system-dependent-input"))
  3833. + (build-system trivial-build-system)
  3834. + (source #f)
  3835. + (arguments
  3836. + `(#:guile
  3837. + ,%bootstrap-guile
  3838. + #:builder
  3839. + (let ((out (assoc-ref %outputs "out"))
  3840. + (bash (assoc-ref %build-inputs "bash")))
  3841. + (zero? (system*
  3842. + bash
  3843. + "-c"
  3844. + (format #f "echo hello > ~a" out))))))
  3845. + (inputs
  3846. + `(("bash"
  3847. + ,(search-bootstrap-binary
  3848. + "bash"
  3849. + (%current-system)))))))
  3850. + (d (package-derivation %store p)))
  3851. + (and (build-derivations %store (list d))
  3852. + (let ((p (pk 'drv d (derivation->output-path d))))
  3853. + (eq? 'hello (call-with-input-file p read))))))
  3854.  
  3855. ;;; (drv #<derivation /tmp/guix-tests/store/jmw8n1jv0clislyswj0gnc7mm52q0kjv-trivial-system-dependent-input-0.drv => /tmp/guix-tests/store/8pqmam9mmnpd071ya49hv33dnp8p24f5-trivial-system-dependent-input-0 2c2bfa0> "/tmp/guix-tests/store/8pqmam9mmnpd071ya49hv33dnp8p24f5-trivial-system-dependent-input-0")
  3856. actual-value: #t
  3857. result: PASS
  3858.  
  3859. test-name: search paths
  3860. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:560
  3861. source:
  3862. + (test-assert
  3863. + "search paths"
  3864. + (let* ((p (make-prompt-tag "return-search-paths"))
  3865. + (s (build-system
  3866. + (name 'raw)
  3867. + (description
  3868. + "Raw build system with direct store access")
  3869. + (lower (lambda* (name
  3870. + #:key
  3871. + source
  3872. + inputs
  3873. + system
  3874. + target
  3875. + #:allow-other-keys)
  3876. + (bag (name name)
  3877. + (system system)
  3878. + (target target)
  3879. + (build-inputs inputs)
  3880. + (build (lambda* (store
  3881. + name
  3882. + inputs
  3883. + #:key
  3884. + outputs
  3885. + system
  3886. + search-paths)
  3887. + search-paths)))))))
  3888. + (x (list (search-path-specification
  3889. + (variable "GUILE_LOAD_PATH")
  3890. + (files '("share/guile/site/2.0")))
  3891. + (search-path-specification
  3892. + (variable "GUILE_LOAD_COMPILED_PATH")
  3893. + (files '("share/guile/site/2.0")))))
  3894. + (a (package
  3895. + (inherit (dummy-package "guile"))
  3896. + (build-system s)
  3897. + (native-search-paths x)))
  3898. + (b (package
  3899. + (inherit (dummy-package "guile-foo"))
  3900. + (build-system s)
  3901. + (inputs `(("guile" ,a)))))
  3902. + (c (package
  3903. + (inherit (dummy-package "guile-bar"))
  3904. + (build-system s)
  3905. + (inputs `(("guile" ,a) ("guile-foo" ,b))))))
  3906. + (let-syntax ((collect
  3907. + (syntax-rules ()
  3908. + ((_ body ...)
  3909. + (call-with-prompt
  3910. + p
  3911. + (lambda () body ...)
  3912. + (lambda (k search-paths) search-paths))))))
  3913. + (and (null? (collect (package-derivation %store a)))
  3914. + (equal?
  3915. + x
  3916. + (collect (package-derivation %store b)))
  3917. + (equal?
  3918. + x
  3919. + (collect (package-derivation %store c)))))))
  3920. actual-value: #t
  3921. result: PASS
  3922.  
  3923. test-name: package-transitive-native-search-paths
  3924. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:602
  3925. source:
  3926. + (test-assert
  3927. + "package-transitive-native-search-paths"
  3928. + (let* ((sp (lambda (name)
  3929. + (list (search-path-specification
  3930. + (variable name)
  3931. + (files '("foo/bar"))))))
  3932. + (p0 (dummy-package
  3933. + "p0"
  3934. + (native-search-paths (sp "PATH0"))))
  3935. + (p1 (dummy-package
  3936. + "p1"
  3937. + (native-search-paths (sp "PATH1"))))
  3938. + (p2 (dummy-package
  3939. + "p2"
  3940. + (native-search-paths (sp "PATH2"))
  3941. + (inputs `(("p0" ,p0)))
  3942. + (propagated-inputs `(("p1" ,p1)))))
  3943. + (p3 (dummy-package
  3944. + "p3"
  3945. + (native-search-paths (sp "PATH3"))
  3946. + (native-inputs `(("p0" ,p0)))
  3947. + (propagated-inputs `(("p2" ,p2))))))
  3948. + (lset= string=?
  3949. + '("PATH1" "PATH2" "PATH3")
  3950. + (map search-path-specification-variable
  3951. + (package-transitive-native-search-paths p3)))))
  3952. actual-value: #t
  3953. result: PASS
  3954.  
  3955. test-name: package-cross-derivation
  3956. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:622
  3957. source:
  3958. + (test-assert
  3959. + "package-cross-derivation"
  3960. + (let ((drv (package-cross-derivation
  3961. + %store
  3962. + (dummy-package "p")
  3963. + "mips64el-linux-gnu")))
  3964. + (and (derivation? drv)
  3965. + (file-exists? (derivation-file-name drv)))))
  3966. actual-value: #t
  3967. result: PASS
  3968.  
  3969. test-name: package-cross-derivation, trivial-build-system
  3970. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:628
  3971. source:
  3972. + (test-assert
  3973. + "package-cross-derivation, trivial-build-system"
  3974. + (let ((p (package
  3975. + (inherit (dummy-package "p"))
  3976. + (build-system trivial-build-system)
  3977. + (arguments '(#:builder (exit 1))))))
  3978. + (let ((drv (package-cross-derivation
  3979. + %store
  3980. + p
  3981. + "mips64el-linux-gnu")))
  3982. + (derivation? drv))))
  3983. actual-value: #t
  3984. result: PASS
  3985.  
  3986. test-name: package-cross-derivation, no cross builder
  3987. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:635
  3988. source:
  3989. + (test-assert
  3990. + "package-cross-derivation, no cross builder"
  3991. + (let* ((b (build-system
  3992. + (inherit trivial-build-system)
  3993. + (lower (const #f))))
  3994. + (p (package
  3995. + (inherit (dummy-package "p"))
  3996. + (build-system b))))
  3997. + (guard (c ((package-cross-build-system-error? c)
  3998. + (eq? (package-error-package c) p)))
  3999. + (package-cross-derivation
  4000. + %store
  4001. + p
  4002. + "mips64el-linux-gnu")
  4003. + #f)))
  4004. actual-value: #t
  4005. result: PASS
  4006.  
  4007. test-name: package-grafts, indirect grafts
  4008. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:663
  4009. source:
  4010. + (test-assert
  4011. + "package-grafts, indirect grafts"
  4012. + (let* ((new (dummy-package
  4013. + "dep"
  4014. + (arguments '(#:implicit-inputs? #f))))
  4015. + (dep (package (inherit new) (version "0.0")))
  4016. + (dep* (package (inherit dep) (replacement new)))
  4017. + (dummy (dummy-package
  4018. + "dummy"
  4019. + (arguments '(#:implicit-inputs? #f))
  4020. + (inputs `(("dep" ,dep*))))))
  4021. + (equal?
  4022. + (package-grafts %store dummy)
  4023. + (list (graft (origin (package-derivation %store dep))
  4024. + (replacement (package-derivation %store new)))))))
  4025. actual-value: #t
  4026. result: PASS
  4027.  
  4028. test-name: package-grafts, indirect grafts, propagated inputs
  4029. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:696
  4030. source:
  4031. + (test-assert
  4032. + "package-grafts, indirect grafts, propagated inputs"
  4033. + (let* ((new (dummy-package
  4034. + "dep"
  4035. + (arguments '(#:implicit-inputs? #f))))
  4036. + (dep (package (inherit new) (version "0.0")))
  4037. + (dep* (package (inherit dep) (replacement new)))
  4038. + (prop (dummy-package
  4039. + "propagated"
  4040. + (propagated-inputs `(("dep" ,dep*)))
  4041. + (arguments '(#:implicit-inputs? #f))))
  4042. + (dummy (dummy-package
  4043. + "dummy"
  4044. + (arguments '(#:implicit-inputs? #f))
  4045. + (inputs `(("prop" ,prop))))))
  4046. + (equal?
  4047. + (package-grafts %store dummy)
  4048. + (list (graft (origin (package-derivation %store dep))
  4049. + (replacement (package-derivation %store new)))))))
  4050. actual-value: #t
  4051. result: PASS
  4052.  
  4053. test-name: package-grafts, same replacement twice
  4054. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:712
  4055. source:
  4056. + (test-assert
  4057. + "package-grafts, same replacement twice"
  4058. + (let* ((new (dummy-package
  4059. + "dep"
  4060. + (version "1")
  4061. + (arguments '(#:implicit-inputs? #f))))
  4062. + (dep (package
  4063. + (inherit new)
  4064. + (version "0")
  4065. + (replacement new)))
  4066. + (p1 (dummy-package
  4067. + "intermediate1"
  4068. + (arguments '(#:implicit-inputs? #f))
  4069. + (inputs `(("dep" ,dep)))))
  4070. + (p2 (dummy-package
  4071. + "intermediate2"
  4072. + (arguments '(#:implicit-inputs? #f))
  4073. + (inputs `(("dep" ,(package (inherit dep)))))))
  4074. + (p3 (dummy-package
  4075. + "final"
  4076. + (arguments '(#:implicit-inputs? #f))
  4077. + (inputs `(("p1" ,p1) ("p2" ,p2))))))
  4078. + (equal?
  4079. + (package-grafts %store p3)
  4080. + (list (graft (origin
  4081. + (package-derivation
  4082. + %store
  4083. + @ build-started /tmp/guix-tests/store/4fy6qbf23zv784brzwpkkrmwpnmbp2gr-p1-0.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/4f//y6qbf23zv784brzwpkkrmwpnmbp2gr-p1-0.drv.bz2
  4084. @ build-succeeded /tmp/guix-tests/store/4fy6qbf23zv784brzwpkkrmwpnmbp2gr-p1-0.drv -
  4085. @ build-started /tmp/guix-tests/store/107g7qq7946g9vvbp8vqcpx98xjb79df-P2-0.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/10//7g7qq7946g9vvbp8vqcpx98xjb79df-P2-0.drv.bz2
  4086. @ build-succeeded /tmp/guix-tests/store/107g7qq7946g9vvbp8vqcpx98xjb79df-P2-0.drv -
  4087. (package (inherit dep) (replacement #f))))
  4088. + (replacement (package-derivation %store new)))))))
  4089. actual-value: #t
  4090. result: PASS
  4091.  
  4092. test-name: replacement also grafted
  4093. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:736
  4094. source:
  4095. + (test-assert
  4096. + "replacement also grafted"
  4097. + (let* ((p1r (dummy-package
  4098. + "P1"
  4099. + (build-system trivial-build-system)
  4100. + (arguments
  4101. + `(#:guile
  4102. + ,%bootstrap-guile
  4103. + #:builder
  4104. + (let ((out (assoc-ref %outputs "out")))
  4105. + (mkdir out)
  4106. + (call-with-output-file
  4107. + (string-append out "/replacement")
  4108. + (const #t)))))))
  4109. + (p1 (package
  4110. + (inherit p1r)
  4111. + (name "p1")
  4112. + (replacement p1r)
  4113. + (arguments
  4114. + `(#:guile
  4115. + ,%bootstrap-guile
  4116. + #:builder
  4117. + (mkdir (assoc-ref %outputs "out"))))))
  4118. + (p2r (dummy-package
  4119. + "P2"
  4120. + (build-system trivial-build-system)
  4121. + (inputs `(("p1" ,p1)))
  4122. + (arguments
  4123. + `(#:guile
  4124. + ,%bootstrap-guile
  4125. + #:builder
  4126. + (let ((out (assoc-ref %outputs "out")))
  4127. + (mkdir out)
  4128. + (chdir out)
  4129. + (symlink (assoc-ref %build-inputs "p1") "p1")
  4130. + (call-with-output-file
  4131. + (string-append out "/replacement")
  4132. + (const #t)))))))
  4133. + (p2 (package
  4134. + (inherit p2r)
  4135. + (name "p2")
  4136. + (replacement p2r)
  4137. + (arguments
  4138. + `(#:guile
  4139. + ,%bootstrap-guile
  4140. + #:builder
  4141. + (let ((out (assoc-ref %outputs "out")))
  4142. + (mkdir out)
  4143. + (chdir out)
  4144. + (symlink (assoc-ref %build-inputs "p1") "p1"))))))
  4145. + (p3 (dummy-package
  4146. + "p3"
  4147. + (build-system trivial-build-system)
  4148. + (inputs `(("p2" ,p2)))
  4149. + (arguments
  4150. + `(#:guile
  4151. + ,%bootstrap-guile
  4152. + #:builder
  4153. + (let ((out (assoc-ref %outputs "out")))
  4154. + (mkdir out)
  4155. + (chdir out)
  4156. + (symlink (assoc-ref %build-inputs "p2") "p2")))))))
  4157. + (lset= equal?
  4158. + (package-grafts %store p3)
  4159. + (list (graft (origin
  4160. + (package-derivation %store p1 #:graft? #f))
  4161. + (replacement (package-derivation %store p1r)))
  4162. + (graft (origin
  4163. + (package-derivation %store p2 #:graft? #f))
  4164. + (replacement
  4165. + (package-derivation %store p2r #:graft? #t)))))))
  4166. actual-value: #t
  4167. result: PASS
  4168.  
  4169. test-name: package->bag
  4170. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:829
  4171. source:
  4172. + (test-equal
  4173. + "package->bag"
  4174. + `("foo86-hurd"
  4175. + #f
  4176. + (,(package-source gnu-make))
  4177. + (,(canonical-package glibc))
  4178. + (,(canonical-package coreutils)))
  4179. + (let ((bag (package->bag gnu-make "foo86-hurd")))
  4180. + (list (bag-system bag)
  4181. + (bag-target bag)
  4182. + (assoc-ref (bag-build-inputs bag) "source")
  4183. + (assoc-ref (bag-build-inputs bag) "libc")
  4184. + (assoc-ref (bag-build-inputs bag) "coreutils"))))
  4185. expected-value: ("foo86-hurd" #f (#<origin "mirror://gnu/make/make-4.2.1.tar.bz2" 23rgfpzwag2c2ky6j34dcabj4hopeaedyvcgws32uzyid7p7yweq ("/tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/gnu/packages/patches/make-impure-dirs.patch") 1a8cde0>) (#<package glibc@2.25 gnu/packages/commencement.scm:635 21e0180>) (#<package coreutils@8.27 gnu/packages/bootstrap.scm:147 21e20c0>))
  4186. actual-value: ("foo86-hurd" #f (#<origin "mirror://gnu/make/make-4.2.1.tar.bz2" 23rgfpzwag2c2ky6j34dcabj4hopeaedyvcgws32uzyid7p7yweq ("/tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/gnu/packages/patches/make-impure-dirs.patch") 1a8cde0>) (#<package glibc@2.25 gnu/packages/commencement.scm:635 21e0180>) (#<package coreutils@8.27 gnu/packages/bootstrap.scm:147 21e20c0>))
  4187. result: PASS
  4188.  
  4189. test-name: package->bag, cross-compilation
  4190. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:838
  4191. source:
  4192. + (test-equal
  4193. + "package->bag, cross-compilation"
  4194. + `(,(%current-system)
  4195. + "foo86-hurd"
  4196. + (,(package-source gnu-make))
  4197. + (,(canonical-package glibc))
  4198. + (,(canonical-package coreutils)))
  4199. + (let ((bag (package->bag
  4200. + gnu-make
  4201. + (%current-system)
  4202. + "foo86-hurd")))
  4203. + (list (bag-system bag)
  4204. + (bag-target bag)
  4205. + (assoc-ref (bag-build-inputs bag) "source")
  4206. + (assoc-ref (bag-build-inputs bag) "libc")
  4207. + (assoc-ref (bag-build-inputs bag) "coreutils"))))
  4208. expected-value: ("x86_64-linux" "foo86-hurd" (#<origin "mirror://gnu/make/make-4.2.1.tar.bz2" 23rgfpzwag2c2ky6j34dcabj4hopeaedyvcgws32uzyid7p7yweq ("/tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/gnu/packages/patches/make-impure-dirs.patch") 1a8cde0>) (#<package glibc@2.25 gnu/packages/commencement.scm:635 21e0180>) (#<package coreutils@8.27 gnu/packages/bootstrap.scm:147 21e20c0>))
  4209. actual-value: ("x86_64-linux" "foo86-hurd" (#<origin "mirror://gnu/make/make-4.2.1.tar.bz2" 23rgfpzwag2c2ky6j34dcabj4hopeaedyvcgws32uzyid7p7yweq ("/tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/gnu/packages/patches/make-impure-dirs.patch") 1a8cde0>) (#<package glibc@2.25 gnu/packages/commencement.scm:635 21e0180>) (#<package coreutils@8.27 gnu/packages/bootstrap.scm:147 21e20c0>))
  4210. result: PASS
  4211.  
  4212. test-name: package->bag, propagated inputs
  4213. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:848
  4214. source:
  4215. + (test-assert
  4216. + "package->bag, propagated inputs"
  4217. + (let* ((dep (dummy-package "dep"))
  4218. + (prop (dummy-package
  4219. + "prop"
  4220. + (propagated-inputs `(("dep" ,dep)))))
  4221. + (dummy (dummy-package
  4222. + "dummy"
  4223. + (inputs `(("prop" ,prop)))))
  4224. + (inputs
  4225. + (bag-transitive-inputs
  4226. + (package->bag dummy #:graft? #f))))
  4227. + (match (assoc "dep" inputs)
  4228. + (("dep" package) (eq? package dep)))))
  4229. actual-value: #t
  4230. result: PASS
  4231.  
  4232. test-name: bag->derivation
  4233. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:859
  4234. source:
  4235. + (test-assert
  4236. + "bag->derivation"
  4237. + (parameterize
  4238. + ((%graft? #f))
  4239. + (let ((bag (package->bag gnu-make))
  4240. + (drv (package-derivation %store gnu-make)))
  4241. + (parameterize
  4242. + ((%current-system "foox86-hurd"))
  4243. + (equal? drv (bag->derivation %store bag))))))
  4244. actual-value: #t
  4245. result: PASS
  4246.  
  4247. test-name: bag->derivation, cross-compilation
  4248. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:866
  4249. source:
  4250. + (test-assert
  4251. + "bag->derivation, cross-compilation"
  4252. + (parameterize
  4253. + ((%graft? #f))
  4254. + (let* ((target "mips64el-linux-gnu")
  4255. + (bag (package->bag gnu-make (%current-system) target))
  4256. + (drv (package-cross-derivation %store gnu-make target)))
  4257. + (parameterize
  4258. + ((%current-system "foox86-hurd")
  4259. + (%current-target-system "foo64-linux-gnu"))
  4260. + (equal? drv (bag->derivation %store bag))))))
  4261. actual-value: #t
  4262. result: PASS
  4263.  
  4264. test-name: GNU Make, bootstrap
  4265. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:877
  4266. source:
  4267. + (test-assert
  4268. + "GNU Make, bootstrap"
  4269. + (let ((gnu-make
  4270. + (@@ (gnu packages commencement) gnu-make-boot0)))
  4271. + (and (package? gnu-make)
  4272. + (or (location? (package-location gnu-make))
  4273. + (not (package-location gnu-make)))
  4274. + (let* ((drv (package-derivation %store gnu-make))
  4275. + (out (derivation->output-path drv)))
  4276. + (and (build-derivations %store (list drv))
  4277. + (file-exists? (string-append out "/bin/make")))))))
  4278. result: SKIP
  4279.  
  4280. test-name: package-mapping
  4281. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:889
  4282. source:
  4283. + (test-equal
  4284. + "package-mapping"
  4285. + 42
  4286. + (let* ((dep (dummy-package
  4287. + "chbouib"
  4288. + (native-inputs `(("x" ,grep)))))
  4289. + (p0 (dummy-package
  4290. + "example"
  4291. + (inputs
  4292. + `(("foo" ,coreutils) ("bar" ,grep) ("baz" ,dep)))))
  4293. + (transform
  4294. + (lambda (p) (package (inherit p) (source 42))))
  4295. + (rewrite (package-mapping transform))
  4296. + (p1 (rewrite p0)))
  4297. + (and (eq? p1 (rewrite p0))
  4298. + (eqv? 42 (package-source p1))
  4299. + (match (package-inputs p1)
  4300. + ((("foo" dep1) ("bar" dep2) ("baz" dep3))
  4301. + (and (eq? dep1 (rewrite coreutils))
  4302. + (eq? dep2 (rewrite grep))
  4303. + (eq? dep3 (rewrite dep))
  4304. + (eqv? 42
  4305. + (package-source dep1)
  4306. + (package-source dep2)
  4307. + (package-source dep3))
  4308. + (match (package-native-inputs dep3)
  4309. + ((("x" dep))
  4310. + (and (eq? dep (rewrite grep))
  4311. + (package-source dep))))))))))
  4312. expected-value: 42
  4313. actual-value: 42
  4314. result: PASS
  4315.  
  4316. test-name: package-input-rewriting
  4317. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:916
  4318. source:
  4319. + (test-assert
  4320. + "package-input-rewriting"
  4321. + (let* ((dep (dummy-package
  4322. + "chbouib"
  4323. + (native-inputs `(("x" ,grep)))))
  4324. + (p0 (dummy-package
  4325. + "example"
  4326. + (inputs
  4327. + `(("foo" ,coreutils) ("bar" ,grep) ("baz" ,dep)))))
  4328. + (rewrite
  4329. + (package-input-rewriting
  4330. + `((,coreutils unquote sed)
  4331. + (,grep unquote findutils))
  4332. + (cut string-append "r-" <>)))
  4333. + (p1 (rewrite p0))
  4334. + (p2 (rewrite p0)))
  4335. + (and (not (eq? p1 p0))
  4336. + (eq? p1 p2)
  4337. + (string=? "r-example" (package-name p1))
  4338. + (match (package-inputs p1)
  4339. + ((("foo" dep1) ("bar" dep2) ("baz" dep3))
  4340. + (and (eq? dep1 sed)
  4341. + (eq? dep2 findutils)
  4342. + (string=? (package-name dep3) "r-chbouib")
  4343. + (eq? dep3 (rewrite dep))
  4344. + (match (package-native-inputs dep3)
  4345. + ((("x" dep)) (eq? dep findutils)))))))))
  4346. actual-value: #t
  4347. result: PASS
  4348.  
  4349. test-name: fold-packages
  4350. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:941
  4351. source:
  4352. + (test-eq
  4353. + "fold-packages"
  4354. + hello
  4355. + (fold-packages
  4356. + (lambda (p r)
  4357. + (if (string=? (package-name p) "hello") p r))
  4358. + #f))
  4359. expected-value: #<package hello@2.10 gnu/packages/base.scm:62 1a7c3c0>
  4360. actual-value: #<package hello@2.10 gnu/packages/base.scm:62 1a7c3c0>
  4361. result: PASS
  4362.  
  4363. test-name: fold-packages, hidden package
  4364. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:948
  4365. source:
  4366. + (test-assert
  4367. + "fold-packages, hidden package"
  4368. + (match (fold-packages
  4369. + (lambda (p r)
  4370. + (if (and (string=? (package-name p) "guile")
  4371. + (string-prefix? "2.0" (package-version p)))
  4372. + (cons p r)
  4373. + r))
  4374. + '())
  4375. + ((one) (eq? one guile-2.0))))
  4376. actual-value: #t
  4377. result: PASS
  4378.  
  4379. test-name: find-packages-by-name
  4380. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:962
  4381. source:
  4382. + (test-assert
  4383. + "find-packages-by-name"
  4384. + (match (find-packages-by-name "hello")
  4385. + (((? (cut eq? hello <>))) #t)@ build-started /tmp/guix-tests/store/dm1329nz3dhq2fqvklcawzcc8xkyiamj-foo-0.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/dm//1329nz3dhq2fqvklcawzcc8xkyiamj-foo-0.drv.bz2
  4386. @ build-succeeded /tmp/guix-tests/store/dm1329nz3dhq2fqvklcawzcc8xkyiamj-foo-0.drv -
  4387. @ build-started /tmp/guix-tests/store/r2cwc0ymafj3fih71ddlpvv48ibh3r5f-libxml2-0.0.0.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/r2//cwc0ymafj3fih71ddlpvv48ibh3r5f-libxml2-0.0.0.drv.bz2
  4388. @ build-succeeded /tmp/guix-tests/store/r2cwc0ymafj3fih71ddlpvv48ibh3r5f-libxml2-0.0.0.drv -
  4389. @ build-started /tmp/guix-tests/store/mddilgrxzlmdwffg75qnay392j0a4mws-module-import.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/md//dilgrxzlmdwffg75qnay392j0a4mws-module-import.drv.bz2
  4390. @ build-succeeded /tmp/guix-tests/store/mddilgrxzlmdwffg75qnay392j0a4mws-module-import.drv -
  4391. @ build-started /tmp/guix-tests/store/3x62sq6nv1scqlc0ak9jlb7q74fr3zym-module-import-compiled.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/3x//62sq6nv1scqlc0ak9jlb7q74fr3zym-module-import-compiled.drv.bz2
  4392. @ build-succeeded /tmp/guix-tests/store/3x62sq6nv1scqlc0ak9jlb7q74fr3zym-module-import-compiled.drv -
  4393. @ build-started /tmp/guix-tests/store/ar06nfhf5yzf97iwk05yhnh0fgl7ca25-profile.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/ar//06nfhf5yzf97iwk05yhnh0fgl7ca25-profile.drv.bz2
  4394. @ build-succeeded /tmp/guix-tests/store/ar06nfhf5yzf97iwk05yhnh0fgl7ca25-profile.drv -
  4395.  
  4396. + (wrong (pk 'find-packages-by-name wrong #f))))
  4397. actual-value: #t
  4398. result: PASS
  4399.  
  4400. test-name: find-packages-by-name with version
  4401. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:967
  4402. source:
  4403. + (test-assert
  4404. + "find-packages-by-name with version"
  4405. + (match (find-packages-by-name
  4406. + "hello"
  4407. + (package-version hello))
  4408. + (((? (cut eq? hello <>))) #t)
  4409. + (wrong (pk 'find-packages-by-name wrong #f))))
  4410. actual-value: #t
  4411. result: PASS
  4412.  
  4413. test-name: --search-paths with pattern
  4414. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:972
  4415. source:
  4416. + (test-assert
  4417. + "--search-paths with pattern"
  4418. + (let* ((p1 (package
  4419. + (name "foo")
  4420. + (version "0")
  4421. + (source #f)
  4422. + (build-system trivial-build-system)
  4423. + (arguments
  4424. + `(#:guile
  4425. + ,%bootstrap-guile
  4426. + #:modules
  4427. + ((guix build utils))
  4428. + #:builder
  4429. + (begin
  4430. + (use-modules (guix build utils))
  4431. + (let ((out (assoc-ref %outputs "out")))
  4432. + (mkdir-p (string-append out "/xml/bar/baz"))
  4433. + (call-with-output-file
  4434. + (string-append out "/xml/bar/baz/catalog.xml")
  4435. + (lambda (port) (display "xml? wat?!" port)))))))
  4436. + (synopsis #f)
  4437. + (description #f)
  4438. + (home-page #f)
  4439. + (license #f)))
  4440. + (p2 (package
  4441. + (name "libxml2")
  4442. + (version "0.0.0")
  4443. + (source #f)
  4444. + (build-system trivial-build-system)
  4445. + (arguments
  4446. + `(#:guile
  4447. + ,%bootstrap-guile
  4448. + #:builder
  4449. + (mkdir (assoc-ref %outputs "out"))))
  4450. + (native-search-paths
  4451. + (package-native-search-paths libxml2))
  4452. + (synopsis #f)
  4453. + (description #f)
  4454. + (home-page #f)
  4455. + (license #f)))
  4456. + (prof (run-with-store
  4457. + %store
  4458. + (profile-derivation
  4459. + (manifest
  4460. + (map package->manifest-entry (list p1 p2)))
  4461. + #:hooks
  4462. + '()
  4463. + #:locales?
  4464. + #f)
  4465. + #:guile-for-build
  4466. + (%guile-for-build))))
  4467. + (build-derivations %store (list prof))
  4468. + (string-match
  4469. + (format
  4470. + #f
  4471. + "^export XML_CATALOG_FILES=\"~a/xml/+bar/baz/catalog\\.xml\"\n"
  4472. + (regexp-quote (derivation->output-path prof)))
  4473. + (with-output-to-string
  4474. + (lambda ()
  4475. + (guix-package
  4476. + "-p"
  4477. + (derivation->output-path prof)
  4478. + "--search-paths"))))))
  4479. actual-value: #("export XML_CATALOG_FILES=\"/tmp/guix-tests/store/37ymvi3zxd43fsayprplh6nrvdbbpj2p-profile/xml/bar/baz/catalog.xml\"\n" (0 . 114))
  4480. result: PASS
  4481.  
  4482. test-name: --search-paths with single-item search path
  4483. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:1020
  4484. source:
  4485. + (test-assert
  4486. + "--search-paths with single-item search path"
  4487. + (let* ((p1 (dummy-package
  4488. + "foo"
  4489. + (build-system trivial-build-system)
  4490. + (arguments
  4491. + `(#:guile
  4492. + ,%bootstrap-guile
  4493. + #:modules
  4494. + ((guix build utils))
  4495. + #:builder
  4496. + (begin
  4497. + (use-modules (guix build utils))
  4498. + (let ((out (assoc-ref %outputs "out")))
  4499. + (mkdir-p (string-append out "/etc/ssl/certs"))
  4500. + (call-with-output-file
  4501. + (string-append
  4502. + out
  4503. + "/etc/ssl/certs/ca-certificates.crt")
  4504. + @ build-started /tmp/guix-tests/store/7bd2z45r9hanzyb83y0a59plkwgljzh9-bar-0.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/7b//d2z45r9hanzyb83y0a59plkwgljzh9-bar-0.drv.bz2
  4505. @ build-succeeded /tmp/guix-tests/store/7bd2z45r9hanzyb83y0a59plkwgljzh9-bar-0.drv -
  4506. @ build-started /tmp/guix-tests/store/5vq95ggw6ql8nwvqrn9kpqbxprxqbxsh-foo-0.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/5v//q95ggw6ql8nwvqrn9kpqbxprxqbxsh-foo-0.drv.bz2
  4507. @ build-succeeded /tmp/guix-tests/store/5vq95ggw6ql8nwvqrn9kpqbxprxqbxsh-foo-0.drv -
  4508. @ build-started /tmp/guix-tests/store/ilbcggmc6x2s6gffll2k7b1ryyvr0p3j-git-0.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/il//bcggmc6x2s6gffll2k7b1ryyvr0p3j-git-0.drv.bz2
  4509. @ build-succeeded /tmp/guix-tests/store/ilbcggmc6x2s6gffll2k7b1ryyvr0p3j-git-0.drv -
  4510. @ build-started /tmp/guix-tests/store/422lnw1zd9j6i6lbjcy7c901lc4xs08a-profile.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/42//2lnw1zd9j6i6lbjcy7c901lc4xs08a-profile.drv.bz2
  4511. @ build-succeeded /tmp/guix-tests/store/422lnw1zd9j6i6lbjcy7c901lc4xs08a-profile.drv -
  4512. @ build-started /tmp/guix-tests/store/byp0802bj2490y919nlwkl4rhxd637wd-profile.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/by//p0802bj2490y919nlwkl4rhxd637wd-profile.drv.bz2
  4513. @ build-succeeded /tmp/guix-tests/store/byp0802bj2490y919nlwkl4rhxd637wd-profile.drv -
  4514. error: this-package-does-not-exist: unknown package
  4515. (const #t))))))))
  4516. + (p2 (package (inherit p1) (name "bar")))
  4517. + (p3 (dummy-package
  4518. + "git"
  4519. + (build-system trivial-build-system)
  4520. + (arguments
  4521. + `(#:guile
  4522. + ,%bootstrap-guile
  4523. + #:builder
  4524. + (mkdir (assoc-ref %outputs "out"))))
  4525. + (native-search-paths
  4526. + (package-native-search-paths git))))
  4527. + (prof1 (run-with-store
  4528. + %store
  4529. + (profile-derivation
  4530. + (packages->manifest (list p1 p3))
  4531. + #:hooks
  4532. + '()
  4533. + #:locales?
  4534. + #f)
  4535. + #:guile-for-build
  4536. + (%guile-for-build)))
  4537. + (prof2 (run-with-store
  4538. + %store
  4539. + (profile-derivation
  4540. + (packages->manifest (list p2 p3))
  4541. + #:hooks
  4542. + '()
  4543. + #:locales?
  4544. + #f)
  4545. + #:guile-for-build
  4546. + (%guile-for-build))))
  4547. + (build-derivations %store (list prof1 prof2))
  4548. + (string-match
  4549. + (format
  4550. + #f
  4551. + "^export GIT_SSL_CAINFO=\"~a/etc/ssl/certs/ca-certificates.crt"
  4552. + (regexp-quote (derivation->output-path prof1)))
  4553. + (with-output-to-string
  4554. + (lambda ()
  4555. + (guix-package
  4556. + "-p"
  4557. + (derivation->output-path prof1)
  4558. + "-p"
  4559. + (derivation->output-path prof2)
  4560. + "--search-paths"))))))
  4561. actual-value: #("export GIT_SSL_CAINFO=\"/tmp/guix-tests/store/5pj775fgwpcbalmyzhzhnlidr7qagvfd-profile/etc/ssl/certs/ca-certificates.crt\"\n" (0 . 119))
  4562. result: PASS
  4563.  
  4564. test-name: specification->package when not found
  4565. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/packages.scm:1066
  4566. source:
  4567. + (test-equal
  4568. + "specification->package when not found"
  4569. + 'quit
  4570. + (catch 'quit
  4571. + (lambda ()
  4572. + (specification->package
  4573. + "this-package-does-not-exist"))
  4574. + (lambda (key . args) key)))
  4575. expected-value: quit
  4576. actual-value: quit
  4577. result: PASS
  4578.  
  4579.  
  4580. SKIP: tests/snix
  4581. ================
  4582.  
  4583. test-name: factorize-uri
  4584. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/snix.scm:36
  4585. source:
  4586. + (test-assert
  4587. + "factorize-uri"
  4588. + (every?
  4589. + (match-lambda
  4590. + ((uri version '-> expected)
  4591. + (equal? (factorize-uri uri version) expected)))
  4592. + '(("http://example.com/foo.tgz"
  4593. + "1.0"
  4594. + ->
  4595. + "http://example.com/foo.tgz")
  4596. + ("http://example.com/foo-2.8.tgz"
  4597. + "2.8"
  4598. + ->
  4599. + ("http://example.com/foo-" version ".tgz"))
  4600. + ("http://example.com/2.8/foo-2.8.tgz"
  4601. + "2.8"
  4602. + ->
  4603. + ("http://example.com/"
  4604. + version
  4605. + "/foo-"
  4606. + version
  4607. + ".tgz")))))
  4608. actual-value: #t
  4609. result: PASS
  4610.  
  4611. test-name: nixpkgs->guix-package
  4612. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/snix.scm:54
  4613. source:
  4614. + (test-assert
  4615. + "nixpkgs->guix-package"
  4616. + (match (nixpkgs->guix-package
  4617. + %nixpkgs-directory
  4618. + "guile")
  4619. + (('package
  4620. + ('name "guile")
  4621. + ('version (? string?))
  4622. + ('source ('origin _ ...))
  4623. + ('build-system _)
  4624. + ('inputs ('quasiquote (inputs ...)))
  4625. + ('propagated-inputs ('quasiquote (pinputs ...)))
  4626. + ('home-page (? string?))
  4627. + ('synopsis (? string?))
  4628. + ('description (? string?))
  4629. + ('license (? symbol?)))
  4630. + (and (member '("libffi" ,libffi) inputs)
  4631. + (member '("gmp" ,gmp) pinputs)
  4632. + #t))
  4633. + (x (pk 'fail x #f))))
  4634. result: SKIP
  4635.  
  4636.  
  4637. FAIL: tests/store
  4638. =================
  4639.  
  4640. test-name: open-connection with file:// URI
  4641. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:51
  4642. source:
  4643. + (test-assert
  4644. + "open-connection with file:// URI"
  4645. + (let ((store (open-connection
  4646. + (string-append "file://" (%daemon-socket-uri)))))
  4647. + (and (add-text-to-store store "foo" "bar")
  4648. + (begin (close-connection store) #t))))
  4649. actual-value: #t
  4650. result: PASS
  4651.  
  4652. test-name: connection handshake error
  4653. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:59
  4654. source:
  4655. + (test-equal
  4656. + "connection handshake error"
  4657. + EPROTO
  4658. + (let ((port (%make-void-port "rw")))
  4659. + (guard (c ((nix-connection-error? c)
  4660. + (and (eq? port (nix-connection-error-file c))
  4661. + (nix-connection-error-code c))))
  4662. + (open-connection #f #:port port)
  4663. + 'broken)))
  4664. expected-value: 71
  4665. actual-value: 71
  4666. result: PASS
  4667.  
  4668. test-name: store-path-hash-part
  4669. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:68
  4670. source:
  4671. + (test-equal
  4672. + "store-path-hash-part"
  4673. + "283gqy39v3g9dxjy26rynl0zls82fmcg"
  4674. + (store-path-hash-part
  4675. + (string-append
  4676. + (%store-prefix)
  4677. + "/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7")))
  4678. expected-value: "283gqy39v3g9dxjy26rynl0zls82fmcg"
  4679. actual-value: "283gqy39v3g9dxjy26rynl0zls82fmcg"
  4680. result: PASS
  4681.  
  4682. test-name: store-path-hash-part #f
  4683. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:74
  4684. source:
  4685. + (test-equal
  4686. + "store-path-hash-part #f"
  4687. + #f
  4688. + (store-path-hash-part
  4689. + (string-append
  4690. + (%store-prefix)
  4691. + "/foo/bar/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7")))
  4692. expected-value: #f
  4693. actual-value: #f
  4694. result: PASS
  4695.  
  4696. test-name: store-path-package-name
  4697. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:80
  4698. source:
  4699. + (test-equal
  4700. + "store-path-package-name"
  4701. + "guile-2.0.7"
  4702. + (store-path-package-name
  4703. + (string-append
  4704. + (%store-prefix)
  4705. + "/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7")))
  4706. expected-value: "guile-2.0.7"
  4707. actual-value: "guile-2.0.7"
  4708. result: PASS
  4709.  
  4710. test-name: store-path-package-name #f
  4711. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:86
  4712. source:
  4713. + (test-equal
  4714. + "store-path-package-name #f"
  4715. + #f
  4716. + (store-path-package-name
  4717. + "/foo/bar/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7"))
  4718. expected-value: #f
  4719. actual-value: #f
  4720. result: PASS
  4721.  
  4722. test-name: direct-store-path?
  4723. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:91
  4724. source:
  4725. + (test-assert
  4726. + "direct-store-path?"
  4727. + (and (direct-store-path?
  4728. + (string-append
  4729. + (%store-prefix)
  4730. + "/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7"))
  4731. + (not (direct-store-path?
  4732. + (string-append
  4733. + (%store-prefix)
  4734. + "/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7/bin/guile")))
  4735. + (not (direct-store-path? (%store-prefix)))))
  4736. actual-value: #t
  4737. result: PASS
  4738.  
  4739. test-name: add-data-to-store
  4740. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:103
  4741. source:
  4742. + (test-equal
  4743. + "add-data-to-store"
  4744. + #vu8(1 2 3 4 5)
  4745. + (call-with-input-file
  4746. + (add-data-to-store %store "data" #vu8(1 2 3 4 5))
  4747. + get-bytevector-all))
  4748. expected-value: #vu8(1 2 3 4 5)
  4749. actual-value: #vu8(1 2 3 4 5)
  4750. result: PASS
  4751.  
  4752. test-name: valid-path? live
  4753. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:108
  4754. source:
  4755. + (test-assert
  4756. + "valid-path? live"
  4757. + (let ((p (add-text-to-store %store "hello" "hello, world")))
  4758. + (valid-path? %store p)))
  4759. actual-value: #t
  4760. result: PASS
  4761.  
  4762. test-name: valid-path? false
  4763. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:112
  4764. source:
  4765. + (test-assert
  4766. + "valid-path? false"
  4767. + (not (valid-path?
  4768. + %store
  4769. + (string-append
  4770. + (%store-prefix)
  4771. + "/"
  4772. + (make-string 32 #\e)
  4773. + "-foobar"))))
  4774. actual-value: #t
  4775. result: PASS
  4776.  
  4777. test-name: valid-path? error
  4778. location: random seed for tests: 1508167662
  4779. finding garbage collector roots...
  4780. removing stale temporary roots file `/tmp/guix-tests/var/14612/temproots/14634'
  4781. determining live/dead paths...
  4782. finding garbage collector roots...
  4783. determining live/dead paths...
  4784. finding garbage collector roots...
  4785. determining live/dead paths...
  4786. finding garbage collector roots...
  4787. deleting unused links...
  4788. finding garbage collector roots...
  4789. removing stale temporary roots file `/tmp/guix-tests/var/14612/temproots/14679'
  4790. deleting `/tmp/guix-tests/store/196ym5ld49am6idjvi9nbggd1sl32pq2-delete-me'
  4791. deleting `/tmp/guix-tests/store/trash'
  4792. deleting unused links...
  4793. note: currently hard linking saves 0.68 MiB
  4794. finding garbage collector roots...
  4795. removing stale temporary roots file `/tmp/guix-tests/var/14612/temproots/14690'
  4796. deleting `/tmp/guix-tests/store/a27v317kpgsn1k82vnqhn02s9hjqwg5f-delete-me'
  4797. deleting `/tmp/guix-tests/store/trash'
  4798. deleting unused links...
  4799. note: currently hard linking saves 0.68 MiB
  4800. /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:117
  4801. source:
  4802. + (test-assert
  4803. + "valid-path? error"
  4804. + (with-store
  4805. + s
  4806. + (guard (c ((nix-protocol-error? c) #t))
  4807. + (valid-path? s "foo")
  4808. + #f)))
  4809. actual-value: #t
  4810. result: PASS
  4811.  
  4812. test-name: valid-path? recovery
  4813. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:123
  4814. source:
  4815. + (test-assert
  4816. + "valid-path? recovery"
  4817. + (with-store
  4818. + s
  4819. + (let-syntax ((true-if-error
  4820. + (syntax-rules ()
  4821. + ((_ exp)
  4822. + (guard (c ((nix-protocol-error? c) #t)) exp #f)))))
  4823. + (and (true-if-error (valid-path? s "foo"))
  4824. + (true-if-error (valid-path? s "bar"))
  4825. + (true-if-error (valid-path? s "baz"))
  4826. + (true-if-error (valid-path? s "chbouib"))
  4827. + (valid-path?
  4828. + s
  4829. + (add-text-to-store s "valid" "yeah"))))))
  4830. actual-value: #t
  4831. result: PASS
  4832.  
  4833. test-name: hash-part->path
  4834. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:140
  4835. source:
  4836. + (test-assert
  4837. + "hash-part->path"
  4838. + (let ((p (add-text-to-store %store "hello" "hello, world")))
  4839. + (equal?
  4840. + (hash-part->path %store (store-path-hash-part p))
  4841. + p)))
  4842. actual-value: #t
  4843. result: PASS
  4844.  
  4845. test-name: dead-paths
  4846. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:145
  4847. source:
  4848. + (test-assert
  4849. + "dead-paths"
  4850. + (let ((p (add-text-to-store
  4851. + %store
  4852. + "random-text"
  4853. + (random-text))))
  4854. + (->bool (member p (dead-paths %store)))))
  4855. actual-value: #t
  4856. result: PASS
  4857.  
  4858. test-name: permanent root
  4859. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:166
  4860. source:
  4861. + (test-assert
  4862. + "permanent root"
  4863. + (let* ((p (with-store
  4864. + store
  4865. + (let ((p (add-text-to-store
  4866. + store
  4867. + "random-text"
  4868. + (random-text))))
  4869. + (add-permanent-root p)
  4870. + (add-permanent-root p)
  4871. + p))))
  4872. + (and (member p (live-paths %store))
  4873. + (begin
  4874. + (remove-permanent-root p)
  4875. + (->bool (member p (dead-paths %store)))))))
  4876. actual-value: #t
  4877. result: PASS
  4878.  
  4879. test-name: dead path can be explicitly collected
  4880. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:178
  4881. source:
  4882. + (test-assert
  4883. + "dead path can be explicitly collected"
  4884. + (let ((p (add-text-to-store
  4885. + %store
  4886. + "random-text"
  4887. + (random-text)
  4888. + '())))
  4889. + (let-values
  4890. + (((paths freed) (delete-paths %store (list p))))
  4891. + (and (equal? paths (list p))
  4892. + (> freed 0)
  4893. + (not (file-exists? p))))))
  4894. actual-value: #f
  4895. result: FAIL
  4896.  
  4897. test-name: add-text-to-store vs. delete-paths
  4898. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:186
  4899. source:
  4900. + (test-assert
  4901. + "add-text-to-store vs. delete-paths"
  4902. + (with-store
  4903. + store
  4904. + (let* ((text (random-text))
  4905. + (path (add-text-to-store store "delete-me" text))
  4906. + (deleted (delete-paths store (list path)))
  4907. + (path2 (add-text-to-store store "delete-me" text)))
  4908. + (and (string=? path path2)
  4909. + (equal? deleted (list path))
  4910. + (valid-path? store path)
  4911. + (file-exists? path)))))
  4912. actual-value: #t
  4913. result: PASS
  4914.  
  4915. test-name: add-to-store vs. delete-paths
  4916. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:199
  4917. source:
  4918. + (test-assert
  4919. + "add-to-store vs. delete-paths"
  4920. + (with-store
  4921. + store
  4922. + (let* ((file (search-path %load-path "guix.scm"))
  4923. + (path (add-to-store store "delete-me" #t "sha256" file))
  4924. + (deleted (delete-paths store (list path)))
  4925. + (path2 (add-to-store store "delete-me" #t "sha256" file)))
  4926. + (and (string=? path path2)
  4927. + (equal? deleted (list path))
  4928. + (valid-path? store path)
  4929. + (file-exists? path)))))
  4930. actual-value: #t
  4931. rsubstitute: warning: authentication and authorization of substitutes disabled!
  4932. substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
  4933. esult: PASS
  4934.  
  4935. test-name: references
  4936. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:211
  4937. source:
  4938. + (test-assert
  4939. + "references"
  4940. + (let* ((t1 (add-text-to-store
  4941. + %store
  4942. + "random1"
  4943. + (random-text)))
  4944. + (t2 (add-text-to-store
  4945. + %store
  4946. + "random2"
  4947. + (random-text)
  4948. + (list t1))))
  4949. + (and (equal? (list t1) (references %store t2))
  4950. + (equal? (list t2) (referrers %store t1))
  4951. + (null? (references %store t1))
  4952. + (null? (referrers %store t2)))))
  4953. actual-value: #t
  4954. result: PASS
  4955.  
  4956. test-name: references/substitutes missing reference info
  4957. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:221
  4958. source:
  4959. + (test-assert
  4960. + "references/substitutes missing reference info"
  4961. + (with-store
  4962. + s
  4963. + (set-build-options s #:use-substitutes? #f)
  4964. + (guard (c ((nix-protocol-error? c) #t))
  4965. + (let* ((b (add-to-store
  4966. + s
  4967. + "bash"
  4968. + #t
  4969. + "sha256"
  4970. + (search-bootstrap-binary
  4971. + "bash"
  4972. + (%current-system))))
  4973. + (d (derivation
  4974. + s
  4975. + "the-thing"
  4976. + b
  4977. + '("--help")
  4978. + #:inputs
  4979. + `((,b)))))
  4980. + (references/substitutes
  4981. + s
  4982. + (list (derivation->output-path d) b))
  4983. + #f))))
  4984. actual-value: #t
  4985. result: PASS
  4986.  
  4987. test-name: references/substitutes with substitute info
  4988. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:233
  4989. source:
  4990. + (test-assert
  4991. + "references/substitutes with substitute info"
  4992. + (with-store
  4993. + s
  4994. + (set-build-options s #:use-substitutes? #t)
  4995. + (let* ((t1 (add-text-to-store s "random1" (random-text)))
  4996. + (t2 (add-text-to-store
  4997. + s
  4998. + "random2"
  4999. + (random-text)
  5000. + (list t1)))
  5001. + (t3 (add-text-to-store
  5002. + s
  5003. + "build"
  5004. + "echo -n $t2 > $out"))
  5005. + (b (add-to-store
  5006. + s
  5007. + "bash"
  5008. + #t
  5009. + "sha256"
  5010. + (search-bootstrap-binary
  5011. + "bash"
  5012. + (%current-system))))
  5013. + (d (derivation
  5014. + s
  5015. + "the-thing"
  5016. + b
  5017. + `("-e" ,t3)
  5018. + #:inputs
  5019. + `((,b) (,t3) (,t2))
  5020. + #:env-vars
  5021. + `(("t2" unquote t2))))
  5022. + (o (derivation->output-path d)))
  5023. + (with-derivation-narinfo
  5024. + d
  5025. + (sha256 => (sha256 (string->utf8 t2)))
  5026. + (references => (list t2))
  5027. + (equal?
  5028. + (references/substitutes s (list o t3 t2 t1))
  5029. + `((,t2) () (,t1) ()))))))
  5030. actual-value: #t
  5031. result: PASS
  5032.  
  5033. test-name: substitutable-path-info when substitutes are turned off
  5034. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:257
  5035. source:
  5036. + (test-equal
  5037. + "substitutable-path-info when substitutes are turned off"
  5038. + '()
  5039. + (with-store
  5040. + s
  5041. + (set-build-options s #:use-substitutes? #f)
  5042. + (let* ((b (add-to-store
  5043. + s
  5044. + "bash"
  5045. + #t
  5046. + "sha256"
  5047. + (search-bootstrap-binary
  5048. + "bash"
  5049. + (%current-system))))
  5050. + (d (derivation
  5051. + s
  5052. + "the-thing"
  5053. + b
  5054. + '("--version")
  5055. + #:inputs
  5056. + `((,b))))
  5057. + (o (derivation->output-path d)))
  5058. + (with-derivation-narinfo
  5059. + d
  5060. + (substitutable-path-info s (list o))))))
  5061. expected-value: ()
  5062. actual-value: ()
  5063. result: PASS
  5064.  
  5065. test-name: substitutable-paths when substitutes are turned off
  5066. loc@ build-started /tmp/guix-tests/store/k3v64cz08hxprh9vxaks9ipdihb5qdpv-the-thing.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/k3//v64cz08hxprh9vxaks9ipdihb5qdpv-the-thing.drv.bz2
  5067. @ build-succeeded /tmp/guix-tests/store/k3v64cz08hxprh9vxaks9ipdihb5qdpv-the-thing.drv -
  5068. ation: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:270
  5069. source:
  5070. + (test-equal
  5071. + "substitutable-paths when substitutes are turned off"
  5072. + '()
  5073. + (with-store
  5074. + s
  5075. + (set-build-options s #:use-substitutes? #f)
  5076. + (let* ((b (add-to-store
  5077. + s
  5078. + "bash"
  5079. + #t
  5080. + "sha256"
  5081. + (search-bootstrap-binary
  5082. + "bash"
  5083. + (%current-system))))
  5084. + (d (derivation
  5085. + s
  5086. + "the-thing"
  5087. + b
  5088. + '("--version")
  5089. + #:inputs
  5090. + `((,b))))
  5091. + (o (derivation->output-path d)))
  5092. + (with-derivation-narinfo
  5093. + d
  5094. + (substitutable-paths s (list o))))))
  5095. expected-value: ()
  5096. actual-value: ()
  5097. result: PASS
  5098.  
  5099. test-name: requisites
  5100. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:283
  5101. source:
  5102. + (test-assert
  5103. + "requisites"
  5104. + (let* ((t1 (add-text-to-store
  5105. + %store
  5106. + "random1"
  5107. + (random-text)
  5108. + '()))
  5109. + (t2 (add-text-to-store
  5110. + %store
  5111. + "random2"
  5112. + (random-text)
  5113. + (list t1)))
  5114. + (t3 (add-text-to-store
  5115. + %store
  5116. + "random3"
  5117. + (random-text)
  5118. + (list t2)))
  5119. + (t4 (add-text-to-store
  5120. + %store
  5121. + "random4"
  5122. + (random-text)
  5123. + (list t1 t3))))
  5124. + (define (same? x y)
  5125. + (and (= (length x) (length y))
  5126. + (lset= equal? x y)))
  5127. + (and (same? (requisites %store (list t1)) (list t1))
  5128. + (same? (requisites %store (list t2))
  5129. + (list t1 t2))
  5130. + (same? (requisites %store (list t3))
  5131. + (list t1 t2 t3))
  5132. + (same? (requisites %store (list t4))
  5133. + (list t1 t2 t3 t4))
  5134. + (same? (requisites %store (list t1 t2 t3 t4))
  5135. + (list t1 t2 t3 t4)))))
  5136. actual-value: #t
  5137. result: PASS
  5138.  
  5139. test-name: derivers
  5140. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:303
  5141. source:
  5142. + (test-assert
  5143. + "derivers"
  5144. + (let* ((b (add-text-to-store
  5145. + %store
  5146. + "build"
  5147. + "echo $foo > $out"
  5148. + '()))
  5149. + (s (add-to-store
  5150. + %store
  5151. + "bash"
  5152. + #t
  5153. + "sha256"
  5154. + (search-bootstrap-binary
  5155. + "bash"
  5156. + (%current-system))))
  5157. + (d (derivation
  5158. + %store
  5159. + "the-thing"
  5160. + s
  5161. + `("-e" ,b)
  5162. + #:env-vars
  5163. + `(("foo" unquote (random-text)))
  5164. + #:inputs
  5165. + `((,b) (,s))))
  5166. + (o (derivation->output-path d)))
  5167. + (and (build-derivations %store (list d))
  5168. + (equal?
  5169. + (query-derivation-outputs
  5170. + %store
  5171. + (derivation-file-name d))
  5172. + (list o))
  5173. + (equal?
  5174. + (valid-derivers %store o)
  5175. + (list (derivation-file-name d))))))
  5176. actual-value: #t
  5177. result: PASS
  5178.  
  5179. test-name: topologically-sorted, one item
  5180. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:319
  5181. source:
  5182. + (test-assert
  5183. + "topologically-sorted, one item"
  5184. + (let* ((a (add-text-to-store %store "a" "a"))
  5185. + (b (add-text-to-store %store "b" "b" (list a)))
  5186. + (c (add-text-to-store %store "c" "c" (list b)))
  5187. + (d (add-text-to-store %store "d" "d" (list c)))
  5188. + (s (topologically-sorted %store (list d))))
  5189. + (equal? s (list a b c d))))
  5190. actual-value: #t
  5191. result: PASS
  5192.  
  5193. test-name: topologically-sorted, several items
  5194. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:327
  5195. source:
  5196. + (test-assert
  5197. + "topologically-sorted, several items"
  5198. + (let* ((a (add-text-to-store %store "a" "a"))
  5199. + (b (add-text-to-store %store "b" "b" (list a)))
  5200. + (c (add-text-to-store %store "c" "c" (list b)))
  5201. + (d (add-text-to-store %store "d" "d" (list c)))
  5202. + (s1 (topologically-sorted %store (list d a c b)))
  5203. + (s2 (topologically-sorted %store (list b d c a b d))))
  5204. + (equal? s1 s2 (list a b c d))))
  5205. actual-value: #t
  5206. result: PASS
  5207.  
  5208. test-name: topologically-sorted, more difficult
  5209. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:336
  5210. source:
  5211. + (test-assert
  5212. + "topologically-sorted, more difficult"
  5213. + (let* ((a (add-text-to-store %store "a" "a"))
  5214. + (b (add-text-to-store %store "b" "b" (list a)))
  5215. + (c (add-text-to-store %store "c" "c" (list b)))
  5216. + (d (add-text-to-store %store "d" "d" (list c)))
  5217. + (w (add-text-to-store %store "w" "w"))
  5218. + (x (add-text-to-store %store "x" "x" (list w)))
  5219. + (y (add-text-to-store %store "y" "y" (list x d)))
  5220. + (s1 (topologically-sorted %store (list y)))
  5221. + (s2 (topologically-sorted %store (list c y)))
  5222. + (s3 (topologically-sorted
  5223. + %store
  5224. + (cons y (references %store y)))))
  5225. + (let* ((x-then-d?
  5226. + (equal? (references %store y) (list x d))))
  5227. + (and (equal?
  5228. + s1
  5229. + (if x-then-d?
  5230. + (list w x a b c d y)
  5231. + (list a b c d w x y)))
  5232. + (equal?
  5233. + s2
  5234. + (if x-then-d?
  5235. + (list a b c w x d y)
  5236. + (list a b c d w x y)))
  5237. + (lset= string=? s1 s3)))))
  5238. actual-value: #t
  5239. result: PASS
  5240.  
  5241. test-name: current-build-output-port, UTF-8
  5242. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:360
  5243. source:
  5244. + (test-assert
  5245. + "current-build-output-port, UTF-8"
  5246. + (string-contains
  5247. + (with-fluids
  5248. + ((%default-port-encoding "UTF-8"))
  5249. + (call-with-output-string
  5250. + (lambda (port)
  5251. + (parameterize
  5252. + ((current-build-output-port port))
  5253. + (let* ((s "Here’s a Greek letter: λ.")
  5254. + (d (build-expression->derivation
  5255. + %store
  5256. + "foo"
  5257. + `(display ,s)
  5258. + #:guile-for-build
  5259. + (package-derivation
  5260. + s
  5261. + %bootstrap-guile
  5262. + (%current-system)))))
  5263. + (guard (c ((nix-protocol-error? c) #t))
  5264. + (build-derivations %store (list d))))))))
  5265. + "Here’s a Greek letter: λ."))
  5266. actual-value: 175
  5267. result: PASS
  5268.  
  5269. test-name: current-build-output-port, UTF-8 + garbage
  5270. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:376
  5271. source:
  5272. + (test-assert
  5273. + "current-build-output-port, UTF-8 + garbage"
  5274. + (string-contains
  5275. + (with-fluids
  5276. + ((%default-port-encoding "UTF-8"))
  5277. + (call-with-output-string
  5278. + (lambda (port)
  5279. + (parameterize
  5280. + ((current-build-output-port port))
  5281. + (let ((d (build-expression->derivation
  5282. + %store
  5283. + "foo"
  5284. + `(begin
  5285. + (use-modules (rnrs io ports))
  5286. + (display "garbage: ")
  5287. + (put-bytevector (current-output-port) #vu8(128))
  5288. + (display "lambda: λ\n"))
  5289. + #:guile-for-build
  5290. + (package-derivation %store %bootstrap-guile))))
  5291. + (guard (c ((nix-protocol-error? c) #t))
  5292. + (build-derivations %store (list d))))))))
  5293. + (cond-expand
  5294. + (guile-2.2 "garbage: �lambda: λ")
  5295. + (else "garbage: ?lambda: λ"))))
  5296. actual-value: 175
  5297. result: PASS
  5298.  
  5299. test-name: log-file, derivation
  5300. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:398
  5301. source:
  5302. + (test-assert
  5303. + "log-file, derivation"
  5304. + (let* ((b (add-text-to-store
  5305. + %store
  5306. + "build"
  5307. + "echo $foo > $out"
  5308. + '()))
  5309. + (s (@ build-started /tmp/guix-tests/store/6c0vqpcbknbwddhmqkfjn415khf873rz-the-thing.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/6c//0vqpcbknbwddhmqkfjn415khf873rz-the-thing.drv.bz2
  5310. @ build-succeeded /tmp/guix-tests/store/6c0vqpcbknbwddhmqkfjn415khf873rz-the-thing.drv -
  5311. @ build-started /tmp/guix-tests/store/0i82mzskawih4bfalxy3hm13mds462yj-the-thing.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/0i//82mzskawih4bfalxy3hm13mds462yj-the-thing.drv.bz2
  5312. @ build-succeeded /tmp/guix-tests/store/0i82mzskawih4bfalxy3hm13mds462yj-the-thing.drv -
  5313. add-to-store
  5314. + %store
  5315. + "bash"
  5316. + #t
  5317. + "sha256"
  5318. + (search-bootstrap-binary
  5319. + "bash"
  5320. + (%current-system))))
  5321. + (d (derivation
  5322. + %store
  5323. + "the-thing"
  5324. + s
  5325. + `("-e" ,b)
  5326. + #:env-vars
  5327. + `(("foo" unquote (random-text)))
  5328. + #:inputs
  5329. + `((,b) (,s)))))
  5330. + (and (build-derivations %store (list d))
  5331. + (file-exists?
  5332. + (pk (log-file %store (derivation-file-name d)))))))
  5333.  
  5334. ;;; ("/tmp/guix-tests/var/log/guix/drvs/6c/0vqpcbknbwddhmqkfjn415khf873rz-the-thing.drv.bz2")
  5335. actual-value: #t
  5336. result: PASS
  5337.  
  5338. test-name: log-file, output file name
  5339. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:410
  5340. source:
  5341. + (test-assert
  5342. + "log-file, output file name"
  5343. + (let* ((b (add-text-to-store
  5344. + %store
  5345. + "build"
  5346. + "echo $foo > $out"
  5347. + '()))
  5348. + (s (add-to-store
  5349. + %store
  5350. + "bash"
  5351. + #t
  5352. + "sha256"
  5353. + (search-bootstrap-binary
  5354. + "bash"
  5355. + (%current-system))))
  5356. + (d (derivation
  5357. + %store
  5358. + "the-thing"
  5359. + s
  5360. + `("-e" ,b)
  5361. + #:env-vars
  5362. + `(("foo" unquote (random-text)))
  5363. + #:inputs
  5364. + `((,b) (,s))))
  5365. + (o (derivation->output-path d)))
  5366. + (and (build-derivations %store (list d))
  5367. + (file-exists? (pk (log-file %store o)))
  5368. + (string=?
  5369. + (log-file %store (derivation-file-name d))
  5370. + (log-file %store o)))))
  5371.  
  5372. ;;; ("/tmp/guix-tests/var/log/guix/drvs/0i/82mzskawih4bfalxy3hm13mds462yj-the-thing.drv.bz2")
  5373. actual-value: #t
  5374. result: PASS
  5375.  
  5376. test-name: no substitutes
  5377. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:425
  5378. source:
  5379. + (test-assert
  5380. + "no substitutes"
  5381. + (with-store
  5382. + s
  5383. + (let* ((d1 (package-derivation
  5384. + s
  5385. + %bootstrap-guile
  5386. + (%current-system)))
  5387. + (d2 (package-derivation
  5388. + s
  5389. + %bootstrap-glibc
  5390. + (%current-system)))
  5391. + (o (map derivation->output-path (list d1 d2))))
  5392. + (set-build-options s #:use-substitutes? #f)
  5393. + (and (not (has-substitutes? s (derivation-file-name d1)))
  5394. + (not (has-substitutes? s (derivation-file-name d2)))
  5395. + (null? (substitutable-paths s o))
  5396. + (null? (substitutable-path-info s o))))))
  5397. actual-value: #t
  5398. result: PASS
  5399.  
  5400. test-name: build-things with output path
  5401. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:436
  5402. source:
  5403. + (test-assert
  5404. + "build-things with output path"
  5405. + (with-store
  5406. + s
  5407. + (let* ((c (random-text))
  5408. + (d (build-expression->derivation
  5409. + s
  5410. + "substitute-me"
  5411. + `(call-with-output-file
  5412. + %output
  5413. + (lambda (p) (display ,c p)))
  5414. + #:guile-for-build
  5415. + (package-derivation
  5416. + s
  5417. + %bootstrap-guile
  5418. + (%current-system))))
  5419. + (o (derivation->output-path d)))
  5420. + (set-build-options s #:use-substitutes? #f)
  5421. + (build-things s (list o))
  5422. + (not (valid-path? s o)))))
  5423. actual-value: #t
  5424. result: PASS
  5425.  
  5426. test-name: substitute query
  5427. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:456
  5428. source:
  5429. + (test-assert
  5430. + "substitute query"
  5431. + (with-store
  5432. + s
  5433. + (let* ((d (package-derivation
  5434. + s
  5435. + %bootstrap-guile
  5436. + (%current-system)))
  5437. + (o (derivation->output-path d)))
  5438. + (with-derivation-narinfo
  5439. + d
  5440. + (false-if-exception
  5441. + (delete-file-recursively
  5442. + (string-append
  5443. + (getenv "XDG_CACHE_HOME")
  5444. + substitute: warning: authentication and authorization of substitutes disabled!
  5445. substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
  5446. substitute: warning: authentication and authorization of substitutes disabled!
  5447. substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
  5448. substitute: warning: authentication and authorization of substitutes disabled!
  5449. substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
  5450. substitute: warning: authentication and authorization of substitutes disabled!
  5451. substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
  5452. substitute: warning: authentication and authorization of substitutes disabled!
  5453. substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
  5454. substitute: warning: authentication and authorization of substitutes disabled!
  5455. substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
  5456. @ substituter-started /tmp/guix-tests/store/c7qa9h3klh6za0hv2s46ml7x6xl4gis7-substitute-me /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/nix/scripts/substitute
  5457. warning: authentication and authorization of substitutes disabled!
  5458. guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
  5459. Downloading file:/tmp/guix-tests/var/14612/substituter-data/example.nar...
  5460.  
  5461.  example.nar 176B 0B/s 00:00 [ ] 0.0%
  5462.  example.nar 176B 815KiB/s 00:00 [####################] 100.0%
  5463.  example.nar 176B 340KiB/s 00:00 [####################] 100.0%
  5464.  
  5465. @ substituter-succeeded /tmp/guix-tests/store/c7qa9h3klh6za0hv2s46ml7x6xl4gis7-substitute-me
  5466. "/guix/substitute")))
  5467. + (set-build-options
  5468. + s
  5469. + #:use-substitutes?
  5470. + #t
  5471. + #:substitute-urls
  5472. + (%test-substitute-urls))
  5473. + (and (has-substitutes? s o)
  5474. + (equal?
  5475. + (list o)
  5476. + (substitutable-paths s (list o)))
  5477. + (match (pk 'spi (substitutable-path-info s (list o)))
  5478. + (((? substitutable? s))
  5479. + (and (string=?
  5480. + (substitutable-deriver s)
  5481. + (derivation-file-name d))
  5482. + (null? (substitutable-references s))
  5483. + (equal? (substitutable-nar-size s) 1234)))))))))
  5484.  
  5485. ;;; (spi (#<<substitutable> path: "/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0" deriver: "/tmp/guix-tests/store/kn0gx5na8k2nilq6c362bmavywnilkhq-guile-bootstrap-2.0.drv" refs: () dl-size: 0 nar-size: 1234>))
  5486. actual-value: #t
  5487. result: PASS
  5488.  
  5489. test-name: substitute query, alternating URLs
  5490. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:480
  5491. source:
  5492. + (test-assert
  5493. + "substitute query, alternating URLs"
  5494. + (let* ((d (with-store
  5495. + s
  5496. + (package-derivation
  5497. + s
  5498. + %bootstrap-guile
  5499. + (%current-system))))
  5500. + (o (derivation->output-path d)))
  5501. + (with-derivation-narinfo
  5502. + d
  5503. + (false-if-exception
  5504. + (delete-file-recursively
  5505. + (string-append
  5506. + (getenv "XDG_CACHE_HOME")
  5507. + "/guix/substitute")))
  5508. + (and (with-store
  5509. + s
  5510. + (set-build-options
  5511. + s
  5512. + #:use-substitutes?
  5513. + #t
  5514. + #:substitute-urls
  5515. + (%test-substitute-urls))
  5516. + (has-substitutes? s o))
  5517. + (with-store
  5518. + s
  5519. + (set-build-options
  5520. + s
  5521. + #:use-substitutes?
  5522. + #t
  5523. + #:substitute-urls
  5524. + (list "http://does-not-exist"))
  5525. + (not (has-substitutes? s o)))
  5526. + (with-store
  5527. + s
  5528. + (set-build-options
  5529. + s
  5530. + #:use-substitutes?
  5531. + #t
  5532. + #:substitute-urls
  5533. + (%test-substitute-urls))
  5534. + (has-substitutes? s o))
  5535. + (with-store
  5536. + s
  5537. + (set-build-options
  5538. + s
  5539. + #:use-substitutes?
  5540. + #t
  5541. + #:substitute-urls
  5542. + '())
  5543. + (not (has-substitutes? s o)))))))
  5544. actual-value: #t
  5545. result: PASS
  5546.  
  5547. test-name: substitute
  5548. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:512
  5549. source:
  5550. + (test-assert
  5551. + "substitute"
  5552. + (with-store
  5553. + s
  5554. + (let* ((c (random-text))
  5555. + (d (build-expression->derivation
  5556. + s
  5557. + "substitute-me"
  5558. + `(call-with-output-file
  5559. + %output
  5560. + (lambda (p) (exit 1) (display ,c p)))
  5561. + #:guile-for-build
  5562. + (package-derivation
  5563. + s
  5564. + %bootstrap-guile
  5565. + (%current-system))))
  5566. + (o (derivation->output-path d)))
  5567. + (with-derivation-substitute
  5568. + d
  5569. + c
  5570. + (set-build-options
  5571. + s
  5572. + #:use-substitutes?
  5573. + #t
  5574. + #:substitute-urls
  5575. + (%test-substitute-urls))
  5576. + (and (has-substitutes? s o)
  5577. + (build-derivations s (list d))
  5578. + (equal?
  5579. + c
  5580. + (call-with-input-file o get-string-all)))))))
  5581. actual-value: #t
  5582. result: PASS
  5583.  
  5584. test-name: substitute + build-things with output path
  5585. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:531
  5586. source:
  5587. + (test-assert
  5588. + "substitute + build-things with output path"
  5589. + (with-store
  5590. + s
  5591. + (let* ((c (random-text))
  5592. + (d (substitute: warning: authentication and authorization of substitutes disabled!
  5593. substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
  5594. @ substituter-started /tmp/guix-tests/store/ypb32qpzzy9z764lcz5rr2dxp52nnvgy-substitute-me /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/nix/scripts/substitute
  5595. warning: authentication and authorization of substitutes disabled!
  5596. guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
  5597. Downloading file:/tmp/guix-tests/var/14612/substituter-data/example.nar...
  5598.  
  5599.  example.nar 176B 0B/s 00:00 [ ] 0.0%
  5600.  example.nar 176B 616KiB/s 00:00 [####################] 100.0%
  5601.  example.nar 176B 269KiB/s 00:00 [####################] 100.0%
  5602.  
  5603. @ substituter-succeeded /tmp/guix-tests/store/ypb32qpzzy9z764lcz5rr2dxp52nnvgy-substitute-me
  5604. substitute: warning: authentication and authorization of substitutes disabled!
  5605. substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
  5606. @ substituter-started /tmp/guix-tests/store/4l2phlryfj24z74xw4jb45zia952rjri-corrupt-substitute /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/nix/scripts/substitute
  5607. warning: authentication and authorization of substitutes disabled!
  5608. guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
  5609. Downloading file:/tmp/guix-tests/var/14612/substituter-data/example.nar...
  5610.  
  5611.  example.nar 128B 0B/s 00:00 [ ] 0.0%
  5612.  example.nar 128B 477KiB/s 00:00 [####################] 100.0%
  5613.  example.nar 128B 226KiB/s 00:00 [####################] 100.0%
  5614.  
  5615. @ substituter-failed /tmp/guix-tests/store/4l2phlryfj24z74xw4jb45zia952rjri-corrupt-substitute 0 hash mismatch in downloaded path `/tmp/guix-tests/store/4l2phlryfj24z74xw4jb45zia952rjri-corrupt-substitute'
  5616. expected: 0000000000000000000000000000000000000000000000000000000000000000
  5617. actual: b8f73a6eb280e63169b1de2a5b5e154676fe1ada685f1e5c7183cbb2c1dcd535
  5618. substitute: warning: authentication and authorization of substitutes disabled!
  5619. substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
  5620. @ substituter-started /tmp/guix-tests/store/w3hvz1nj6q3d8vc8ik772lbag9a01vmg-substitute-me-not /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/nix/scripts/substitute
  5621. warning: authentication and authorization of substitutes disabled!
  5622. guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
  5623. Downloading file:/tmp/guix-tests/var/14612/substituter-data/example.nar...
  5624. guix substitute: error: open-file: No such file or directory: "/tmp/guix-tests/var/14612/substituter-data/example.nar"
  5625. @ substituter-failed /tmp/guix-tests/store/w3hvz1nj6q3d8vc8ik772lbag9a01vmg-substitute-me-not 256 fetching path `/tmp/guix-tests/store/w3hvz1nj6q3d8vc8ik772lbag9a01vmg-substitute-me-not' failed with exit code 1
  5626. @ substituter-started /tmp/guix-tests/store/w3hvz1nj6q3d8vc8ik772lbag9a01vmg-substitute-me-not /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/nix/scripts/substitute
  5627. warning: authentication and authorization of substitutes disabled!
  5628. guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
  5629. Downloading file:/tmp/guix-tests/var/14612/substituter-data/example.nar...
  5630. guix substitute: error: open-file: No such file or directory: "/tmp/guix-tests/var/14612/substituter-data/example.nar"
  5631. @ substituter-failed /tmp/guix-tests/store/w3hvz1nj6q3d8vc8ik772lbag9a01vmg-substitute-me-not 256 fetching path `/tmp/guix-tests/store/w3hvz1nj6q3d8vc8ik772lbag9a01vmg-substitute-me-not' failed with exit code 1
  5632. @ build-started /tmp/guix-tests/store/amx3s342q1cxabxfiw9qcgjk1zkmgmp5-substitute-me-not.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/am//x3s342q1cxabxfiw9qcgjk1zkmgmp5-substitute-me-not.drv.bz2
  5633. @ build-succeeded /tmp/guix-tests/store/amx3s342q1cxabxfiw9qcgjk1zkmgmp5-substitute-me-not.drv -
  5634. build-expression->derivation
  5635. + s
  5636. + "substitute-me"
  5637. + `(call-with-output-file
  5638. + %output
  5639. + (lambda (p) (exit 1) (display ,c p)))
  5640. + #:guile-for-build
  5641. + (package-derivation
  5642. + s
  5643. + %bootstrap-guile
  5644. + (%current-system))))
  5645. + (o (derivation->output-path d)))
  5646. + (with-derivation-substitute
  5647. + d
  5648. + c
  5649. + (set-build-options
  5650. + s
  5651. + #:use-substitutes?
  5652. + #t
  5653. + #:substitute-urls
  5654. + (%test-substitute-urls))
  5655. + (and (has-substitutes? s o)
  5656. + (build-things s (list o))
  5657. + (valid-path? s o)
  5658. + (equal?
  5659. + c
  5660. + (call-with-input-file o get-string-all)))))))
  5661. actual-value: #t
  5662. result: PASS
  5663.  
  5664. test-name: substitute, corrupt output hash
  5665. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:551
  5666. source:
  5667. + (test-assert
  5668. + "substitute, corrupt output hash"
  5669. + (with-store
  5670. + s
  5671. + (let* ((c "hello, world")
  5672. + (d (build-expression->derivation
  5673. + s
  5674. + "corrupt-substitute"
  5675. + `(mkdir %output)
  5676. + #:guile-for-build
  5677. + (package-derivation
  5678. + s
  5679. + %bootstrap-guile
  5680. + (%current-system))))
  5681. + (o (derivation->output-path d)))
  5682. + (with-derivation-substitute
  5683. + d
  5684. + c
  5685. + (sha256 => (make-bytevector 32 0))
  5686. + (set-build-options
  5687. + s
  5688. + #:use-substitutes?
  5689. + #t
  5690. + #:fallback?
  5691. + #f
  5692. + #:substitute-urls
  5693. + (%test-substitute-urls))
  5694. + (and (has-substitutes? s o)
  5695. + (guard (c ((nix-protocol-error? c)
  5696. + (pk 'corrupt c)
  5697. + (not (zero? (nix-protocol-error-status c)))))
  5698. + (build-derivations s (list d))
  5699. + #f))))))
  5700.  
  5701. ;;; (corrupt #<condition &nix-protocol-error [message: "some substitutes for the outputs of derivation `/tmp/guix-tests/store/392j6h3j3jg1srjvzppd9x1g86vlk44n-corrupt-substitute.drv' failed (usually happens due to networking issues); try `--fallback' to build derivation from source " status: 1] 1128de0>)
  5702. actual-value: #t
  5703. result: PASS
  5704.  
  5705. test-name: substitute --fallback
  5706. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:581
  5707. source:
  5708. + (test-assert
  5709. + "substitute --fallback"
  5710. + (with-store
  5711. + s
  5712. + (let* ((t (random-text))
  5713. + (d (build-expression->derivation
  5714. + s
  5715. + "substitute-me-not"
  5716. + `(call-with-output-file
  5717. + %output
  5718. + (lambda (p) (display ,t p)))
  5719. + #:guile-for-build
  5720. + (package-derivation
  5721. + s
  5722. + %bootstrap-guile
  5723. + (%current-system))))
  5724. + (o (derivation->output-path d)))
  5725. + (with-derivation-narinfo
  5726. + d
  5727. + (set-build-options
  5728. + s
  5729. + #:use-substitutes?
  5730. + #t
  5731. + #:substitute-urls
  5732. + (%test-substitute-urls))
  5733. + (and (has-substitutes? s o)
  5734. + (guard (c ((nix-protocol-error? c)
  5735. + (set-build-options
  5736. + s
  5737. + #:use-substitutes?
  5738. + #t
  5739. + #:substitute-urls
  5740. + (%test-substitute-urls)
  5741. + #:fallback?
  5742. + #t)
  5743. + (and (build-derivations s (list d))
  5744. + (equal?
  5745. + t
  5746. + (call-with-input-file o get-string-all)))))
  5747. + (build-derivations s (list d))
  5748. + #f))))))
  5749. actual-value: #t
  5750. result: PASS
  5751.  
  5752. test-name: export/import several paths
  5753. location: finding garbage collector roots...
  5754. deleting unused links...
  5755. finding garbage collector roots...
  5756. deleting unused links...
  5757. finding garbage collector roots...
  5758. deleting unused links...
  5759. /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:613
  5760. source:
  5761. + (test-assert
  5762. + "export/import several paths"
  5763. + (let* ((texts (unfold
  5764. + (cut >= <> 10)
  5765. + (lambda _ (random-text))
  5766. + #{1+}#
  5767. + 0))
  5768. + (files (map (cut add-text-to-store %store "text" <>)
  5769. + texts))
  5770. + (dump (call-with-bytevector-output-port
  5771. + (cut export-paths %store files <>))))
  5772. + (delete-paths %store files)
  5773. + (and (every (negate file-exists?) files)
  5774. + (let* ((source (open-bytevector-input-port dump))
  5775. + (imported (import-paths %store source)))
  5776. + (and (equal? imported files)
  5777. + (every file-exists? files)
  5778. + (equal?
  5779. + texts
  5780. + (map (lambda (file)
  5781. + (call-with-input-file file get-string-all))
  5782. + files)))))))
  5783. actual-value: #t
  5784. result: PASS
  5785.  
  5786. test-name: export/import paths, ensure topological order
  5787. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:633
  5788. source:
  5789. + (test-assert
  5790. + "export/import paths, ensure topological order"
  5791. + (let* ((file0 (add-text-to-store %store "baz" (random-text)))
  5792. + (file1 (add-text-to-store
  5793. + %store
  5794. + "foo"
  5795. + (random-text)
  5796. + (list file0)))
  5797. + (file2 (add-text-to-store
  5798. + %store
  5799. + "bar"
  5800. + (random-text)
  5801. + (list file1)))
  5802. + (files (list file1 file2))
  5803. + (dump1 (call-with-bytevector-output-port
  5804. + (cute export-paths %store (list file1 file2) <>)))
  5805. + (dump2 (call-with-bytevector-output-port
  5806. + (cute export-paths %store (list file2 file1) <>))))
  5807. + (delete-paths %store files)
  5808. + (and (every (negate file-exists?) files)
  5809. + (bytevector=? dump1 dump2)
  5810. + (let* ((source (open-bytevector-input-port dump1))
  5811. + (imported (import-paths %store source)))
  5812. + (and (equal? imported (list file1 file2))
  5813. + (every file-exists? files)
  5814. + (equal? (list file0) (references %store file1))
  5815. + (equal? (list file1) (references %store file2)))))))
  5816. actual-value: #t
  5817. result: PASS
  5818.  
  5819. test-name: export/import incomplete
  5820. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:655
  5821. source:
  5822. + (test-assert
  5823. + "export/import incomplete"
  5824. + (let* ((file0 (add-text-to-store %store "baz" (random-text)))
  5825. + (file1 (add-text-to-store
  5826. + %store
  5827. + "foo"
  5828. + (random-text)
  5829. + (list file0)))
  5830. + (file2 (add-text-to-store
  5831. + %store
  5832. + "bar"
  5833. + (random-text)
  5834. + (list file1)))
  5835. + (dump (call-with-bytevector-output-port
  5836. + (cute export-paths %store (list file2) <>))))
  5837. + (delete-paths %store (list file0 file1 file2))
  5838. + (guard (c ((nix-protocol-error? c)
  5839. + (and (not (zero? (nix-protocol-error-status c)))
  5840. + (string-contains
  5841. + (nix-protocol-error-message c)
  5842. + "not valid"))))
  5843. + (import-paths
  5844. + %store
  5845. + (open-bytevector-input-port dump)))))
  5846. actual-value: 69
  5847. result: PASS
  5848.  
  5849. test-name: export/import recursive
  5850. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:672
  5851. source:
  5852. + (test-assert
  5853. + "export/import recursive"
  5854. + (let* ((file0 (add-text-to-store %store "baz" (random-text)))
  5855. + (file1 (add-text-to-store
  5856. + %store
  5857. + "foo"
  5858. + (random-text)
  5859. + (list file0)))
  5860. + (file2 (add-text-to-store
  5861. + %store
  5862. + "bar"
  5863. + (random-text)
  5864. + (list file1)))
  5865. + (dump (finding garbage collector roots...
  5866. deleting unused links...
  5867. @ build-started /tmp/guix-tests/store/pslh526d15q8zsavc523c7lbfi6zifyv-bunch.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/ps//lh526d15q8zsavc523c7lbfi6zifyv-bunch.drv.bz2
  5868. @ build-succeeded /tmp/guix-tests/store/pslh526d15q8zsavc523c7lbfi6zifyv-bunch.drv -
  5869. call-with-bytevector-output-port
  5870. + (cute export-paths
  5871. + %store
  5872. + (list file2)
  5873. + <>
  5874. + #:recursive?
  5875. + #t))))
  5876. + (delete-paths %store (list file0 file1 file2))
  5877. + (let ((imported
  5878. + (import-paths
  5879. + %store
  5880. + (open-bytevector-input-port dump))))
  5881. + (and (equal? imported (list file0 file1 file2))
  5882. + (every file-exists? (list file0 file1 file2))
  5883. + (equal? (list file0) (references %store file1))
  5884. + (equal? (list file1) (references %store file2))))))
  5885. actual-value: #t
  5886. result: PASS
  5887.  
  5888. test-name: write-file & export-path yield the same result
  5889. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:688
  5890. source:
  5891. + (test-assert
  5892. + "write-file & export-path yield the same result"
  5893. + (run-with-store
  5894. + %store
  5895. + (mlet* %store-monad
  5896. + ((drv1 (package->derivation %bootstrap-guile))
  5897. + (out1 -> (derivation->output-path drv1))
  5898. + (data ->
  5899. + (unfold
  5900. + (cut >= <> 26)
  5901. + (lambda (i) (random-bytevector 128))
  5902. + #{1+}#
  5903. + 0))
  5904. + (build ->
  5905. + (gexp (begin
  5906. + (use-modules (rnrs io ports) (srfi srfi-1))
  5907. + (let ()
  5908. + (define letters
  5909. + (map (lambda (i)
  5910. + (string
  5911. + (integer->char
  5912. + (+ i (char->integer #\a)))))
  5913. + (iota 26)))
  5914. + (define (touch file data)
  5915. + (call-with-output-file
  5916. + file
  5917. + (lambda (port) (put-bytevector port data))))
  5918. + (mkdir (ungexp output))
  5919. + (chdir (ungexp output))
  5920. + (for-each
  5921. + touch
  5922. + (append (drop letters 10) (take letters 10))
  5923. + (list (ungexp-splicing data)))
  5924. + #t))))
  5925. + (drv2 (gexp->derivation "bunch" build))
  5926. + (out2 -> (derivation->output-path drv2))
  5927. + (item-info -> (store-lift query-path-info)))
  5928. + (mbegin
  5929. + %store-monad
  5930. + (built-derivations (list drv1 drv2))
  5931. + (foldm %store-monad
  5932. + (lambda (item result)
  5933. + (define ref-hash
  5934. + (let-values
  5935. + (((port get) (open-sha256-port)))
  5936. + (write-file item port)
  5937. + (close-port port)
  5938. + (get)))
  5939. + (>>= (item-info item)
  5940. + (lambda (info)
  5941. + (return
  5942. + (and result
  5943. + (bytevector=?
  5944. + (path-info-hash info)
  5945. + ref-hash))))))
  5946. + #t
  5947. + (list out1 out2))))
  5948. + #:guile-for-build
  5949. + (%guile-for-build)))
  5950. actual-value: #t
  5951. result: PASS
  5952.  
  5953. test-name: import corrupt path
  5954. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:754
  5955. source:
  5956. + (test-assert
  5957. + "import corrupt path"
  5958. + (let* ((text (random-text))
  5959. + (file (add-text-to-store %store "text" text))
  5960. + (dump (call-with-bytevector-output-port
  5961. + (cut export-paths %store (list file) <>))))
  5962. + (delete-paths %store (list file))
  5963. + (let* ((index 112)
  5964. + (byte (bytevector-u8-ref dump index)))
  5965. + (bytevector-u8-set! dump index (logxor 255 byte)))
  5966. + (and (not (file-exists? file))
  5967. + (guard (c (finding garbage collector roots...
  5968. deleting unused links...
  5969. reading the Nix store...
  5970. reading the Nix store...
  5971. path `/tmp/guix-tests/store/n3h0i9dwvxr8ikxddi8zx57b6kfzh1m3-foo' disappeared, but it still has valid referrers!
  5972. reading the Nix store...
  5973. substitute: warning: authentication and authorization of substitutes disabled!
  5974. substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
  5975. fetching path `/tmp/guix-tests/store/3y6w17yzszk4pqykdqj6al9jxsbz6j9a-corrupt'...
  5976. warning: authentication and authorization of substitutes disabled!
  5977. guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
  5978. Downloading file:/tmp/guix-tests/var/14612/substituter-data/example.nar...
  5979.  
  5980.  example.nar 176B 0B/s 00:00 [ ] 0.0%
  5981.  example.nar 176B 811KiB/s 00:00 [####################] 100.0%
  5982.  example.nar 176B 377KiB/s 00:00 [####################] 100.0%
  5983.  
  5984. reading the Nix store...
  5985. checking path existence...
  5986. checking hashes...
  5987. reading the Nix store...
  5988. checking path existence...
  5989. checking hashes...
  5990. path `/tmp/guix-tests/store/3y6w17yzszk4pqykdqj6al9jxsbz6j9a-corrupt' was modified! expected hash `90a30f8e79aeb4565a54a1cfc9e971e7efe7e8eed13fcc7b8f640d563e59faf8', got `e09c480e2e93336cd3c45aa129f81a0d7ba56c410b849d7779a8136074413b3d'
  5991. finding garbage collector roots...
  5992. removing stale temporary roots file `/tmp/guix-tests/var/14612/temproots/15355'
  5993. deleting `/tmp/guix-tests/store/3y6w17yzszk4pqykdqj6al9jxsbz6j9a-corrupt'
  5994. deleting `/tmp/guix-tests/store/trash'
  5995. deleting unused links...
  5996. note: currently hard linking saves 0.69 MiB
  5997. (nix-protocol-error? c)
  5998. + (pk 'c c)
  5999. + (and (not (zero? (nix-protocol-error-status c)))
  6000. + (string-contains
  6001. + (nix-protocol-error-message c)
  6002. + "corrupt"))))
  6003. + (let* ((source (open-bytevector-input-port dump))
  6004. + (imported (import-paths %store source)))
  6005. + (pk 'corrupt-imported imported)
  6006. + #f)))))
  6007.  
  6008. ;;; (c #<condition &nix-protocol-error [message: "signed hash doesn't match actual contents of imported archive; archive could be corrupt, or someone is trying to import a Trojan horse" status: 1] a27a50>)
  6009. actual-value: 80
  6010. result: PASS
  6011.  
  6012. test-name: register-path
  6013. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:778
  6014. source:
  6015. + (test-assert
  6016. + "register-path"
  6017. + (let ((file (string-append
  6018. + (%store-prefix)
  6019. + "/"
  6020. + (make-string 32 #\f)
  6021. + "-fake")))
  6022. + (when (valid-path? %store file)
  6023. + (delete-paths %store (list file)))
  6024. + (false-if-exception (delete-file file))
  6025. + (let ((ref (add-text-to-store
  6026. + %store
  6027. + "ref-of-fake"
  6028. + (random-text)))
  6029. + (drv (string-append file ".drv")))
  6030. + (call-with-output-file
  6031. + file
  6032. + (cut display "This is a fake store item.\n" <>))
  6033. + (register-path
  6034. + file
  6035. + #:references
  6036. + (list ref)
  6037. + #:deriver
  6038. + drv)
  6039. + (and (valid-path? %store file)
  6040. + (equal? (references %store file) (list ref))
  6041. + (null? (valid-derivers %store file))
  6042. + (null? (referrers %store file))))))
  6043. actual-value: #t
  6044. result: PASS
  6045.  
  6046. test-name: verify-store
  6047. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:798
  6048. source:
  6049. + (test-assert
  6050. + "verify-store"
  6051. + (let* ((text (random-text))
  6052. + (file1 (add-text-to-store %store "foo" text))
  6053. + (file2 (add-text-to-store
  6054. + %store
  6055. + "bar"
  6056. + (random-text)
  6057. + (list file1))))
  6058. + (and (pk 'verify1 (verify-store %store))
  6059. + (begin
  6060. + (delete-file file1)
  6061. + (not (pk 'verify2 (verify-store %store))))
  6062. + (begin
  6063. + (call-with-output-file
  6064. + file1
  6065. + (lambda (port) (display text port)))
  6066. + (pk 'verify3 (verify-store %store))))))
  6067.  
  6068. ;;; (verify1 #t)
  6069.  
  6070. ;;; (verify2 #f)
  6071.  
  6072. ;;; (verify3 #t)
  6073. actual-value: #t
  6074. result: PASS
  6075.  
  6076. test-name: verify-store + check-contents
  6077. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:815
  6078. source:
  6079. + (test-assert
  6080. + "verify-store + check-contents"
  6081. + (with-store
  6082. + s
  6083. + (let* ((text (random-text))
  6084. + (drv (build-expression->derivation
  6085. + s
  6086. + "corrupt"
  6087. + `(let ((out (assoc-ref %outputs "out")))
  6088. + (call-with-output-file
  6089. + out
  6090. + (lambda (port) (display ,text port)))
  6091. + #t)
  6092. + #:guile-for-build
  6093. + (package-derivation
  6094. + s
  6095. + %bootstrap-guile
  6096. + (%current-system))))
  6097. + (file (derivation->output-path drv)))
  6098. + (with-derivation-substitute
  6099. + drv
  6100. + text
  6101. + (and (build-derivations s (list drv))
  6102. + (verify-store s #:check-contents? #t)
  6103. + (begin
  6104. + (chmod file 420)
  6105. + (call-with-output-file
  6106. + file
  6107. + (lambda (port) (display "corrupt!" port)))
  6108. + #t)
  6109. + (not (verify-store s #:check-contents? #t))
  6110. + (delete-paths s (list file)))))))
  6111. actual-value: ("/tmp/guix-tests/store/3y6w17yzszk4pqykdqj6al9jxsbz6j9a-corrupt")
  6112. result: PASS
  6113.  
  6114. test-name: build-things, check mode
  6115. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:852
  6116. substitute: warning: authentication and authorization of substitutes disabled!
  6117. substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
  6118. building path(s) `/tmp/guix-tests/store/rb67svkydxwzrm4i50m1x5mhfvpyvi75-non-deterministic'
  6119. checking path(s) `/tmp/guix-tests/store/rb67svkydxwzrm4i50m1x5mhfvpyvi75-non-deterministic'
  6120. warning: rewriting hashes in `/tmp/guix-tests/store/rb67svkydxwzrm4i50m1x5mhfvpyvi75-non-deterministic'; cross fingers
  6121. source:
  6122. + (test-assert
  6123. + "build-things, check mode"
  6124. + (with-store
  6125. + store
  6126. + (call-with-temporary-output-file
  6127. + (lambda (entropy entropy-port)
  6128. + (write (random-text) entropy-port)
  6129. + (force-output entropy-port)
  6130. + (let* ((drv (build-expression->derivation
  6131. + store
  6132. + "non-deterministic"
  6133. + `(begin
  6134. + (use-modules (rnrs io ports))
  6135. + (let ((out (assoc-ref %outputs "out")))
  6136. + (call-with-output-file
  6137. + out
  6138. + (lambda (port)
  6139. + (display
  6140. + (call-with-input-file
  6141. + ,entropy
  6142. + get-string-all)
  6143. + port)))
  6144. + #t))
  6145. + #:guile-for-build
  6146. + (package-derivation
  6147. + store
  6148. + %bootstrap-guile
  6149. + (%current-system))))
  6150. + (file (derivation->output-path drv)))
  6151. + (and (build-things
  6152. + store
  6153. + (list (derivation-file-name drv)))
  6154. + (begin
  6155. + (write (random-text) entropy-port)
  6156. + (force-output entropy-port)
  6157. + (guard (c ((nix-protocol-error? c)
  6158. + (pk 'determinism-exception c)
  6159. + (and (not (zero? (nix-protocol-error-status c)))
  6160. + (string-contains
  6161. + (nix-protocol-error-message c)
  6162. + "deterministic"))))
  6163. + (build-things
  6164. + store
  6165. + (list (derivation-file-name drv))
  6166. + (build-mode check))
  6167. + #f))))))))
  6168.  
  6169. ;;; (determinism-exception #<condition &nix-protocol-error [message: "derivation `/tmp/guix-tests/store/cg0mkb7zad4m64nqj99144dsi9i6xanq-non-deterministic.drv' may not be deterministic: output `/tmp/guix-tests/store/rb67svkydxwzrm4i50m1x5mhfvpyvi75-non-deterministic' differs" status: 1] 10b66f0>)
  6170. actual-value: 71
  6171. result: PASS
  6172.  
  6173. test-name: build multiple times
  6174. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:889
  6175. source:
  6176. + (test-assert
  6177. + "build multiple times"
  6178. + (with-store
  6179. + store
  6180. + (set-build-options
  6181. + store
  6182. + #:rounds
  6183. + 2
  6184. + #:use-substitutes?
  6185. + #f)
  6186. + (call-with-temporary-output-file
  6187. + (lambda (entropy entropy-port)
  6188. + (write (random-text) entropy-port)
  6189. + (force-output entropy-port)
  6190. + (let* ((drv (build-expression->derivation
  6191. + store
  6192. + "non-deterministic"
  6193. + `(begin
  6194. + (use-modules (rnrs io ports))
  6195. + (let ((out (assoc-ref %outputs "out")))
  6196. + (call-with-output-file
  6197. + out
  6198. + (lambda (port)
  6199. + (display
  6200. + (call-with-input-file
  6201. + ,entropy
  6202. + get-string-all)
  6203. + port)
  6204. + (call-with-output-file
  6205. + ,entropy
  6206. + (lambda (port) (write 'foobar port)))))
  6207. + #t))
  6208. + #:guile-for-build
  6209. + (package-derivation
  6210. + store
  6211. + %bootstrap-guile
  6212. + (%current-system))))
  6213. + (file (derivation->output-path drv)))
  6214. + (guard (c ((nix-protocol-error? c)
  6215. + (pk 'multiple-build c)
  6216. + (and @ build-started /tmp/guix-tests/store/ys5w928pcmmhyx5qifyar6r70v6lsn9n-non-deterministic.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/ys//5w928pcmmhyx5qifyar6r70v6lsn9n-non-deterministic.drv.bz2
  6217. @ build-started /tmp/guix-tests/store/ys5w928pcmmhyx5qifyar6r70v6lsn9n-non-deterministic.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/ys//5w928pcmmhyx5qifyar6r70v6lsn9n-non-deterministic.drv.bz2
  6218. output ‘/tmp/guix-tests/store/66d0xdbksjq98h42rgny0cw1krdk3m0g-non-deterministic’ of ‘/tmp/guix-tests/store/ys5w928pcmmhyx5qifyar6r70v6lsn9n-non-deterministic.drv’ differs from previous round
  6219. @ build-failed /tmp/guix-tests/store/ys5w928pcmmhyx5qifyar6r70v6lsn9n-non-deterministic.drv - 1 output ‘/tmp/guix-tests/store/66d0xdbksjq98h42rgny0cw1krdk3m0g-non-deterministic’ of ‘/tmp/guix-tests/store/ys5w928pcmmhyx5qifyar6r70v6lsn9n-non-deterministic.drv’ differs from previous round
  6220. @ build-started /tmp/guix-tests/store/asz6rflssx1mmkv12wkx79n75bkl0cbf-the-thing.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/as//z6rflssx1mmkv12wkx79n75bkl0cbf-the-thing.drv.bz2
  6221. @ build-succeeded /tmp/guix-tests/store/asz6rflssx1mmkv12wkx79n75bkl0cbf-the-thing.drv -
  6222. (not (zero? (nix-protocol-error-status c)))
  6223. + (string-contains
  6224. + (nix-protocol-error-message c)
  6225. + "deterministic"))))
  6226. + (current-build-output-port (current-error-port))
  6227. + (build-things
  6228. + store
  6229. + (list (derivation-file-name drv)))
  6230. + #f))))))
  6231.  
  6232. ;;; (multiple-build #<condition &nix-protocol-error [message: "build of `/tmp/guix-tests/store/ys5w928pcmmhyx5qifyar6r70v6lsn9n-non-deterministic.drv' failed" status: 1] e5d4b0>)
  6233. actual-value: 69
  6234. result: PASS
  6235.  
  6236. test-name: store-lower
  6237. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:927
  6238. source:
  6239. + (test-equal
  6240. + "store-lower"
  6241. + "Lowered."
  6242. + (let* ((add (store-lower text-file))
  6243. + (file (add %store "foo" "Lowered.")))
  6244. + (call-with-input-file file get-string-all)))
  6245. expected-value: "Lowered."
  6246. actual-value: "Lowered."
  6247. result: PASS
  6248.  
  6249. test-name: current-system
  6250. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:933
  6251. source:
  6252. + (test-equal
  6253. + "current-system"
  6254. + "bar"
  6255. + (parameterize
  6256. + ((%current-system "frob"))
  6257. + (run-with-store
  6258. + %store
  6259. + (mbegin
  6260. + %store-monad
  6261. + (set-current-system "bar")
  6262. + (current-system))
  6263. + #:system
  6264. + "foo")))
  6265. expected-value: "bar"
  6266. actual-value: "bar"
  6267. result: PASS
  6268.  
  6269. test-name: query-path-info
  6270. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:942
  6271. source:
  6272. + (test-assert
  6273. + "query-path-info"
  6274. + (let* ((ref (add-text-to-store %store "ref" "foo"))
  6275. + (item (add-text-to-store
  6276. + %store
  6277. + "item"
  6278. + "bar"
  6279. + (list ref)))
  6280. + (info (query-path-info %store item)))
  6281. + (and (equal? (path-info-references info) (list ref))
  6282. + (equal?
  6283. + (path-info-hash info)
  6284. + (sha256
  6285. + (string->utf8
  6286. + (call-with-output-string
  6287. + (cut write-file item <>))))))))
  6288. actual-value: #t
  6289. result: PASS
  6290.  
  6291. test-name: path-info-deriver
  6292. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:952
  6293. source:
  6294. + (test-assert
  6295. + "path-info-deriver"
  6296. + (let* ((b (add-text-to-store
  6297. + %store
  6298. + "build"
  6299. + "echo $foo > $out"
  6300. + '()))
  6301. + (s (add-to-store
  6302. + %store
  6303. + "bash"
  6304. + #t
  6305. + "sha256"
  6306. + (search-bootstrap-binary
  6307. + "bash"
  6308. + (%current-system))))
  6309. + (d (derivation
  6310. + %store
  6311. + "the-thing"
  6312. + s
  6313. + `("-e" ,b)
  6314. + #:env-vars
  6315. + `(("foo" unquote (random-text)))
  6316. + #:inputs
  6317. + `((,b) (,s))))
  6318. + (o (derivation->output-path d)))
  6319. + (and (build-derivations %store (list d))
  6320. + (not (path-info-deriver (query-path-info %store b)))
  6321. + (string=?
  6322. + (derivation-file-name d)
  6323. + (path-info-deriver (query-path-info %store o))))))
  6324. actual-value: #t
  6325. result: PASS
  6326.  
  6327. test-name: build-cores
  6328. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/store.scm:967
  6329. source:
  6330. + (test-equal
  6331. + "build-cores"
  6332. + (list 0 42)
  6333. + (with-store
  6334. + store
  6335. + (let* ((build (add-text-to-store
  6336. + store
  6337. + "build.sh"
  6338. + "echo $NIX_BUILD_CORES > $out"))
  6339. + (bash (add-to-store
  6340. + store
  6341. + "bash"
  6342. + #t
  6343. + "sha256"
  6344. + (search-bootstrap-binary
  6345. + "bash"
  6346. + (%current-system))))
  6347. + (drv1 (derivation
  6348. + store
  6349. + "the-thing"
  6350. + bash
  6351. + `("-e" ,build)
  6352. + #:inputs
  6353. + `((,bash) (,build))
  6354. + #:env-vars
  6355. + substitute: warning: authentication and authorization of substitutes disabled!
  6356. substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
  6357. building path(s) `/tmp/guix-tests/store/4bqs47537wxslqrws94ayaj1fgxd44l4-the-thing'
  6358. @ build-started /tmp/guix-tests/store/zv42q95y1zgrxsazypicmibyn7n0cqvb-the-thing.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/zv//42q95y1zgrxsazypicmibyn7n0cqvb-the-thing.drv.bz2
  6359. @ build-succeeded /tmp/guix-tests/store/zv42q95y1zgrxsazypicmibyn7n0cqvb-the-thing.drv -
  6360. `(("x" unquote (random-text)))))
  6361. + (drv2 (derivation
  6362. + store
  6363. + "the-thing"
  6364. + bash
  6365. + `("-e" ,build)
  6366. + #:inputs
  6367. + `((,bash) (,build))
  6368. + #:env-vars
  6369. + `(("x" unquote (random-text))))))
  6370. + (and (build-derivations store (list drv1))
  6371. + (begin
  6372. + (set-build-options store #:build-cores 42)
  6373. + (build-derivations store (list drv2)))
  6374. + (list (call-with-input-file
  6375. + (derivation->output-path drv1)
  6376. + read)
  6377. + (call-with-input-file
  6378. + (derivation->output-path drv2)
  6379. + read))))))
  6380. expected-value: (0 42)
  6381. actual-value: (0 42)
  6382. result: PASS
  6383.  
  6384.  
  6385. SKIP: tests/union
  6386. =================
  6387.  
  6388. random seed for tests: 1508165819
  6389. @ build-started /tmp/guix-tests/store/w5hzafbhxyj68wdlzydkf3gd2rj9xhbs-module-import.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/w5//hzafbhxyj68wdlzydkf3gd2rj9xhbs-module-import.drv.bz2
  6390. @ build-succeeded /tmp/guix-tests/store/w5hzafbhxyj68wdlzydkf3gd2rj9xhbs-module-import.drv -
  6391. @ build-started /tmp/guix-tests/store/xbqdajzc1qj2kdm4jvj5r1vm3gczcwap-one.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/xb//qdajzc1qj2kdm4jvj5r1vm3gczcwap-one.drv.bz2
  6392. @ build-succeeded /tmp/guix-tests/store/xbqdajzc1qj2kdm4jvj5r1vm3gczcwap-one.drv -
  6393. @ build-started /tmp/guix-tests/store/628gfbr4qvj6sp47kb5q54dawrmia3nd-module-import-compiled.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/62//8gfbr4qvj6sp47kb5q54dawrmia3nd-module-import-compiled.drv.bz2
  6394. @ build-succeeded /tmp/guix-tests/store/628gfbr4qvj6sp47kb5q54dawrmia3nd-module-import-compiled.drv -
  6395. @ build-started /tmp/guix-tests/store/873jwzh897k7w7lynia8r5j066sg03av-two.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/87//3jwzh897k7w7lynia8r5j066sg03av-two.drv.bz2
  6396. @ build-succeeded /tmp/guix-tests/store/873jwzh897k7w7lynia8r5j066sg03av-two.drv -
  6397. @ build-started /tmp/guix-tests/store/s0a575gyk6ypdhlljqpqksk49pjdxvrz-union-collision-symlink.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/s0//a575gyk6ypdhlljqpqksk49pjdxvrz-union-collision-symlink.drv.bz2
  6398. `/tmp/guix-tests/store/92cd19f3cbh5s3338rzcvd967fbj1n6d-two/bar' ~> `/tmp/guix-tests/store/g6hvmsa4ybfv5iiais6zxs1mjr13pzr1-union-collision-symlink/bar'
  6399. `/tmp/guix-tests/store/92cd19f3cbh5s3338rzcvd967fbj1n6d-two/foo/two' ~> `/tmp/guix-tests/store/g6hvmsa4ybfv5iiais6zxs1mjr13pzr1-union-collision-symlink/foo/two'
  6400. `/tmp/guix-tests/store/p6j250a3pzkymsxc4i740v79qs6bv0fn-one/foo/one' ~> `/tmp/guix-tests/store/g6hvmsa4ybfv5iiais6zxs1mjr13pzr1-union-collision-symlink/foo/one'
  6401. @ build-succeeded /tmp/guix-tests/store/s0a575gyk6ypdhlljqpqksk49pjdxvrz-union-collision-symlink.drv -
  6402. test-name: union-build with symlink to directory
  6403. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/union.scm:42
  6404. source:
  6405. + (test-assert
  6406. + "union-build with symlink to directory"
  6407. + (let* ((one (build-expression->derivation
  6408. + %store
  6409. + "one"
  6410. + '(begin
  6411. + (use-modules (guix build utils) (srfi srfi-26))
  6412. + (let ((foo (string-append %output "/foo")))
  6413. + (mkdir-p foo)
  6414. + (call-with-output-file
  6415. + (string-append foo "/one")
  6416. + (cut display "one" <>))))
  6417. + #:modules
  6418. + '((guix build utils))))
  6419. + (two (build-expression->derivation
  6420. + %store
  6421. + "two"
  6422. + '(begin
  6423. + (use-modules (guix build utils) (srfi srfi-26))
  6424. + (let ((foo (string-append %output "/foo"))
  6425. + (bar (string-append %output "/bar")))
  6426. + (mkdir-p bar)
  6427. + (call-with-output-file
  6428. + (string-append bar "/two")
  6429. + (cut display "two" <>))
  6430. + (symlink "bar" foo)))
  6431. + #:modules
  6432. + '((guix build utils))))
  6433. + (builder
  6434. + '(begin
  6435. + (use-modules (guix build union))
  6436. + (union-build
  6437. + (assoc-ref %outputs "out")
  6438. + (list (assoc-ref %build-inputs "one")
  6439. + (assoc-ref %build-inputs "two")))))
  6440. + (drv (build-expression->derivation
  6441. + %store
  6442. + "union-collision-symlink"
  6443. + builder
  6444. + #:inputs
  6445. + `(("one" ,one) ("two" ,two))
  6446. + #:modules
  6447. + '((guix build union)))))
  6448. + (and (build-derivations %store (list drv))
  6449. + (with-directory-excursion
  6450. + (pk (derivation->output-path drv))
  6451. + (and (string=?
  6452. + "one"
  6453. + (call-with-input-file "foo/one" get-string-all))
  6454. + (string=?
  6455. + "two"
  6456. + (call-with-input-file "foo/two" get-string-all))
  6457. + (string=?
  6458. + "two"
  6459. + (call-with-input-file "bar/two" get-string-all))
  6460. + (not (file-exists? "bar/one")))))))
  6461.  
  6462. ;;; ("/tmp/guix-tests/store/g6hvmsa4ybfv5iiais6zxs1mjr13pzr1-union-collision-symlink")
  6463. actual-value: #t
  6464. result: PASS
  6465.  
  6466. test-name: union-build
  6467. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/union.scm:91
  6468. source:
  6469. + (test-assert
  6470. + "union-build"
  6471. + (let* ((inputs
  6472. + (map (match-lambda
  6473. + ((name package)
  6474. + `(,name ,(package-derivation %store package))))
  6475. + (append
  6476. + %bootstrap-inputs
  6477. + (take %bootstrap-inputs 3))))
  6478. + (builder
  6479. + `(begin
  6480. + (use-modules (guix build union))
  6481. + (union-build
  6482. + (assoc-ref %outputs "out")
  6483. + (map cdr %build-inputs))))
  6484. + (drv (build-expression->derivation
  6485. + %store
  6486. + "union-test"
  6487. + builder
  6488. + #:inputs
  6489. + inputs
  6490. + #:modules
  6491. + '((guix build union)))))
  6492. + (and (build-derivations %store (list (pk 'drv drv)))
  6493. + (with-directory-excursion
  6494. + (derivation->output-path drv)
  6495. + (and (file-exists? "bin/touch")
  6496. + (file-exists? "bin/gcc")
  6497. + (file-exists? "bin/ld")
  6498. + (file-exists? "lib/libc.so")
  6499. + (directory-exists? "lib/gcc")
  6500. + (file-exists? "include/unistd.h")
  6501. + (eq? 'symlink (stat:type (lstat "include/c++")))
  6502. + (eq? 'directory (stat:type (lstat "bin"))))))))
  6503. result: SKIP
  6504.  
  6505. test-name: union-build #:create-all-directories? #t
  6506. location: @ build-started /tmp/guix-tests/store/iwc79z4pnnjaz0hif0xnx65cg2j3qsg9-union-test-all-dirs.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/iw//c79z4pnnjaz0hif0xnx65cg2j3qsg9-union-test-all-dirs.drv.bz2
  6507. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/oop/goops.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/oop/goops.scm'
  6508. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/oop/goops/dispatch.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/oop/goops/dispatch.scm'
  6509. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/oop/goops/accessors.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/oop/goops/accessors.scm'
  6510. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/oop/goops/composite-slot.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/oop/goops/composite-slot.scm'
  6511. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/oop/goops/util.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/oop/goops/util.scm'
  6512. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/oop/goops/describe.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/oop/goops/describe.scm'
  6513. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/oop/goops/save.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/oop/goops/save.scm'
  6514. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/oop/goops/internal.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/oop/goops/internal.scm'
  6515. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/oop/goops/compile.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/oop/goops/compile.scm'
  6516. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/oop/goops/simple.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/oop/goops/simple.scm'
  6517. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/oop/goops/stklos.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/oop/goops/stklos.scm'
  6518. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/oop/goops/active-slot.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/oop/goops/active-slot.scm'
  6519. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/base/ck.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/base/ck.scm'
  6520. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/base/pmatch.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/base/pmatch.scm'
  6521. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/base/lalr.upstream.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/base/lalr.upstream.scm'
  6522. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/base/message.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/base/message.scm'
  6523. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/base/target.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/base/target.scm'
  6524. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/base/lalr.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/base/lalr.scm'
  6525. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/base/compile.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/base/compile.scm'
  6526. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/base/syntax.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/base/syntax.scm'
  6527. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/base/language.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/base/language.scm'
  6528. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/vm/trap-state.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/vm/trap-state.scm'
  6529. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/vm/trace.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/vm/trace.scm'
  6530. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/vm/program.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/vm/program.scm'
  6531. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/vm/objcode.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/vm/objcode.scm'
  6532. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/vm/frame.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/vm/frame.scm'
  6533. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/vm/traps.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/vm/traps.scm'
  6534. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/vm/vm.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/vm/vm.scm'
  6535. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/vm/instruction.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/vm/instruction.scm'
  6536. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/vm/coverage.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/vm/coverage.scm'
  6537. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/vm/inspect.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/vm/inspect.scm'
  6538. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/xref.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/xref.scm'
  6539. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/repl/repl.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/repl/repl.scm'
  6540. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/repl/error-handling.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/repl/error-handling.scm'
  6541. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/repl/describe.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/repl/describe.scm'
  6542. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/repl/command.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/repl/command.scm'
  6543. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/repl/debug.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/repl/debug.scm'
  6544. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/repl/server.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/repl/server.scm'
  6545. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/repl/common.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/repl/common.scm'
  6546. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/foreign.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/foreign.scm'
  6547. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/xpath.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/xpath.scm'
  6548. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/upstream/SXPath-old.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/upstream/SXPath-old.scm'
  6549. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/upstream/input-parse.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/upstream/input-parse.scm'
  6550. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/upstream/assert.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/upstream/assert.scm'
  6551. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/upstream/SXML-tree-trans.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/upstream/SXML-tree-trans.scm'
  6552. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/upstream/SSAX.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/upstream/SSAX.scm'
  6553. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/fold.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/fold.scm'
  6554. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/transform.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/transform.scm'
  6555. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/ssax/input-parse.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/ssax/input-parse.scm'
  6556. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/simple.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/simple.scm'
  6557. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/sxml-match.ss' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/sxml-match.ss'
  6558. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/match.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/match.scm'
  6559. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/apply-templates.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/apply-templates.scm'
  6560. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/ssax.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/ssax.scm'
  6561. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/texinfo.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/texinfo.scm'
  6562. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/scm-style-repl.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/scm-style-repl.scm'
  6563. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/control.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/control.scm'
  6564. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/poll.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/poll.scm'
  6565. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/and-let-star.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/and-let-star.scm'
  6566. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/channel.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/channel.scm'
  6567. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/save-stack.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/save-stack.scm'
  6568. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/string-fun.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/string-fun.scm'
  6569. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/calling.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/calling.scm'
  6570. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/threads.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/threads.scm'
  6571. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/r4rs.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/r4rs.scm'
  6572. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/rdelim.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/rdelim.scm'
  6573. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/lineio.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/lineio.scm'
  6574. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/readline.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/readline.scm'
  6575. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/list.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/list.scm'
  6576. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/quasisyntax.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/quasisyntax.scm'
  6577. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/weak-vector.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/weak-vector.scm'
  6578. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/top-repl.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/top-repl.scm'
  6579. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/getopt-long.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/getopt-long.scm'
  6580. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/eval.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/eval.scm'
  6581. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/futures.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/futures.scm'
  6582. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/streams.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/streams.scm'
  6583. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/networking.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/networking.scm'
  6584. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/r6rs-libraries.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/r6rs-libraries.scm'
  6585. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/poe.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/poe.scm'
  6586. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/mapping.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/mapping.scm'
  6587. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/boot-9.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/boot-9.scm'
  6588. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/optargs.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/optargs.scm'
  6589. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/receive.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/receive.scm'
  6590. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/common-list.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/common-list.scm'
  6591. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/q.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/q.scm'
  6592. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/deprecated.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/deprecated.scm'
  6593. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/safe.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/safe.scm'
  6594. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/i18n.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/i18n.scm'
  6595. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/format.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/format.scm'
  6596. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/gap-buffer.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/gap-buffer.scm'
  6597. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/serialize.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/serialize.scm'
  6598. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/ftw.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/ftw.scm'
  6599. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/session.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/session.scm'
  6600. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/hcons.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/hcons.scm'
  6601. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/runq.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/runq.scm'
  6602. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/pretty-print.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/pretty-print.scm'
  6603. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/r5rs.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/r5rs.scm'
  6604. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/curried-definitions.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/curried-definitions.scm'
  6605. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/posix.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/posix.scm'
  6606. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/psyntax-pp.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/psyntax-pp.scm'
  6607. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/match.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/match.scm'
  6608. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/buffered-input.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/buffered-input.scm'
  6609. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/psyntax.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/psyntax.scm'
  6610. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/match.upstream.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/match.upstream.scm'
  6611. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/time.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/time.scm'
  6612. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/binary-ports.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/binary-ports.scm'
  6613. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/regex.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/regex.scm'
  6614. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/ls.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/ls.scm'
  6615. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/rw.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/rw.scm'
  6616. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/documentation.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/documentation.scm'
  6617. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/local-eval.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/local-eval.scm'
  6618. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/iconv.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/iconv.scm'
  6619. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/history.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/history.scm'
  6620. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/expect.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/expect.scm'
  6621. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/command-line.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/command-line.scm'
  6622. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/syncase.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/syncase.scm'
  6623. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/slib.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/slib.scm'
  6624. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/stack-catch.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/stack-catch.scm'
  6625. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/occam-channel.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/occam-channel.scm'
  6626. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/null.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/null.scm'
  6627. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/debug.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/debug.scm'
  6628. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/vlist.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/vlist.scm'
  6629. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/safe-r5rs.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/safe-r5rs.scm'
  6630. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/eval-string.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/eval-string.scm'
  6631. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/popen.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/popen.scm'
  6632. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/tree-il.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/tree-il.scm'
  6633. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/glil.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/glil.scm'
  6634. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/value/spec.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/value/spec.scm'
  6635. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/assembly/spec.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/assembly/spec.scm'
  6636. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/assembly/compile-bytecode.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/assembly/compile-bytecode.scm'
  6637. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/assembly/decompile-bytecode.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/assembly/decompile-bytecode.scm'
  6638. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/assembly/disassemble.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/assembly/disassemble.scm'
  6639. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/scheme/decompile-tree-il.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/scheme/decompile-tree-il.scm'
  6640. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/scheme/spec.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/scheme/spec.scm'
  6641. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/scheme/compile-tree-il.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/scheme/compile-tree-il.scm'
  6642. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/objcode/spec.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/objcode/spec.scm'
  6643. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/tree-il/canonicalize.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/tree-il/canonicalize.scm'
  6644. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/tree-il/optimize.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/tree-il/optimize.scm'
  6645. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/tree-il/inline.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/tree-il/inline.scm'
  6646. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/tree-il/effects.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/tree-il/effects.scm'
  6647. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/tree-il/spec.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/tree-il/spec.scm'
  6648. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/tree-il/primitives.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/tree-il/primitives.scm'
  6649. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/tree-il/fix-letrec.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/tree-il/fix-letrec.scm'
  6650. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/tree-il/peval.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/tree-il/peval.scm'
  6651. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/tree-il/analyze.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/tree-il/analyze.scm'
  6652. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/tree-il/debug.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/tree-il/debug.scm'
  6653. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/tree-il/cse.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/tree-il/cse.scm'
  6654. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/tree-il/compile-glil.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/tree-il/compile-glil.scm'
  6655. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/elisp/runtime/subrs.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/elisp/runtime/subrs.scm'
  6656. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/elisp/runtime/macros.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/elisp/runtime/macros.scm'
  6657. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/elisp/runtime/function-slot.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/elisp/runtime/function-slot.scm'
  6658. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/elisp/runtime/value-slot.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/elisp/runtime/value-slot.scm'
  6659. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/elisp/spec.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/elisp/spec.scm'
  6660. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/elisp/parser.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/elisp/parser.scm'
  6661. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/elisp/bindings.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/elisp/bindings.scm'
  6662. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/elisp/lexer.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/elisp/lexer.scm'
  6663. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/elisp/runtime.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/elisp/runtime.scm'
  6664. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/elisp/compile-tree-il.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/elisp/compile-tree-il.scm'
  6665. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/assembly.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/assembly.scm'
  6666. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/glil/spec.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/glil/spec.scm'
  6667. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/glil/compile-assembly.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/glil/compile-assembly.scm'
  6668. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/ecmascript/array.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/ecmascript/array.scm'
  6669. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/ecmascript/spec.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/ecmascript/spec.scm'
  6670. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/ecmascript/parse.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/ecmascript/parse.scm'
  6671. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/ecmascript/function.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/ecmascript/function.scm'
  6672. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/ecmascript/tokenize.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/ecmascript/tokenize.scm'
  6673. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/ecmascript/impl.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/ecmascript/impl.scm'
  6674. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/ecmascript/base.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/ecmascript/base.scm'
  6675. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/ecmascript/compile-tree-il.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/ecmascript/compile-tree-il.scm'
  6676. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/bytecode/spec.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/bytecode/spec.scm'
  6677. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/brainfuck/spec.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/brainfuck/spec.scm'
  6678. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/brainfuck/parse.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/brainfuck/parse.scm'
  6679. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/brainfuck/compile-scheme.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/brainfuck/compile-scheme.scm'
  6680. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/brainfuck/compile-tree-il.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/brainfuck/compile-tree-il.scm'
  6681. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/statprof.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/statprof.scm'
  6682. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/list.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/list.scm'
  6683. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/help.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/help.scm'
  6684. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/read-rfc822.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/read-rfc822.scm'
  6685. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/use2dot.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/use2dot.scm'
  6686. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/snarf-guile-m4-docs.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/snarf-guile-m4-docs.scm'
  6687. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/frisk.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/frisk.scm'
  6688. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/read-text-outline.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/read-text-outline.scm'
  6689. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/autofrisk.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/autofrisk.scm'
  6690. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/snarf-check-and-output-texi.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/snarf-check-and-output-texi.scm'
  6691. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/scan-api.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/scan-api.scm'
  6692. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/read-scheme-source.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/read-scheme-source.scm'
  6693. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/compile.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/compile.scm'
  6694. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/doc-snarf.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/doc-snarf.scm'
  6695. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/punify.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/punify.scm'
  6696. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/lint.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/lint.scm'
  6697. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/generate-autoload.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/generate-autoload.scm'
  6698. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/api-diff.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/api-diff.scm'
  6699. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/disassemble.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/disassemble.scm'
  6700. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/display-commentary.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/display-commentary.scm'
  6701. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/summarize-guile-TODO.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/summarize-guile-TODO.scm'
  6702. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs.scm'
  6703. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-67/compare.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-67/compare.scm'
  6704. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-41.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-41.scm'
  6705. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-67.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-67.scm'
  6706. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-19.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-19.scm'
  6707. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-18.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-18.scm'
  6708. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-17.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-17.scm'
  6709. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-9.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-9.scm'
  6710. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-4/gnu.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-4/gnu.scm'
  6711. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-16.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-16.scm'
  6712. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-8.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-8.scm'
  6713. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-9/gnu.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-9/gnu.scm'
  6714. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-14.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-14.scm'
  6715. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-6.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-6.scm'
  6716. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-27.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-27.scm'
  6717. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-13.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-13.scm'
  6718. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-88.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-88.scm'
  6719. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-26.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-26.scm'
  6720. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-60.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-60.scm'
  6721. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-39.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-39.scm'
  6722. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-4.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-4.scm'
  6723. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-11.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-11.scm'
  6724. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-38.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-38.scm'
  6725. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-10.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-10.scm'
  6726. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-2.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-2.scm'
  6727. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-37.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-37.scm'
  6728. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-98.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-98.scm'
  6729. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-1.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-1.scm'
  6730. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-35.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-35.scm'
  6731. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-34.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-34.scm'
  6732. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-42/ec.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-42/ec.scm'
  6733. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-45.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-45.scm'
  6734. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-31.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-31.scm'
  6735. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-42.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-42.scm'
  6736. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-69.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-69.scm'
  6737. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/guile-procedures.txt' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/guile-procedures.txt'
  6738. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/mutable-strings.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/mutable-strings.scm'
  6739. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/control.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/control.scm'
  6740. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/records/procedural.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/records/procedural.scm'
  6741. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/records/syntactic.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/records/syntactic.scm'
  6742. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/records/inspection.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/records/inspection.scm'
  6743. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/lists.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/lists.scm'
  6744. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/enums.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/enums.scm'
  6745. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/conditions.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/conditions.scm'
  6746. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/hashtables.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/hashtables.scm'
  6747. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/arithmetic/fixnums.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/arithmetic/fixnums.scm'
  6748. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/arithmetic/bitwise.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/arithmetic/bitwise.scm'
  6749. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/arithmetic/flonums.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/arithmetic/flonums.scm'
  6750. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/sorting.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/sorting.scm'
  6751. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/files.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/files.scm'
  6752. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/programs.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/programs.scm'
  6753. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/mutable-pairs.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/mutable-pairs.scm'
  6754. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/bytevectors.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/bytevectors.scm'
  6755. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/unicode.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/unicode.scm'
  6756. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/eval.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/eval.scm'
  6757. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/base.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/base.scm'
  6758. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/syntax-case.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/syntax-case.scm'
  6759. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/r5rs.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/r5rs.scm'
  6760. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/io/ports.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/io/ports.scm'
  6761. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/io/simple.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/io/simple.scm'
  6762. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/exceptions.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/exceptions.scm'
  6763. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/web/http.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/web/http.scm'
  6764. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/web/client.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/web/client.scm'
  6765. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/web/server/http.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/web/server/http.scm'
  6766. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/web/request.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/web/request.scm'
  6767. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/web/response.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/web/response.scm'
  6768. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/web/uri.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/web/uri.scm'
  6769. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/web/server.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/web/server.scm'
  6770. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/texinfo/indexing.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/texinfo/indexing.scm'
  6771. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/texinfo/plain-text.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/texinfo/plain-text.scm'
  6772. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/texinfo/html.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/texinfo/html.scm'
  6773. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/texinfo/reflection.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/texinfo/reflection.scm'
  6774. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/texinfo/string-utils.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/texinfo/string-utils.scm'
  6775. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/texinfo/docbook.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/texinfo/docbook.scm'
  6776. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/texinfo/serialize.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/texinfo/serialize.scm'
  6777. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/bin/.guile-real' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/bin/.guile-real'
  6778. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/bin/guile' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/bin/guile'
  6779. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/oop/goops.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/oop/goops.go'
  6780. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/oop/goops/internal.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/oop/goops/internal.go'
  6781. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/oop/goops/simple.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/oop/goops/simple.go'
  6782. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/oop/goops/util.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/oop/goops/util.go'
  6783. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/oop/goops/compile.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/oop/goops/compile.go'
  6784. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/oop/goops/dispatch.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/oop/goops/dispatch.go'
  6785. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/oop/goops/active-slot.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/oop/goops/active-slot.go'
  6786. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/oop/goops/accessors.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/oop/goops/accessors.go'
  6787. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/oop/goops/describe.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/oop/goops/describe.go'
  6788. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/oop/goops/stklos.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/oop/goops/stklos.go'
  6789. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/oop/goops/composite-slot.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/oop/goops/composite-slot.go'
  6790. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/oop/goops/save.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/oop/goops/save.go'
  6791. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/texinfo.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/texinfo.go'
  6792. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/base/pmatch.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/base/pmatch.go'
  6793. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/base/syntax.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/base/syntax.go'
  6794. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/base/target.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/base/target.go'
  6795. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/base/lalr.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/base/lalr.go'
  6796. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/base/compile.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/base/compile.go'
  6797. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/base/ck.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/base/ck.go'
  6798. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/base/language.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/base/language.go'
  6799. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/base/message.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/base/message.go'
  6800. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/vm/trace.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/vm/trace.go'
  6801. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/vm/traps.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/vm/traps.go'
  6802. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/vm/trap-state.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/vm/trap-state.go'
  6803. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/vm/objcode.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/vm/objcode.go'
  6804. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/vm/frame.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/vm/frame.go'
  6805. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/vm/vm.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/vm/vm.go'
  6806. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/vm/coverage.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/vm/coverage.go'
  6807. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/vm/program.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/vm/program.go'
  6808. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/vm/instruction.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/vm/instruction.go'
  6809. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/vm/inspect.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/vm/inspect.go'
  6810. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/foreign.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/foreign.go'
  6811. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/xref.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/xref.go'
  6812. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/repl/command.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/repl/command.go'
  6813. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/repl/repl.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/repl/repl.go'
  6814. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/repl/common.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/repl/common.go'
  6815. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/repl/server.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/repl/server.go'
  6816. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/repl/error-handling.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/repl/error-handling.go'
  6817. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/repl/debug.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/repl/debug.go'
  6818. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs.go'
  6819. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/sxml/apply-templates.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/sxml/apply-templates.go'
  6820. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/sxml/simple.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/sxml/simple.go'
  6821. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/sxml/fold.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/sxml/fold.go'
  6822. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/sxml/xpath.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/sxml/xpath.go'
  6823. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/sxml/transform.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/sxml/transform.go'
  6824. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/sxml/ssax.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/sxml/ssax.go'
  6825. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/sxml/ssax/input-parse.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/sxml/ssax/input-parse.go'
  6826. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/sxml/match.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/sxml/match.go'
  6827. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/q.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/q.go'
  6828. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/receive.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/receive.go'
  6829. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/boot-9.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/boot-9.go'
  6830. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/rw.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/rw.go'
  6831. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/ls.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/ls.go'
  6832. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/networking.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/networking.go'
  6833. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/save-stack.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/save-stack.go'
  6834. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/channel.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/channel.go'
  6835. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/mapping.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/mapping.go'
  6836. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/string-fun.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/string-fun.go'
  6837. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/control.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/control.go'
  6838. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/poll.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/poll.go'
  6839. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/streams.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/streams.go'
  6840. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/eval-string.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/eval-string.go'
  6841. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/psyntax-pp.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/psyntax-pp.go'
  6842. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/eval.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/eval.go'
  6843. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/match.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/match.go'
  6844. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/documentation.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/documentation.go'
  6845. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/weak-vector.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/weak-vector.go'
  6846. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/debug.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/debug.go'
  6847. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/occam-channel.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/occam-channel.go'
  6848. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/posix.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/posix.go'
  6849. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/common-list.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/common-list.go'
  6850. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/null.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/null.go'
  6851. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/top-repl.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/top-repl.go'
  6852. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/r5rs.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/r5rs.go'
  6853. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/runq.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/runq.go'
  6854. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/local-eval.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/local-eval.go'
  6855. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/ftw.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/ftw.go'
  6856. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/serialize.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/serialize.go'
  6857. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/slib.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/slib.go'
  6858. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/pretty-print.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/pretty-print.go'
  6859. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/lineio.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/lineio.go'
  6860. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/history.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/history.go'
  6861. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/readline.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/readline.go'
  6862. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/threads.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/threads.go'
  6863. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/calling.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/calling.go'
  6864. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/optargs.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/optargs.go'
  6865. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/gap-buffer.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/gap-buffer.go'
  6866. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/deprecated.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/deprecated.go'
  6867. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/regex.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/regex.go'
  6868. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/time.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/time.go'
  6869. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/binary-ports.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/binary-ports.go'
  6870. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/poe.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/poe.go'
  6871. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/and-let-star.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/and-let-star.go'
  6872. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/futures.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/futures.go'
  6873. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/popen.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/popen.go'
  6874. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/curried-definitions.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/curried-definitions.go'
  6875. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/vlist.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/vlist.go'
  6876. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/safe-r5rs.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/safe-r5rs.go'
  6877. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/scm-style-repl.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/scm-style-repl.go'
  6878. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/stack-catch.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/stack-catch.go'
  6879. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/session.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/session.go'
  6880. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/hcons.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/hcons.go'
  6881. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/buffered-input.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/buffered-input.go'
  6882. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/list.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/list.go'
  6883. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/getopt-long.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/getopt-long.go'
  6884. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/syncase.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/syncase.go'
  6885. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/i18n.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/i18n.go'
  6886. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/format.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/format.go'
  6887. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/expect.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/expect.go'
  6888. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/rdelim.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/rdelim.go'
  6889. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/r4rs.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/r4rs.go'
  6890. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/iconv.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/iconv.go'
  6891. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/command-line.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/command-line.go'
  6892. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/safe.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/safe.go'
  6893. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/glil.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/glil.go'
  6894. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/tree-il.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/tree-il.go'
  6895. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/value/spec.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/value/spec.go'
  6896. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/assembly.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/assembly.go'
  6897. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/assembly/disassemble.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/assembly/disassemble.go'
  6898. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/assembly/spec.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/assembly/spec.go'
  6899. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/assembly/compile-bytecode.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/assembly/compile-bytecode.go'
  6900. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/assembly/decompile-bytecode.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/assembly/decompile-bytecode.go'
  6901. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/scheme/decompile-tree-il.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/scheme/decompile-tree-il.go'
  6902. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/scheme/compile-tree-il.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/scheme/compile-tree-il.go'
  6903. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/scheme/spec.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/scheme/spec.go'
  6904. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/objcode/spec.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/objcode/spec.go'
  6905. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/tree-il/effects.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/tree-il/effects.go'
  6906. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/tree-il/fix-letrec.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/tree-il/fix-letrec.go'
  6907. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/tree-il/inline.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/tree-il/inline.go'
  6908. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/tree-il/canonicalize.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/tree-il/canonicalize.go'
  6909. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/tree-il/compile-glil.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/tree-il/compile-glil.go'
  6910. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/tree-il/analyze.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/tree-il/analyze.go'
  6911. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/tree-il/cse.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/tree-il/cse.go'
  6912. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/tree-il/peval.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/tree-il/peval.go'
  6913. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/tree-il/optimize.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/tree-il/optimize.go'
  6914. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/tree-il/primitives.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/tree-il/primitives.go'
  6915. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/tree-il/debug.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/tree-il/debug.go'
  6916. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/tree-il/spec.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/tree-il/spec.go'
  6917. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/elisp/runtime/value-slot.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/elisp/runtime/value-slot.go'
  6918. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/elisp/runtime/subrs.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/elisp/runtime/subrs.go'
  6919. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/elisp/runtime/function-slot.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/elisp/runtime/function-slot.go'
  6920. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/elisp/runtime/macros.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/elisp/runtime/macros.go'
  6921. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/elisp/lexer.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/elisp/lexer.go'
  6922. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/elisp/parser.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/elisp/parser.go'
  6923. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/elisp/bindings.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/elisp/bindings.go'
  6924. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/elisp/compile-tree-il.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/elisp/compile-tree-il.go'
  6925. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/elisp/spec.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/elisp/spec.go'
  6926. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/elisp/runtime.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/elisp/runtime.go'
  6927. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/glil/compile-assembly.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/glil/compile-assembly.go'
  6928. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/glil/spec.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/glil/spec.go'
  6929. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/ecmascript/function.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/ecmascript/function.go'
  6930. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/ecmascript/array.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/ecmascript/array.go'
  6931. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/ecmascript/tokenize.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/ecmascript/tokenize.go'
  6932. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/ecmascript/impl.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/ecmascript/impl.go'
  6933. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/ecmascript/compile-tree-il.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/ecmascript/compile-tree-il.go'
  6934. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/ecmascript/spec.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/ecmascript/spec.go'
  6935. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/ecmascript/parse.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/ecmascript/parse.go'
  6936. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/ecmascript/base.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/ecmascript/base.go'
  6937. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/bytecode/spec.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/bytecode/spec.go'
  6938. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/brainfuck/compile-scheme.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/brainfuck/compile-scheme.go'
  6939. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/brainfuck/compile-tree-il.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/brainfuck/compile-tree-il.go'
  6940. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/brainfuck/spec.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/brainfuck/spec.go'
  6941. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/brainfuck/parse.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/brainfuck/parse.go'
  6942. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/statprof.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/statprof.go'
  6943. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/summarize-guile-TODO.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/summarize-guile-TODO.go'
  6944. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/snarf-check-and-output-texi.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/snarf-check-and-output-texi.go'
  6945. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/scan-api.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/scan-api.go'
  6946. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/doc-snarf.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/doc-snarf.go'
  6947. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/snarf-guile-m4-docs.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/snarf-guile-m4-docs.go'
  6948. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/compile.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/compile.go'
  6949. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/read-scheme-source.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/read-scheme-source.go'
  6950. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/disassemble.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/disassemble.go'
  6951. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/lint.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/lint.go'
  6952. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/api-diff.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/api-diff.go'
  6953. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/list.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/list.go'
  6954. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/help.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/help.go'
  6955. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/use2dot.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/use2dot.go'
  6956. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/display-commentary.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/display-commentary.go'
  6957. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/autofrisk.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/autofrisk.go'
  6958. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/punify.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/punify.go'
  6959. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/frisk.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/frisk.go'
  6960. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/read-text-outline.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/read-text-outline.go'
  6961. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/read-rfc822.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/read-rfc822.go'
  6962. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/generate-autoload.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/generate-autoload.go'
  6963. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-45.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-45.go'
  6964. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-60.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-60.go'
  6965. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-35.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-35.go'
  6966. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-8.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-8.go'
  6967. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-38.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-38.go'
  6968. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-4/gnu.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-4/gnu.go'
  6969. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-10.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-10.go'
  6970. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-18.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-18.go'
  6971. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-9/gnu.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-9/gnu.go'
  6972. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-6.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-6.go'
  6973. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-13.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-13.go'
  6974. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-69.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-69.go'
  6975. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-1.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-1.go'
  6976. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-9.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-9.go'
  6977. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-26.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-26.go'
  6978. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-41.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-41.go'
  6979. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-16.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-16.go'
  6980. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-31.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-31.go'
  6981. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-39.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-39.go'
  6982. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-4.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-4.go'
  6983. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-11.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-11.go'
  6984. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-67.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-67.go'
  6985. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-19.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-19.go'
  6986. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-34.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-34.go'
  6987. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-14.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-14.go'
  6988. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-37.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-37.go'
  6989. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-2.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-2.go'
  6990. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-27.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-27.go'
  6991. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-42.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-42.go'
  6992. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-98.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-98.go'
  6993. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-17.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-17.go'
  6994. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-88.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-88.go'
  6995. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/mutable-pairs.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/mutable-pairs.go'
  6996. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/conditions.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/conditions.go'
  6997. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/records/procedural.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/records/procedural.go'
  6998. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/records/inspection.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/records/inspection.go'
  6999. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/records/syntactic.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/records/syntactic.go'
  7000. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/r5rs.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/r5rs.go'
  7001. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/exceptions.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/exceptions.go'
  7002. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/control.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/control.go'
  7003. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/enums.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/enums.go'
  7004. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/sorting.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/sorting.go'
  7005. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/hashtables.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/hashtables.go'
  7006. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/files.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/files.go'
  7007. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/arithmetic/flonums.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/arithmetic/flonums.go'
  7008. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/arithmetic/bitwise.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/arithmetic/bitwise.go'
  7009. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/arithmetic/fixnums.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/arithmetic/fixnums.go'
  7010. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/lists.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/lists.go'
  7011. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/programs.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/programs.go'
  7012. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/syntax-case.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/syntax-case.go'
  7013. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/bytevectors.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/bytevectors.go'
  7014. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/mutable-strings.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/mutable-strings.go'
  7015. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/unicode.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/unicode.go'
  7016. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/io/simple.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/io/simple.go'
  7017. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/io/ports.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/io/ports.go'
  7018. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/eval.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/eval.go'
  7019. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/base.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/base.go'
  7020. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/web/response.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/web/response.go'
  7021. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/web/server.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/web/server.go'
  7022. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/web/server/http.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/web/server/http.go'
  7023. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/web/http.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/web/http.go'
  7024. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/web/uri.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/web/uri.go'
  7025. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/web/client.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/web/client.go'
  7026. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/web/request.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/web/request.go'
  7027. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/texinfo/html.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/texinfo/html.go'
  7028. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/texinfo/serialize.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/texinfo/serialize.go'
  7029. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/texinfo/indexing.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/texinfo/indexing.go'
  7030. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/texinfo/docbook.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/texinfo/docbook.go'
  7031. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/texinfo/reflection.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/texinfo/reflection.go'
  7032. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/texinfo/string-utils.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/texinfo/string-utils.go'
  7033. `/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/texinfo/plain-text.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/texinfo/plain-text.go'
  7034. @ build-succeeded /tmp/guix-tests/store/iwc79z4pnnjaz0hif0xnx65cg2j3qsg9-union-test-all-dirs.drv -
  7035. /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/union.scm:127
  7036. source:
  7037. + (test-assert
  7038. + "union-build #:create-all-directories? #t"
  7039. + (let* ((build `(begin
  7040. + (use-modules (guix build union))
  7041. + (union-build
  7042. + (assoc-ref %outputs "out")
  7043. + (map cdr %build-inputs)
  7044. + #:create-all-directories?
  7045. + #t)))
  7046. + (input (package-derivation %store %bootstrap-guile))
  7047. + (drv (build-expression->derivation
  7048. + %store
  7049. + "union-test-all-dirs"
  7050. + build
  7051. + #:modules
  7052. + '((guix build union))
  7053. + #:inputs
  7054. + `(("g" ,input)))))
  7055. + (and (build-derivations %store (list drv))
  7056. + (with-directory-excursion
  7057. + (derivation->output-path drv)
  7058. + (and (file-exists? "bin/guile")
  7059. + (file-is-directory? "bin")
  7060. + (eq? 'symlink (stat:type (lstat "bin/guile"))))))))
  7061. actual-value: #t
  7062. result: PASS
  7063.  
  7064.  
  7065. SKIP: tests/syscalls
  7066. ====================
  7067.  
  7068. test-name: mount, ENOENT
  7069. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:40
  7070. source:
  7071. + (test-equal
  7072. + "mount, ENOENT"
  7073. + ENOENT
  7074. + (catch 'system-error
  7075. + (lambda ()
  7076. + (mount "/dev/null" "/does-not-exist" "ext2")
  7077. + #f)
  7078. + (compose system-error-errno list)))
  7079. expected-value: 2
  7080. actual-value: 2
  7081. result: PASS
  7082.  
  7083. test-name: umount, ENOENT/EPERM
  7084. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:48
  7085. source:
  7086. + (test-assert
  7087. + "umount, ENOENT/EPERM"
  7088. + (catch 'system-error
  7089. + (lambda () (umount "/does-not-exist") #f)
  7090. + (lambda args
  7091. + (memv (system-error-errno args)
  7092. + (list EPERM ENOENT)))))
  7093. actual-value: (1 2)
  7094. result: PASS
  7095.  
  7096. test-name: mount-points
  7097. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:57
  7098. source:
  7099. + (test-assert
  7100. + "mount-points"
  7101. + (any (cute member <> (mount-points))
  7102. + '("/" "/proc" "/sys" "/dev")))
  7103. actual-value: ("/" "/dev/full" "/dev/kvm" "/dev/null" "/dev/random" "/dev/tty" "/dev/urandom" "/dev/zero" "/gnu/store/09j7scnl3hahcmql986fsjpzj6gqsmzv-ncurses-6.0" "/gnu/store/0f76ak4jn36qs7syhfaw5ag9958yabzh-libatomic-ops-7.4.4" "/gnu/store/0q4qmgjz3gdvyc1majqjgcm9c7s8iv0z-libssh2-1.8.0" "/gnu/store/0s5manjvfa0gmsv2r71rchky7ab70g1d-icu4c-58.2" "/gnu/store/1jcq4fc07bngc5q1cy44j0glv1vrjz52-libffi-3.2.1" "/gnu/store/1jp44pfmqcj3zycclvmmva3xcwinyg7l-freetype-2.8" "/gnu/store/1ppqh79pkzxn0y945dcxmvp1y2fpd8iv-autoconf-2.69" "/gnu/store/1xc97akbdcisrid2n8djpkn09f8bkl5f-libxdmcp-1.1.2" "/gnu/store/20jm67srhdzi01d2gdg36cspyip21lsd-libsm-1.2.2" "/gnu/store/231indrpxi7m01xx752bx4y864kyf977-libxaw-1.0.13" "/gnu/store/2nr5qmmzazj37dzfzbn0g24yy2dsavy4-m4-1.4.18" "/gnu/store/3idmp2npj0ccka6svahdr1pb81sk808l-guix-0.13.0-7.8b920d7-checkout" "/gnu/store/3k1y78v6nxjvmivnri5j46wai6ppvyz0-harfbuzz-1.5.1" "/gnu/store/3x53yv4v144c9xp02rs64z7j597kkqax-gcc-5.4.0-lib" "/gnu/store/42d5rjrdkln6nwvzwdc8dyd4w6iy3n5j-coreutils-8.27" "/gnu/store/47jgabf5wx296alb06pb5iig6cqbmx0v-gdbm-1.13" "/gnu/store/4awdim3wf62nq9qjw3hl6bacgjh9fzyv-guile-2.0.14" "/gnu/store/4b9y9f5fvghk2vmwpbgzncal7z3r4n5y-pango-1.40.12" "/gnu/store/4c0dm8h5ln0zr1l93nwhhizf5p040yi6-gs-fonts-8.11" "/gnu/store/4iqyh8xqjxazza3lx2iz5v39ipzifsfj-gzip-1.8" "/gnu/store/593cj4b7nsa0csjfjnh0xx8y4rdpykxh-libxft-2.3.2" "/gnu/store/5jl21csvr3jmsa4a7d08sqa2waks3f09-gmp-6.1.2" "/gnu/store/5lrk6d5cjsv2s29vfji6j59gyf18rb5m-acl-2.2.52" "/gnu/store/5sv5zy2kgg6iaqyv8zw49w4243j0xkd0-gcc-5.4.0" "/gnu/store/6hicns85s8ddp0y539wdspwx22ac2kmv-bzip2-1.0.6" "/gnu/store/6vps2jc0v6b4hr8ds98785xcf8061wz0-make-4.2.1" "/gnu/store/7ljjhfz6p14xlnwnmzmg6hi01wfvz9vb-cyrus-sasl-2.1.26" "/gnu/store/7nsf89mygsz1q60nkp1f62q33zraq1vc-gd-2.2.5" "/gnu/store/7v2w3506q0gf96rsf6wf3gdr2iv5frmm-libgpg-error-1.27" "/gnu/store/7v8369lgnqvpphcw06hg59hb8hxmkr8x-sed-4.4" "/gnu/store/7zbscp5r0djsalcnvfrm7g0mp70mhrkd-diffutils-3.6" "/gnu/store/8d868psvkzj0215d83xb77q0c9mqjn4d-gts-0.7.6" "/gnu/store/8g0ilwjzha2s30d1xx979xgn081d525b-curl-7.55.1-doc" "/gnu/store/8n8wwvbkarxqxkn0kc6p5iin0ywiidb0-guile-ssh-0.11.2" "/gnu/store/965dw3smmsvj6jyfxrkapp0gn9jh9djn-libunistring-0.9.7" "/gnu/store/9b0nh58q1dwxli80xj15gv2037az96xw-patch-2.7.5" "/gnu/store/9blidf28xz0a0glnv6a4xcw6nxadg427-libgc-7.6.0" "/gnu/store/9pq16kfcldqqcbd58mmfp37g3awhg4sd-gawk-4.1.4" "/gnu/store/akc3nsnksgv6256jm1ariljb1c7zh8x2-libgc-7.6.0" "/gnu/store/an52j0jrvd23qypbidd5f20k2wi75vh9-pcre-8.40" "/gnu/store/azbfh3i72lbaqvhgg5m7p6ymmqq0ii6q-glib-2.52.3" "/gnu/store/b7y66db86k57vbb03nr4bfn9svmks4gf-bash-4.4.12" "/gnu/store/b9ww6qv1ii9v6n45kin7543vkf6jfnd3-libpng-1.6.29" "/gnu/store/bcmf06k2n1pfwqkzpclvvc3w9jdfi71a-guile-json-0.6.0" "/gnu/store/bd29g8hyazd9jpyql568npfd23srlyk3-help2man-1.47.4" "/gnu/store/bw44dfc7sb38dk2j2k562bsjjsy93lvq-libgcrypt-1.7.8" "/gnu/store/bzn4wyrbdmfc1bd7lq05db5psfl5f8x8-perl-5.26.0" "/gnu/store/c2k4gqjhnjyqyisci1sy81416i03pk22-libidn2-2.0.2" "/gnu/store/c4vl4hw5jccg0b23sfvs0kdnfdbxdlgm-cairo-1.14.10" "/gnu/store/c6vpfgm9n7jzgr0llax0x7szqk9a5bfm-nettle-3.3" "/gnu/store/clrddh6a60b31anv7a9hrk3i9id0k5zs-libxcb-1.12" "/gnu/store/d8gkn84yqacjr80pzicz1ka3y2s1f2x0-guile-2.2.2" "/gnu/store/dabxjcasp7p3f2hwa5zfnzw0hpf73wbn-graphviz-2.40.1" "/gnu/store/dwi04458qala1knhsvn1wis90mr65r8b-linux-libre-headers-4.4.47" "/gnu/store/g3nari57wcfnm00kv9bnpyzdzfq4h8pk-xz-5.2.2" "/gnu/store/gfsiaw6rn29ii8cpjnix05a7r588k9yv-texinfo-6.3" "/gnu/store/j3my0bpdapn5p0cm31j6vnq3lfxk4zvd-libxmu-1.1.2" "/gnu/store/jnbb8ffxxvrw2b4z18zn0g08kqk9rsgl-libffi-3.2.1" "/gnu/store/jvsgj5l4lgdknari34rv29wv253n8jcl-gnutls-3.5.13" "/gnu/store/jz7wvy930liqjvm95lhdv9i1dr1xxvxp-libxext-1.3.3" "/gnu/store/kdwlvs51isdfbl61jdishzhly8h139zf-libbsd-0.8.3" "/gnu/store/kgy00x8jl7q965sngq1yyihbczxj15wk-libxrender-0.9.10" "/gnu/store/ki6myvq4ljlmnsmnx0khdxkl2kdcyqc3-bzip2-1.0.6" "/gnu/store/kpxi8h3669afr9r1bgvaf9ij3y4wdyyn-bash-minimal-4.4.12" "/gnu/store/kz47ykl11dx4y96zgi2jxqckr810fm96-bdb-5.3.28" "/gnu/store/l1yvpjihbrc3avb08r2bv0rj6657rpzi-libssh-0.7.5" "/gnu/store/lh1hwa0i061lwzyvk9brcsjb6h1gyhrg-ncurses-6.0" "/gnu/store/m0m6bwzi8lx7kv8zbn3hjrim6flmgnf4-openssl-1.0.2l" "/gnu/store/mibkqg3hkvshh7n235jk1dgy4dis2wx7-libgit2-0.26.0" "/gnu/store/mipizipnr4y2hly9b429j8id1albbgqi-readline-7.0" "/gnu/store/mmbni235xxl5hxbi6d72y8yar87gr0px-autoconf-wrapper-2.69" "/gnu/store/mnji9x06r6bwy17gr3g35xspw28bdn5r-guile-git-0.0-3.e156a10" "/gnu/store/mpl9b9w60gjzsq470zka5l8p2bmy7r8v-sqlite-3.19.3" "/gnu/store/msw2q7nr3vfmgwyxf15y0x7qbngs9y3d-file-5.30" "/gnu/store/mxsbvhljh0fk82hdsgy04p3l2d5hz4j4-libtasn1-4.12" "/gnu/store/mz2q8c1zl8y848nixvbywg2d3zq7pjmc-libxpm-3.5.12" "/gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25" "/gnu/store/naq2nb3vhyaswkk4sbiw7xd6ry21nkvg-automake-1.15" "/gnu/store/nnykzgwfy8mwh2gmxm715sjxykg8qjwn-binutils-2.28" "/gnu/store/np05q8mf1y9y4bk5y4ssj99m0dss2b1q-libx11-1.6.5" "/gnu/store/nw400gfan3mxvjfwvy1q72s1ybmdscsk-fontconfig-2.12.3" "/gnu/store/nx8blr0a248ahbl092h7acyb44lp8f0m-libunistring-0.9.7" "/gnu/store/nykcm5wlw8fjsi28nm01gg1as2znh8nf-gmp-6.1.2" "/gnu/store/nzv180i3z33vnb9krmc73mazhf626384-findutils-4.6.0" "/gnu/store/p5hrrimz30kfp56rah7qn4ymshyg78mq-graphite2-1.3.10" "/gnu/store/pa1ykb4j406bnz86xlf1m8icij8ss3j7-gss-1.0.3" "/gnu/store/paps5r9hcpszhv8hc3n0s2m2i4a2378i-ed-1.14.2" "/gnu/store/pd3nggfvrq50nh419an2ahay69mzrvck-libjpeg-9b" "/gnu/store/plsr1pfxj7n9aamxl9j5f6bv2mwlbkrs-shishi-1.0.2" "/gnu/store/qc4avwlbwyprz6gq9fcqwp043r8063f6-libltdl-2.4.6" "/gnu/store/qh1fri7qppqi8bhyzbiw7h8knmk4cb3q-libltdl-2.4.6" "/gnu/store/qhx7dmnqflkmykg50cm8s243bg1gq8if-libxt-1.1.5" "/gnu/store/qk79ck8gy1zppi4mbw4zw2y4z326wa4i-ld-wrapper-0" "/gnu/store/qzz2mg9500x6srp6ivscb401xinajn9y-gzip-1.8" "/gnu/store/r362f8p4y0xj7sm2jfqysry086lxy91v-zlib-1.2.11" "/gnu/store/r7sf4w2wwrbxbcf04pi9a5gkdhzaya2g-module-import-compiled" "/gnu/store/ryqd73alrlq5djsr18xjjihi735592im-pkg-config-0.29.2" "/gnu/store/scs7siybrjl5bb7sxqaskysf8n1ld718-gmp-6.1.2" "/gnu/store/sfx1wh27i6gsrk21p87rdyikc64v7d51-zlib-1.2.11" "/gnu/store/sngyhm974sbmljknwb1xrni1ggzhpm4d-grep-3.0" "/gnu/store/vais0pchk05ihl7kqj7rq8zf8p4cjdha-libice-1.0.9" "/gnu/store/w150ql3qy0di4dnp4c95hpaw6m1aafwc-pkg-config-0.29.2" "/gnu/store/w31zw2chff41x6q6kpa2wrkgx8agr0an-libidn-1.33" "/gnu/store/w620fzvfhq4qzpclaijd5fdqi2zaxify-curl-7.55.1" "/gnu/store/w7p84w2drhdy19j8dyv715i574lj40s9-readline-7.0" "/gnu/store/w85rbll51r86mclkmp1bxa774b36jy1q-mit-krb5-1.15.1" "/gnu/store/w8kii3hjvmh50yxs52gkdywkq9jc7s19-pixman-0.34.0" "/gnu/store/wdlhrg370gm42s7ggyhnvnb4xrzpls1x-expat-2.2.1" "/gnu/store/wljjs4hyiqalf9a1gyc6xnpcvny7jy8c-gettext-minimal-0.19.8.1" "/gnu/store/x8cwg5bm9y2dk1mrhisr63b5q98mbhhz-guile-bytestructures-20170402.91d042e" "/gnu/store/x9xjvmaxz5jy72yqk7l36r5fd81zldy0-module-import" "/gnu/store/xhwmxry8kkmq7897558qmcmfsx8r1z45-module-import" "/gnu/store/xv8bp0zxbr9iphr38wy0ll4lzkbh9i87-libxau-1.0.8" "/gnu/store/y31sxrygd9ifpxra06bmlx8c52gbydd4-glibc-utf8-locales-2.25" "/gnu/store/yihvhxv3xyyvl1m2cy1lnf1lyi9h76fk-guile-2.2.2" "/gnu/store/yj761534yp7d4nyndr80y3kwd8bqw5wl-openldap-2.4.45" "/gnu/store/ynp950nlaj0xx39gf5a10fq7rnsx1672-libatomic-ops-7.4.4" "/gnu/store/yz1lf55ag0904w9ib0q2kcjpdx33y7wm-attr-2.4.47" "/gnu/store/yzlmd2nlcyjhx0ydbap7x32zjqxc3hz9-libcap-2.25" "/gnu/store/zbywrj6klakskj0sppq56viqh9l56jl0-util-linux-2.30.1" "/gnu/store/zhhdii9mjckb6c2f7abmdsx39khv6dla-tar-1.29" "/gnu/store/zhrajv6qf2hzn9c3g2bb07559hyrz5xp-bash-static-4.4.12" "/tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0" "/proc" "/dev/shm" "/dev/pts")
  7104. result: PASS
  7105.  
  7106. test-name: swapon, ENOENT/EPERM
  7107. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:63
  7108. source:
  7109. + (test-assert
  7110. + "swapon, ENOENT/EPERM"
  7111. + (catch 'system-error
  7112. + (lambda () (swapon "/does-not-exist") #f)
  7113. + (lambda args
  7114. + (memv (system-error-errno args)
  7115. + (list EPERM ENOENT)))))
  7116. actual-value: (1 2)
  7117. result: PASS
  7118.  
  7119. test-name: swapoff, ENOENT/EINVAL/EPERM
  7120. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:71
  7121. source:
  7122. + (test-assert
  7123. + "swapoff, ENOENT/EINVAL/EPERM"
  7124. + (catch 'system-error
  7125. + (lambda () (swapoff "/does-not-exist") #f)
  7126. + (lambda args
  7127. + (memv (system-error-errno args)
  7128. + (list EPERM EINVAL ENOENT)))))
  7129. actual-value: (1 22 2)
  7130. result: PASS
  7131.  
  7132. test-name: mkdtemp!
  7133. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:79
  7134. source:
  7135. + (test-assert
  7136. + "mkdtemp!"
  7137. + (let* ((tmp (or (getenv "TMPDIR") "/tmp"))
  7138. + (dir (mkdtemp!
  7139. + (string-append tmp "/guix-test-XXXXXX"))))
  7140. + (and (file-exists? dir) (begin (rmdir dir) #t))))
  7141. actual-value: #t
  7142. result: PASS
  7143.  
  7144. test-name: statfs, ENOENT
  7145. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:87
  7146. source:
  7147. + (test-equal
  7148. + "statfs, ENOENT"
  7149. + ENOENT
  7150. + (catch 'system-error
  7151. + (lambda () (statfs "/does-not-exist"))
  7152. + (compose system-error-errno list)))
  7153. expected-value: 2
  7154. actual-value: 2
  7155. result: PASS
  7156.  
  7157. test-name: statfs
  7158. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:94
  7159. source:
  7160. + (test-assert
  7161. + "statfs"
  7162. + (let ((fs (statfs "/")))
  7163. + (and (file-system? fs)
  7164. + (> (file-system-block-size fs) 0)
  7165. + (>= (file-system-blocks-available fs) 0)
  7166. + (>= (file-system-blocks-free fs)
  7167. + (file-system-blocks-available fs)))))
  7168. actual-value: #t
  7169. result: PASS
  7170.  
  7171. test-name: clone
  7172. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:112
  7173. source:
  7174. + (test-assert
  7175. + "clone"
  7176. + (match (clone (logior CLONE_NEWUSER SIGCHLD))
  7177. + (0 (primitive-exit 42))
  7178. + (pid (and (not (equal?
  7179. + (readlink (user-namespace pid))
  7180. + (readlink (user-namespace (getpid)))))
  7181. + (match (waitpid pid)
  7182. + ((_ . status) (= 42 (status:exit-val status))))))))
  7183. result: SKIP
  7184.  
  7185. test-name: setns
  7186. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:126
  7187. source:
  7188. + (test-assert
  7189. + "setns"
  7190. + (match (clone (logior CLONE_NEWUSER SIGCHLD))
  7191. + (0 (primitive-exit 0))
  7192. + (clone-pid
  7193. + (match (pipe)
  7194. + ((in . out)
  7195. + (match (primitive-fork)
  7196. + (0
  7197. + (close in)
  7198. + (call-with-input-file
  7199. + (user-namespace clone-pid)
  7200. + (lambda (port) (setns (port->fdes port) 0)))
  7201. + (write 'done out)
  7202. + (close out)
  7203. + (primitive-exit 0))
  7204. + (fork-pid
  7205. + (close out)
  7206. + (read in)
  7207. + (let ((result
  7208. + (and (equal?
  7209. + (readlink
  7210. + (user-namespace clone-pid))
  7211. + (readlink
  7212. + (user-namespace fork-pid))))))
  7213. + (waitpid clone-pid)
  7214. + (waitpid fork-pid)
  7215. + result))))))))
  7216. result: SKIP
  7217.  
  7218. test-name: pivot-root
  7219. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:159
  7220. source:
  7221. + (test-equal
  7222. + "pivot-root"
  7223. + #t
  7224. + (match (pipe)
  7225. + ((in . out)
  7226. + (match (clone (logior CLONE_NEWUSER CLONE_NEWNS SIGCHLD))
  7227. + (0
  7228. + (dynamic-wind
  7229. + (const #t)
  7230. + (lambda ()
  7231. + (close in)
  7232. + (call-with-temporary-directory
  7233. + (lambda (root)
  7234. + (let ((put-old (string-append root "/real-root")))
  7235. + (mount "none" root "tmpfs")
  7236. + (mkdir put-old)
  7237. + (call-with-output-file
  7238. + (string-append root "/test")
  7239. + (lambda (port) (display "testing\n" port)))
  7240. + (pivot-root root put-old)
  7241. + (write (file-exists? "/test") out)
  7242. + (close out)))))
  7243. + (lambda () (primitive-exit 0))))
  7244. + (pid (close out)
  7245. + (let ((result (read in)))
  7246. + (close in)
  7247. + (and (zero? (match (waitpid pid)
  7248. + ((_ . status)
  7249. + (status:exit-val status))))
  7250. + (eq? #t result))))))))
  7251. result: SKIP
  7252.  
  7253. test-name: scandir*, ENOENT
  7254. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:192
  7255. source:
  7256. + (test-equal
  7257. + "scandir*, ENOENT"
  7258. + ENOENT
  7259. + (catch 'system-error
  7260. + (lambda () (scandir* "/does/not/exist"))
  7261. + (lambda args (system-error-errno args))))
  7262. expected-value: 2
  7263. actual-value: 2
  7264. result: PASS
  7265.  
  7266. test-name: scandir*, ASCII file names
  7267. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:200
  7268. source:
  7269. + (test-equal
  7270. + "scandir*, ASCII file names"
  7271. + (scandir
  7272. + (dirname
  7273. + (search-path %load-path "guix/base32.scm"))
  7274. + (const #t)
  7275. + string<?)
  7276. + (match (scandir*
  7277. + (dirname
  7278. + (search-path %load-path "guix/base32.scm")))
  7279. + (((names . properties) ...) names)))
  7280. expected-value: ("." ".." "base16.go" "base16.scm" "base32.go" "base32.scm" "base64.go" "base64.scm" "build" "build-system" "build-system.go" "build-system.scm" "cache.go" "cache.scm" "combinators.go" "combinators.scm" "config.go" "config.scm" "config.scm.in" "cpio.go" "cpio.scm" "cve.go" "cve.scm" "cvs-download.go" "cvs-download.scm" "derivations.go" "derivations.scm" "discovery.go" "discovery.scm" "docker.go" "docker.scm" "download.go" "download.scm" "elf.go" "elf.scm" "ftp-client.go" "ftp-client.scm" "gcrypt.go" "gcrypt.scm" "gexp.go" "gexp.scm" "git-download.go" "git-download.scm" "git.go" "git.scm" "gnu-maintenance.go" "gnu-maintenance.scm" "gnupg.go" "gnupg.scm" "grafts.go" "grafts.scm" "graph.go" "graph.scm" "hash.go" "hash.scm" "hg-download.go" "hg-download.scm" "http-client.go" "http-client.scm" "import" "licenses.go" "licenses.scm" "memoization.go" "memoization.scm" "modules.go" "modules.scm" "monad-repl.go" "monad-repl.scm" "monads.go" "monads.scm" "nar.go" "nar.scm" "packages.go" "packages.scm" "pk-crypto.go" "pk-crypto.scm" "pki.go" "pki.scm" "profiles.go" "profiles.scm" "records.go" "records.scm" "scripts" "scripts.go" "scripts.scm" "search-paths.go" "search-paths.scm" "serialization.go" "serialization.scm" "sets.go" "sets.scm" "ssh.go" "ssh.scm" "store" "store.go" "store.scm" "svn-download.go" "svn-download.scm" "tests" "tests.go" "tests.scm" "ui.go" "ui.scm" "upstream.go" "upstream.scm" "utils.go" "utils.scm" "workers.go" "workers.scm" "zlib.go" "zlib.scm")
  7281. actual-value: ("." ".." "base16.go" "base16.scm" "base32.go" "base32.scm" "base64.go" "base64.scm" "build" "build-system" "build-system.go" "build-system.scm" "cache.go" "cache.scm" "combinators.go" "combinators.scm" "config.go" "config.scm" "config.scm.in" "cpio.go" "cpio.scm" "cve.go" "cve.scm" "cvs-download.go" "cvs-download.scm" "derivations.go" "derivations.scm" "discovery.go" "discovery.scm" "docker.go" "docker.scm" "download.go" "download.scm" "elf.go" "elf.scm" "ftp-client.go" "ftp-client.scm" "gcrypt.go" "gcrypt.scm" "gexp.go" "gexp.scm" "git-download.go" "git-download.scm" "git.go" "git.scm" "gnu-maintenance.go" "gnu-maintenance.scm" "gnupg.go" "gnupg.scm" "grafts.go" "grafts.scm" "graph.go" "graph.scm" "hash.go" "hash.scm" "hg-download.go" "hg-download.scm" "http-client.go" "http-client.scm" "import" "licenses.go" "licenses.scm" "memoization.go" "memoization.scm" "modules.go" "modules.scm" "monad-repl.go" "monad-repl.scm" "monads.go" "monads.scm" "nar.go" "nar.scm" "packages.go" "packages.scm" "pk-crypto.go" "pk-crypto.scm" "pki.go" "pki.scm" "profiles.go" "profiles.scm" "records.go" "records.scm" "scripts" "scripts.go" "scripts.scm" "search-paths.go" "search-paths.scm" "serialization.go" "serialization.scm" "sets.go" "sets.scm" "ssh.go" "ssh.scm" "store" "store.go" "store.scm" "svn-download.go" "svn-download.scm" "tests" "tests.go" "tests.scm" "ui.go" "ui.scm" "upstream.go" "upstream.scm" "utils.go" "utils.scm" "workers.go" "workers.scm" "zlib.go" "zlib.scm")
  7282. result: PASS
  7283.  
  7284. test-name: scandir*, UTF-8 file names
  7285. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:207
  7286. source:
  7287. + (test-equal
  7288. + "scandir*, UTF-8 file names"
  7289. + '("." ".." "α" "λ")
  7290. + (call-with-temporary-directory
  7291. + (lambda (directory)
  7292. + (let ((creat (pointer->procedure
  7293. + int
  7294. + (dynamic-func "creat" (dynamic-link))
  7295. + (list '* int))))
  7296. + (creat (string->pointer
  7297. + (string-append directory "/α")
  7298. + "UTF-8")
  7299. + 420)
  7300. + (creat (string->pointer
  7301. + (string-append directory "/λ")
  7302. + "UTF-8")
  7303. + 420)
  7304. + (let ((locale (setlocale LC_ALL)))
  7305. + (dynamic-wind
  7306. + (lambda () (setlocale LC_ALL "C"))
  7307. + (lambda ()
  7308. + (match (scandir* directory)
  7309. + (((names . properties) ...) names)))
  7310. + (lambda () (setlocale LC_ALL locale))))))))
  7311. expected-value: ("." ".." "α" "λ")
  7312. actual-value: ("." ".." "α" "λ")
  7313. result: PASS
  7314.  
  7315. test-name: scandir*, properties
  7316. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:234
  7317. source:
  7318. + (test-assert
  7319. + "scandir*, properties"
  7320. + (let ((directory
  7321. + (dirname
  7322. + (search-path %load-path "guix/base32.scm"))))
  7323. + (every (lambda (entry name)
  7324. + (match entry
  7325. + ((name2 . properties)
  7326. + (and (string=? name2 name)
  7327. + (let* ((full (string-append directory "/" name))
  7328. + (stat (lstat full))
  7329. + (inode (assoc-ref properties 'inode))
  7330. + (type (assoc-ref properties 'type)))
  7331. + (and (= inode (stat:ino stat))
  7332. + (or (eq? type 'unknown)
  7333. + (eq? type (stat:type stat)))))))))
  7334. + (scandir* directory)
  7335. + (scandir directory (const #t) string<?))))
  7336. actual-value: #t
  7337. result: PASS
  7338.  
  7339. test-name: fcntl-flock wait
  7340. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:251
  7341. source:
  7342. + (test-equal
  7343. + "fcntl-flock wait"
  7344. + 42
  7345. + (let ((file (open-file temp-file "w0b")))
  7346. + (fcntl-flock file 'write-lock)
  7347. + (match (primitive-fork)
  7348. + (0
  7349. + (dynamic-wind
  7350. + (const #t)
  7351. + (lambda ()
  7352. + (let ((file (open-file temp-file "r0b")))
  7353. + (fcntl-flock file 'read-lock)
  7354. + (primitive-exit (read file)))
  7355. + (primitive-exit 1))
  7356. + (lambda () (primitive-exit 2))))
  7357. + (pid (display "hello, world!" file)
  7358. + (force-output file)
  7359. + (sleep 1)
  7360. + (seek file 0 SEEK_SET)
  7361. + (truncate-file file 0)
  7362. + (write 42 file)
  7363. + (force-output file)
  7364. + (fcntl-flock file 'unlock)
  7365. + (match (waitpid pid)
  7366. + ((_ . status)
  7367. + (let ((result (status:exit-val status)))
  7368. + (close-port file)
  7369. + result)))))))
  7370. (primitive-exit (read file)))
  7371. + (primitive-exit 1))
  7372. + (lambda () (primitive-exit 2))))
  7373. + (pid (display "hello, world!" file)
  7374. + (force-output file)
  7375. + (sleep 1)
  7376. + (seek file 0 SEEK_SET)
  7377. + (truncate-file file 0)
  7378. + (write 42 file)
  7379. + (force-output file)
  7380. + (fcntl-flock file 'unlock)
  7381. + (match (waitpid pid)
  7382. + ((_ . status)
  7383. + (let ((result (status:exit-val status)))
  7384. + (close-port file)
  7385. + result)))))))
  7386. expected-value: 42
  7387. actual-value: 42
  7388. result: PASS
  7389.  
  7390. test-name: fcntl-flock non-blocking
  7391. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:290
  7392. source:
  7393. + (test-equal
  7394. + "fcntl-flock non-blocking"
  7395. + EAGAIN
  7396. + (match (pipe)
  7397. + ((input . output)
  7398. + (match (primitive-fork)
  7399. + (0
  7400. + (dynamic-wind
  7401. + (const #t)
  7402. + (lambda ()
  7403. + (close-port output)
  7404. + (read-char input)
  7405. + (let ((file (open-file temp-file "w0")))
  7406. + (catch 'flock-error
  7407. + (lambda ()
  7408. + (fcntl-flock file 'write-lock #:wait? #f))
  7409. + (lambda (key errno)
  7410. + (primitive-exit (pk 'errno errno)))))
  7411. + (primitive-exit -1))
  7412. + (lambda () (primitive-exit -2))))
  7413. + (pid (close-port input)
  7414. + (let ((file (open-file temp-file "w0")))
  7415. + (fcntl-flock file 'write-lock)
  7416. + (write 'green-light output)
  7417. + (force-output output)
  7418. + (match (waitpid pid)
  7419. + ((_ . status)
  7420. + (let ((result (status:exit-val status)))
  7421. + (fcntl-flock file 'unlock)
  7422. + (close-port file)
  7423. + result)))))))))
  7424.  
  7425. ;;; (errno 11)
  7426. (primitive-exit (read file)))
  7427. + (primitive-exit 1))
  7428. + (lambda () (primitive-exit 2))))
  7429. + (pid (display "hello, world!" file)
  7430. + (force-output file)
  7431. + (sleep 1)
  7432. + (seek file 0 SEEK_SET)
  7433. + (truncate-file file 0)
  7434. + (write 42 file)
  7435. + (force-output file)
  7436. + (fcntl-flock file 'unlock)
  7437. + (match (waitpid pid)
  7438. + ((_ . status)
  7439. + (let ((result (status:exit-val status)))
  7440. + (close-port file)
  7441. + result)))))))
  7442. expected-value: 42
  7443. actual-value: 42
  7444. result: PASS
  7445.  
  7446. test-name: fcntl-flock non-blocking
  7447. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:290
  7448. source:
  7449. + (test-equal
  7450. + "fcntl-flock non-blocking"
  7451. + EAGAIN
  7452. + (match (pipe)
  7453. + ((input . output)
  7454. + (match (primitive-fork)
  7455. + (0
  7456. + (dynamic-wind
  7457. + (const #t)
  7458. + (lambda ()
  7459. + (close-port output)
  7460. + (read-char input)
  7461. + (let ((file (open-file temp-file "w0")))
  7462. + (catch 'flock-error
  7463. + (lambda ()
  7464. + (fcntl-flock file 'write-lock #:wait? #f))
  7465. + (lambda (key errno)
  7466. + (primitive-exit (pk 'errno errno)))))
  7467. + (primitive-exit -1))
  7468. + (lambda () (primitive-exit -2))))
  7469. + (pid (close-port input)
  7470. + (let ((file (open-file temp-file "w0")))
  7471. + (fcntl-flock file 'write-lock)
  7472. + (write 'green-light output)
  7473. + (force-output output)
  7474. + (match (waitpid pid)
  7475. + ((_ . status)
  7476. + (let ((result (status:exit-val status)))
  7477. + (fcntl-flock file 'unlock)
  7478. + (close-port file)
  7479. + result)))))))))
  7480. expected-value: 11
  7481. actual-value: 11
  7482. result: PASS
  7483.  
  7484. test-name: set-thread-name
  7485. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:332
  7486. source:
  7487. + (test-equal
  7488. + "set-thread-name"
  7489. + "Syscall Test"
  7490. + (let ((name (thread-name)))
  7491. + (set-thread-name "Syscall Test")
  7492. + (let ((new-name (thread-name)))
  7493. + (set-thread-name name)
  7494. + new-name)))
  7495. expected-value: "Syscall Test"
  7496. actual-value: "Syscall Test"
  7497. result: PASS
  7498.  
  7499. test-name: all-network-interface-names
  7500. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:340
  7501. source:
  7502. + (test-assert
  7503. + "all-network-interface-names"
  7504. + (match (all-network-interface-names)
  7505. + (((? string? names) ..1) (member "lo" names))))
  7506. actual-value: ("lo")
  7507. result: PASS
  7508.  
  7509. test-name: network-interface-names
  7510. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:345
  7511. source:
  7512. + (test-assert
  7513. + "network-interface-names"
  7514. + (match (network-interface-names)
  7515. + (((? string? names) ..1)
  7516. + (lset<=
  7517. + string=?
  7518. + names
  7519. + (all-network-interface-names)))))
  7520. actual-value: #t
  7521. result: PASS
  7522.  
  7523. test-name: network-interface-flags
  7524. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:350
  7525. source:
  7526. + (test-assert
  7527. + "network-interface-flags"
  7528. + (let* ((sock (socket AF_INET SOCK_STREAM 0))
  7529. + (flags (network-interface-flags sock "lo")))
  7530. + (close-port sock)
  7531. + (and (not (zero? (logand flags IFF_LOOPBACK)))
  7532. + (not (zero? (logand flags IFF_UP))))))
  7533. actual-value: #t
  7534. result: PASS
  7535.  
  7536. test-name: loopback-network-interface?
  7537. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:357
  7538. source:
  7539. + (test-equal
  7540. + "loopback-network-interface?"
  7541. + ENODEV
  7542. + (and (loopback-network-interface? "lo")
  7543. + (catch 'system-error
  7544. + (lambda ()
  7545. + (loopback-network-interface? "nonexistent")
  7546. + #f)
  7547. + (lambda args (system-error-errno args)))))
  7548. expected-value: 19
  7549. actual-value: 19
  7550. result: PASS
  7551.  
  7552. test-name: loopback-network-interface-running?
  7553. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:367
  7554. source:
  7555. + (test-equal
  7556. + "loopback-network-interface-running?"
  7557. + ENODEV
  7558. + (and (network-interface-running? "lo")
  7559. + (catch 'system-error
  7560. + (lambda ()
  7561. + (network-interface-running? "nonexistent")
  7562. + #f)
  7563. + (lambda args (system-error-errno args)))))
  7564. expected-value: 19
  7565. actual-value: 19
  7566. result: PASS
  7567.  
  7568. test-name: set-network-interface-flags
  7569. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:378
  7570. source:
  7571. + (test-assert
  7572. + "set-network-interface-flags"
  7573. + (let ((sock (socket AF_INET SOCK_STREAM 0)))
  7574. + (catch 'system-error
  7575. + (lambda ()
  7576. + (set-network-interface-flags sock "lo" IFF_UP))
  7577. + (lambda args
  7578. + (close-port sock)
  7579. + (memv (system-error-errno args)
  7580. + (list EPERM EACCES))))))
  7581. actual-value: (1 13)
  7582. result: PASS
  7583.  
  7584. test-name: network-interface-address lo
  7585. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:388
  7586. source:
  7587. + (test-equal
  7588. + "network-interface-address lo"
  7589. + (make-socket-address
  7590. + AF_INET
  7591. + (inet-pton AF_INET "127.0.0.1")
  7592. + 0)
  7593. + (let* ((sock (socket AF_INET SOCK_STREAM 0))
  7594. + (addr (network-interface-address sock "lo")))
  7595. + (close-port sock)
  7596. + addr))
  7597. expected-value: #(2 2130706433 0)
  7598. actual-value: #(2 2130706433 0)
  7599. result: PASS
  7600.  
  7601. test-name: set-network-interface-address
  7602. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:396
  7603. source:
  7604. + (test-assert
  7605. + "set-network-interface-address"
  7606. + (let ((sock (socket AF_INET SOCK_STREAM 0)))
  7607. + (catch 'system-error
  7608. + (lambda ()
  7609. + (set-network-interface-address
  7610. + sock
  7611. + "nonexistent"
  7612. + (make-socket-address
  7613. + AF_INET
  7614. + (inet-pton AF_INET "127.12.14.15")
  7615. + 0)))
  7616. + (lambda args
  7617. + (close-port sock)
  7618. + (memv (system-error-errno args)
  7619. + (list EPERM EACCES))))))
  7620. actual-value: (1 13)
  7621. result: PASS
  7622.  
  7623. test-name: network-interface-netmask lo
  7624. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:410
  7625. source:
  7626. + (test-equal
  7627. + "network-interface-netmask lo"
  7628. + (make-socket-address
  7629. + AF_INET
  7630. + (inet-pton AF_INET "255.0.0.0")
  7631. + 0)
  7632. + (let* ((sock (socket AF_INET SOCK_STREAM 0))
  7633. + (addr (network-interface-netmask sock "lo")))
  7634. + (close-port sock)
  7635. + addr))
  7636. expected-value: #(2 4278190080 0)
  7637. actual-value: #(2 4278190080 0)
  7638. result: PASS
  7639.  
  7640. test-name: set-network-interface-netmask
  7641. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:418
  7642. source:
  7643. + (test-assert
  7644. + "set-network-interface-netmask"
  7645. + (let ((sock (socket AF_INET SOCK_STREAM 0)))
  7646. + (catch 'system-error
  7647. + (lambda ()
  7648. + (set-network-interface-netmask
  7649. + sock
  7650. + "nonexistent"
  7651. + (make-socket-address
  7652. + AF_INET
  7653. + (inet-pton AF_INET "255.0.0.0")
  7654. + 0)))
  7655. + (lambda args
  7656. + (close-port sock)
  7657. + (memv (system-error-errno args)
  7658. + (list EPERM EACCES))))))
  7659. actual-value: (1 13)
  7660. result: PASS
  7661.  
  7662. test-name: network-interfaces returns one or more interfaces
  7663. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:431
  7664. source:
  7665. + (test-equal
  7666. + "network-interfaces returns one or more interfaces"
  7667. + '(#t #t #t)
  7668. + (match (network-interfaces)
  7669. + ((interfaces ..1)
  7670. + (list (every interface? interfaces)
  7671. + (every string? (map interface-name interfaces))
  7672. + (every (lambda (sockaddr)
  7673. + (or (vector? sockaddr) (not sockaddr)))
  7674. + (map interface-address interfaces))))))
  7675. expected-value: (#t #t #t)
  7676. actual-value: (#t #t #t)
  7677. result: PASS
  7678.  
  7679. test-name: network-interfaces returns "lo"
  7680. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:443
  7681. source:
  7682. + (test-equal
  7683. + "network-interfaces returns \"lo\""
  7684. + (list #t
  7685. + (make-socket-address
  7686. + AF_INET
  7687. + (inet-pton AF_INET "127.0.0.1")
  7688. + 0))
  7689. + (match (filter
  7690. + (lambda (interface)
  7691. + (string=? "lo" (interface-name interface)))
  7692. + (network-interfaces))
  7693. + ((loopbacks ..1)
  7694. + (list (every (lambda (lo)
  7695. + (not (zero? (logand
  7696. + IFF_LOOPBACK
  7697. + (interface-flags lo)))))
  7698. + loopbacks)
  7699. + (match (find (lambda (lo)
  7700. + (= AF_INET
  7701. + (sockaddr:fam (interface-address lo))))
  7702. + loopbacks)
  7703. + (#f #f)
  7704. + (lo (interface-address lo)))))))
  7705. expected-value: (#t #(2 2130706433 0))
  7706. actual-value: (#t #(2 2130706433 0))
  7707. result: PASS
  7708.  
  7709. test-name: add-network-route/gateway
  7710. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:459
  7711. source:
  7712. + (test-assert
  7713. + "add-network-route/gateway"
  7714. + (let ((sock (socket AF_INET SOCK_STREAM 0))
  7715. + (gateway
  7716. + (make-socket-address
  7717. + AF_INET
  7718. + (inet-pton AF_INET "192.168.0.1")
  7719. + 0)))
  7720. + (catch 'system-error
  7721. + (lambda ()
  7722. + (add-network-route/gateway sock gateway))
  7723. + (lambda args
  7724. + (close-port sock)
  7725. + (memv (system-error-errno args)
  7726. + (list EPERM EACCES))))))
  7727. actual-value: (1 13)
  7728. result: PASS
  7729.  
  7730. test-name: delete-network-route
  7731. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:472
  7732. source:
  7733. + (test-assert
  7734. + "delete-network-route"
  7735. + (let ((sock (socket AF_INET SOCK_STREAM 0))
  7736. + (destination
  7737. + (make-socket-address AF_INET INADDR_ANY 0)))
  7738. + (catch 'system-error
  7739. + (lambda ()
  7740. + (delete-network-route sock destination))
  7741. + (lambda args
  7742. + (close-port sock)
  7743. + (memv (system-error-errno args)
  7744. + (list EPERM EACCES))))))
  7745. actual-value: (1 13)
  7746. result: PASS
  7747.  
  7748. test-name: tcgetattr ENOTTY
  7749. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:482
  7750. source:
  7751. + (test-equal
  7752. + "tcgetattr ENOTTY"
  7753. + ENOTTY
  7754. + (catch 'system-error
  7755. + (lambda ()
  7756. + (call-with-input-file
  7757. + "/dev/null"
  7758. + (lambda (port) (tcgetattr (fileno port)))))
  7759. + (compose system-error-errno list)))
  7760. expected-value: 25
  7761. actual-value: 25
  7762. result: PASS
  7763.  
  7764. test-name: tcgetattr
  7765. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:496
  7766. source:
  7767. + (test-assert
  7768. + "tcgetattr"
  7769. + (let ((termios (tcgetattr 0)))
  7770. + (and (termios? termios)
  7771. + (> (termios-input-speed termios) 0)
  7772. + (> (termios-output-speed termios) 0))))
  7773. result: SKIP
  7774.  
  7775. test-name: tcsetattr
  7776. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:502
  7777. source:
  7778. + (test-assert
  7779. + "tcsetattr"
  7780. + (let ((first (tcgetattr 0)))
  7781. + (tcsetattr 0 (tcsetattr-action TCSANOW) first)
  7782. + (equal? first (tcgetattr 0))))
  7783. result: SKIP
  7784.  
  7785. test-name: terminal-window-size ENOTTY
  7786. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:507
  7787. source:
  7788. + (test-assert
  7789. + "terminal-window-size ENOTTY"
  7790. + (call-with-input-file
  7791. + "/dev/null"
  7792. + (lambda (port)
  7793. + (catch 'system-error
  7794. + (lambda () (terminal-window-size port))
  7795. + (lambda args
  7796. + (memv (system-error-errno args)
  7797. + (list ENOTTY EINVAL)))))))
  7798. actual-value: (25 22)
  7799. result: PASS
  7800.  
  7801. test-name: terminal-columns
  7802. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:518
  7803. source:
  7804. + (test-assert
  7805. + "terminal-columns"
  7806. + (> (terminal-columns) 0))
  7807. actual-value: #t
  7808. result: PASS
  7809.  
  7810. test-name: terminal-columns non-file port
  7811. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:521
  7812. source:
  7813. + (test-assert
  7814. + "terminal-columns non-file port"
  7815. + (> (terminal-columns
  7816. + (open-input-string
  7817. + "Join us now, share the software!"))
  7818. + 0))
  7819. actual-value: #t
  7820. result: PASS
  7821.  
  7822. test-name: utmpx-entries
  7823. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:525
  7824. source:
  7825. + (test-assert
  7826. + "utmpx-entries"
  7827. + (match (utmpx-entries)
  7828. + (((? utmpx? entries) ...)
  7829. + (every (lambda (entry)
  7830. + (match (utmpx-user entry)
  7831. + ((? string?)
  7832. + (or (eqv? (login-type BOOT_TIME)
  7833. + (utmpx-login-type entry))
  7834. + (> (utmpx-pid entry) 0)))
  7835. + (#f #t)))
  7836. + entries))))
  7837. actual-value: #t
  7838. result: PASS
  7839.  
  7840. test-name: read-utmpx, EOF
  7841. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:537
  7842. source:
  7843. + (test-assert
  7844. + "read-utmpx, EOF"
  7845. + (eof-object? (read-utmpx (%make-void-port "r"))))
  7846. actual-value: #t
  7847. result: PASS
  7848.  
  7849. test-name: read-utmpx
  7850. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/syscalls.scm:542
  7851. source:
  7852. + (test-assert
  7853. + "read-utmpx"
  7854. + (let ((result
  7855. + (call-with-input-file
  7856. + "/var/run/utmpx"
  7857. + read-utmpx)))
  7858. + (or (utmpx? result) (eof-object? result))))
  7859. result: SKIP
  7860.  
  7861.  
  7862. SKIP: tests/gremlin
  7863. ===================
  7864.  
  7865. test-name: elf-dynamic-info-needed, executable
  7866. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/gremlin.scm:44
  7867. source:
  7868. + (test-assert
  7869. + "elf-dynamic-info-needed, executable"
  7870. + (let* ((elf (call-with-input-file %guile-executable read-elf))
  7871. + (dyninfo (elf-dynamic-info elf)))
  7872. + (or (not dyninfo)
  7873. + (lset<=
  7874. + string=?
  7875. + (list (string-append "libguile-" (effective-version))
  7876. + "libgc"
  7877. + "libunistring"
  7878. + "libffi")
  7879. + (map (lambda (lib)
  7880. + (string-take lib (string-contains lib ".so")))
  7881. + (elf-dynamic-info-needed dyninfo))))))
  7882. result: SKIP
  7883.  
  7884. test-name: expand-origin
  7885. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/gremlin.scm:55
  7886. source:
  7887. + (test-equal
  7888. + "expand-origin"
  7889. + '("OOO/../lib"
  7890. + "OOO"
  7891. + "../OOO/bar/OOO/baz"
  7892. + "ORIGIN/foo")
  7893. + (map (cut expand-origin <> "OOO")
  7894. + '("$ORIGIN/../lib"
  7895. + "${ORIGIN}"
  7896. + "../${ORIGIN}/bar/$ORIGIN/baz"
  7897. + "ORIGIN/foo")))
  7898. expected-value: ("OOO/../lib" "OOO" "../OOO/bar/OOO/baz" "ORIGIN/foo")
  7899. actual-value: ("OOO/../lib" "OOO" "../OOO/bar/OOO/baz" "ORIGIN/foo")
  7900. result: PASS
  7901.  
  7902.  
  7903. SKIP: tests/containers
  7904. ======================
  7905.  
  7906. test-name: call-with-container, exit with 0 when there is no error
  7907. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/containers.scm:42
  7908. source:
  7909. + (test-assert
  7910. + "call-with-container, exit with 0 when there is no error"
  7911. + (zero? (call-with-container
  7912. + '()
  7913. + (const #t)
  7914. + #:namespaces
  7915. + '(user))))
  7916. result: SKIP
  7917.  
  7918. test-name: call-with-container, user namespace
  7919. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/containers.scm:48
  7920. source:
  7921. + (test-assert
  7922. + "call-with-container, user namespace"
  7923. + (zero? (call-with-container
  7924. + '()
  7925. + (lambda ()
  7926. + (assert-exit
  7927. + (and (zero? (getuid)) (zero? (getgid)))))
  7928. + #:namespaces
  7929. + '(user))))
  7930. result: SKIP
  7931.  
  7932. test-name: call-with-container, uts namespace
  7933. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/containers.scm:58
  7934. source:
  7935. + (test-assert
  7936. + "call-with-container, uts namespace"
  7937. + (zero? (call-with-container
  7938. + '()
  7939. + (lambda ()
  7940. + (sethostname "test-container")
  7941. + (primitive-exit 0))
  7942. + #:namespaces
  7943. + '(user uts))))
  7944. result: SKIP
  7945.  
  7946. test-name: call-with-container, pid namespace
  7947. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/containers.scm:70
  7948. source:
  7949. + (test-assert
  7950. + "call-with-container, pid namespace"
  7951. + (zero? (call-with-container
  7952. + '()
  7953. + (lambda ()
  7954. + (match (primitive-fork)
  7955. + (0 (assert-exit (= 2 (getpid))))
  7956. + (pid (primitive-exit
  7957. + (match (waitpid pid)
  7958. + ((_ . status)
  7959. + (status:exit-val status)))))))
  7960. + #:namespaces
  7961. + '(user pid))))
  7962. result: SKIP
  7963.  
  7964. test-name: call-with-container, mnt namespace
  7965. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/containers.scm:87
  7966. source:
  7967. + (test-assert
  7968. + "call-with-container, mnt namespace"
  7969. + (zero? (call-with-container
  7970. + (list (file-system
  7971. + (device "none")
  7972. + (mount-point "/testing")
  7973. + (type "tmpfs")
  7974. + (check? #f)))
  7975. + (lambda ()
  7976. + (assert-exit (file-exists? "/testing")))
  7977. + #:namespaces
  7978. + '(user mnt))))
  7979. result: SKIP
  7980.  
  7981. test-name: call-with-container, mnt namespace, wrong bind mount
  7982. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/containers.scm:100
  7983. source:
  7984. + (test-equal
  7985. + "call-with-container, mnt namespace, wrong bind mount"
  7986. + `(system-error ,ENOENT)
  7987. + (catch 'system-error
  7988. + (lambda ()
  7989. + (call-with-container
  7990. + (list (file-system
  7991. + (device "/does-not-exist")
  7992. + (mount-point "/foo")
  7993. + (type "none")
  7994. + (flags '(bind-mount))
  7995. + (check? #f)))
  7996. + (const #t)
  7997. + #:namespaces
  7998. + '(user mnt)))
  7999. + (lambda args
  8000. + (list 'system-error (system-error-errno args)))))
  8001. result: SKIP
  8002.  
  8003. test-name: call-with-container, all namespaces
  8004. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/containers.scm:118
  8005. source:
  8006. + (test-assert
  8007. + "call-with-container, all namespaces"
  8008. + (zero? (call-with-container
  8009. + '()
  8010. + (lambda () (primitive-exit 0)))))
  8011. result: SKIP
  8012.  
  8013. test-name: container-excursion
  8014. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/containers.scm:126
  8015. source:
  8016. + (test-assert
  8017. + "container-excursion"
  8018. + (call-with-temporary-directory
  8019. + (lambda (root)
  8020. + (match (list (pipe) (pipe))
  8021. + (((start-in . start-out) (end-in . end-out))
  8022. + (define (container)
  8023. + (close end-out)
  8024. + (close start-in)
  8025. + (write 'ready start-out)
  8026. + (close start-out)
  8027. + (read end-in)
  8028. + (close end-in))
  8029. + (define (namespaces pid)
  8030. + (let ((pid (number->string pid)))
  8031. + (map (lambda (ns)
  8032. + (readlink (string-append "/proc/" pid "/ns/" ns)))
  8033. + '("user" "ipc" "uts" "net" "pid" "mnt"))))
  8034. + (let* ((pid (run-container root '() %namespaces 1 container))
  8035. + (container-namespaces (namespaces pid))
  8036. + (result
  8037. + (begin
  8038. + (close start-out)
  8039. + (read start-in)
  8040. + (close start-in)
  8041. + (container-excursion
  8042. + pid
  8043. + (lambda ()
  8044. + (match (primitive-fork)
  8045. + (0
  8046. + (assert-exit
  8047. + (equal?
  8048. + container-namespaces
  8049. + (namespaces (getpid)))))
  8050. + (fork-pid
  8051. + (match (waitpid fork-pid)
  8052. + ((_ . status)
  8053. + (primitive-exit
  8054. + (status:exit-val
  8055. + status)))))))))))
  8056. + (close end-in)
  8057. + (write 'done end-out)
  8058. + (close end-out)
  8059. + (waitpid pid)
  8060. + (zero? result)))))))
  8061. result: SKIP
  8062.  
  8063. test-name: container-excursion, same namespaces
  8064. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/containers.scm:184
  8065. source:
  8066. + (test-equal
  8067. + "container-excursion, same namespaces"
  8068. + 42
  8069. + (container-excursion
  8070. + (getpid)
  8071. + (lambda () (primitive-exit 42))))
  8072. result: SKIP
  8073.  
  8074. test-name: container-excursion*
  8075. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/containers.scm:194
  8076. source:
  8077. + (test-assert
  8078. + "container-excursion*"
  8079. + (call-with-temporary-directory
  8080. + (lambda (root)
  8081. + (define (namespaces pid)
  8082. + (let ((pid (number->string pid)))
  8083. + (map (lambda (ns)
  8084. + (readlink (string-append "/proc/" pid "/ns/" ns)))
  8085. + '("user" "ipc" "uts" "net" "pid" "mnt"))))
  8086. + (let* ((pid (run-container
  8087. + root
  8088. + '()
  8089. + %namespaces
  8090. + 1
  8091. + (lambda () (sleep 100))))
  8092. + (expected (namespaces pid))
  8093. + (result
  8094. + (container-excursion*
  8095. + pid
  8096. + (lambda () (namespaces 1)))))
  8097. + (kill pid SIGKILL)
  8098. + (equal? result expected)))))
  8099. result: SKIP
  8100.  
  8101. test-name: container-excursion*, same namespaces
  8102. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/containers.scm:216
  8103. source:
  8104. + (test-equal
  8105. + "container-excursion*, same namespaces"
  8106. + 42
  8107. + (container-excursion*
  8108. + (getpid)
  8109. + (lambda () (* 6 7))))
  8110. result: SKIP
  8111.  
  8112.  
  8113. SKIP: tests/pack
  8114. ================
  8115.  
  8116. random seed for tests: 1508161192
  8117. test-name: self-contained-tarball
  8118. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/pack.scm:54
  8119. source:
  8120. + (test-assert
  8121. + "self-contained-tarball"
  8122. + (run-with-store
  8123. + %store
  8124. + (mlet* %store-monad
  8125. + ((profile
  8126. + (profile-derivation
  8127. + (packages->manifest (list %bootstrap-guile))
  8128. + #:hooks
  8129. + '()
  8130. + #:locales?
  8131. + #f))
  8132. + (tarball
  8133. + (self-contained-tarball
  8134. + "pack"
  8135. + profile
  8136. + #:symlinks
  8137. + '(("/bin/Guile" -> "bin/guile"))
  8138. + #:compressor
  8139. + %gzip-compressor
  8140. + #:tar
  8141. + %tar-bootstrap))
  8142. + (check (gexp->derivation
  8143. + "check-tarball"
  8144. + (gexp (let ((guile (string-append
  8145. + "."
  8146. + (ungexp profile)
  8147. + "/bin")))
  8148. + (setenv
  8149. + "PATH"
  8150. + (string-append
  8151. + (ungexp %tar-bootstrap)
  8152. + "/bin"))
  8153. + (system* "tar" "xvf" (ungexp tarball))
  8154. + (mkdir (ungexp output))
  8155. + (exit (and (file-exists?
  8156. + (string-append guile "/guile"))
  8157. + (string=?
  8158. + (string-append
  8159. + (ungexp %bootstrap-guile)
  8160. + "/bin")
  8161. + (readlink guile))
  8162. + (string=?
  8163. + (string-append
  8164. + (string-drop guile 1)
  8165. + "/guile")
  8166. + (readlink "bin/Guile")))))))))
  8167. + (built-derivations (list check)))
  8168. + #:guile-for-build
  8169. + (%guile-for-build)))
  8170. result: SKIP
  8171.  
  8172.  
  8173. SKIP: tests/pypi
  8174. ================
  8175.  
  8176. foo-1.0.0/
  8177. foo-1.0.0/requirements.txt
  8178. test-name: guix-package->pypi-name, old URL style
  8179. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/pypi.scm:78
  8180. source:
  8181. + (test-equal
  8182. + "guix-package->pypi-name, old URL style"
  8183. + "psutil"
  8184. + (guix-package->pypi-name
  8185. + (dummy-package
  8186. + "foo"
  8187. + (source
  8188. + (dummy-origin
  8189. + (uri "https://pypi.io/packages/source/p/psutil/psutil-4.3.0.tar.gz"))))))
  8190. expected-value: "psutil"
  8191. actual-value: "psutil"
  8192. result: PASS
  8193.  
  8194. test-name: guix-package->pypi-name, new URL style
  8195. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/pypi.scm:86
  8196. source:
  8197. + (test-equal
  8198. + "guix-package->pypi-name, new URL style"
  8199. + "certbot"
  8200. + (guix-package->pypi-name
  8201. + (dummy-package
  8202. + "foo"
  8203. + (source
  8204. + (dummy-origin
  8205. + (uri "https://pypi.python.org/packages/a2/3b/4756e6a0ceb14e084042a2a65c615d68d25621c6fd446d0fc10d14c4ce7d/certbot-0.8.1.tar.gz"))))))
  8206. expected-value: "certbot"
  8207. actual-value: "certbot"
  8208. result: PASS
  8209.  
  8210. test-name: guix-package->pypi-name, several URLs
  8211. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/pypi.scm:94
  8212. source:
  8213. + (test-equal
  8214. + "guix-package->pypi-name, several URLs"
  8215. + "cram"
  8216. + (guix-package->pypi-name
  8217. + (dummy-package
  8218. + "foo"
  8219. + (source
  8220. + (dummy-origin
  8221. + (uri (list "https://bitheap.org/cram/cram-0.7.tar.gz"
  8222. + (pypi-uri "cram" "0.7"))))))))
  8223. expected-value: "cram"
  8224. actual-value: "cram"
  8225. result: PASS
  8226.  
  8227. test-name: pypi->guix-package
  8228. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/pypi.scm:103
  8229. source:
  8230. + (test-assert
  8231. + "pypi->guix-package"
  8232. + (mock ((guix import utils)
  8233. + url-fetch
  8234. + (lambda (url file-name)
  8235. + (match url
  8236. + ("https://example.com/foo-1.0.0.tar.gz"
  8237. + (begin
  8238. + (mkdir "foo-1.0.0")
  8239. + (with-output-to-file
  8240. + "foo-1.0.0/requirements.txt"
  8241. + (lambda () (display test-requirements)))
  8242. + (system* "tar" "czvf" file-name "foo-1.0.0/")
  8243. + (delete-file-recursively "foo-1.0.0")
  8244. + (set! test-source-hash
  8245. + (call-with-input-file file-name port-sha256))))
  8246. + ("https://example.com/foo-1.0.0-py2.py3-none-any.whl"
  8247. + #f)
  8248. + (_ (error "Unexpected URL: " url)))))
  8249. + (mock ((guix http-client)
  8250. + http-fetch
  8251. + (lambda (url . rest)
  8252. + (match url
  8253. + ("https://pypi.python.org/pypi/foo/json"
  8254. + (values
  8255. + (open-input-string test-json)
  8256. + (string-length test-json)))
  8257. + ("https://example.com/foo-1.0.0-py2.py3-none-any.whl"
  8258. + #f)
  8259. + (_ (error "Unexpected URL: " url)))))
  8260. + (match (pypi->guix-package "foo")
  8261. + (('package
  8262. + ('name "python-foo")
  8263. + ('version "1.0.0")
  8264. + ('source
  8265. + ('origin
  8266. + ('method 'url-fetch)
  8267. + ('uri ('pypi-uri "foo" 'version))
  8268. + ('sha256 ('base32 (? string? hash)))))
  8269. + ('build-system 'python-build-system)
  8270. + ('propagated-inputs
  8271. + ('quasiquote
  8272. + (("python-bar" ('unquote 'python-bar))
  8273. + ("python-baz" ('unquote 'python-baz)))))
  8274. + ('home-page "http://example.com")
  8275. + ('synopsis "summary")
  8276. + ('description "summary")
  8277. + ('license 'license:lgpl2.0))
  8278. + (string=?
  8279. + (bytevector->nix-base32-string test-source-hash)
  8280. + hash))
  8281. + (x (pk 'fail x #f))))))
  8282. actual-value: #t
  8283. result: PASS
  8284.  
  8285. random seed for tests: 1508161236
  8286. test-name: pypi->guix-package, wheels
  8287. location: /tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/tests/pypi.scm:154
  8288. source:
  8289. + (test-assert
  8290. + "pypi->guix-package, wheels"
  8291. + (mock ((guix import utils)
  8292. + url-fetch
  8293. + (lambda (url file-name)
  8294. + (match url
  8295. + ("https://example.com/foo-1.0.0.tar.gz"
  8296. + (begin
  8297. + (mkdir "foo-1.0.0")
  8298. + (with-output-to-file
  8299. + "foo-1.0.0/requirements.txt"
  8300. + (lambda () (display test-requirements)))
  8301. + (system* "tar" "czvf" file-name "foo-1.0.0/")
  8302. + (delete-file-recursively "foo-1.0.0")
  8303. + (set! test-source-hash
  8304. + (call-with-input-file file-name port-sha256))))
  8305. + ("https://example.com/foo-1.0.0-py2.py3-none-any.whl"
  8306. + (begin
  8307. + (mkdir "foo-1.0.0.dist-info")
  8308. + (with-output-to-file
  8309. + "foo-1.0.0.dist-info/metadata.json"
  8310. + (lambda () (display test-metadata)))
  8311. + (let ((zip-file (string-append file-name ".zip")))
  8312. + (system*
  8313. + "zip"
  8314. + zip-file
  8315. + "foo-1.0.0.dist-info/metadata.json")
  8316. + (rename-file zip-file file-name))
  8317. + (delete-file-recursively "foo-1.0.0.dist-info")))
  8318. + (_ (error "Unexpected URL: " url)))))
  8319. + (mock ((guix http-client)
  8320. + http-fetch
  8321. + (lambda (url . rest)
  8322. + (match url
  8323. + ("https://pypi.python.org/pypi/foo/json"
  8324. + (values
  8325. + (open-input-string test-json)
  8326. + (string-length test-json)))
  8327. + ("https://example.com/foo-1.0.0-py2.py3-none-any.whl"
  8328. + #f)
  8329. + (_ (error "Unexpected URL: " url)))))
  8330. + (match (pypi->guix-package "foo")
  8331. + (('package
  8332. + ('name "python-foo")
  8333. + ('version "1.0.0")
  8334. + ('source
  8335. + ('origin
  8336. + ('method 'url-fetch)
  8337. + ('uri ('pypi-uri "foo" 'version))
  8338. + ('sha256 ('base32 (? string? hash)))))
  8339. + ('build-system 'python-build-system)
  8340. + ('propagated-inputs
  8341. + ('quasiquote
  8342. + (("python-bar" ('unquote 'python-bar))
  8343. + ("python-baz" ('unquote 'python-baz)))))
  8344. + ('home-page "http://example.com")
  8345. + ('synopsis "summary")
  8346. + ('description "summary")
  8347. + ('license 'license:lgpl2.0))
  8348. + (string=?
  8349. + (bytevector->nix-base32-string test-source-hash)
  8350. + hash))
  8351. + (x (pk 'fail x #f))))))
  8352. result: SKIP
  8353.  
  8354.  
  8355. SKIP: tests/guix-package-net
  8356. ============================
  8357.  
  8358. + guix package --version
  8359. guix package (GNU Guix)
  8360. Copyright (C) 2017 the Guix authors
  8361. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
  8362. This is free software: you are free to change and redistribute it.
  8363. There is NO WARRANTY, to the extent permitted by law.
  8364. + guile -c '(getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)'
  8365. + exit 77
  8366. ./test-env: line 1: 18837 Terminated "/tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/pre-inst-env" "/tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/guix-daemon" --disable-chroot --substitute-urls="$GUIX_BINARY_SUBSTITUTE_URL"
  8367. SKIP tests/guix-package-net.sh (exit status: 77)
  8368.  
  8369. SKIP: tests/guix-environment-container
  8370. ======================================
  8371.  
  8372. + set -e
  8373. + exit 77
  8374. ./test-env: line 1: 19757 Terminated "/tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/pre-inst-env" "/tmp/guix-build-guix-0.13.0-7.8b920d7.drv-0/source/guix-daemon" --disable-chroot --substitute-urls="$GUIX_BINARY_SUBSTITUTE_URL"
  8375. SKIP tests/guix-environment-container.sh (exit status: 77)
RAW Paste Data