github.com/palcoin-project/palcd@v1.0.0/blockchain/scriptval_test.go (about)

     1  // Copyright (c) 2013-2017 The btcsuite developers
     2  // Use of this source code is governed by an ISC
     3  // license that can be found in the LICENSE file.
     4  
     5  package blockchain
     6  
     7  import (
     8  	"fmt"
     9  	"testing"
    10  
    11  	"github.com/palcoin-project/palcd/txscript"
    12  )
    13  
    14  // TestCheckBlockScripts ensures that validating the all of the scripts in a
    15  // known-good block doesn't return an error.
    16  func TestCheckBlockScripts(t *testing.T) {
    17  	testBlockNum := 277647
    18  	blockDataFile := fmt.Sprintf("%d.dat.bz2", testBlockNum)
    19  	blocks, err := loadBlocks(blockDataFile)
    20  	if err != nil {
    21  		t.Errorf("Error loading file: %v\n", err)
    22  		return
    23  	}
    24  	if len(blocks) > 1 {
    25  		t.Errorf("The test block file must only have one block in it")
    26  		return
    27  	}
    28  	if len(blocks) == 0 {
    29  		t.Errorf("The test block file may not be empty")
    30  		return
    31  	}
    32  
    33  	storeDataFile := fmt.Sprintf("%d.utxostore.bz2", testBlockNum)
    34  	view, err := loadUtxoView(storeDataFile)
    35  	if err != nil {
    36  		t.Errorf("Error loading txstore: %v\n", err)
    37  		return
    38  	}
    39  
    40  	scriptFlags := txscript.ScriptBip16
    41  	err = checkBlockScripts(blocks[0], view, scriptFlags, nil, nil)
    42  	if err != nil {
    43  		t.Errorf("Transaction script validation failed: %v\n", err)
    44  		return
    45  	}
    46  }