<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gocryptfs/tests, branch master</title>
<subtitle>Mirror of gocryptfs source code on Github</subtitle>
<id>http://nuetzlich.net/cgit/gocryptfs/atom?h=master</id>
<link rel='self' href='http://nuetzlich.net/cgit/gocryptfs/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/'/>
<updated>2026-07-22T19:57:57+00:00</updated>
<entry>
<title>fusefrontend: expose birth time via statx</title>
<updated>2026-07-22T19:57:57+00:00</updated>
<author>
<name>Marios Titas</name>
</author>
<published>2026-07-21T17:27:38+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=790362e8f8eabd1bdf75f98328daf94cf623c600'/>
<id>urn:sha1:790362e8f8eabd1bdf75f98328daf94cf623c600</id>
<content type='text'>
Forward the backing filesystem's STATX_BTIME on Linux while preserving
existing metadata translations and fallback behavior.

On Linux 6.6 and newer, this allows statx consumers such as GNU stat
to report birth time when the backing filesystem provides it. Older
kernels and backing filesystems without birth-time support retain the
existing behavior. No on-disk format change or migration is required.

Reverse mode remains unchanged.

Fixes #868.

Related context: #732
</content>
</entry>
<entry>
<title>sharedstorage: fix darwin &amp; freebsd build failure</title>
<updated>2026-07-16T20:07:54+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2026-07-16T19:16:45+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=b8e34b1efcb27c772f0d2ca12f5ecdd6b7fc817b'/>
<id>urn:sha1:b8e34b1efcb27c772f0d2ca12f5ecdd6b7fc817b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tests/cluster: fix possible fd exhaustion</title>
<updated>2026-07-16T20:07:54+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2026-07-16T19:01:01+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=67e9abeb2830c517cbcbbd93de184055b2d4227b'/>
<id>urn:sha1:67e9abeb2830c517cbcbbd93de184055b2d4227b</id>
<content type='text'>
...and one typo.
</content>
</entry>
<entry>
<title>tests/cluster: enable TestClusterConcurrentRW per default</title>
<updated>2026-07-16T20:07:54+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2023-06-09T12:35:04+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=df552e13cd388d79c3e95ba78fb13ff927a0429b'/>
<id>urn:sha1:df552e13cd388d79c3e95ba78fb13ff927a0429b</id>
<content type='text'>
Add the -sharedstorage flag to the mounts and make it more
severe by adjusting the I/O and file sizes to arbitrary unaligned
values.

It passes *most of the time*.

If it fails, it's like this, and the reason is that there is no
fcntl locks in the READ path yet.

gocryptfs/tests/cluster$ go test -run TestClusterConcurrentRW -v
=== RUN   TestClusterConcurrentRW
doRead 2895433: corrupt block #0: cipher: message authentication failed
doRead 2895433: corrupt block #0: cipher: message authentication failed
doRead 2895433: corrupt block #0: cipher: message authentication failed
    cluster_test.go:98: readThread iteration 9165: ReadAt failed: read /var/tmp/gocryptfs-test-parent-1026/3021427391/TestClusterConcurrentRW.366469887.mnt1/foo: input/output error
 --- FAIL: TestClusterConcurrentRW (0.40s)
FAIL
exit status 1
FAIL	github.com/rfjakob/gocryptfs/v2/tests/cluster	0.406s
</content>
</entry>
<entry>
<title>tests/cluster: add TestPoCTornWriteLocked</title>
<updated>2026-07-16T20:07:54+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2023-06-09T12:33:07+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=e5e594829c7f9bb71cd80ef055c212e09658457a'/>
<id>urn:sha1:e5e594829c7f9bb71cd80ef055c212e09658457a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tests/cluster: note that ext4 provides no atomicity</title>
<updated>2026-07-16T20:07:54+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2023-06-09T05:50:11+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=e16b80c01d655b1fce26183ca3ca72059472d494'/>
<id>urn:sha1:e16b80c01d655b1fce26183ca3ca72059472d494</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tests/cluster: add TestPoCTornWrite</title>
<updated>2026-07-16T20:07:54+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2023-06-08T13:50:05+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=2ca5ba9e69bccce27638fa0525cc5f66837dc047'/>
<id>urn:sha1:2ca5ba9e69bccce27638fa0525cc5f66837dc047</id>
<content type='text'>
Scary. But explains why TestConcurrentCreate fails.

gocryptfs/tests/cluster$ go test -run TestPoCTornWrite
 --- FAIL: TestPoCTornWrite (0.00s)
    poc_test.go:210: iteration 214: inconsistent block: d6d6d6d6d6d6d6d6d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1
FAIL
</content>
</entry>
<entry>
<title>tests/cluster: add TestOpenTruncate</title>
<updated>2026-07-16T20:07:54+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2023-06-05T11:43:23+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=e15e6dbeed885dd47fb89fc9a1f369916473d1de'/>
<id>urn:sha1:e15e6dbeed885dd47fb89fc9a1f369916473d1de</id>
<content type='text'>
This fails right now:

1 jakob@brikett:~/go/src/github.com/rfjakob/gocryptfs/tests/cluster$ go test -run TestOpenTruncate -v
=== RUN   TestOpenTruncate
    cluster_test.go:235: POSIX compliance issue: non-exlusive create failed with err=file exists
doWrite 2898550: corrupt header: ParseHeader: header is all-zero. Header hexdump: 000000000000000000000000000000000000
    cluster_test.go:240: iteration 1: WriteAt: write /var/tmp/gocryptfs-test-parent-1026/1896094179/TestOpenTruncate.4202105280.mnt2/foo: input/output error
 --- FAIL: TestOpenTruncate (0.10s)
FAIL
exit status 1
FAIL	github.com/rfjakob/gocryptfs/v2/tests/cluster	0.099s
1 jakob@brikett:~/go/src/github.com/rfjakob/gocryptfs/tests/cluster$ go test -run TestOpenTruncate -v
=== RUN   TestOpenTruncate
    cluster_test.go:235: POSIX compliance issue: non-exlusive create failed with err=file exists
doRead 2898565: corrupt block #0: cipher: message authentication failed
ino2898565 fh9: RMW read failed: errno=5
    cluster_test.go:240: iteration 8: WriteAt: write /var/tmp/gocryptfs-test-parent-1026/652691834/TestOpenTruncate.281532388.mnt1/foo: input/output error
 --- FAIL: TestOpenTruncate (0.09s)
FAIL
exit status 1
FAIL	github.com/rfjakob/gocryptfs/v2/tests/cluster	0.095s
</content>
</entry>
<entry>
<title>tests/cluster: add TestPoCHeaderCreation</title>
<updated>2026-07-16T20:07:54+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2023-06-05T11:28:11+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=390e5f7c361529cf9c9aa9535b6e23342aabe564'/>
<id>urn:sha1:390e5f7c361529cf9c9aa9535b6e23342aabe564</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tests/cluster: add TestConcurrentCreate</title>
<updated>2026-07-16T20:07:54+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2023-06-05T10:42:33+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=13c6e523d6cd36b8f05a6db36dab62cbc5a081f6'/>
<id>urn:sha1:13c6e523d6cd36b8f05a6db36dab62cbc5a081f6</id>
<content type='text'>
This exercises the byte-range locks we just added.
</content>
</entry>
</feed>
