Bitcoin Core 28.99.0
P2P Digital Currency
Classes | Functions | Variables
script_tests.cpp File Reference
#include <test/data/script_tests.json.h>
#include <test/data/bip341_wallet_vectors.json.h>
#include <common/system.h>
#include <core_io.h>
#include <key.h>
#include <rpc/util.h>
#include <script/script.h>
#include <script/script_error.h>
#include <script/sigcache.h>
#include <script/sign.h>
#include <script/signingprovider.h>
#include <script/solver.h>
#include <streams.h>
#include <test/util/json.h>
#include <test/util/random.h>
#include <test/util/setup_common.h>
#include <test/util/transaction_utils.h>
#include <util/fs.h>
#include <util/strencodings.h>
#include <cstdint>
#include <fstream>
#include <string>
#include <vector>
#include <boost/test/unit_test.hpp>
#include <univalue.h>
Include dependency graph for script_tests.cpp:

Go to the source code of this file.

Classes

struct  ScriptErrorDesc
 
struct  ScriptTest
 

Functions

unsigned int ParseScriptFlags (std::string strFlags)
 
std::string FormatScriptFlags (unsigned int flags)
 
static std::string FormatScriptError (ScriptError_t err)
 
static ScriptError_t ParseScriptError (const std::string &name)
 
static void NegateSignatureS (std::vector< unsigned char > &vchSig)
 
 BOOST_AUTO_TEST_CASE (script_build)
 
 BOOST_AUTO_TEST_CASE (script_json_test)
 
 BOOST_AUTO_TEST_CASE (script_PushData)
 
 BOOST_AUTO_TEST_CASE (script_cltv_truncated)
 
static CScript sign_multisig (const CScript &scriptPubKey, const std::vector< CKey > &keys, const CTransaction &transaction)
 
static CScript sign_multisig (const CScript &scriptPubKey, const CKey &key, const CTransaction &transaction)
 
 BOOST_AUTO_TEST_CASE (script_CHECKMULTISIG12)
 
 BOOST_AUTO_TEST_CASE (script_CHECKMULTISIG23)
 
SignatureData CombineSignatures (const CTxOut &txout, const CMutableTransaction &tx, const SignatureData &scriptSig1, const SignatureData &scriptSig2)
 
 BOOST_AUTO_TEST_CASE (script_combineSigs)
 
 BOOST_AUTO_TEST_CASE (sign_invalid_miniscript)
 Reproduction of an exception incorrectly raised when parsing a public key inside a TapMiniscript. More...
 
 BOOST_AUTO_TEST_CASE (sign_paytoanchor)
 
 BOOST_AUTO_TEST_CASE (script_standard_push)
 
 BOOST_AUTO_TEST_CASE (script_IsPushOnly_on_invalid_scripts)
 
 BOOST_AUTO_TEST_CASE (script_GetScriptAsm)
 
template<typename T >
CScript ToScript (const T &byte_container)
 
static CScript ScriptFromHex (const std::string &str)
 
 BOOST_AUTO_TEST_CASE (script_byte_array_u8_vector_equivalence)
 
 BOOST_AUTO_TEST_CASE (script_FindAndDelete)
 
 BOOST_AUTO_TEST_CASE (script_HasValidOps)
 
static CMutableTransaction TxFromHex (const std::string &str)
 
static std::vector< CTxOutTxOutsFromJSON (const UniValue &univalue)
 
static CScriptWitness ScriptWitnessFromJSON (const UniValue &univalue)
 
static std::vector< unsigned int > AllConsensusFlags ()
 
static void AssetTest (const UniValue &test, SignatureCache &signature_cache)
 
 BOOST_AUTO_TEST_CASE (script_assets_test)
 
 BOOST_AUTO_TEST_CASE (bip341_keypath_test_vectors)
 
 BOOST_AUTO_TEST_CASE (compute_tapbranch)
 
 BOOST_AUTO_TEST_CASE (compute_tapleaf)
 

Variables

static const unsigned int gFlags = SCRIPT_VERIFY_P2SH | SCRIPT_VERIFY_STRICTENC
 
static ScriptErrorDesc script_errors []
 
static const std::vector< unsigned int > ALL_CONSENSUS_FLAGS = AllConsensusFlags()
 Precomputed list of all valid combinations of consensus-relevant script validation flags. More...
 

Function Documentation

◆ AllConsensusFlags()

static std::vector< unsigned int > AllConsensusFlags ( )
static

Definition at line 1530 of file script_tests.cpp.

◆ AssetTest()

static void AssetTest ( const UniValue test,
SignatureCache signature_cache 
)
static

Definition at line 1558 of file script_tests.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ BOOST_AUTO_TEST_CASE() [1/19]

BOOST_AUTO_TEST_CASE ( bip341_keypath_test_vectors  )

Definition at line 1635 of file script_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [2/19]

BOOST_AUTO_TEST_CASE ( compute_tapbranch  )

Definition at line 1709 of file script_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [3/19]

BOOST_AUTO_TEST_CASE ( compute_tapleaf  )

Definition at line 1717 of file script_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [4/19]

BOOST_AUTO_TEST_CASE ( script_assets_test  )

