[
    {
        "id": "e3b1",
        "name": "Failed action batch releases a bound action reference",
        "category": [
            "actions",
            "gact"
        ],
        "plugins": {
           "requires": "nsPlugin"
        },
        "setup": [
            "$TC qdisc add dev $DEV1 ingress",
            "$TC actions add action pass index 1",
            "$TC filter add dev $DEV1 protocol all ingress prio 1 matchall action gact index 1"
        ],
        "cmdUnderTest": "$TC actions replace action pass index 1 action goto chain 42 index 3",
        "expExitCode": "255",
        "verifyCmd": "$TC actions ls action gact",
        "matchPattern": "total acts 1.*index 1 ref 2 bind 1",
        "matchCount": "1",
        "teardown": [
            "$TC qdisc del dev $DEV1 ingress"
        ]
    },
    {
        "id": "e3b2",
        "name": "Failed action batch releases entries after a bound action",
        "category": [
            "actions",
            "gact"
        ],
        "plugins": {
           "requires": "nsPlugin"
        },
        "setup": [
            "$TC qdisc add dev $DEV1 ingress",
            "$TC actions add action pass index 1",
            "$TC filter add dev $DEV1 protocol all ingress prio 1 matchall action gact index 1",
            [
                "$TC actions replace action pass index 1 action pass index 2 action goto chain 42 index 3",
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action pass index 2",
        "expExitCode": "0",
        "verifyCmd": "$TC actions ls action gact",
        "matchPattern": "total acts 2.*index 1 ref 2 bind 1.*index 2 ref 1 bind 0",
        "matchCount": "1",
        "teardown": [
            "$TC qdisc del dev $DEV1 ingress"
        ]
    },
    {
        "id": "e3b3",
        "name": "Failed action batch releases repeated references to a bound action",
        "category": [
            "actions",
            "gact"
        ],
        "plugins": {
           "requires": "nsPlugin"
        },
        "setup": [
            "$TC qdisc add dev $DEV1 ingress",
            "$TC actions add action pass index 1",
            "$TC filter add dev $DEV1 protocol all ingress prio 1 matchall action gact index 1"
        ],
        "cmdUnderTest": "$TC actions replace action pass index 1 action pass index 1 action goto chain 42 index 3",
        "expExitCode": "255",
        "verifyCmd": "$TC actions ls action gact",
        "matchPattern": "total acts 1.*index 1 ref 2 bind 1",
        "matchCount": "1",
        "teardown": [
            "$TC qdisc del dev $DEV1 ingress"
        ]
    }
]
