private static Stream<Arguments> immediateContainsOpcodeArguments() {
    return Stream.of(
            // 0xe0 byte which could be interpreted a RJUMP, but it's not because it's in PUSH data
            "60e0001000",
            "6100e0001000",
            // 0xe1 byte which could be interpreted a RJUMPI, but it's not because it's in PUSH data
            "60e1001000",
            "6100e1001000",
            // 0xe2 byte which could be interpreted a RJUMPV, but it's not because it's in PUSH data
            "60e201000000",
            "6100e201000000",
            // 0x60 byte which could be interpreted as PUSH, but it's not because it's in RJUMP data
            // offset = -160
            "5b".repeat(160) + "e0ff6000",
            // 0x60 byte which could be interpreted as PUSH, but it's not because it's in RJUMPI
            // data
            // offset = -160
            "5b".repeat(160) + "e1ff6000",
            // 0x60 byte which could be interpreted as PUSH, but it's not because it's in RJUMPV
            // data
            // offset = -160
            "5b".repeat(160) + "e200ff6000")
        .map(Arguments::arguments);
  }
These tests focus on code-only validations, which are checked within the code runs themselves.
Tests that depend on the EOF container (such as CallF into other sections) are in EOFLayoutTest.
evm/src/test/java/org/hyperledger/besu/evm/code/CodeV1Test.java