Paul Garlick <pgarl...@tourbillion-technology.com> skribis: > test-name: pivot-root > location: /data/paul/sourceCode/guix/tests/syscalls.scm:154 > source: > + (test-equal > + "pivot-root" > + #t > + (match (pipe) > + ((in . out) > + (match (clone (logior CLONE_NEWUSER CLONE_NEWNS SIGCHLD)) > + (0 > + (dynamic-wind > + (const #t) > + (lambda () > + (close in) > + (call-with-temporary-directory > + (lambda (root) > + (let ((put-old (string-append root "/real-root"))) > + (mount "none" root "tmpfs") > + (mkdir put-old) > + (call-with-output-file > + (string-append root "/test") > + (lambda (port) (display "testing\n" port))) > + (pivot-root root put-old) > + (write (file-exists? "/test") out) > + (close out))))) > + (lambda () (primitive-exit 0)))) > + (pid (close out) > + (let ((result (read in))) > + (close in) > + (and (zero? (match (waitpid pid) > + ((_ . status) > + (status:exit-val status)))) > + (eq? #t result)))))))) > expected-value: #t > actual-value: #f > result: FAIL
Hmm, not sure why this is failing. Most likely (file-exists? "/test") returns #f. Could you change “(eq? #t result)” to “result”, rerun the test, and send syscalls.log? Thanks, Ludo’.