// File: /workspace/github_c_makefile_star2_O2/deplinenoise[P]tundra/unittest/Test_Json.cpp
// Function: JsonTest_ArraySingle_Test::TestBody()
TEST_F(JsonTest, ArraySingle)
{
  char input[] = "[\"foo\"]";
  const JsonValue* v = JsonParse(input, &alloc, &scratch, error_msg);

  ASSERT_STREQ("", error_msg);
  ASSERT_NE(nullptr, v);

  ASSERT_EQ(JsonValue::kArray, v->m_Type);
  ASSERT_EQ(1, v->AsArray()->m_Count);
  ASSERT_EQ(JsonValue::kString, v->Elem(0)->m_Type);
  ASSERT_STREQ("foo", v->Elem(0)->AsString()->m_String);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x30, %rsp
movabsq $0x5d226f6f66225b, %rcx # imm = 0x5D226F6F66225B
leaq 0x28(%rsp), %rax
movq %rcx, (%rax)
leaq 0x18(%rdi), %rsi
leaq 0x50(%rdi), %rdx
leaq 0x88(%rdi), %r14
movq %rax, %rdi
movq %r14, %rcx
callq 0x34778
movq %rax, 0x20(%rsp)
leaq 0x1aedc(%rip), %rsi     # 0x46d3f
leaq 0x1aed8(%rip), %rdx     # 0x46d42
leaq 0x1e036(%rip), %rbx     # 0x49ea7
leaq 0x10(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rcx
movq %r14, %r8
callq 0x13723
cmpb $0x0, (%r15)
je 0x2c00d
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rsp, %rcx
andq $0x0, (%rcx)
leaq 0x1a535(%rip), %rsi     # 0x463db
leaq 0x19f34(%rip), %rdx     # 0x45de1
leaq 0x10(%rsp), %rbx
leaq 0x20(%rsp), %r8
movq %rbx, %rdi
callq 0x2d7ec
cmpb $0x0, (%rbx)
je 0x2c04e
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rsp, %rcx
movl $0x3, (%rcx)
movq 0x20(%rsp), %r8
leaq 0x1afa6(%rip), %rsi     # 0x46e8d
leaq 0x1af70(%rip), %rdx     # 0x46e5e
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x2e10f
cmpb $0x0, (%rbx)
je 0x2c065
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rsp, %rcx
movl $0x1, (%rcx)
movq 0x20(%rsp), %rax
xorl %r8d, %r8d
cmpl $0x3, (%rax)
cmoveq %rax, %r8
addq $0x8, %r8
leaq 0x19216(%rip), %rsi     # 0x45147
leaq 0x1af67(%rip), %rdx     # 0x46e9f
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x287b5
cmpb $0x0, (%rbx)
je 0x2c0ac
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rsp, %rcx
movl $0x4, (%rcx)
movq 0x20(%rsp), %rax
xorl %edx, %edx
cmpl $0x3, (%rax)
cmoveq %rax, %rdx
movq 0x10(%rdx), %rax
movq (%rax), %r8
leaq 0x1af44(%rip), %rsi     # 0x46ec1
leaq 0x1af50(%rip), %rdx     # 0x46ed4
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x2e10f
cmpb $0x0, (%rbx)
je 0x2c0f0
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq 0x20(%rsp), %rax
xorl %ecx, %ecx
cmpl $0x3, (%rax)
cmovneq %rcx, %rax
movq 0x10(%rax), %rax
movq (%rax), %rax
cmpl $0x4, (%rax)
cmoveq %rax, %rcx
movq 0x8(%rcx), %r8
leaq 0x1ad92(%rip), %rsi     # 0x46d5d
leaq 0x1af15(%rip), %rdx     # 0x46ee7
leaq 0x1c1ae(%rip), %rcx     # 0x48187
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x13723
cmpb $0x0, (%rbx)
jne 0x2c1c5
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2c188
movq (%rax), %r8
jmp 0x2c18f
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2c022
movq (%rax), %rbx
leaq 0x1acff(%rip), %rdx     # 0x46d28
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x51
popq %rcx
movq %rbx, %r8
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2c15f
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2c07c
movq (%rax), %r8
jmp 0x2c083
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2c0c3
movq (%rax), %r8
jmp 0x2c0ca
leaq 0x1de24(%rip), %r8      # 0x49ea7
leaq 0x1ac9e(%rip), %rdx     # 0x46d28
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x52
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2c15f
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2c107
movq (%rax), %r8
jmp 0x2c10e
leaq 0x1dddd(%rip), %r8      # 0x49ea7
leaq 0x1ac57(%rip), %rdx     # 0x46d28
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x54
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2c15f
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2c134
movq (%rax), %r8
jmp 0x2c13b
leaq 0x1dd99(%rip), %r8      # 0x49ea7
leaq 0x1ac13(%rip), %rdx     # 0x46d28
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x55
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2c15f
leaq 0x1dd6c(%rip), %r8      # 0x49ea7
leaq 0x1abe6(%rip), %rdx     # 0x46d28
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x56
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
leaq 0x18(%rsp), %rbx
leaq 0x8(%rsp), %rdi
callq 0x10558
movq %rsp, %rdi
callq 0x1f8e0
movq %rbx, %rdi
callq 0x2295e
addq $0x30, %rsp
popq %rbx
popq %r14
popq %r15
retq
leaq 0x1dd18(%rip), %r8      # 0x49ea7
leaq 0x1ab92(%rip), %rdx     # 0x46d28
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x57
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
leaq 0x8(%rsp), %rdi
callq 0x10558
movq %rsp, %rdi
callq 0x1f8e0
leaq 0x18(%rsp), %rdi
jmp 0x2c179
jmp 0x2c1ea
jmp 0x2c1f9
jmp 0x2c206
jmp 0x2c1ea
jmp 0x2c1f9
jmp 0x2c206
jmp 0x2c1ea
jmp 0x2c1f9
jmp 0x2c206
jmp 0x2c1ea
jmp 0x2c1f9
jmp 0x2c206
jmp 0x2c1ea
jmp 0x2c1f9
jmp 0x2c206
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x10558
jmp 0x2c1fc
movq %rax, %rbx
movq %rsp, %rdi
callq 0x1f8e0
jmp 0x2c209
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rbx, %rdi
callq 0xdbf0
nop