// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/genome_node.c
// Function: gt_genome_node_unit_test
int gt_genome_node_unit_test(GtError *err)
{
  int had_err = 0;
  GtGenomeNodeClass *gnc;
  GtGenomeNode *gn;
  void *testptr1 = "foo bar",
       *testptr2 = NULL;
  const char *testkey1 = "key1",
             *testkey2 = "key2";
  gt_error_check(err);

  testptr2 = gt_malloc(sizeof (char)*4);

  /* this is a very simple GtGenomeNodeClass without any callbacks */
  gnc = gt_calloc(1, sizeof (GtGenomeNodeClass));
  gnc->size = sizeof (GtGenomeNode);

  gn = gt_genome_node_create(gnc);
  gt_ensure(gt_genome_node_get_user_data(gn, testkey1) == NULL);
  gt_ensure(gt_genome_node_get_user_data(gn, testkey2) == NULL);
  gt_ensure(gn->userdata_nof_items == 0);
  gt_ensure(gn->userdata == NULL);

  gt_genome_node_add_user_data(gn, testkey1, testptr1, NULL);
  gt_ensure(gt_genome_node_get_user_data(gn, testkey1) != NULL);
  gt_ensure(gt_genome_node_get_user_data(gn, testkey1) == testptr1);
  gt_ensure(gn->userdata_nof_items == 1);
  gt_ensure(gn->userdata != NULL);

  gt_genome_node_add_user_data(gn, testkey2, testptr2, gt_free_func);
  gt_ensure(gt_genome_node_get_user_data(gn, testkey2) != NULL);
  gt_ensure(gt_genome_node_get_user_data(gn, testkey2) == testptr2);
  gt_ensure(gn->userdata_nof_items == 2);

  gt_genome_node_release_user_data(gn, testkey1);
  gt_ensure(gt_genome_node_get_user_data(gn, testkey1) == NULL);
  gt_ensure(gn->userdata_nof_items == 1);

  gt_genome_node_release_user_data(gn, testkey2);
  gt_ensure(gt_genome_node_get_user_data(gn, testkey2) == NULL);
  gt_ensure(gn->userdata_nof_items == 0);
  gt_ensure(gn->userdata == NULL);

  testptr2 = gt_malloc(sizeof (char)*4);
  gt_genome_node_add_user_data(gn, testkey1, testptr1, NULL);
  gt_genome_node_add_user_data(gn, testkey2, testptr2, gt_free_func);
  gt_ensure(gn->userdata != NULL);
  gt_genome_node_delete(gn);

  gt_free(gnc);

  return had_err;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movl $0x0, 0x3c(%rsp)
leaq 0x148022(%rip), %rax    # 0x16e7ba
movq %rax, 0x20(%rsp)
movq $0x0, 0x18(%rsp)
leaq 0x13c6b5(%rip), %rax    # 0x162e62
movq %rax, 0x10(%rsp)
leaq 0x13c6ae(%rip), %rax    # 0x162e67
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x40(%rsp)
je 0x2680e
movq 0x40(%rsp), %rdi
callq 0xc270
testb $0x1, %al
jne 0x267d6
jmp 0x2680e
movq 0x18d7fb(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x13787f(%rip), %rsi    # 0x15e066
leaq 0x137e5a(%rip), %rdx    # 0x15e648
leaq 0x13c677(%rip), %rcx    # 0x162e6c
leaq 0x13c2df(%rip), %r8     # 0x162adb
movl $0x1de, %r9d            # imm = 0x1DE
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x26810
movl $0x4, %edi
leaq 0x13c2bf(%rip), %rsi    # 0x162adb
movl $0x1e0, %edx            # imm = 0x1E0
callq 0xd2e0
movq %rax, 0x18(%rsp)
movl $0x1, %edi
movl $0x40, %esi
leaq 0x13c29f(%rip), %rdx    # 0x162adb
movl $0x1e3, %ecx            # imm = 0x1E3
callq 0xd5b0
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
movq $0x30, (%rax)
movq 0x30(%rsp), %rdi
callq 0x25530
movq %rax, 0x28(%rsp)
cmpl $0x0, 0x3c(%rsp)
jne 0x268ba
movq 0x28(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x265f0
cmpq $0x0, %rax
je 0x268b8
movq 0x40(%rsp), %rdi
leaq 0x1398e9(%rip), %rsi    # 0x160177
leaq 0x13c5f0(%rip), %rdx    # 0x162e85
leaq 0x13c5d0(%rip), %rcx    # 0x162e6c
leaq 0x13c238(%rip), %r8     # 0x162adb
movl $0x1e7, %r9d            # imm = 0x1E7
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x3c(%rsp) # imm = 0xFFFFFFFF
jmp 0x268ba
jmp 0x268bc
jmp 0x268be
cmpl $0x0, 0x3c(%rsp)
jne 0x26912
movq 0x28(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0x265f0
cmpq $0x0, %rax
je 0x26910
movq 0x40(%rsp), %rdi
leaq 0x139891(%rip), %rsi    # 0x160177
leaq 0x13c5cb(%rip), %rdx    # 0x162eb8
leaq 0x13c578(%rip), %rcx    # 0x162e6c
leaq 0x13c1e0(%rip), %r8     # 0x162adb
movl $0x1e8, %r9d            # imm = 0x1E8
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x3c(%rsp) # imm = 0xFFFFFFFF
jmp 0x26912
jmp 0x26914
jmp 0x26916
cmpl $0x0, 0x3c(%rsp)
jne 0x26960
movq 0x28(%rsp), %rax
cmpl $0x0, 0x28(%rax)
je 0x2695e
movq 0x40(%rsp), %rdi
leaq 0x139843(%rip), %rsi    # 0x160177
leaq 0x13c5b0(%rip), %rdx    # 0x162eeb
leaq 0x13c52a(%rip), %rcx    # 0x162e6c
leaq 0x13c192(%rip), %r8     # 0x162adb
movl $0x1e9, %r9d            # imm = 0x1E9
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x3c(%rsp) # imm = 0xFFFFFFFF
jmp 0x26960
jmp 0x26962
jmp 0x26964
cmpl $0x0, 0x3c(%rsp)
jne 0x269af
movq 0x28(%rsp), %rax
cmpq $0x0, 0x10(%rax)
je 0x269ad
movq 0x40(%rsp), %rdi
leaq 0x1397f4(%rip), %rsi    # 0x160177
leaq 0x13c57d(%rip), %rdx    # 0x162f07
leaq 0x13c4db(%rip), %rcx    # 0x162e6c
leaq 0x13c143(%rip), %r8     # 0x162adb
movl $0x1ea, %r9d            # imm = 0x1EA
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x3c(%rsp) # imm = 0xFFFFFFFF
jmp 0x269af
jmp 0x269b1
movq 0x28(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq 0x20(%rsp), %rdx
xorl %eax, %eax
movl %eax, %ecx
callq 0x26400
cmpl $0x0, 0x3c(%rsp)
jne 0x26a1d
movq 0x28(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x265f0
cmpq $0x0, %rax
jne 0x26a1b
movq 0x40(%rsp), %rdi
leaq 0x139786(%rip), %rsi    # 0x160177
leaq 0x13c524(%rip), %rdx    # 0x162f1c
leaq 0x13c46d(%rip), %rcx    # 0x162e6c
leaq 0x13c0d5(%rip), %r8     # 0x162adb
movl $0x1ed, %r9d            # imm = 0x1ED
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x3c(%rsp) # imm = 0xFFFFFFFF
jmp 0x26a1d
jmp 0x26a1f
jmp 0x26a21
cmpl $0x0, 0x3c(%rsp)
jne 0x26a76
movq 0x28(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x265f0
cmpq 0x20(%rsp), %rax
je 0x26a74
movq 0x40(%rsp), %rdi
leaq 0x13972d(%rip), %rsi    # 0x160177
leaq 0x13c4fe(%rip), %rdx    # 0x162f4f
leaq 0x13c414(%rip), %rcx    # 0x162e6c
leaq 0x13c07c(%rip), %r8     # 0x162adb
movl $0x1ee, %r9d            # imm = 0x1EE
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x3c(%rsp) # imm = 0xFFFFFFFF
jmp 0x26a76
jmp 0x26a78
jmp 0x26a7a
cmpl $0x0, 0x3c(%rsp)
jne 0x26ac4
movq 0x28(%rsp), %rax
cmpl $0x1, 0x28(%rax)
je 0x26ac2
movq 0x40(%rsp), %rdi
leaq 0x1396df(%rip), %rsi    # 0x160177
leaq 0x13c4e7(%rip), %rdx    # 0x162f86
leaq 0x13c3c6(%rip), %rcx    # 0x162e6c
leaq 0x13c02e(%rip), %r8     # 0x162adb
movl $0x1ef, %r9d            # imm = 0x1EF
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x3c(%rsp) # imm = 0xFFFFFFFF
jmp 0x26ac4
jmp 0x26ac6
jmp 0x26ac8
cmpl $0x0, 0x3c(%rsp)
jne 0x26b13
movq 0x28(%rsp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x26b11
movq 0x40(%rsp), %rdi
leaq 0x139690(%rip), %rsi    # 0x160177
leaq 0x13c321(%rip), %rdx    # 0x162e0f
leaq 0x13c377(%rip), %rcx    # 0x162e6c
leaq 0x13bfdf(%rip), %r8     # 0x162adb
movl $0x1f0, %r9d            # imm = 0x1F0
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x3c(%rsp) # imm = 0xFFFFFFFF
jmp 0x26b13
jmp 0x26b15
movq 0x28(%rsp), %rdi
movq 0x8(%rsp), %rsi
movq 0x18(%rsp), %rdx
leaq -0x18f0b(%rip), %rcx    # 0xdc20
callq 0x26400
cmpl $0x0, 0x3c(%rsp)
jne 0x26b84
movq 0x28(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0x265f0
cmpq $0x0, %rax
jne 0x26b82
movq 0x40(%rsp), %rdi
leaq 0x13961f(%rip), %rsi    # 0x160177
leaq 0x13c443(%rip), %rdx    # 0x162fa2
leaq 0x13c306(%rip), %rcx    # 0x162e6c
leaq 0x13bf6e(%rip), %r8     # 0x162adb
movl $0x1f3, %r9d            # imm = 0x1F3
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x3c(%rsp) # imm = 0xFFFFFFFF
jmp 0x26b84
jmp 0x26b86
jmp 0x26b88
cmpl $0x0, 0x3c(%rsp)
jne 0x26bdd
movq 0x28(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0x265f0
cmpq 0x18(%rsp), %rax
je 0x26bdb
movq 0x40(%rsp), %rdi
leaq 0x1395c6(%rip), %rsi    # 0x160177
leaq 0x13c41d(%rip), %rdx    # 0x162fd5
leaq 0x13c2ad(%rip), %rcx    # 0x162e6c
leaq 0x13bf15(%rip), %r8     # 0x162adb
movl $0x1f4, %r9d            # imm = 0x1F4
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x3c(%rsp) # imm = 0xFFFFFFFF
jmp 0x26bdd
jmp 0x26bdf
jmp 0x26be1
cmpl $0x0, 0x3c(%rsp)
jne 0x26c2b
movq 0x28(%rsp), %rax
cmpl $0x2, 0x28(%rax)
je 0x26c29
movq 0x40(%rsp), %rdi
leaq 0x139578(%rip), %rsi    # 0x160177
leaq 0x13c406(%rip), %rdx    # 0x16300c
leaq 0x13c25f(%rip), %rcx    # 0x162e6c
leaq 0x13bec7(%rip), %r8     # 0x162adb
movl $0x1f5, %r9d            # imm = 0x1F5
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x3c(%rsp) # imm = 0xFFFFFFFF
jmp 0x26c2b
jmp 0x26c2d
movq 0x28(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x266b0
cmpl $0x0, 0x3c(%rsp)
jne 0x26c90
movq 0x28(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x265f0
cmpq $0x0, %rax
je 0x26c8e
movq 0x40(%rsp), %rdi
leaq 0x139513(%rip), %rsi    # 0x160177
leaq 0x13c21a(%rip), %rdx    # 0x162e85
leaq 0x13c1fa(%rip), %rcx    # 0x162e6c
leaq 0x13be62(%rip), %r8     # 0x162adb
movl $0x1f8, %r9d            # imm = 0x1F8
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x3c(%rsp) # imm = 0xFFFFFFFF
jmp 0x26c90
jmp 0x26c92
jmp 0x26c94
cmpl $0x0, 0x3c(%rsp)
jne 0x26cde
movq 0x28(%rsp), %rax
cmpl $0x1, 0x28(%rax)
je 0x26cdc
movq 0x40(%rsp), %rdi
leaq 0x1394c5(%rip), %rsi    # 0x160177
leaq 0x13c2cd(%rip), %rdx    # 0x162f86
leaq 0x13c1ac(%rip), %rcx    # 0x162e6c
leaq 0x13be14(%rip), %r8     # 0x162adb
movl $0x1f9, %r9d            # imm = 0x1F9
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x3c(%rsp) # imm = 0xFFFFFFFF
jmp 0x26cde
jmp 0x26ce0
movq 0x28(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0x266b0
cmpl $0x0, 0x3c(%rsp)
jne 0x26d43
movq 0x28(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0x265f0
cmpq $0x0, %rax
je 0x26d41
movq 0x40(%rsp), %rdi
leaq 0x139460(%rip), %rsi    # 0x160177
leaq 0x13c19a(%rip), %rdx    # 0x162eb8
leaq 0x13c147(%rip), %rcx    # 0x162e6c
leaq 0x13bdaf(%rip), %r8     # 0x162adb
movl $0x1fc, %r9d            # imm = 0x1FC
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x3c(%rsp) # imm = 0xFFFFFFFF
jmp 0x26d43
jmp 0x26d45
jmp 0x26d47
cmpl $0x0, 0x3c(%rsp)
jne 0x26d91
movq 0x28(%rsp), %rax
cmpl $0x0, 0x28(%rax)
je 0x26d8f
movq 0x40(%rsp), %rdi
leaq 0x139412(%rip), %rsi    # 0x160177
leaq 0x13c17f(%rip), %rdx    # 0x162eeb
leaq 0x13c0f9(%rip), %rcx    # 0x162e6c
leaq 0x13bd61(%rip), %r8     # 0x162adb
movl $0x1fd, %r9d            # imm = 0x1FD
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x3c(%rsp) # imm = 0xFFFFFFFF
jmp 0x26d91
jmp 0x26d93
jmp 0x26d95
cmpl $0x0, 0x3c(%rsp)
jne 0x26de0
movq 0x28(%rsp), %rax
cmpq $0x0, 0x10(%rax)
je 0x26dde
movq 0x40(%rsp), %rdi
leaq 0x1393c3(%rip), %rsi    # 0x160177
leaq 0x13c14c(%rip), %rdx    # 0x162f07
leaq 0x13c0aa(%rip), %rcx    # 0x162e6c
leaq 0x13bd12(%rip), %r8     # 0x162adb
movl $0x1fe, %r9d            # imm = 0x1FE
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x3c(%rsp) # imm = 0xFFFFFFFF
jmp 0x26de0
jmp 0x26de2
movl $0x4, %edi
leaq 0x13bced(%rip), %rsi    # 0x162adb
movl $0x200, %edx            # imm = 0x200
callq 0xd2e0
movq %rax, 0x18(%rsp)
movq 0x28(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq 0x20(%rsp), %rdx
xorl %eax, %eax
movl %eax, %ecx
callq 0x26400
movq 0x28(%rsp), %rdi
movq 0x8(%rsp), %rsi
movq 0x18(%rsp), %rdx
leaq -0x1920b(%rip), %rcx    # 0xdc20
callq 0x26400
cmpl $0x0, 0x3c(%rsp)
jne 0x26e7b
movq 0x28(%rsp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x26e79
movq 0x40(%rsp), %rdi
leaq 0x139328(%rip), %rsi    # 0x160177
leaq 0x13bfb9(%rip), %rdx    # 0x162e0f
leaq 0x13c00f(%rip), %rcx    # 0x162e6c
leaq 0x13bc77(%rip), %r8     # 0x162adb
movl $0x203, %r9d            # imm = 0x203
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x3c(%rsp) # imm = 0xFFFFFFFF
jmp 0x26e7b
jmp 0x26e7d
movq 0x28(%rsp), %rdi
callq 0x26eb0
movq 0x30(%rsp), %rdi
leaq 0x13bc48(%rip), %rsi    # 0x162adb
movl $0x206, %edx            # imm = 0x206
callq 0xdab0
movl 0x3c(%rsp), %eax
addq $0x48, %rsp
retq
nopw %cs:(%rax,%rax)