// File: halfflat[P]tinyopt/test/test_run.cc
// Function: run_single_Test::TestBody()
TEST(run, single) {
    int c = 0, d = 0;
    to::option opts[] = {
        { to::increment(c), "-c", to::flag, to::single },
        { to::increment(d), "-c", to::flag, to::single }
    };

    mockargs M("-c\0-c\0-c\0");
    auto r = to::run(opts, M.argc, M.argv);
    EXPECT_EQ(1, c);
    EXPECT_EQ(1, d);
    EXPECT_EQ(1, M.argc);
    EXPECT_TRUE(r);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x310, %rsp            # imm = 0x310
movq %rdi, -0x8(%rbp)
movl $0x0, -0xc(%rbp)
movl $0x0, -0x10(%rbp)
movb $0x1, -0x159(%rbp)
leaq -0xf0(%rbp), %rax
movq %rax, -0xf8(%rbp)
leaq -0x118(%rbp), %rdi
leaq -0xc(%rbp), %rsi
callq 0x1db80
jmp 0x68144
movl $0x1, -0x128(%rbp)
movl $0x4, -0x12c(%rbp)
leaq 0x61533(%rip), %rdx     # 0xc9692
leaq -0xf0(%rbp), %rdi
leaq -0x118(%rbp), %rsi
leaq -0x128(%rbp), %rcx
leaq -0x12c(%rbp), %r8
callq 0x6e820
jmp 0x68182
leaq -0x80(%rbp), %rax
movq %rax, -0x280(%rbp)
movq %rax, -0xf8(%rbp)
leaq -0x150(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0x1db80
jmp 0x681a6
movq -0x280(%rbp), %rdi
movl $0x1, -0x154(%rbp)
movl $0x4, -0x158(%rbp)
leaq 0x614ca(%rip), %rdx     # 0xc9692
leaq -0x150(%rbp), %rsi
leaq -0x154(%rbp), %rcx
leaq -0x158(%rbp), %r8
callq 0x6e820
jmp 0x681e4
movb $0x0, -0x159(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x1d540
leaq -0x118(%rbp), %rdi
callq 0x1d540
leaq 0x638af(%rip), %rsi     # 0xcbab9
leaq -0x188(%rbp), %rdi
callq 0x4bfe0
jmp 0x68218
movq -0x180(%rbp), %rax
movq %rax, -0x290(%rbp)
xorps %xmm0, %xmm0
movaps %xmm0, -0x1c0(%rbp)
movq $0x0, -0x1b0(%rbp)
leaq -0x1c0(%rbp), %rdi
movq %rdi, -0x288(%rbp)
callq 0x611a0
movq -0x290(%rbp), %rcx
movq -0x288(%rbp), %r8
leaq -0x1a8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
leaq -0x188(%rbp), %rdx
callq 0x6e040
jmp 0x68278
leaq -0x1c0(%rbp), %rdi
callq 0x61330
movl $0x1, -0x1d4(%rbp)
leaq 0x62041(%rip), %rsi     # 0xca2d6
leaq 0x67cfd(%rip), %rdx     # 0xcff99
leaq -0x1d0(%rbp), %rdi
leaq -0x1d4(%rbp), %rcx
leaq -0xc(%rbp), %r8
callq 0x1d5d0
jmp 0x682b5
leaq -0x1d0(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x291(%rbp)
jmp 0x682c9
movb -0x291(%rbp), %al
testb $0x1, %al
jne 0x682d8
jmp 0x683f4
jmp 0x684ac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6832f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x68323
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x1d540
leaq -0x118(%rbp), %rdi
callq 0x1d540
testb $0x1, -0x159(%rbp)
jne 0x6833a
jmp 0x68387
movq -0xf8(%rbp), %rax
leaq -0xf0(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x2a0(%rbp)
je 0x68385
movq -0x2a0(%rbp), %rdi
addq $-0x70, %rdi
movq %rdi, -0x2a8(%rbp)
callq 0x38ed0
movq -0x2a8(%rbp), %rax
leaq -0xf0(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x2a0(%rbp)
jne 0x68354
jmp 0x68387
jmp 0x68991
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x68943
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x1c0(%rbp), %rdi
callq 0x61330
jmp 0x68937
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6892b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6850e
leaq -0x1e0(%rbp), %rdi
callq 0x84210
jmp 0x68402
leaq -0x1d0(%rbp), %rdi
callq 0x1d620
movq %rax, -0x2b0(%rbp)
jmp 0x68417
movq -0x2b0(%rbp), %r8
leaq 0x63175(%rip), %rdx     # 0xcb59a
leaq -0x1e8(%rbp), %rdi
movl $0x1, %esi
movl $0x6c, %ecx
callq 0x80580
jmp 0x6843d
leaq -0x1e8(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x7d370
jmp 0x68452
leaq -0x1e8(%rbp), %rdi
callq 0x80600
leaq -0x1e0(%rbp), %rdi
callq 0x1d500
jmp 0x684ac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6849e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x1e8(%rbp), %rdi
callq 0x80600
leaq -0x1e0(%rbp), %rdi
callq 0x1d500
jmp 0x6850e
leaq -0x1d0(%rbp), %rdi
callq 0x1d520
movl $0x1, -0x1fc(%rbp)
leaq 0x61e0d(%rip), %rsi     # 0xca2d6
leaq 0x62ef7(%rip), %rdx     # 0xcb3c7
leaq -0x1f8(%rbp), %rdi
leaq -0x1fc(%rbp), %rcx
leaq -0x10(%rbp), %r8
callq 0x1d5d0
jmp 0x684e9
leaq -0x1f8(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x2b1(%rbp)
jmp 0x684fd
movb -0x2b1(%rbp), %al
testb $0x1, %al
jne 0x68509
jmp 0x68536
jmp 0x685ee
leaq -0x1d0(%rbp), %rdi
callq 0x1d520
jmp 0x6892b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x68653
leaq -0x208(%rbp), %rdi
callq 0x84210
jmp 0x68544
leaq -0x1f8(%rbp), %rdi
callq 0x1d620
movq %rax, -0x2c0(%rbp)
jmp 0x68559
movq -0x2c0(%rbp), %r8
leaq 0x63033(%rip), %rdx     # 0xcb59a
leaq -0x210(%rbp), %rdi
movl $0x1, %esi
movl $0x6d, %ecx
callq 0x80580
jmp 0x6857f
leaq -0x210(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x7d370
jmp 0x68594
leaq -0x210(%rbp), %rdi
callq 0x80600
leaq -0x208(%rbp), %rdi
callq 0x1d500
jmp 0x685ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x685e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x210(%rbp), %rdi
callq 0x80600
leaq -0x208(%rbp), %rdi
callq 0x1d500
jmp 0x68653
leaq -0x1f8(%rbp), %rdi
callq 0x1d520
movl $0x1, -0x224(%rbp)
leaq 0x61ccb(%rip), %rsi     # 0xca2d6
leaq 0x61c47(%rip), %rdx     # 0xca259
leaq -0x220(%rbp), %rdi
leaq -0x224(%rbp), %rcx
leaq -0x188(%rbp), %r8
callq 0x1d5d0
jmp 0x6862e
leaq -0x220(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x2c1(%rbp)
jmp 0x68642
movb -0x2c1(%rbp), %al
testb $0x1, %al
jne 0x6864e
jmp 0x6867b
jmp 0x68733
leaq -0x1f8(%rbp), %rdi
callq 0x1d520
jmp 0x6892b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6877d
leaq -0x230(%rbp), %rdi
callq 0x84210
jmp 0x68689
leaq -0x220(%rbp), %rdi
callq 0x1d620
movq %rax, -0x2d0(%rbp)
jmp 0x6869e
movq -0x2d0(%rbp), %r8
leaq 0x62eee(%rip), %rdx     # 0xcb59a
leaq -0x238(%rbp), %rdi
movl $0x1, %esi
movl $0x6e, %ecx
callq 0x80580
jmp 0x686c4
leaq -0x238(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0x7d370
jmp 0x686d9
leaq -0x238(%rbp), %rdi
callq 0x80600
leaq -0x230(%rbp), %rdi
callq 0x1d500
jmp 0x68733
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x68725
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x238(%rbp), %rdi
callq 0x80600
leaq -0x230(%rbp), %rdi
callq 0x1d500
jmp 0x6877d
leaq -0x220(%rbp), %rdi
callq 0x1d520
xorl %eax, %eax
movl %eax, %edx
leaq -0x248(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x6e4b0
jmp 0x68758
leaq -0x248(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x2d1(%rbp)
jmp 0x6876c
movb -0x2d1(%rbp), %al
testb $0x1, %al
jne 0x68778
jmp 0x687a5
jmp 0x688a6
leaq -0x220(%rbp), %rdi
callq 0x1d520
jmp 0x6892b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6891f
leaq -0x250(%rbp), %rdi
callq 0x84210
jmp 0x687b3
leaq 0x61f27(%rip), %rdx     # 0xca6e1
leaq 0x5fc8e(%rip), %rcx     # 0xc844f
leaq 0x5fc8d(%rip), %r8      # 0xc8455
leaq -0x278(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x7d210
jmp 0x687dd
leaq -0x278(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x62da7(%rip), %rdx     # 0xcb59a
leaq -0x258(%rbp), %rdi
movl $0x1, %esi
movl $0x6f, %ecx
callq 0x80580
jmp 0x6880b
leaq -0x258(%rbp), %rdi
leaq -0x250(%rbp), %rsi
callq 0x7d370
jmp 0x68820
leaq -0x258(%rbp), %rdi
callq 0x80600
leaq -0x278(%rbp), %rdi
callq 0x10fc8
leaq -0x250(%rbp), %rdi
callq 0x1d500
jmp 0x688a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x68898
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6888c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x258(%rbp), %rdi
callq 0x80600
leaq -0x278(%rbp), %rdi
callq 0x10fc8
leaq -0x250(%rbp), %rdi
callq 0x1d500
jmp 0x6891f
leaq -0x248(%rbp), %rdi
callq 0x1d520
leaq -0x1a8(%rbp), %rdi
callq 0x6e5d0
leaq -0x188(%rbp), %rdi
callq 0x4c380
leaq -0xf0(%rbp), %rax
movq %rax, -0x2e8(%rbp)
addq $0xe0, %rax
movq %rax, -0x2e0(%rbp)
movq -0x2e0(%rbp), %rdi
addq $-0x70, %rdi
movq %rdi, -0x2f0(%rbp)
callq 0x38ed0
movq -0x2e8(%rbp), %rcx
movq -0x2f0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x2e0(%rbp)
jne 0x688e5
addq $0x310, %rsp            # imm = 0x310
popq %rbp
retq
leaq -0x248(%rbp), %rdi
callq 0x1d520
leaq -0x1a8(%rbp), %rdi
callq 0x6e5d0
leaq -0x188(%rbp), %rdi
callq 0x4c380
leaq -0xf0(%rbp), %rax
movq %rax, -0x300(%rbp)
addq $0xe0, %rax
movq %rax, -0x2f8(%rbp)
movq -0x2f8(%rbp), %rdi
addq $-0x70, %rdi
movq %rdi, -0x308(%rbp)
callq 0x38ed0
movq -0x300(%rbp), %rcx
movq -0x308(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x2f8(%rbp)
jne 0x6895e
jmp 0x68991
movq -0x120(%rbp), %rdi
callq 0x10e00
nopl (%rax)