// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/desc_buffer.c
// Function: gt_desc_buffer_unit_test
int gt_desc_buffer_unit_test(GtError *err)
{
  GtDescBuffer *s;
  static char *strs[] = { "foo", "bar", "baz"};
  const char *ret;
  int had_err = 0;
  GtUword i, j;
  gt_error_check(err);

  s = gt_desc_buffer_new();
  ret = gt_desc_buffer_get_next(s);
  gt_ensure(strcmp(ret, "") == 0);
  gt_ensure(ret == s->buf);
  gt_ensure(gt_desc_buffer_length(s) == 0);
  gt_desc_buffer_delete(s);

  s = gt_desc_buffer_new();
  for (i = 0; i < strlen(strs[0]); i++) {
    gt_desc_buffer_append_char(s, strs[0][i]);
  }
  gt_desc_buffer_finish(s);
  ret = gt_desc_buffer_get_next(s);
  gt_ensure(strcmp(ret, strs[0]) == 0);
  gt_ensure(ret == s->buf);
  gt_ensure(gt_desc_buffer_length(s) == 4);
  gt_desc_buffer_delete(s);

  s = gt_desc_buffer_new();
  for (j = 0; j < 2; j++) {
    for (i = 0; i < strlen(strs[j]); i++) {
      gt_desc_buffer_append_char(s, strs[j][i]);
    }
    gt_desc_buffer_finish(s);
  }
  ret = gt_desc_buffer_get_next(s);
  gt_ensure(strcmp(ret, strs[0]) == 0);
  gt_ensure(ret == s->buf);
  ret = gt_desc_buffer_get_next(s);
  gt_ensure(strcmp(ret, strs[1]) == 0);
  gt_ensure(ret == s->buf+4);
  gt_ensure(gt_desc_buffer_length(s) == 8);
  gt_desc_buffer_delete(s);

  s = gt_desc_buffer_new();
  for (j = 0; j < 3; j++) {
    for (i = 0; i < strlen(strs[j]); i++) {
      gt_desc_buffer_append_char(s, strs[j][i]);
    }
    gt_desc_buffer_finish(s);
  }
  ret = gt_desc_buffer_get_next(s);
  gt_ensure(strcmp(ret, strs[0]) == 0);
  gt_ensure(ret == s->buf);
  ret = gt_desc_buffer_get_next(s);
  gt_ensure(strcmp(ret, strs[1]) == 0);
  gt_ensure(ret == s->buf+4);
  ret = gt_desc_buffer_get_next(s);
  gt_ensure(strcmp(ret, strs[2]) == 0);
  gt_ensure(ret == s->buf+8);
  gt_ensure(gt_desc_buffer_length(s) == 12);
  gt_desc_buffer_delete(s);

  return had_err;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movl $0x0, 0x2c(%rsp)
cmpq $0x0, 0x40(%rsp)
je 0xe0c21
movq 0x40(%rsp), %rdi
callq 0xc270
testb $0x1, %al
jne 0xe0be9
jmp 0xe0c21
movq 0xd33e8(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x7d46c(%rip), %rsi     # 0x15e066
leaq 0x7da47(%rip), %rdx     # 0x15e648
leaq 0x97a5d(%rip), %rcx     # 0x178665
leaq 0x97990(%rip), %r8      # 0x17859f
movl $0xbf, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xe0c23
callq 0xe0510
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rdi
callq 0xe0780
movq %rax, 0x30(%rsp)
cmpl $0x0, 0x2c(%rsp)
jne 0xe0c91
movq 0x30(%rsp), %rdi
leaq 0x8b294(%rip), %rsi     # 0x16bee3
callq 0xb850
cmpl $0x0, %eax
je 0xe0c8f
movq 0x40(%rsp), %rdi
leaq 0x7f512(%rip), %rsi     # 0x160177
leaq 0x97a12(%rip), %rdx     # 0x17867e
leaq 0x979f2(%rip), %rcx     # 0x178665
leaq 0x97925(%rip), %r8      # 0x17859f
movl $0xc3, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2c(%rsp) # imm = 0xFFFFFFFF
jmp 0xe0c91
jmp 0xe0c93
jmp 0xe0c95
cmpl $0x0, 0x2c(%rsp)
jne 0xe0ce3
movq 0x30(%rsp), %rax
movq 0x38(%rsp), %rcx
cmpq (%rcx), %rax
je 0xe0ce1
movq 0x40(%rsp), %rdi
leaq 0x7f4c0(%rip), %rsi     # 0x160177
leaq 0x979d5(%rip), %rdx     # 0x178693
leaq 0x979a0(%rip), %rcx     # 0x178665
leaq 0x978d3(%rip), %r8      # 0x17859f
movl $0xc4, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2c(%rsp) # imm = 0xFFFFFFFF
jmp 0xe0ce3
jmp 0xe0ce5
jmp 0xe0ce7
cmpl $0x0, 0x2c(%rsp)
jne 0xe0d36
movq 0x38(%rsp), %rdi
callq 0xe08a0
cmpq $0x0, %rax
je 0xe0d34
movq 0x40(%rsp), %rdi
leaq 0x7f46d(%rip), %rsi     # 0x160177
leaq 0x97990(%rip), %rdx     # 0x1786a1
leaq 0x9794d(%rip), %rcx     # 0x178665
leaq 0x97880(%rip), %r8      # 0x17859f
movl $0xc5, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2c(%rsp) # imm = 0xFFFFFFFF
jmp 0xe0d36
jmp 0xe0d38
movq 0x38(%rsp), %rdi
callq 0xe0ac0
callq 0xe0510
movq %rax, 0x38(%rsp)
movq $0x0, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0xd411a(%rip), %rdi     # 0x1b4e80
callq 0xb240
movq %rax, %rcx
movq 0x10(%rsp), %rax
cmpq %rcx, %rax
jae 0xe0da2
movq 0x38(%rsp), %rdi
movq 0xd40fc(%rip), %rax     # 0x1b4e80
movq 0x20(%rsp), %rcx
movsbl (%rax,%rcx), %esi
callq 0xe0630
movq 0x20(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x20(%rsp)
jmp 0xe0d55
movq 0x38(%rsp), %rdi
callq 0xe0800
movq 0x38(%rsp), %rdi
callq 0xe0780
movq %rax, 0x30(%rsp)
cmpl $0x0, 0x2c(%rsp)
jne 0xe0e10
movq 0x30(%rsp), %rdi
movq 0xd40b2(%rip), %rsi     # 0x1b4e80
callq 0xb850
cmpl $0x0, %eax
je 0xe0e0e
movq 0x40(%rsp), %rdi
leaq 0x7f393(%rip), %rsi     # 0x160177
leaq 0x978d4(%rip), %rdx     # 0x1786bf
leaq 0x97873(%rip), %rcx     # 0x178665
leaq 0x977a6(%rip), %r8      # 0x17859f
movl $0xce, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2c(%rsp) # imm = 0xFFFFFFFF
jmp 0xe0e10
jmp 0xe0e12
jmp 0xe0e14
cmpl $0x0, 0x2c(%rsp)
jne 0xe0e62
movq 0x30(%rsp), %rax
movq 0x38(%rsp), %rcx
cmpq (%rcx), %rax
je 0xe0e60
movq 0x40(%rsp), %rdi
leaq 0x7f341(%rip), %rsi     # 0x160177
leaq 0x97856(%rip), %rdx     # 0x178693
leaq 0x97821(%rip), %rcx     # 0x178665
leaq 0x97754(%rip), %r8      # 0x17859f
movl $0xcf, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2c(%rsp) # imm = 0xFFFFFFFF
jmp 0xe0e62
jmp 0xe0e64
jmp 0xe0e66
cmpl $0x0, 0x2c(%rsp)
jne 0xe0eb5
movq 0x38(%rsp), %rdi
callq 0xe08a0
cmpq $0x4, %rax
je 0xe0eb3
movq 0x40(%rsp), %rdi
leaq 0x7f2ee(%rip), %rsi     # 0x160177
leaq 0x97849(%rip), %rdx     # 0x1786d9
leaq 0x977ce(%rip), %rcx     # 0x178665
leaq 0x97701(%rip), %r8      # 0x17859f
movl $0xd0, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2c(%rsp) # imm = 0xFFFFFFFF
jmp 0xe0eb5
jmp 0xe0eb7
movq 0x38(%rsp), %rdi
callq 0xe0ac0
callq 0xe0510
movq %rax, 0x38(%rsp)
movq $0x0, 0x18(%rsp)
cmpq $0x2, 0x18(%rsp)
jae 0xe0f65
movq $0x0, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rcx
leaq 0xd3f81(%rip), %rax     # 0x1b4e80
movq (%rax,%rcx,8), %rdi
callq 0xb240
movq %rax, %rcx
movq 0x8(%rsp), %rax
cmpq %rcx, %rax
jae 0xe0f48
movq 0x38(%rsp), %rdi
movq 0x18(%rsp), %rcx
leaq 0xd3f5a(%rip), %rax     # 0x1b4e80
movq (%rax,%rcx,8), %rax
movq 0x20(%rsp), %rcx
movsbl (%rax,%rcx), %esi
callq 0xe0630
movq 0x20(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x20(%rsp)
jmp 0xe0ee9
movq 0x38(%rsp), %rdi
callq 0xe0800
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0xe0ed4
movq 0x38(%rsp), %rdi
callq 0xe0780
movq %rax, 0x30(%rsp)
cmpl $0x0, 0x2c(%rsp)
jne 0xe0fc9
movq 0x30(%rsp), %rdi
movq 0xd3ef9(%rip), %rsi     # 0x1b4e80
callq 0xb850
cmpl $0x0, %eax
je 0xe0fc7
movq 0x40(%rsp), %rdi
leaq 0x7f1da(%rip), %rsi     # 0x160177
leaq 0x9771b(%rip), %rdx     # 0x1786bf
leaq 0x976ba(%rip), %rcx     # 0x178665
leaq 0x975ed(%rip), %r8      # 0x17859f
movl $0xdb, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2c(%rsp) # imm = 0xFFFFFFFF
jmp 0xe0fc9
jmp 0xe0fcb
jmp 0xe0fcd
cmpl $0x0, 0x2c(%rsp)
jne 0xe101b
movq 0x30(%rsp), %rax
movq 0x38(%rsp), %rcx
cmpq (%rcx), %rax
je 0xe1019
movq 0x40(%rsp), %rdi
leaq 0x7f188(%rip), %rsi     # 0x160177
leaq 0x9769d(%rip), %rdx     # 0x178693
leaq 0x97668(%rip), %rcx     # 0x178665
leaq 0x9759b(%rip), %r8      # 0x17859f
movl $0xdc, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2c(%rsp) # imm = 0xFFFFFFFF
jmp 0xe101b
jmp 0xe101d
movq 0x38(%rsp), %rdi
callq 0xe0780
movq %rax, 0x30(%rsp)
cmpl $0x0, 0x2c(%rsp)
jne 0xe1081
movq 0x30(%rsp), %rdi
movq 0xd3e49(%rip), %rsi     # 0x1b4e88
callq 0xb850
cmpl $0x0, %eax
je 0xe107f
movq 0x40(%rsp), %rdi
leaq 0x7f122(%rip), %rsi     # 0x160177
leaq 0x9769b(%rip), %rdx     # 0x1786f7
leaq 0x97602(%rip), %rcx     # 0x178665
leaq 0x97535(%rip), %r8      # 0x17859f
movl $0xde, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2c(%rsp) # imm = 0xFFFFFFFF
jmp 0xe1081
jmp 0xe1083
jmp 0xe1085
cmpl $0x0, 0x2c(%rsp)
jne 0xe10da
movq 0x30(%rsp), %rax
movq 0x38(%rsp), %rcx
movq (%rcx), %rcx
addq $0x4, %rcx
cmpq %rcx, %rax
je 0xe10d8
movq 0x40(%rsp), %rdi
leaq 0x7f0c9(%rip), %rsi     # 0x160177
leaq 0x9765c(%rip), %rdx     # 0x178711
leaq 0x975a9(%rip), %rcx     # 0x178665
leaq 0x974dc(%rip), %r8      # 0x17859f
movl $0xdf, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2c(%rsp) # imm = 0xFFFFFFFF
jmp 0xe10da
jmp 0xe10dc
jmp 0xe10de
cmpl $0x0, 0x2c(%rsp)
jne 0xe112d
movq 0x38(%rsp), %rdi
callq 0xe08a0
cmpq $0x8, %rax
je 0xe112b
movq 0x40(%rsp), %rdi
leaq 0x7f076(%rip), %rsi     # 0x160177
leaq 0x97619(%rip), %rdx     # 0x178721
leaq 0x97556(%rip), %rcx     # 0x178665
leaq 0x97489(%rip), %r8      # 0x17859f
movl $0xe0, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2c(%rsp) # imm = 0xFFFFFFFF
jmp 0xe112d
jmp 0xe112f
movq 0x38(%rsp), %rdi
callq 0xe0ac0
callq 0xe0510
movq %rax, 0x38(%rsp)
movq $0x0, 0x18(%rsp)
cmpq $0x3, 0x18(%rsp)
jae 0xe11db
movq $0x0, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq %rax, (%rsp)
movq 0x18(%rsp), %rcx
leaq 0xd3d0a(%rip), %rax     # 0x1b4e80
movq (%rax,%rcx,8), %rdi
callq 0xb240
movq %rax, %rcx
movq (%rsp), %rax
cmpq %rcx, %rax
jae 0xe11be
movq 0x38(%rsp), %rdi
movq 0x18(%rsp), %rcx
leaq 0xd3ce4(%rip), %rax     # 0x1b4e80
movq (%rax,%rcx,8), %rax
movq 0x20(%rsp), %rcx
movsbl (%rax,%rcx), %esi
callq 0xe0630
movq 0x20(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x20(%rsp)
jmp 0xe1161
movq 0x38(%rsp), %rdi
callq 0xe0800
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0xe114c
movq 0x38(%rsp), %rdi
callq 0xe0780
movq %rax, 0x30(%rsp)
cmpl $0x0, 0x2c(%rsp)
jne 0xe123f
movq 0x30(%rsp), %rdi
movq 0xd3c83(%rip), %rsi     # 0x1b4e80
callq 0xb850
cmpl $0x0, %eax
je 0xe123d
movq 0x40(%rsp), %rdi
leaq 0x7ef64(%rip), %rsi     # 0x160177
leaq 0x974a5(%rip), %rdx     # 0x1786bf
leaq 0x97444(%rip), %rcx     # 0x178665
leaq 0x97377(%rip), %r8      # 0x17859f
movl $0xeb, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2c(%rsp) # imm = 0xFFFFFFFF
jmp 0xe123f
jmp 0xe1241
jmp 0xe1243
cmpl $0x0, 0x2c(%rsp)
jne 0xe1291
movq 0x30(%rsp), %rax
movq 0x38(%rsp), %rcx
cmpq (%rcx), %rax
je 0xe128f
movq 0x40(%rsp), %rdi
leaq 0x7ef12(%rip), %rsi     # 0x160177
leaq 0x97427(%rip), %rdx     # 0x178693
leaq 0x973f2(%rip), %rcx     # 0x178665
leaq 0x97325(%rip), %r8      # 0x17859f
movl $0xec, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2c(%rsp) # imm = 0xFFFFFFFF
jmp 0xe1291
jmp 0xe1293
movq 0x38(%rsp), %rdi
callq 0xe0780
movq %rax, 0x30(%rsp)
cmpl $0x0, 0x2c(%rsp)
jne 0xe12f7
movq 0x30(%rsp), %rdi
movq 0xd3bd3(%rip), %rsi     # 0x1b4e88
callq 0xb850
cmpl $0x0, %eax
je 0xe12f5
movq 0x40(%rsp), %rdi
leaq 0x7eeac(%rip), %rsi     # 0x160177
leaq 0x97425(%rip), %rdx     # 0x1786f7
leaq 0x9738c(%rip), %rcx     # 0x178665
leaq 0x972bf(%rip), %r8      # 0x17859f
movl $0xee, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2c(%rsp) # imm = 0xFFFFFFFF
jmp 0xe12f7
jmp 0xe12f9
jmp 0xe12fb
cmpl $0x0, 0x2c(%rsp)
jne 0xe1350
movq 0x30(%rsp), %rax
movq 0x38(%rsp), %rcx
movq (%rcx), %rcx
addq $0x4, %rcx
cmpq %rcx, %rax
je 0xe134e
movq 0x40(%rsp), %rdi
leaq 0x7ee53(%rip), %rsi     # 0x160177
leaq 0x973e6(%rip), %rdx     # 0x178711
leaq 0x97333(%rip), %rcx     # 0x178665
leaq 0x97266(%rip), %r8      # 0x17859f
movl $0xef, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2c(%rsp) # imm = 0xFFFFFFFF
jmp 0xe1350
jmp 0xe1352
movq 0x38(%rsp), %rdi
callq 0xe0780
movq %rax, 0x30(%rsp)
cmpl $0x0, 0x2c(%rsp)
jne 0xe13b6
movq 0x30(%rsp), %rdi
movq 0xd3b1c(%rip), %rsi     # 0x1b4e90
callq 0xb850
cmpl $0x0, %eax
je 0xe13b4
movq 0x40(%rsp), %rdi
leaq 0x7eded(%rip), %rsi     # 0x160177
leaq 0x973ae(%rip), %rdx     # 0x17873f
leaq 0x972cd(%rip), %rcx     # 0x178665
leaq 0x97200(%rip), %r8      # 0x17859f
movl $0xf1, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2c(%rsp) # imm = 0xFFFFFFFF
jmp 0xe13b6
jmp 0xe13b8
jmp 0xe13ba
cmpl $0x0, 0x2c(%rsp)
jne 0xe140f
movq 0x30(%rsp), %rax
movq 0x38(%rsp), %rcx
movq (%rcx), %rcx
addq $0x8, %rcx
cmpq %rcx, %rax
je 0xe140d
movq 0x40(%rsp), %rdi
leaq 0x7ed94(%rip), %rsi     # 0x160177
leaq 0x9736f(%rip), %rdx     # 0x178759
leaq 0x97274(%rip), %rcx     # 0x178665
leaq 0x971a7(%rip), %r8      # 0x17859f
movl $0xf2, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2c(%rsp) # imm = 0xFFFFFFFF
jmp 0xe140f
jmp 0xe1411
jmp 0xe1413
cmpl $0x0, 0x2c(%rsp)
jne 0xe1462
movq 0x38(%rsp), %rdi
callq 0xe08a0
cmpq $0xc, %rax
je 0xe1460
movq 0x40(%rsp), %rdi
leaq 0x7ed41(%rip), %rsi     # 0x160177
leaq 0x9732c(%rip), %rdx     # 0x178769
leaq 0x97221(%rip), %rcx     # 0x178665
leaq 0x97154(%rip), %r8      # 0x17859f
movl $0xf3, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2c(%rsp) # imm = 0xFFFFFFFF
jmp 0xe1462
jmp 0xe1464
movq 0x38(%rsp), %rdi
callq 0xe0ac0
movl 0x2c(%rsp), %eax
addq $0x48, %rsp
retq
nopw (%rax,%rax)