rust-bitcoin-unsafe-fast/bitcoin/tests/serde_opcodes.rs

281 lines
6.0 KiB
Rust
Raw Permalink Normal View History

//! serde regression tests for blockdata::opcodes module.
//!
#![cfg(feature = "serde")]
extern crate bitcoin;
extern crate serde_json;
macro_rules! test_opcodes {
($($op:ident),* $(,)+) => {
$(
let op = bitcoin::blockdata::opcodes::all::$op;
let want = concat!("\"", stringify!($op), "\"");
let got = ::serde_json::to_string(&op).unwrap();
assert_eq!(got, want);
)*
}
}
#[test]
fn serde_regression_opcodes() {
test_opcodes! {
OP_PUSHBYTES_0,
OP_PUSHBYTES_1,
OP_PUSHBYTES_2,
OP_PUSHBYTES_3,
OP_PUSHBYTES_4,
OP_PUSHBYTES_5,
OP_PUSHBYTES_6,
OP_PUSHBYTES_7,
OP_PUSHBYTES_8,
OP_PUSHBYTES_9,
OP_PUSHBYTES_10,
OP_PUSHBYTES_11,
OP_PUSHBYTES_12,
OP_PUSHBYTES_13,
OP_PUSHBYTES_14,
OP_PUSHBYTES_15,
OP_PUSHBYTES_16,
OP_PUSHBYTES_17,
OP_PUSHBYTES_18,
OP_PUSHBYTES_19,
OP_PUSHBYTES_20,
OP_PUSHBYTES_21,
OP_PUSHBYTES_22,
OP_PUSHBYTES_23,
OP_PUSHBYTES_24,
OP_PUSHBYTES_25,
OP_PUSHBYTES_26,
OP_PUSHBYTES_27,
OP_PUSHBYTES_28,
OP_PUSHBYTES_29,
OP_PUSHBYTES_30,
OP_PUSHBYTES_31,
OP_PUSHBYTES_32,
OP_PUSHBYTES_33,
OP_PUSHBYTES_34,
OP_PUSHBYTES_35,
OP_PUSHBYTES_36,
OP_PUSHBYTES_37,
OP_PUSHBYTES_38,
OP_PUSHBYTES_39,
OP_PUSHBYTES_40,
OP_PUSHBYTES_41,
OP_PUSHBYTES_42,
OP_PUSHBYTES_43,
OP_PUSHBYTES_44,
OP_PUSHBYTES_45,
OP_PUSHBYTES_46,
OP_PUSHBYTES_47,
OP_PUSHBYTES_48,
OP_PUSHBYTES_49,
OP_PUSHBYTES_50,
OP_PUSHBYTES_51,
OP_PUSHBYTES_52,
OP_PUSHBYTES_53,
OP_PUSHBYTES_54,
OP_PUSHBYTES_55,
OP_PUSHBYTES_56,
OP_PUSHBYTES_57,
OP_PUSHBYTES_58,
OP_PUSHBYTES_59,
OP_PUSHBYTES_60,
OP_PUSHBYTES_61,
OP_PUSHBYTES_62,
OP_PUSHBYTES_63,
OP_PUSHBYTES_64,
OP_PUSHBYTES_65,
OP_PUSHBYTES_66,
OP_PUSHBYTES_67,
OP_PUSHBYTES_68,
OP_PUSHBYTES_69,
OP_PUSHBYTES_70,
OP_PUSHBYTES_71,
OP_PUSHBYTES_72,
OP_PUSHBYTES_73,
OP_PUSHBYTES_74,
OP_PUSHBYTES_75,
OP_PUSHDATA1,
OP_PUSHDATA2,
OP_PUSHDATA4,
OP_PUSHNUM_NEG1,
OP_RESERVED,
OP_PUSHNUM_1,
OP_PUSHNUM_2,
OP_PUSHNUM_3,
OP_PUSHNUM_4,
OP_PUSHNUM_5,
OP_PUSHNUM_6,
OP_PUSHNUM_7,
OP_PUSHNUM_8,
OP_PUSHNUM_9,
OP_PUSHNUM_10,
OP_PUSHNUM_11,
OP_PUSHNUM_12,
OP_PUSHNUM_13,
OP_PUSHNUM_14,
OP_PUSHNUM_15,
OP_PUSHNUM_16,
OP_NOP,
OP_VER,
OP_IF,
OP_NOTIF,
OP_VERIF,
OP_VERNOTIF,
OP_ELSE,
OP_ENDIF,
OP_VERIFY,
OP_RETURN,
OP_TOALTSTACK,
OP_FROMALTSTACK,
OP_2DROP,
OP_2DUP,
OP_3DUP,
OP_2OVER,
OP_2ROT,
OP_2SWAP,
OP_IFDUP,
OP_DEPTH,
OP_DROP,
OP_DUP,
OP_NIP,
OP_OVER,
OP_PICK,
OP_ROLL,
OP_ROT,
OP_SWAP,
OP_TUCK,
OP_CAT,
OP_SUBSTR,
OP_LEFT,
OP_RIGHT,
OP_SIZE,
OP_INVERT,
OP_AND,
OP_OR,
OP_XOR,
OP_EQUAL,
OP_EQUALVERIFY,
OP_RESERVED1,
OP_RESERVED2,
OP_1ADD,
OP_1SUB,
OP_2MUL,
OP_2DIV,
OP_NEGATE,
OP_ABS,
OP_NOT,
OP_0NOTEQUAL,
OP_ADD,
OP_SUB,
OP_MUL,
OP_DIV,
OP_MOD,
OP_LSHIFT,
OP_RSHIFT,
OP_BOOLAND,
OP_BOOLOR,
OP_NUMEQUAL,
OP_NUMEQUALVERIFY,
OP_NUMNOTEQUAL,
OP_LESSTHAN ,
OP_GREATERTHAN ,
OP_LESSTHANOREQUAL ,
OP_GREATERTHANOREQUAL ,
OP_MIN,
OP_MAX,
OP_WITHIN,
OP_RIPEMD160,
OP_SHA1,
OP_SHA256,
OP_HASH160,
OP_HASH256,
OP_CODESEPARATOR,
OP_CHECKSIG,
OP_CHECKSIGVERIFY,
OP_CHECKMULTISIG,
OP_CHECKMULTISIGVERIFY,
OP_NOP1,
OP_CLTV,
OP_CSV,
OP_NOP4,
OP_NOP5,
OP_NOP6,
OP_NOP7,
OP_NOP8,
OP_NOP9,
OP_NOP10,
OP_CHECKSIGADD,
OP_RETURN_187,
OP_RETURN_188,
OP_RETURN_189,
OP_RETURN_190,
OP_RETURN_191,
OP_RETURN_192,
OP_RETURN_193,
OP_RETURN_194,
OP_RETURN_195,
OP_RETURN_196,
OP_RETURN_197,
OP_RETURN_198,
OP_RETURN_199,
OP_RETURN_200,
OP_RETURN_201,
OP_RETURN_202,
OP_RETURN_203,
OP_RETURN_204,
OP_RETURN_205,
OP_RETURN_206,
OP_RETURN_207,
OP_RETURN_208,
OP_RETURN_209,
OP_RETURN_210,
OP_RETURN_211,
OP_RETURN_212,
OP_RETURN_213,
OP_RETURN_214,
OP_RETURN_215,
OP_RETURN_216,
OP_RETURN_217,
OP_RETURN_218,
OP_RETURN_219,
OP_RETURN_220,
OP_RETURN_221,
OP_RETURN_222,
OP_RETURN_223,
OP_RETURN_224,
OP_RETURN_225,
OP_RETURN_226,
OP_RETURN_227,
OP_RETURN_228,
OP_RETURN_229,
OP_RETURN_230,
OP_RETURN_231,
OP_RETURN_232,
OP_RETURN_233,
OP_RETURN_234,
OP_RETURN_235,
OP_RETURN_236,
OP_RETURN_237,
OP_RETURN_238,
OP_RETURN_239,
OP_RETURN_240,
OP_RETURN_241,
OP_RETURN_242,
OP_RETURN_243,
OP_RETURN_244,
OP_RETURN_245,
OP_RETURN_246,
OP_RETURN_247,
OP_RETURN_248,
OP_RETURN_249,
OP_RETURN_250,
OP_RETURN_251,
OP_RETURN_252,
OP_RETURN_253,
OP_RETURN_254,
OP_INVALIDOPCODE,
}
}