On Fri, 11 Aug 2017 22:28:22 +0300 Oleg Pykhalov wrote: > Hello, > > > Hello Christopher, > > > > Thank you for supporting this patch! > > > > Christopher Baines writes: > > > >> On Thu, 10 Aug 2017 08:18:20 +0100 > >> Christopher Baines wrote: > >> > >>> I've attached the beginnings of a system test for this. I haven't > >>> got as far as actually testing the service directly yet, but I'm > >>> going to try testing it, both when running as root, and when not > >>> running as root. > >>> > >>> A VM start script can be created from this rsync.scm file, by > >>> running: guix system vm gnu/tests/rsync.scm > >>> > >>> Also, the test itself can be run by doing: > >>> make check-system TESTS=rsync > >> > >> I've now got around to actually testing the service. I've attached > >> a patch which creates two system tests. One which tests the > >> service with the default port, and one with a higher port (I > >> randomly picked 2000). > >> > >> The default port test currently passes, but the higher port one > >> currently fails as the rsync service can't create the PID file. > >> > >> One option to fix this would be to create a /var/run/rsync > >> directory which is owned by the rsyncd user, and then create the > >> PID file as /var/run/rsync/pid. > > > > I'll check it later, if you'll not be faster than me. :-) > > > >> Just let me know if you have any questions? > > … > > > > I successfully passed you previous patch test, but the new patch one > > with two “ports” fails. > > Trying to understand what is going on. Working on your latest test > patch. > > This is what I currently have. It's not differ from your patch except > commented test below. guix/gnu/tests/rsync.scm > https://paste.pound-python.org/raw/ZyfPIvOWAbPd7blPRXf7/ > > I fully commented > (test-equal "Test file correctly received from share" …). > > (test-assert "Test file copied to share" > … > (zero? ; ERROR HERE > (system* "rsync" "/tmp/input" "localhost::files/"))) > > Bottom of test log: > --8<---------------cut here---------------start------------->8--- > rsync: mkstemp ".input.Y6OhRW" (in files) failed: Permission denied > (13) rsync error: some files/attrs were not transferred (see previous > errors) (code 23) at main.c(1178) [sender=3.1.2] QEMU runs as PID 5 > connected to QEMU's monitor > read QEMU monitor prompt > connected to guest REPL > %%%% Starting test rsync (Writing full log to "rsync.log") > marionette is ready > /gnu/store/bm3kvdwh8q3spvhxbmpmcjwz3fng8z5f-rsync-test-builder:1: > FAIL Test file copied to share # of expected passes 2 > # of unexpected failures 1 > note: keeping build directory `/tmp/guix-build-rsync-test.drv-9' > builder for > `/gnu/store/1hv9c616m9xkgi549hgbn1y2vr8mnzfr-rsync-test.drv' failed > with exit code 1 @ > build-failed /gnu/store/1hv9c616m9xkgi549hgbn1y2vr8mnzfr-rsync-test.drv > - 1 builder for > `/gnu/store/1hv9c616m9xkgi549hgbn1y2vr8mnzfr-rsync-test.drv' failed > with exit code 1 TOTAL: 1 > FAIL: /gnu/store/s0rwmr3iha48jbw2b9xkzcqqsamdl21q-rsync-test make: > *** [Makefile:5217: check-system] Error 1 --8<---------------cut > here---------------end--------------->8--- With the change to add the uid to the rsync configuration file, the rsync-with-default-port passes for me. What test are you running here? > Also, I have (is related?) error on top of test log. > --8<---------------cut here---------------start------------->8--- > natsu@magnolia ~/src/guix$ ./pre-inst-env make check-system > TESTS=rsync-with-default-port Compiling Scheme modules... > warning: failed to load '(gnu tests admin)': > ERROR: In procedure allocate-struct: Wrong type argument in position > 2: 8 --8<---------------cut here---------------end--------------->8--- I think I may have seen this error too, no idea what it relates to though.