// File: /workspace/github_c_makefile_star2_O2/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)
xorps %xmm0, %xmm0
movq %rsp, %r15
movaps %xmm0, (%r15)
andq $0x0, 0x10(%r15)
leaq 0x60(%rsp), %r14
movaps %xmm0, (%r14)
andq $0x0, 0x10(%r14)
movaps %xmm0, 0x40(%rsp)
andq $0x0, 0x50(%rsp)
movaps %xmm0, 0x20(%rsp)
andq $0x0, 0x30(%rsp)
movq %r15, %rdi
movq %r14, %rsi
callq 0x121fb
cmpq %r14, (%r15)
jne 0x14fc
cmpq %r14, 0x8(%rsp)
jne 0x14fc
cmpq $0x1, 0x10(%rsp)
jne 0x14fc
movq %rsp, %r12
leaq 0x40(%rsp), %r15
movq %r12, %rdi
movq %r15, %rsi
callq 0x121fb
cmpq %r15, (%r12)
jne 0x1511
cmpq %r14, 0x8(%rsp)
jne 0x1511
cmpq $0x2, 0x10(%rsp)
jne 0x1511
movq %rsp, %r13
leaq 0x20(%rsp), %r12
movq %r13, %rdi
movq %r12, %rsi
callq 0x121fb
movq (%r13), %rax
cmpq %r12, %rax
jne 0x1526
cmpq %r14, 0x8(%rsp)
jne 0x1526
cmpq $0x3, 0x10(%rsp)
jne 0x1526
movq (%rax), %rcx
cmpq %r15, %rcx
jne 0x14e7
cmpq $0x0, 0x8(%rax)
je 0x155b
leaq 0x24d34(%rip), %rdi     # 0x26222
leaq 0x24d3e(%rip), %rsi     # 0x26233
movl $0xaf, %edx
jmp 0x1539
leaq 0x24d1f(%rip), %rdi     # 0x26222
leaq 0x24d29(%rip), %rsi     # 0x26233
movl $0x9b, %edx
jmp 0x1539
leaq 0x24d0a(%rip), %rdi     # 0x26222
leaq 0x24d14(%rip), %rsi     # 0x26233
movl $0xa2, %edx
jmp 0x1539
leaq 0x24cf5(%rip), %rdi     # 0x26222
leaq 0x24cff(%rip), %rsi     # 0x26233
movl $0xa9, %edx
xorl %eax, %eax
callq 0x1090
pushq $0x1
popq %rbp
pushq $0x2
popq %rax
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 0x1569
cmpq %r12, 0x8(%rcx)
je 0x157e
leaq 0x24cb2(%rip), %rdi     # 0x26222
leaq 0x24cbc(%rip), %rsi     # 0x26233
movl $0xb4, %edx
jmp 0x1539
cmpq $0x0, (%rax)
jne 0x158a
cmpq %r15, 0x8(%rax)
je 0x159f
leaq 0x24c91(%rip), %rdi     # 0x26222
leaq 0x24c9b(%rip), %rsi     # 0x26233
movl $0xb9, %edx
jmp 0x1539
leaq 0x24c71(%rip), %rdi     # 0x26217
leaq 0x24c86(%rip), %rsi     # 0x26233
xorl %ebp, %ebp
xorl %eax, %eax
callq 0x1090
pushq $0x4
jmp 0x1545