// File: /workspace/github_c_makefile_star2_O3/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 %rsp, %r15
movq %rax, 0x10(%r15)
xorps %xmm0, %xmm0
movaps %xmm0, (%r15)
leaq 0x60(%rsp), %r14
movq %rax, 0x10(%r14)
movaps %xmm0, (%r14)
movq %rax, 0x50(%rsp)
movaps %xmm0, 0x40(%rsp)
movq %rax, 0x30(%rsp)
movaps %xmm0, 0x20(%rsp)
movq %r15, %rdi
movq %r14, %rsi
callq 0x128b1
cmpq %r14, (%r15)
jne 0x1517
cmpq %r14, 0x8(%rsp)
jne 0x1517
cmpq $0x1, 0x10(%rsp)
jne 0x1517
movq %rsp, %r12
leaq 0x40(%rsp), %r15
movq %r12, %rdi
movq %r15, %rsi
callq 0x128b1
cmpq %r15, (%r12)
jne 0x152c
cmpq %r14, 0x8(%rsp)
jne 0x152c
cmpq $0x2, 0x10(%rsp)
jne 0x152c
movq %rsp, %r13
leaq 0x20(%rsp), %r12
movq %r13, %rdi
movq %r12, %rsi
callq 0x128b1
movq (%r13), %rax
cmpq %r12, %rax
jne 0x1541
cmpq %r14, 0x8(%rsp)
jne 0x1541
cmpq $0x3, 0x10(%rsp)
jne 0x1541
movq (%rax), %rcx
cmpq %r15, %rcx
jne 0x1502
cmpq $0x0, 0x8(%rax)
je 0x157a
leaq 0x2bd19(%rip), %rdi     # 0x2d222
leaq 0x2bd23(%rip), %rsi     # 0x2d233
movl $0xaf, %edx
jmp 0x1554
leaq 0x2bd04(%rip), %rdi     # 0x2d222
leaq 0x2bd0e(%rip), %rsi     # 0x2d233
movl $0x9b, %edx
jmp 0x1554
leaq 0x2bcef(%rip), %rdi     # 0x2d222
leaq 0x2bcf9(%rip), %rsi     # 0x2d233
movl $0xa2, %edx
jmp 0x1554
leaq 0x2bcda(%rip), %rdi     # 0x2d222
leaq 0x2bce4(%rip), %rsi     # 0x2d233
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 0x1588
cmpq %r12, 0x8(%rcx)
je 0x159d
leaq 0x2bc93(%rip), %rdi     # 0x2d222
leaq 0x2bc9d(%rip), %rsi     # 0x2d233
movl $0xb4, %edx
jmp 0x1554
cmpq $0x0, (%rax)
jne 0x15a9
cmpq %r15, 0x8(%rax)
je 0x15be
leaq 0x2bc72(%rip), %rdi     # 0x2d222
leaq 0x2bc7c(%rip), %rsi     # 0x2d233
movl $0xb9, %edx
jmp 0x1554
leaq 0x2bc52(%rip), %rdi     # 0x2d217
leaq 0x2bc67(%rip), %rsi     # 0x2d233
xorl %ebp, %ebp
xorl %eax, %eax
callq 0x1090
movl $0x4, %eax
jmp 0x1565