# The census of syscalls_static_O2: what `aa; pdd` renders for each function `afl` lists.
# Regenerate with `scripts/census.py golden` when `afl` moves, then bless.

NAME=afl
FILE=tests/fixtures/syscalls_static_O2
CMDS=afl
EXPECT=<<EOF
0x00401000    1     12 fcn.00401000
0x00401010    2     19 fcn.00401010
0x00401030    1     26 fcn.00401030
0x00401050    1     10 fcn.00401050
0x00401060    1     44 entry0
EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401000
FILE=tests/fixtures/syscalls_static_O2
CMDS=aa; pdd @ 0x00401000
EXPECT=<<EOF
uint64_t fcn_401000(void)
{
    /* r2dec proof: 2 constructs are marked below; 7 source obligations: 0 rendered, 4 elided, 0 refused, 3 residual; 1 statements rendered */
    {
        r2sleigh_residual_void(1); /* r2dec gap: UserOperation(syscall) at 0x401000:15 covering 1 op (render::values) */
        return r2sleigh_residual_u64(2);
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401010
FILE=tests/fixtures/syscalls_static_O2
CMDS=aa; pdd @ 0x00401010
EXPECT=<<EOF
uint64_t fcn_401010(void)
{
    /* r2dec proof: 2 constructs are marked below; 8 source obligations: 1 rendered, 4 elided, 0 refused, 3 residual; 1 statements rendered */
    {
        {
            r2sleigh_residual_void(1); /* r2dec gap: UserOperation(syscall) at 0x401019:15 covering 1 op (render::values) */
            return r2sleigh_residual_u64(2);
        }
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401030
FILE=tests/fixtures/syscalls_static_O2
CMDS=aa; pdd @ 0x00401030
EXPECT=<<EOF
uint64_t fcn_401030(void)
{
    /* r2dec proof: 2 constructs are marked below; 7 source obligations: 0 rendered, 4 elided, 0 refused, 3 residual; 1 statements rendered */
    {
        r2sleigh_residual_void(1); /* r2dec gap: UserOperation(syscall) at 0x401030:22 covering 1 op (render::values) */
        return r2sleigh_residual_u64(2);
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401050
FILE=tests/fixtures/syscalls_static_O2
CMDS=aa; pdd @ 0x00401050
EXPECT=<<EOF
uint64_t fcn_401050(void)
{
    /* r2dec proof: no individual construct is marked; 7 source obligations: 3 rendered, 4 elided, 0 refused; 1 statements rendered */
    {
        return 0x50f;
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401060
FILE=tests/fixtures/syscalls_static_O2
CMDS=aa; pdd @ 0x00401060
EXPECT=<<EOF
uint64_t entry0(void)
{
    uint64_t fcn_401030(void);
    uint64_t fcn_401050(void);

    /* r2dec proof: 6 constructs are marked below; 38 source obligations: 6 rendered, 17 elided, 0 refused, 15 residual; 3 statements rendered */
    {
        r2sleigh_residual_void(1); /* r2dec gap: CallNotRendered at 0x401060:6 covering 1 op (render::values): call to fcn_401000: its arity is only at least 0 (a floor), and this call writes 1 */
        r2sleigh_residual_void(2); /* r2dec gap: EffectNotRendered at 0x401060:11 covering 1 op (render::values) */
        r2sleigh_residual_void(3); /* r2dec gap: CallNotRendered at 0x401060:24 covering 1 op (render::values): call to fcn_401010: its arity is only at least 0 (a floor), and this call writes 1 */
        r2sleigh_residual_void(4); /* r2dec gap: EffectNotRendered at 0x401060:29 covering 1 op (render::values) */
        fcn_401030();
        fcn_401050();
        r2sleigh_residual_void(5); /* r2dec gap: UserOperation(syscall) at 0x401060:77 covering 1 op (render::values) */
        return r2sleigh_residual_u64(6);
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN
