mirror of
https://github.com/zrepl/zrepl.git
synced 2025-04-14 22:49:04 +02:00
platformtests: fix skipping encryption-only tests on systems that don't support encryption
(Or split the test into two tests of which one is skipped depending on encryption support)
This commit is contained in:
parent
b1f8cdf385
commit
0c189265e8
@ -29,7 +29,8 @@ var Cases = []Case{BatchDestroy,
|
|||||||
ReplicationStepCompletedLostBehavior__GuaranteeResumability,
|
ReplicationStepCompletedLostBehavior__GuaranteeResumability,
|
||||||
ResumableRecvAndTokenHandling,
|
ResumableRecvAndTokenHandling,
|
||||||
ResumeTokenParsing,
|
ResumeTokenParsing,
|
||||||
SendArgsValidationEncryptedSendOfUnencryptedDatasetForbidden,
|
SendArgsValidationEncryptedSendOfUnencryptedDatasetForbidden__EncryptionSupported_false,
|
||||||
|
SendArgsValidationEncryptedSendOfUnencryptedDatasetForbidden__EncryptionSupported_true,
|
||||||
SendArgsValidationResumeTokenDifferentFilesystemForbidden,
|
SendArgsValidationResumeTokenDifferentFilesystemForbidden,
|
||||||
SendArgsValidationResumeTokenEncryptionMismatchForbidden,
|
SendArgsValidationResumeTokenEncryptionMismatchForbidden,
|
||||||
UndestroyableSnapshotParsing,
|
UndestroyableSnapshotParsing,
|
||||||
|
@ -10,6 +10,14 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func ReceiveForceIntoEncryptedErr(ctx *platformtest.Context) {
|
func ReceiveForceIntoEncryptedErr(ctx *platformtest.Context) {
|
||||||
|
|
||||||
|
supported, err := zfs.EncryptionCLISupported(ctx)
|
||||||
|
require.NoError(ctx, err, "encryption feature test failed")
|
||||||
|
if !supported {
|
||||||
|
ctx.SkipNow()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
platformtest.Run(ctx, platformtest.PanicErr, ctx.RootDataset, `
|
platformtest.Run(ctx, platformtest.PanicErr, ctx.RootDataset, `
|
||||||
DESTROYROOT
|
DESTROYROOT
|
||||||
CREATEROOT
|
CREATEROOT
|
||||||
|
@ -9,11 +9,22 @@ import (
|
|||||||
"github.com/zrepl/zrepl/zfs"
|
"github.com/zrepl/zrepl/zfs"
|
||||||
)
|
)
|
||||||
|
|
||||||
func SendArgsValidationEncryptedSendOfUnencryptedDatasetForbidden(ctx *platformtest.Context) {
|
func SendArgsValidationEncryptedSendOfUnencryptedDatasetForbidden__EncryptionSupported_true(ctx *platformtest.Context) {
|
||||||
|
sendArgsValidationEncryptedSendOfUnencryptedDatasetForbidden_impl(ctx, true)
|
||||||
|
}
|
||||||
|
|
||||||
|
func SendArgsValidationEncryptedSendOfUnencryptedDatasetForbidden__EncryptionSupported_false(ctx *platformtest.Context) {
|
||||||
|
sendArgsValidationEncryptedSendOfUnencryptedDatasetForbidden_impl(ctx, false)
|
||||||
|
}
|
||||||
|
|
||||||
|
func sendArgsValidationEncryptedSendOfUnencryptedDatasetForbidden_impl(ctx *platformtest.Context, testForEncryptionSupported bool) {
|
||||||
|
|
||||||
supported, err := zfs.EncryptionCLISupported(ctx)
|
supported, err := zfs.EncryptionCLISupported(ctx)
|
||||||
check(err)
|
check(err)
|
||||||
expectNotSupportedErr := !supported
|
if supported != testForEncryptionSupported {
|
||||||
|
ctx.SkipNow()
|
||||||
|
}
|
||||||
|
noEncryptionCLISupport := !supported
|
||||||
|
|
||||||
platformtest.Run(ctx, platformtest.PanicErr, ctx.RootDataset, `
|
platformtest.Run(ctx, platformtest.PanicErr, ctx.RootDataset, `
|
||||||
DESTROYROOT
|
DESTROYROOT
|
||||||
@ -44,9 +55,11 @@ func SendArgsValidationEncryptedSendOfUnencryptedDatasetForbidden(ctx *platformt
|
|||||||
// fallthrough
|
// fallthrough
|
||||||
}
|
}
|
||||||
|
|
||||||
if expectNotSupportedErr {
|
if noEncryptionCLISupport {
|
||||||
require.Error(ctx, err)
|
require.Error(ctx, err)
|
||||||
require.Equal(ctx, zfs.ErrEncryptedSendNotSupported, err)
|
saverr, ok := err.(*zfs.ZFSSendArgsValidationError)
|
||||||
|
require.True(ctx, ok, "%T", err)
|
||||||
|
require.Equal(ctx, zfs.ZFSSendArgsEncryptedSendRequestedButFSUnencrypted, saverr.What)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
require.Error(ctx, err)
|
require.Error(ctx, err)
|
||||||
@ -138,13 +151,7 @@ func SendArgsValidationResumeTokenEncryptionMismatchForbidden(ctx *platformtest.
|
|||||||
}
|
}
|
||||||
|
|
||||||
func SendArgsValidationResumeTokenDifferentFilesystemForbidden(ctx *platformtest.Context) {
|
func SendArgsValidationResumeTokenDifferentFilesystemForbidden(ctx *platformtest.Context) {
|
||||||
|
supported, err := zfs.ResumeSendSupported(ctx)
|
||||||
supported, err := zfs.EncryptionCLISupported(ctx)
|
|
||||||
check(err)
|
|
||||||
if !supported {
|
|
||||||
ctx.SkipNow()
|
|
||||||
}
|
|
||||||
supported, err = zfs.ResumeSendSupported(ctx)
|
|
||||||
check(err)
|
check(err)
|
||||||
if !supported {
|
if !supported {
|
||||||
ctx.SkipNow()
|
ctx.SkipNow()
|
||||||
|
Loading…
Reference in New Issue
Block a user