Definition at line 1605 of file script_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [5/19]

BOOST_AUTO_TEST_CASE ( script_build  )

Definition at line 431 of file script_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [6/19]

BOOST_AUTO_TEST_CASE ( script_byte_array_u8_vector_equivalence  )

Definition at line 1370 of file script_tests.cpp.

◆ BOOST_AUTO_TEST_CASE() [7/19]

BOOST_AUTO_TEST_CASE ( script_CHECKMULTISIG12  )

Definition at line 1035 of file script_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [8/19]

BOOST_AUTO_TEST_CASE ( script_CHECKMULTISIG23  )

Definition at line 1064 of file script_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [9/19]

BOOST_AUTO_TEST_CASE ( script_cltv_truncated  )

Definition at line 993 of file script_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [10/19]

BOOST_AUTO_TEST_CASE ( script_combineSigs  )

Definition at line 1142 of file script_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [11/19]

BOOST_AUTO_TEST_CASE ( script_FindAndDelete  )

Definition at line 1377 of file script_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [12/19]

BOOST_AUTO_TEST_CASE ( script_GetScriptAsm  )

Definition at line 1328 of file script_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [13/19]

BOOST_AUTO_TEST_CASE ( script_HasValidOps  )

Definition at line 1486 of file script_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [14/19]

BOOST_AUTO_TEST_CASE ( script_IsPushOnly_on_invalid_scripts  )

Definition at line 1317 of file script_tests.cpp.

◆ BOOST_AUTO_TEST_CASE() [15/19]

BOOST_AUTO_TEST_CASE ( script_json_test  )

Definition at line 908 of file script_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [16/19]

BOOST_AUTO_TEST_CASE ( script_PushData  )

Definition at line 951 of file script_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [17/19]

BOOST_AUTO_TEST_CASE ( script_standard_push  )

Definition at line 1296 of file script_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [18/19]

BOOST_AUTO_TEST_CASE ( sign_invalid_miniscript  )

Reproduction of an exception incorrectly raised when parsing a public key inside a TapMiniscript.

Definition at line 1263 of file script_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [19/19]

BOOST_AUTO_TEST_CASE ( sign_paytoanchor  )

Definition at line 1284 of file script_tests.cpp.

Here is the call graph for this function:

◆ CombineSignatures()

SignatureData CombineSignatures ( const CTxOut txout,
const CMutableTransaction tx,
const SignatureData scriptSig1,
const SignatureData scriptSig2 
)

Definition at line 1133 of file script_tests.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FormatScriptError()

static std::string FormatScriptError ( ScriptError_t  err)
static

Definition at line 97 of file script_tests.cpp.

Here is the caller graph for this function:

◆ FormatScriptFlags()

std::string FormatScriptFlags ( unsigned int  flags)

Definition at line 100 of file transaction_tests.cpp.

◆ NegateSignatureS()

static void NegateSignatureS ( std::vector< unsigned char > &  vchSig)
static

Definition at line 141 of file script_tests.cpp.

Here is the call graph for this function:

◆ ParseScriptError()

static ScriptError_t ParseScriptError ( const std::string &  name)
static

Definition at line 106 of file script_tests.cpp.

Here is the caller graph for this function:

◆ ParseScriptFlags()

unsigned int ParseScriptFlags ( std::string  strFlags)

Definition at line 75 of file transaction_tests.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ScriptFromHex()

static CScript ScriptFromHex ( const std::string &  str)
static

Definition at line 1365 of file script_tests.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ScriptWitnessFromJSON()

static CScriptWitness ScriptWitnessFromJSON ( const UniValue univalue)
static

Definition at line 1519 of file script_tests.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sign_multisig() [1/2]

static CScript sign_multisig ( const CScript scriptPubKey,
const CKey key,
const CTransaction transaction 
)
static

Definition at line 1028 of file script_tests.cpp.

Here is the call graph for this function:

◆ sign_multisig() [2/2]

static CScript sign_multisig ( const CScript scriptPubKey,
const std::vector< CKey > &  keys,
const CTransaction transaction 
)
static

Definition at line 1004 of file script_tests.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ToScript()

template<typename T >
CScript ToScript ( const T &  byte_container)

Definition at line 1359 of file script_tests.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TxFromHex()

static CMutableTransaction TxFromHex ( const std::string &  str)
static

Definition at line 1500 of file script_tests.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TxOutsFromJSON()

static std::vector< CTxOut > TxOutsFromJSON ( const UniValue univalue)
static

Definition at line 1507 of file script_tests.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ ALL_CONSENSUS_FLAGS

const std::vector<unsigned int> ALL_CONSENSUS_FLAGS = AllConsensusFlags()
static

Precomputed list of all valid combinations of consensus-relevant script validation flags.

Definition at line 1556 of file script_tests.cpp.

◆ gFlags

const unsigned int gFlags = SCRIPT_VERIFY_P2SH | SCRIPT_VERIFY_STRICTENC
static

Definition at line 40 of file script_tests.cpp.

◆ script_errors

ScriptErrorDesc script_errors[]
static

Definition at line 51 of file script_tests.cpp.