Add unittests for multiple ELSEs in a row

IF ELSE ELSE ENDIF is a valid construct; execution or non-execution
inverts on each ELSE encountered.
This commit is contained in:
Peter Todd
2013-07-23 05:12:38 -04:00
parent 0a740650a5
commit aff83e9c02
2 changed files with 30 additions and 1 deletions

View File

@@ -13,7 +13,9 @@
["0","NOP"],
["1", "IF VER ELSE 1 ENDIF", "VER non-functional"],
["0", "IF VERIF ELSE 1 ENDIF", "VERIF illegal everywhere"],
["0", "IF VERNOTIF ELSE 1 ENDIF", "VERNOT illegal everywhere"],
["0", "IF ELSE 1 ELSE VERIF ENDIF", "VERIF illegal everywhere"],
["0", "IF VERNOTIF ELSE 1 ENDIF", "VERNOTIF illegal everywhere"],
["0", "IF ELSE 1 ELSE VERNOTIF ENDIF", "VERNOTIF illegal everywhere"],
["1 IF", "1 ENDIF", "IF/ENDIF can't span scriptSig/scriptPubKey"],
["1 IF 0 ENDIF", "1 ENDIF"],
@@ -36,6 +38,18 @@
["1 1", "NOTIF IF 1 ELSE 0 ENDIF ELSE IF 0 ELSE 1 ENDIF ENDIF"],
["0 0", "NOTIF IF 1 ELSE 0 ENDIF ELSE IF 0 ELSE 1 ENDIF ENDIF"],
["1", "IF RETURN ELSE ELSE 1 ENDIF", "Multiple ELSEs"],
["1", "IF 1 ELSE ELSE RETURN ENDIF"],
["1", "ENDIF", "Malformed IF/ELSE/ENDIF sequence"],
["1", "ELSE ENDIF"],
["1", "ENDIF ELSE"],
["1", "ENDIF ELSE IF"],
["1", "IF ELSE ENDIF ELSE"],
["1", "IF ELSE ENDIF ELSE ENDIF"],
["1", "IF ENDIF ENDIF"],
["1", "IF ELSE ELSE ENDIF ENDIF"],
["1", "RETURN"],
["1", "DUP IF RETURN ENDIF"],