refactor(fx): TestVM.Clk pointer + nil-safe Logger guard

- secp256k1fx.TestVM.Clk: change from value to pointer so test cases
  can share a single clock without copy. Clock() returns vm.Clk
  directly (nil if unset; tests that exercise time set it).
- secp256k1fx.Fx.Initialize: guard against nil Logger before IsZero()
  check. Previously panicked when VM had no logger; now noops cleanly.
- nftfx, propertyfx, secp256k1fx tests + benches: construct TestVM
  with explicit &mockable.Clock{}.
This commit is contained in:
Hanzo AI
2026-06-04 17:06:07 -07:00
parent 2b50feeb2b
commit 3dc2964ed2
6 changed files with 115 additions and 58 deletions
+33 -16
View File
@@ -13,6 +13,7 @@ import (
"github.com/luxfi/crypto/secp256k1"
"github.com/luxfi/ids"
log "github.com/luxfi/log"
"github.com/luxfi/timer/mockable"
"github.com/luxfi/utxo/secp256k1fx"
)
@@ -38,7 +39,8 @@ var (
func TestFxInitialize(t *testing.T) {
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
fx := Fx{}
require.NoError(t, fx.Initialize(&vm))
@@ -54,7 +56,8 @@ func TestFxVerifyMintOperation(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -89,7 +92,8 @@ func TestFxVerifyMintOperationWrongTx(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -122,7 +126,8 @@ func TestFxVerifyMintOperationWrongNumberUTXOs(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -152,7 +157,8 @@ func TestFxVerifyMintOperationWrongCredential(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -183,7 +189,8 @@ func TestFxVerifyMintOperationInvalidUTXO(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -213,7 +220,8 @@ func TestFxVerifyMintOperationFailingVerification(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -250,7 +258,8 @@ func TestFxVerifyMintOperationInvalidGroupID(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -287,7 +296,8 @@ func TestFxVerifyTransferOperation(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -336,7 +346,8 @@ func TestFxVerifyTransferOperationWrongUTXO(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -376,7 +387,8 @@ func TestFxVerifyTransferOperationFailedVerify(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -423,7 +435,8 @@ func TestFxVerifyTransferOperationWrongGroupID(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -473,7 +486,8 @@ func TestFxVerifyTransferOperationWrongBytes(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -523,7 +537,8 @@ func TestFxVerifyTransferOperationTooSoon(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -574,7 +589,8 @@ func TestFxVerifyOperationUnknownOperation(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -609,7 +625,8 @@ func TestFxVerifyTransfer(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
+27 -13
View File
@@ -13,6 +13,7 @@ import (
"github.com/luxfi/crypto/secp256k1"
"github.com/luxfi/ids"
log "github.com/luxfi/log"
"github.com/luxfi/timer/mockable"
"github.com/luxfi/utxo/secp256k1fx"
)
@@ -38,7 +39,8 @@ var (
func TestFxInitialize(t *testing.T) {
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
fx := Fx{}
require.NoError(t, fx.Initialize(&vm))
@@ -54,7 +56,8 @@ func TestFxVerifyMintOperation(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -95,7 +98,8 @@ func TestFxVerifyMintOperationWrongTx(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -128,7 +132,8 @@ func TestFxVerifyMintOperationWrongNumberUTXOs(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -158,7 +163,8 @@ func TestFxVerifyMintOperationWrongCredential(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -189,7 +195,8 @@ func TestFxVerifyMintOperationInvalidUTXO(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -219,7 +226,8 @@ func TestFxVerifyMintOperationFailingVerification(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -256,7 +264,8 @@ func TestFxVerifyMintOperationInvalidGroupID(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -292,7 +301,8 @@ func TestFxVerifyTransferOperation(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -325,7 +335,8 @@ func TestFxVerifyTransferOperationWrongUTXO(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -353,7 +364,8 @@ func TestFxVerifyTransferOperationFailedVerify(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -387,7 +399,8 @@ func TestFxVerifyOperationUnknownOperation(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -418,7 +431,8 @@ func TestFxVerifyTransfer(t *testing.T) {
require := require.New(t)
vm := secp256k1fx.TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
+1 -2
View File
@@ -51,8 +51,7 @@ func (fx *Fx) Initialize(vmIntf interface{}) error {
return err
}
log := fx.VM.Logger()
if !log.IsZero() {
if log := fx.VM.Logger(); log != nil && !log.IsZero() {
log.Debug("initializing secp256k1 fx")
}
+3 -1
View File
@@ -11,6 +11,7 @@ import (
"github.com/luxfi/crypto/secp256k1"
"github.com/luxfi/ids"
log "github.com/luxfi/log"
"github.com/luxfi/timer/mockable"
)
// BenchmarkSecp256k1Verify is the BASELINE for CostPerSignature calibration.
@@ -28,7 +29,8 @@ func BenchmarkSecp256k1Verify(b *testing.B) {
}
vm := &TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
vm.Clk.Set(time.Date(2026, time.January, 1, 0, 0, 0, 0, time.UTC))
+49 -24
View File
@@ -13,6 +13,7 @@ import (
"github.com/luxfi/crypto/secp256k1"
"github.com/luxfi/ids"
log "github.com/luxfi/log"
"github.com/luxfi/timer/mockable"
)
var (
@@ -52,7 +53,8 @@ func init() {
func TestFxInitialize(t *testing.T) {
vm := TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
fx := Fx{}
require.NoError(t, fx.Initialize(&vm))
@@ -67,7 +69,8 @@ func TestFxInitializeInvalid(t *testing.T) {
func TestFxVerifyTransfer(t *testing.T) {
require := require.New(t)
vm := TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -104,7 +107,8 @@ func TestFxVerifyTransfer(t *testing.T) {
func TestFxVerifyTransferNilTx(t *testing.T) {
require := require.New(t)
vm := TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -139,7 +143,8 @@ func TestFxVerifyTransferNilTx(t *testing.T) {
func TestFxVerifyTransferNilOutput(t *testing.T) {
require := require.New(t)
vm := TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -165,7 +170,8 @@ func TestFxVerifyTransferNilOutput(t *testing.T) {
func TestFxVerifyTransferNilInput(t *testing.T) {
require := require.New(t)
vm := TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -195,7 +201,8 @@ func TestFxVerifyTransferNilInput(t *testing.T) {
func TestFxVerifyTransferNilCredential(t *testing.T) {
require := require.New(t)
vm := TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -226,7 +233,8 @@ func TestFxVerifyTransferNilCredential(t *testing.T) {
func TestFxVerifyTransferInvalidOutput(t *testing.T) {
require := require.New(t)
vm := TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -262,7 +270,8 @@ func TestFxVerifyTransferInvalidOutput(t *testing.T) {
func TestFxVerifyTransferWrongAmounts(t *testing.T) {
require := require.New(t)
vm := TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -298,7 +307,8 @@ func TestFxVerifyTransferWrongAmounts(t *testing.T) {
func TestFxVerifyTransferTimelocked(t *testing.T) {
require := require.New(t)
vm := TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -334,7 +344,8 @@ func TestFxVerifyTransferTimelocked(t *testing.T) {
func TestFxVerifyTransferTooManySigners(t *testing.T) {
require := require.New(t)
vm := TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -371,7 +382,8 @@ func TestFxVerifyTransferTooManySigners(t *testing.T) {
func TestFxVerifyTransferTooFewSigners(t *testing.T) {
require := require.New(t)
vm := TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -405,7 +417,8 @@ func TestFxVerifyTransferTooFewSigners(t *testing.T) {
func TestFxVerifyTransferMismatchedSigners(t *testing.T) {
require := require.New(t)
vm := TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -442,7 +455,8 @@ func TestFxVerifyTransferMismatchedSigners(t *testing.T) {
func TestFxVerifyTransferInvalidSignature(t *testing.T) {
require := require.New(t)
vm := TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -481,7 +495,8 @@ func TestFxVerifyTransferInvalidSignature(t *testing.T) {
func TestFxVerifyTransferWrongSigner(t *testing.T) {
require := require.New(t)
vm := TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -520,7 +535,8 @@ func TestFxVerifyTransferWrongSigner(t *testing.T) {
func TestFxVerifyTransferSigIndexOOB(t *testing.T) {
require := require.New(t)
vm := TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -559,7 +575,8 @@ func TestFxVerifyTransferSigIndexOOB(t *testing.T) {
func TestFxVerifyOperation(t *testing.T) {
require := require.New(t)
vm := TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -610,7 +627,8 @@ func TestFxVerifyOperation(t *testing.T) {
func TestFxVerifyOperationUnknownTx(t *testing.T) {
require := require.New(t)
vm := TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -661,7 +679,8 @@ func TestFxVerifyOperationUnknownTx(t *testing.T) {
func TestFxVerifyOperationUnknownOperation(t *testing.T) {
require := require.New(t)
vm := TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -690,7 +709,8 @@ func TestFxVerifyOperationUnknownOperation(t *testing.T) {
func TestFxVerifyOperationUnknownCredential(t *testing.T) {
require := require.New(t)
vm := TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -737,7 +757,8 @@ func TestFxVerifyOperationUnknownCredential(t *testing.T) {
func TestFxVerifyOperationWrongNumberOfUTXOs(t *testing.T) {
require := require.New(t)
vm := TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -789,7 +810,8 @@ func TestFxVerifyOperationWrongNumberOfUTXOs(t *testing.T) {
func TestFxVerifyOperationUnknownUTXOType(t *testing.T) {
require := require.New(t)
vm := TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -833,7 +855,8 @@ func TestFxVerifyOperationUnknownUTXOType(t *testing.T) {
func TestFxVerifyOperationInvalidOperationVerify(t *testing.T) {
require := require.New(t)
vm := TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -882,7 +905,8 @@ func TestFxVerifyOperationInvalidOperationVerify(t *testing.T) {
func TestFxVerifyOperationMismatchedMintOutputs(t *testing.T) {
require := require.New(t)
vm := TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
date := time.Date(2019, time.January, 19, 16, 25, 17, 3, time.UTC)
vm.Clk.Set(date)
@@ -928,7 +952,8 @@ func TestFxVerifyOperationMismatchedMintOutputs(t *testing.T) {
func TestVerifyPermission(t *testing.T) {
vm := TestVM{
Log: log.NewNoOpLogger(),
Clk: &mockable.Clock{},
Log: log.NewNoOpLogger(),
}
fx := Fx{}
require.NoError(t, fx.Initialize(&vm))
+2 -2
View File
@@ -19,12 +19,12 @@ var _ VM = (*TestVM)(nil)
// TestVM is a minimal implementation of a VM
type TestVM struct {
Clk mockable.Clock
Clk *mockable.Clock
Log log.Logger
}
func (vm *TestVM) Clock() *mockable.Clock {
return &vm.Clk
return vm.Clk
}
func (vm *TestVM) Logger() log.Logger {