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

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

  const JsonObjectValue* obj = v->AsObject();
  ASSERT_NE(nullptr, obj);
  ASSERT_EQ(2, obj->m_Count);
  ASSERT_STREQ("foo", obj->m_Names[0]);
  ASSERT_STREQ("bar", obj->m_Names[1]);
  ASSERT_EQ(JsonValue::kNumber, obj->m_Values[0]->m_Type);
  ASSERT_EQ(8, int(obj->m_Values[0]->AsNumber()->m_Number));
  ASSERT_EQ(JsonValue::kBoolean, obj->m_Values[1]->m_Type);
  ASSERT_EQ(1, int(obj->m_Values[1]->AsBoolean()->m_Boolean));
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x50, %rsp
movaps 0x1bf8c(%rip), %xmm0    # 0x471d0
leaq 0x30(%rsp), %rax
movaps %xmm0, 0x10(%rax)
movaps 0x1bf6c(%rip), %xmm0    # 0x471c0
movaps %xmm0, (%rax)
leaq 0x18(%rdi), %rsi
leaq 0x50(%rdi), %rdx
leaq 0x88(%rdi), %r14
movq %rax, %rdi
movq %r14, %rcx
callq 0x34778
movq %rax, 0x28(%rsp)
leaq 0x1bac2(%rip), %rsi     # 0x46d3f
leaq 0x1babe(%rip), %rdx     # 0x46d42
leaq 0x1ec1c(%rip), %rbx     # 0x49ea7
leaq 0x10(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rcx
movq %r14, %r8
callq 0x13723
cmpb $0x0, (%r15)
je 0x2b549
leaq 0x18(%rsp), %rdi
callq 0x2295e
leaq 0x20(%rsp), %rcx
andq $0x0, (%rcx)
leaq 0x1b119(%rip), %rsi     # 0x463db
leaq 0x1ab18(%rip), %rdx     # 0x45de1
leaq 0x10(%rsp), %rbx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
callq 0x2d7ec
cmpb $0x0, (%rbx)
je 0x2b587
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq 0x28(%rsp), %rax
xorl %ecx, %ecx
cmpl $0x2, (%rax)
cmoveq %rax, %rcx
leaq 0x20(%rsp), %r8
movq %rcx, (%r8)
movq %rsp, %rcx
andq $0x0, (%rcx)
leaq 0x1b0c9(%rip), %rsi     # 0x463db
leaq 0x1ba33(%rip), %rdx     # 0x46d4c
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x2d814
cmpb $0x0, (%rbx)
je 0x2b5a0
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rsp, %rcx
movl $0x2, (%rcx)
movq 0x20(%rsp), %r8
addq $0x8, %r8
leaq 0x1d817(%rip), %rsi     # 0x48b69
leaq 0x1b9f7(%rip), %rdx     # 0x46d50
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x287b5
cmpb $0x0, (%rbx)
je 0x2b5f7
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq (%rax), %r8
leaq 0x1b9d1(%rip), %rsi     # 0x46d5d
leaq 0x1b9d0(%rip), %rdx     # 0x46d63
leaq 0x1cded(%rip), %rcx     # 0x48187
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x13723
cmpb $0x0, (%rbx)
je 0x2b63e
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %r8
leaq 0x1b9a5(%rip), %rsi     # 0x46d73
leaq 0x1b9a4(%rip), %rdx     # 0x46d79
leaq 0x1c52d(%rip), %rcx     # 0x47909
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x13723
cmpb $0x0, (%rbx)
je 0x2b685
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rsp, %rcx
movl $0x5, (%rcx)
movq 0x20(%rsp), %rax
movq 0x18(%rax), %rax
movq (%rax), %r8
leaq 0x1b971(%rip), %rsi     # 0x46d89
leaq 0x1b97d(%rip), %rdx     # 0x46d9c
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x2e10f
cmpb $0x0, (%rbx)
je 0x2b6cc
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rsp, %rcx
movl $0x8, (%rcx)
movq 0x20(%rsp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
xorl %edx, %edx
cmpl $0x5, (%rax)
cmoveq %rax, %rdx
cvttsd2si 0x8(%rdx), %eax
leaq 0x8(%rsp), %r8
movl %eax, (%r8)
leaq 0x1c312(%rip), %rsi     # 0x47783
leaq 0x1b93d(%rip), %rdx     # 0x46db5
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x2785d
cmpb $0x0, (%rbx)
je 0x2b713
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rsp, %rcx
movl $0x1, (%rcx)
movq 0x20(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %r8
leaq 0x1b92c(%rip), %rsi     # 0x46de1
leaq 0x1b939(%rip), %rdx     # 0x46df5
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x2e10f
cmpb $0x0, (%rbx)
je 0x2b757
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rsp, %rcx
movl $0x1, (%rcx)
movq 0x20(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rax
xorl %edx, %edx
cmpl $0x1, (%rax)
cmoveq %rax, %rdx
movzbl 0x4(%rdx), %eax
leaq 0x8(%rsp), %r8
movl %eax, (%r8)
leaq 0x19c39(%rip), %rsi     # 0x45147
leaq 0x1b8f9(%rip), %rdx     # 0x46e0e
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x2785d
cmpb $0x0, (%rbx)
jne 0x2b82c
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2b7ef
movq (%rax), %r8
jmp 0x2b7f6
leaq 0x20(%rsp), %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2b560
movq (%rax), %rbx
leaq 0x1b7c1(%rip), %rdx     # 0x46d28
movq %rsp, %rdi
pushq $0x2
popq %rsi
pushq $0x26
popq %rcx
movq %rbx, %r8
callq 0x104f8
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x10576
jmp 0x2b5e0
leaq 0x20(%rsp), %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2b5b7
movq (%rax), %r8
jmp 0x2b5be
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2b60e
movq (%rax), %r8
jmp 0x2b615
leaq 0x1e8e9(%rip), %r8      # 0x49ea7
leaq 0x1b763(%rip), %rdx     # 0x46d28
movq %rsp, %rdi
pushq $0x2
popq %rsi
pushq $0x27
popq %rcx
callq 0x104f8
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x10576
leaq 0x18(%rsp), %rbx
movq %rsp, %rdi
callq 0x10558
leaq 0x20(%rsp), %rdi
jmp 0x2b7d8
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2b655
movq (%rax), %r8
jmp 0x2b65c
leaq 0x1e892(%rip), %r8      # 0x49ea7
leaq 0x1b70c(%rip), %rdx     # 0x46d28
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x2a
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2b7c6
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2b69c
movq (%rax), %r8
jmp 0x2b6a3
leaq 0x1e84b(%rip), %r8      # 0x49ea7
leaq 0x1b6c5(%rip), %rdx     # 0x46d28
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x2b
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2b7c6
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2b6e3
movq (%rax), %r8
jmp 0x2b6ea
leaq 0x1e804(%rip), %r8      # 0x49ea7
leaq 0x1b67e(%rip), %rdx     # 0x46d28
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x2c
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2b7c6
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2b72a
movq (%rax), %r8
jmp 0x2b731
leaq 0x1e7bd(%rip), %r8      # 0x49ea7
leaq 0x1b637(%rip), %rdx     # 0x46d28
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x2d
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2b7c6
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2b76e
movq (%rax), %r8
jmp 0x2b775
leaq 0x1e776(%rip), %r8      # 0x49ea7
leaq 0x1b5f0(%rip), %rdx     # 0x46d28
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x2e
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2b7c6
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2b79b
movq (%rax), %r8
jmp 0x2b7a2
leaq 0x1e732(%rip), %r8      # 0x49ea7
leaq 0x1b5ac(%rip), %rdx     # 0x46d28
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x2f
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2b7c6
leaq 0x1e705(%rip), %r8      # 0x49ea7
leaq 0x1b57f(%rip), %rdx     # 0x46d28
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x30
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 $0x50, %rsp
popq %rbx
popq %r14
popq %r15
retq
leaq 0x1e6b1(%rip), %r8      # 0x49ea7
leaq 0x1b52b(%rip), %rdx     # 0x46d28
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x31
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 0x2b7e0
jmp 0x2b85d
jmp 0x2b86c
jmp 0x2b898
jmp 0x2b85d
jmp 0x2b86c
jmp 0x2b898
jmp 0x2b85d
jmp 0x2b86c
jmp 0x2b898
jmp 0x2b85d
jmp 0x2b86c
jmp 0x2b898
jmp 0x2b85d
jmp 0x2b86c
jmp 0x2b898
jmp 0x2b85d
jmp 0x2b86c
jmp 0x2b898
jmp 0x2b85d
jmp 0x2b86c
jmp 0x2b898
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x10558
jmp 0x2b86f
movq %rax, %rbx
movq %rsp, %rdi
jmp 0x2b891
jmp 0x2b898
jmp 0x2b87c
jmp 0x2b889
jmp 0x2b898
movq %rax, %rbx
movq %rsp, %rdi
callq 0x10558
jmp 0x2b88c
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x1f8e0
jmp 0x2b89b
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rbx, %rdi
callq 0xdbf0
nop