Skip to content

Commit

Permalink
cephfs: Add a separate test file for fallocate with mode 0
Browse files Browse the repository at this point in the history
There are backports created for fallocate API changes[1] that got merged
recently. Considering the time taken for these backports to get in to
release branches and finally as a released version we create a separate
test file to have more fine grained control over various pre-release CI
jobs with the help of corresponding build tags.

Modification of build tags should go hand-in-hand with the version
detection logic used in file_test.go once a backport is available in
released version.

[1] ceph/ceph#59725

Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
  • Loading branch information
anoopcs9 authored and mergify[bot] committed Nov 12, 2024
1 parent 8f3beb6 commit ab45bcd
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 0 deletions.
3 changes: 3 additions & 0 deletions cephfs/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ var (
ErrNotConnected = getError(-C.ENOTCONN)
// ErrNotExist indicates a non-specific missing resource.
ErrNotExist = getError(-C.ENOENT)
// ErrOpNotSupported is returned in general for operations that are not
// supported.
ErrOpNotSupported = getError(-C.EOPNOTSUPP)

// Private errors:

Expand Down
30 changes: 30 additions & 0 deletions cephfs/file_fallocate_mode_zero_unsupported_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
//go:build main

package cephfs

import (
"os"
"testing"

"github.com/stretchr/testify/assert"
)

// TestFallocateModeZeroUnsupported and this test file exists merely to track
// the backports for https://tracker.ceph.com/issues/68026. Once they are
// available with release versions this can probably vanish.
func TestFallocateModeZeroUnsupported(t *testing.T) {
mount := fsConnect(t)
defer fsDisconnect(t, mount)
fname := "file1.txt"
f, err := mount.Open(fname, os.O_RDWR|os.O_CREATE, 0644)
assert.NoError(t, err)
assert.NotNil(t, f)
defer func() {
assert.NoError(t, f.Close())
assert.NoError(t, mount.Unlink(fname))
}()

err = f.Fallocate(FallocNoFlag, 0, 10)
assert.Error(t, err)
assert.Equal(t, ErrOpNotSupported, err)
}

0 comments on commit ab45bcd

Please sign in to comment.