// File: /workspace/github_c_makefile_star2_O1/OpenKMIP[P]libkmip/tests/tests.c
// Function: test_linked_list_push
int
test_linked_list_push(TestTracker *tracker)
{
    TRACK_TEST(tracker);

    LinkedList list = {0};

    LinkedListItem a = {0};
    LinkedListItem b = {0};
    LinkedListItem c = {0};

    if(list.head != NULL || list.tail != NULL || list.size != 0)
    {
        TEST_FAILED(tracker, __func__, __LINE__);
    }

    kmip_linked_list_push(&list, &a);

    if(list.head != &a || list.tail != &a || list.size != 1)
    {
        TEST_FAILED(tracker, __func__, __LINE__);
    }

    kmip_linked_list_push(&list, &b);

    if(list.head != &b || list.tail != &a || list.size != 2)
    {
        TEST_FAILED(tracker, __func__, __LINE__);
    }

    kmip_linked_list_push(&list, &c);

    if(list.head != &c || list.tail != &a || list.size != 3)
    {
        TEST_FAILED(tracker, __func__, __LINE__);
    }

    LinkedListItem *curr = list.head;
    if(curr != &c || curr->next != &b || curr->prev != NULL)
    {
        TEST_FAILED(tracker, __func__, __LINE__);
    }
    curr = curr->next;
    if(curr != &b || curr->next != &a || curr->prev != &c)
    {
        TEST_FAILED(tracker, __func__, __LINE__);
    }
    curr = curr->next;
    if(curr != &a || curr->next != NULL || curr->prev != &b)
    {
        TEST_FAILED(tracker, __func__, __LINE__);
    }

    TEST_PASSED(tracker, __func__);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movq %rdi, %rbx
incw (%rdi)
xorl %eax, %eax
movq %rax, 0x10(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
movq %rax, 0x70(%rsp)
movaps %xmm0, 0x60(%rsp)
movq %rax, 0x50(%rsp)
movaps %xmm0, 0x40(%rsp)
movq %rax, 0x30(%rsp)
movaps %xmm0, 0x20(%rsp)
cmpq %rax, (%rsp)
jne 0x1593
cmpq $0x0, 0x8(%rsp)
jne 0x1593
movb $0x1, %al
testb %al, %al
je 0x1593
movq %rsp, %r15
leaq 0x60(%rsp), %r14
movq %r15, %rdi
movq %r14, %rsi
callq 0x12e82
cmpq %r14, 0x8(%r15)
setne %al
cmpq %r14, (%r15)
jne 0x15a8
testb %al, %al
jne 0x15a8
cmpq $0x1, 0x10(%rsp)
jne 0x15a8
movq %rsp, %r12
leaq 0x40(%rsp), %r15
movq %r12, %rdi
movq %r15, %rsi
callq 0x12e82
cmpq %r14, 0x8(%r12)
setne %al
cmpq %r15, (%r12)
jne 0x15bd
testb %al, %al
jne 0x15bd
cmpq $0x2, 0x10(%rsp)
jne 0x15bd
movq %rsp, %r13
leaq 0x20(%rsp), %r12
movq %r13, %rdi
movq %r12, %rsi
callq 0x12e82
movq (%r13), %rax
cmpq %r14, 0x8(%r13)
setne %cl
cmpq %r12, %rax
jne 0x15d2
testb %cl, %cl
jne 0x15d2
cmpq $0x3, 0x10(%rsp)
jne 0x15d2
movq (%rax), %rcx
cmpq %r15, %rcx
jne 0x157e
cmpq $0x0, 0x8(%rax)
je 0x160b
leaq 0x2dc9d(%rip), %rdi     # 0x2f222
leaq 0x2dca7(%rip), %rsi     # 0x2f233
movl $0xaf, %edx
jmp 0x15e5
leaq 0x2dc88(%rip), %rdi     # 0x2f222
leaq 0x2dc92(%rip), %rsi     # 0x2f233
movl $0x94, %edx
jmp 0x15e5
leaq 0x2dc73(%rip), %rdi     # 0x2f222
leaq 0x2dc7d(%rip), %rsi     # 0x2f233
movl $0x9b, %edx
jmp 0x15e5
leaq 0x2dc5e(%rip), %rdi     # 0x2f222
leaq 0x2dc68(%rip), %rsi     # 0x2f233
movl $0xa2, %edx
jmp 0x15e5
leaq 0x2dc49(%rip), %rdi     # 0x2f222
leaq 0x2dc53(%rip), %rsi     # 0x2f233
movl $0xa9, %edx
xorl %eax, %eax
callq 0x1090
movl $0x1, %ebp
movl $0x2, %eax
incw (%rbx,%rax)
movl %ebp, %eax
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%rcx), %rax
cmpq %r14, %rax
jne 0x1619
cmpq %r12, 0x8(%rcx)
je 0x162e
leaq 0x2dc02(%rip), %rdi     # 0x2f222
leaq 0x2dc0c(%rip), %rsi     # 0x2f233
movl $0xb4, %edx
jmp 0x15e5
cmpq $0x0, (%rax)
jne 0x163a
cmpq %r15, 0x8(%rax)
je 0x164f
leaq 0x2dbe1(%rip), %rdi     # 0x2f222
leaq 0x2dbeb(%rip), %rsi     # 0x2f233
movl $0xb9, %edx
jmp 0x15e5
leaq 0x2dbc1(%rip), %rdi     # 0x2f217
leaq 0x2dbd6(%rip), %rsi     # 0x2f233
xorl %ebp, %ebp
xorl %eax, %eax
callq 0x1090
movl $0x4, %eax
jmp 0x15f6