// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/tokenizer.c
// Function: gt_tokenizer_unit_test
int gt_tokenizer_unit_test(GtError *err)
{
  GtStr *tmpfilename;
  GtTokenizer *t;
  FILE *tmpfp;
  GtStr *token;
  int had_err = 0;
  gt_error_check(err);

  /* empty file (except comment line) */
  tmpfilename = gt_str_new();
  tmpfp = gt_xtmpfp(tmpfilename);
  fprintf(tmpfp, "# comment line\n");
  gt_fa_xfclose(tmpfp);
  t = gt_tokenizer_new(gt_io_new(gt_str_get(tmpfilename), "r"));
  gt_tokenizer_skip_comment_lines(t);
  gt_ensure(!gt_tokenizer_has_token(t));
  gt_tokenizer_delete(t);
  gt_xremove(gt_str_get(tmpfilename));

  /* larger test */
  tmpfp = gt_xtmpfp(tmpfilename);
  fprintf(tmpfp, " a bb ccc\ndddd -5");
  gt_fa_xfclose(tmpfp);
  t = gt_tokenizer_new(gt_io_new(gt_str_get(tmpfilename), "r"));

  token = gt_tokenizer_get_token(t);
  gt_ensure(!strcmp(gt_str_get(token), "a"));
  gt_str_delete(token);

  gt_tokenizer_next_token(t);
  token = gt_tokenizer_get_token(t);
  gt_ensure(!strcmp(gt_str_get(token), "bb"));
  gt_str_delete(token);

  gt_tokenizer_next_token(t);
  token = gt_tokenizer_get_token(t);
  gt_ensure(!strcmp(gt_str_get(token), "ccc\n"));
  gt_str_delete(token);

  gt_tokenizer_next_token(t);
  token = gt_tokenizer_get_token(t);
  gt_ensure(!strcmp(gt_str_get(token), "dddd"));
  gt_str_delete(token);

  gt_tokenizer_next_token(t);
  token = gt_tokenizer_get_token(t);
  gt_ensure(!strcmp(gt_str_get(token), "-5"));
  gt_str_delete(token);

  gt_tokenizer_next_token(t);
  gt_ensure(!gt_tokenizer_has_token(t));
  gt_tokenizer_delete(t);
  gt_xremove(gt_str_get(tmpfilename));
  gt_str_delete(tmpfilename);

  return had_err;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movl $0x0, 0xc(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0xe5471
movq 0x30(%rsp), %rdi
callq 0xc270
testb $0x1, %al
jne 0xe5439
jmp 0xe5471
movq 0xceb98(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x78c1c(%rip), %rsi     # 0x15e066
leaq 0x791f7(%rip), %rdx     # 0x15e648
leaq 0x93fcf(%rip), %rcx     # 0x179427
leaq 0x93edd(%rip), %r8      # 0x17933c
movl $0x98, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xe5473
callq 0x18f00
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rdi
xorl %esi, %esi
leaq 0x93eb1(%rip), %rdx     # 0x17933c
movl $0x9c, %ecx
callq 0x80630
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rdi
leaq 0x93f98(%rip), %rsi     # 0x17943e
movb $0x0, %al
callq 0xb890
movq 0x18(%rsp), %rdi
callq 0x7fd50
movq 0x28(%rsp), %rdi
callq 0x19940
movq %rax, %rdi
leaq 0x86d41(%rip), %rsi     # 0x16c20c
callq 0xe16f0
movq %rax, %rdi
callq 0xe4e10
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rdi
callq 0xe4ea0
cmpl $0x0, 0xc(%rsp)
jne 0xe5536
movq 0x20(%rsp), %rdi
callq 0xe5200
testb $0x1, %al
jne 0xe54fe
jmp 0xe5534
movq 0x30(%rsp), %rdi
leaq 0x7ac6d(%rip), %rsi     # 0x160177
leaq 0x93f3d(%rip), %rdx     # 0x17944e
leaq 0x93f0f(%rip), %rcx     # 0x179427
leaq 0x93e1d(%rip), %r8      # 0x17933c
movl $0xa1, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0xc(%rsp)  # imm = 0xFFFFFFFF
jmp 0xe5536
jmp 0xe5538
movq 0x20(%rsp), %rdi
callq 0xe58c0
movq 0x28(%rsp), %rdi
callq 0x19940
movq %rax, %rdi
callq 0x1cc10
movq 0x28(%rsp), %rdi
xorl %esi, %esi
leaq 0x93dda(%rip), %rdx     # 0x17933c
movl $0xa6, %ecx
callq 0x80630
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rdi
leaq 0x93eec(%rip), %rsi     # 0x179469
movb $0x0, %al
callq 0xb890
movq 0x18(%rsp), %rdi
callq 0x7fd50
movq 0x28(%rsp), %rdi
callq 0x19940
movq %rax, %rdi
leaq 0x86c6a(%rip), %rsi     # 0x16c20c
callq 0xe16f0
movq %rax, %rdi
callq 0xe4e10
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rdi
callq 0xe4ef0
movq %rax, 0x10(%rsp)
cmpl $0x0, 0xc(%rsp)
jne 0xe5620
movq 0x10(%rsp), %rdi
callq 0x19940
movq %rax, %rdi
leaq 0x87f46(%rip), %rsi     # 0x16d524
callq 0xb850
cmpl $0x0, %eax
je 0xe561e
movq 0x30(%rsp), %rdi
leaq 0x7ab83(%rip), %rsi     # 0x160177
leaq 0x93e80(%rip), %rdx     # 0x17947b
leaq 0x93e25(%rip), %rcx     # 0x179427
leaq 0x93d33(%rip), %r8      # 0x17933c
movl $0xac, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0xc(%rsp)  # imm = 0xFFFFFFFF
jmp 0xe5620
jmp 0xe5622
movq 0x10(%rsp), %rdi
callq 0x1afc0
movq 0x20(%rsp), %rdi
callq 0xe52e0
movq 0x20(%rsp), %rdi
callq 0xe4ef0
movq %rax, 0x10(%rsp)
cmpl $0x0, 0xc(%rsp)
jne 0xe56a2
movq 0x10(%rsp), %rdi
callq 0x19940
movq %rax, %rdi
leaq 0x89146(%rip), %rsi     # 0x16e7a6
callq 0xb850
cmpl $0x0, %eax
je 0xe56a0
movq 0x30(%rsp), %rdi
leaq 0x7ab01(%rip), %rsi     # 0x160177
leaq 0x93e1e(%rip), %rdx     # 0x17949b
leaq 0x93da3(%rip), %rcx     # 0x179427
leaq 0x93cb1(%rip), %r8      # 0x17933c
movl $0xb1, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0xc(%rsp)  # imm = 0xFFFFFFFF
jmp 0xe56a2
jmp 0xe56a4
movq 0x10(%rsp), %rdi
callq 0x1afc0
movq 0x20(%rsp), %rdi
callq 0xe52e0
movq 0x20(%rsp), %rdi
callq 0xe4ef0
movq %rax, 0x10(%rsp)
cmpl $0x0, 0xc(%rsp)
jne 0xe5724
movq 0x10(%rsp), %rdi
callq 0x19940
movq %rax, %rdi
leaq 0x93dda(%rip), %rsi     # 0x1794bc
callq 0xb850
cmpl $0x0, %eax
je 0xe5722
movq 0x30(%rsp), %rdi
leaq 0x7aa7f(%rip), %rsi     # 0x160177
leaq 0x93dc2(%rip), %rdx     # 0x1794c1
leaq 0x93d21(%rip), %rcx     # 0x179427
leaq 0x93c2f(%rip), %r8      # 0x17933c
movl $0xb6, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0xc(%rsp)  # imm = 0xFFFFFFFF
jmp 0xe5724
jmp 0xe5726
movq 0x10(%rsp), %rdi
callq 0x1afc0
movq 0x20(%rsp), %rdi
callq 0xe52e0
movq 0x20(%rsp), %rdi
callq 0xe4ef0
movq %rax, 0x10(%rsp)
cmpl $0x0, 0xc(%rsp)
jne 0xe57a6
movq 0x10(%rsp), %rdi
callq 0x19940
movq %rax, %rdi
leaq 0x7ab63(%rip), %rsi     # 0x1602c7
callq 0xb850
cmpl $0x0, %eax
je 0xe57a4
movq 0x30(%rsp), %rdi
leaq 0x7a9fd(%rip), %rsi     # 0x160177
leaq 0x93d64(%rip), %rdx     # 0x1794e5
leaq 0x93c9f(%rip), %rcx     # 0x179427
leaq 0x93bad(%rip), %r8      # 0x17933c
movl $0xbb, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0xc(%rsp)  # imm = 0xFFFFFFFF
jmp 0xe57a6
jmp 0xe57a8
movq 0x10(%rsp), %rdi
callq 0x1afc0
movq 0x20(%rsp), %rdi
callq 0xe52e0
movq 0x20(%rsp), %rdi
callq 0xe4ef0
movq %rax, 0x10(%rsp)
cmpl $0x0, 0xc(%rsp)
jne 0xe5828
movq 0x10(%rsp), %rdi
callq 0x19940
movq %rax, %rdi
leaq 0x93c92(%rip), %rsi     # 0x179478
callq 0xb850
cmpl $0x0, %eax
je 0xe5826
movq 0x30(%rsp), %rdi
leaq 0x7a97b(%rip), %rsi     # 0x160177
leaq 0x93d05(%rip), %rdx     # 0x179508
leaq 0x93c1d(%rip), %rcx     # 0x179427
leaq 0x93b2b(%rip), %r8      # 0x17933c
movl $0xc0, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0xc(%rsp)  # imm = 0xFFFFFFFF
jmp 0xe5828
jmp 0xe582a
movq 0x10(%rsp), %rdi
callq 0x1afc0
movq 0x20(%rsp), %rdi
callq 0xe52e0
cmpl $0x0, 0xc(%rsp)
jne 0xe588d
movq 0x20(%rsp), %rdi
callq 0xe5200
testb $0x1, %al
jne 0xe5855
jmp 0xe588b
movq 0x30(%rsp), %rdi
leaq 0x7a916(%rip), %rsi     # 0x160177
leaq 0x93be6(%rip), %rdx     # 0x17944e
leaq 0x93bb8(%rip), %rcx     # 0x179427
leaq 0x93ac6(%rip), %r8      # 0x17933c
movl $0xc4, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0xc(%rsp)  # imm = 0xFFFFFFFF
jmp 0xe588d
jmp 0xe588f
movq 0x20(%rsp), %rdi
callq 0xe58c0
movq 0x28(%rsp), %rdi
callq 0x19940
movq %rax, %rdi
callq 0x1cc10
movq 0x28(%rsp), %rdi
callq 0x1afc0
movl 0xc(%rsp), %eax
addq $0x38, %rsp
retq
nop