84 lines
2.0 KiB
Go
84 lines
2.0 KiB
Go
/*
|
|
Copyright IBM Corp. 2016 All Rights Reserved.
|
|
|
|
SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
package blkstorage
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/hyperledger/fabric/common/ledger/testutil"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestWrongBlockNumber(t *testing.T) {
|
|
env := newTestEnv(t, NewConf(t.TempDir(), 0))
|
|
defer env.Cleanup()
|
|
|
|
provider := env.provider
|
|
store, _ := provider.Open("testLedger")
|
|
defer store.Shutdown()
|
|
|
|
blocks := testutil.ConstructTestBlocks(t, 5)
|
|
for i := 0; i < 3; i++ {
|
|
err := store.AddBlock(blocks[i])
|
|
require.NoError(t, err)
|
|
}
|
|
err := store.AddBlock(blocks[4])
|
|
require.Error(t, err, "Error shold have been thrown when adding block number 4 while block number 3 is expected")
|
|
}
|
|
|
|
func TestTxIDIndexErrorPropagations(t *testing.T) {
|
|
env := newTestEnv(t, NewConf(t.TempDir(), 0))
|
|
defer env.Cleanup()
|
|
|
|
provider := env.provider
|
|
store, _ := provider.Open("testLedger")
|
|
defer store.Shutdown()
|
|
blocks := testutil.ConstructTestBlocks(t, 3)
|
|
for i := 0; i < 3; i++ {
|
|
err := store.AddBlock(blocks[i])
|
|
require.NoError(t, err)
|
|
}
|
|
|
|
index := store.fileMgr.db
|
|
|
|
txIDBasedFunctions := []func() error{
|
|
func() error {
|
|
_, err := store.RetrieveTxByID("junkTxID")
|
|
return err
|
|
},
|
|
func() error {
|
|
_, err := store.RetrieveBlockByTxID("junkTxID")
|
|
return err
|
|
},
|
|
func() error {
|
|
_, _, err := store.RetrieveTxValidationCodeByTxID("junkTxID")
|
|
return err
|
|
},
|
|
}
|
|
|
|
index.Put(
|
|
constructTxIDKey("junkTxID", 5, 4),
|
|
[]byte("junkValue"),
|
|
false,
|
|
)
|
|
expectedErrMsg := fmt.Sprintf("unexpected error while unmarshalling bytes [%#v] into TxIDIndexValProto:", []byte("junkValue"))
|
|
for _, f := range txIDBasedFunctions {
|
|
err := f()
|
|
require.Error(t, err)
|
|
require.Contains(t, err.Error(), expectedErrMsg)
|
|
}
|
|
|
|
env.provider.leveldbProvider.Close()
|
|
expectedErrMsg = "error while trying to retrieve transaction info by TXID [junkTxID]:"
|
|
for _, f := range txIDBasedFunctions {
|
|
err := f()
|
|
require.Error(t, err)
|
|
require.Contains(t, err.Error(), expectedErrMsg)
|
|
}
|
|
}
|