// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/luaserialize.c
// Function: gt_lua_serializer_unit_test
int gt_lua_serializer_unit_test(GtError *err)
{
  int had_err = 0;
  lua_State *L;
  GtStr *outstr  = gt_str_new();
  const char testtable[] = "config =\n"
  "{\n"
  "  gene = {\n"
  "    -- Color definitions\n"
  "    stroke             = {red=0.0, green=0.0, blue=0.0},\n"
  "    stroke_marked      = {red=1.0, green=0.0, blue=0.0},\n"
  "    fill               = {red=0.9, green=0.9, blue=1.0},\n"
  "    style              = \"box\",\n"
  "    -- Collapsing options\n"
  "    collapse_to_parent = false,\n"
  "    split_lines        = true,\n"
  "    -- Caption options\n"
  "    max_capt_show_width= nil,\n"
  "    -- Display this track only if the viewport is not wider than this\n"
  "    -- number of nucleotides. Set to 0 to disable type track.\n"
  "    max_show_width     = nil,\n"
  "    -- Limit the number of tracks\n"
  "    --    max_num_lines      = 10,\n"
  "  },\n"
  "}\n"
  "";
  gt_error_check(err);

  L = luaL_newstate();
  gt_ensure(L);
  luaL_openlibs(L);
  had_err = luaL_loadbuffer(L, testtable, sizeof (testtable)-1, "t") ||
              lua_pcall(L, 0, 0, 0);
  if (!had_err)
  {
    lua_getglobal(L, "config");
    gt_str_append_cstr(outstr, "config = {\n");
    gt_lua_table_to_str(L, outstr, -1, err);
    gt_str_append_cstr(outstr, "}");
    had_err = luaL_loadbuffer(L, gt_str_get(outstr),
                              gt_str_length(outstr), "t2") ||
              lua_pcall(L, 0, 0, 0);
    if (!had_err)
    {
      gt_ensure(gt_str_length(outstr) > 0);
      lua_getglobal(L, "config");
      gt_ensure(lua_istable(L, -1));
      lua_getfield(L, -1, "gene");
      gt_ensure(lua_istable(L, -1));
      lua_getfield(L, -1, "stroke_marked");
      gt_ensure(lua_istable(L, -1));
      lua_getfield(L, -1, "red");
      gt_ensure(lua_isnumber(L, -1));
      gt_ensure(1.0 == lua_tonumber(L, -1));
      lua_pop(L, 1);
      lua_getfield(L, -1, "blue");
      gt_ensure(lua_isnumber(L, -1));
      gt_ensure(0.0 == lua_tonumber(L, -1));
      lua_pop(L, 2);
      lua_getfield(L, -1, "style");
      gt_ensure(lua_isstring(L, -1));
      gt_ensure(strcmp("box",lua_tostring(L, -1)) == 0);
      lua_pop(L, 1);
      lua_getfield(L, -1, "collapse_to_parent");
      gt_ensure(lua_isboolean(L, -1));
      gt_ensure(lua_toboolean(L, -1) == false);
      lua_pop(L, 1);
      lua_getfield(L, -1, "max_show_width");
      gt_ensure(lua_isnil(L, -1));
      lua_pop(L, 3);
    }
  }
  gt_str_delete(outstr);
  lua_close(L);
  return had_err;
}

// Assembly:
subq $0x2b8, %rsp            # imm = 0x2B8
movq %rdi, 0x2b0(%rsp)
movl $0x0, 0x2ac(%rsp)
callq 0x18f00
movq %rax, 0x298(%rsp)
leaq 0x20(%rsp), %rdi
leaq 0xcaa2d(%rip), %rsi     # 0x172de0
movl $0x277, %edx            # imm = 0x277
callq 0xb500
cmpq $0x0, 0x2b0(%rsp)
je 0xa8413
movq 0x2b0(%rsp), %rdi
callq 0xc270
testb $0x1, %al
jne 0xa83db
jmp 0xa8413
movq 0x10bbf6(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xb5c7a(%rip), %rsi     # 0x15e066
leaq 0xb6255(%rip), %rdx     # 0x15e648
leaq 0xca854(%rip), %rcx     # 0x172c4e
leaq 0xca7f3(%rip), %r8      # 0x172bf4
movl $0x96, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xa8415
callq 0x56d80
movq %rax, 0x2a0(%rsp)
cmpl $0x0, 0x2ac(%rsp)
jne 0xa8475
cmpq $0x0, 0x2a0(%rsp)
jne 0xa8473
movq 0x2b0(%rsp), %rdi
leaq 0xb7d31(%rip), %rsi     # 0x160177
leaq 0xc29b1(%rip), %rdx     # 0x16adfe
leaq 0xca7fa(%rip), %rcx     # 0x172c4e
leaq 0xca799(%rip), %r8      # 0x172bf4
movl $0x99, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2ac(%rsp) # imm = 0xFFFFFFFF
jmp 0xa8475
jmp 0xa8477
movq 0x2a0(%rsp), %rdi
callq 0x57330
movq 0x2a0(%rsp), %rdi
leaq 0x20(%rsp), %rsi
movl $0x276, %edx            # imm = 0x276
leaq 0xbf9e1(%rip), %rcx     # 0x167e7e
callq 0x56c70
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, 0x1f(%rsp)
jne 0xa84cc
movq 0x2a0(%rsp), %rdi
xorl %ecx, %ecx
movl %ecx, %esi
movl %ecx, %edx
callq 0x527f0
cmpl $0x0, %eax
setne %al
movb %al, 0x1f(%rsp)
movb 0x1f(%rsp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, 0x2ac(%rsp)
cmpl $0x0, 0x2ac(%rsp)
jne 0xa8c1f
movq 0x2a0(%rsp), %rdi
movl $0xffffd8ee, %esi       # imm = 0xFFFFD8EE
leaq 0xc2be0(%rip), %rdx     # 0x16b0de
callq 0x51640
movq 0x298(%rsp), %rdi
leaq 0xca758(%rip), %rsi     # 0x172c6a
callq 0x18fb0
movq 0x2a0(%rsp), %rdi
movq 0x298(%rsp), %rsi
movq 0x2b0(%rsp), %rcx
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0xa7f90
movq 0x298(%rsp), %rdi
leaq 0xc175d(%rip), %rsi     # 0x169ca5
callq 0x18fb0
movq 0x2a0(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x298(%rsp), %rdi
callq 0x19940
movq %rax, 0x10(%rsp)
movq 0x298(%rsp), %rdi
callq 0x19a00
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq %rax, %rdx
leaq 0xca6e9(%rip), %rcx     # 0x172c76
callq 0x56c70
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, 0x1e(%rsp)
jne 0xa85bc
movq 0x2a0(%rsp), %rdi
xorl %ecx, %ecx
movl %ecx, %esi
movl %ecx, %edx
callq 0x527f0
cmpl $0x0, %eax
setne %al
movb %al, 0x1e(%rsp)
movb 0x1e(%rsp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, 0x2ac(%rsp)
cmpl $0x0, 0x2ac(%rsp)
jne 0xa8c1d
jmp 0xa85dc
cmpl $0x0, 0x2ac(%rsp)
jne 0xa8637
movq 0x298(%rsp), %rdi
callq 0x19a00
cmpq $0x0, %rax
ja 0xa8635
movq 0x2b0(%rsp), %rdi
leaq 0xb7b6f(%rip), %rsi     # 0x160177
leaq 0xca66a(%rip), %rdx     # 0x172c79
leaq 0xca638(%rip), %rcx     # 0x172c4e
leaq 0xca5d7(%rip), %r8      # 0x172bf4
movl $0xa8, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2ac(%rsp) # imm = 0xFFFFFFFF
jmp 0xa8637
jmp 0xa8639
movq 0x2a0(%rsp), %rdi
movl $0xffffd8ee, %esi       # imm = 0xFFFFD8EE
leaq 0xc2a91(%rip), %rdx     # 0x16b0de
callq 0x51640
cmpl $0x0, 0x2ac(%rsp)
jne 0xa86b1
movq 0x2a0(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x4f800
cmpl $0x5, %eax
je 0xa86af
movq 0x2b0(%rsp), %rdi
leaq 0xb7af5(%rip), %rsi     # 0x160177
leaq 0xca60a(%rip), %rdx     # 0x172c93
leaq 0xca5be(%rip), %rcx     # 0x172c4e
leaq 0xca55d(%rip), %r8      # 0x172bf4
movl $0xaa, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2ac(%rsp) # imm = 0xFFFFFFFF
jmp 0xa86b1
jmp 0xa86b3
movq 0x2a0(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
leaq 0xe6e49(%rip), %rdx     # 0x18f510
callq 0x51640
cmpl $0x0, 0x2ac(%rsp)
jne 0xa872b
movq 0x2a0(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x4f800
cmpl $0x5, %eax
je 0xa8729
movq 0x2b0(%rsp), %rdi
leaq 0xb7a7b(%rip), %rsi     # 0x160177
leaq 0xca590(%rip), %rdx     # 0x172c93
leaq 0xca544(%rip), %rcx     # 0x172c4e
leaq 0xca4e3(%rip), %r8      # 0x172bf4
movl $0xac, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2ac(%rsp) # imm = 0xFFFFFFFF
jmp 0xa872b
jmp 0xa872d
movq 0x2a0(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
leaq 0xca565(%rip), %rdx     # 0x172ca6
callq 0x51640
cmpl $0x0, 0x2ac(%rsp)
jne 0xa87a5
movq 0x2a0(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x4f800
cmpl $0x5, %eax
je 0xa87a3
movq 0x2b0(%rsp), %rdi
leaq 0xb7a01(%rip), %rsi     # 0x160177
leaq 0xca516(%rip), %rdx     # 0x172c93
leaq 0xca4ca(%rip), %rcx     # 0x172c4e
leaq 0xca469(%rip), %r8      # 0x172bf4
movl $0xae, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2ac(%rsp) # imm = 0xFFFFFFFF
jmp 0xa87a5
jmp 0xa87a7
movq 0x2a0(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
leaq 0xc5528(%rip), %rdx     # 0x16dce3
callq 0x51640
cmpl $0x0, 0x2ac(%rsp)
jne 0xa881f
movq 0x2a0(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x4f8f0
cmpl $0x0, %eax
jne 0xa881d
movq 0x2b0(%rsp), %rdi
leaq 0xb7987(%rip), %rsi     # 0x160177
leaq 0xca4bd(%rip), %rdx     # 0x172cb4
leaq 0xca450(%rip), %rcx     # 0x172c4e
leaq 0xca3ef(%rip), %r8      # 0x172bf4
movl $0xb0, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2ac(%rsp) # imm = 0xFFFFFFFF
jmp 0xa881f
jmp 0xa8821
jmp 0xa8823
cmpl $0x0, 0x2ac(%rsp)
jne 0xa8892
movq 0x2a0(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x50020
movaps %xmm0, %xmm1
movsd 0xb5fbe(%rip), %xmm0    # 0x15e808
ucomisd %xmm1, %xmm0
jne 0xa8854
jp 0xa8854
jmp 0xa8890
movq 0x2b0(%rsp), %rdi
leaq 0xb7914(%rip), %rsi     # 0x160177
leaq 0xca45e(%rip), %rdx     # 0x172cc8
leaq 0xca3dd(%rip), %rcx     # 0x172c4e
leaq 0xca37c(%rip), %r8      # 0x172bf4
movl $0xb1, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2ac(%rsp) # imm = 0xFFFFFFFF
jmp 0xa8892
jmp 0xa8894
movq 0x2a0(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x4f100
movq 0x2a0(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
leaq 0xc09eb(%rip), %rdx     # 0x1692a5
callq 0x51640
cmpl $0x0, 0x2ac(%rsp)
jne 0xa891e
movq 0x2a0(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x4f8f0
cmpl $0x0, %eax
jne 0xa891c
movq 0x2b0(%rsp), %rdi
leaq 0xb7888(%rip), %rsi     # 0x160177
leaq 0xca3be(%rip), %rdx     # 0x172cb4
leaq 0xca351(%rip), %rcx     # 0x172c4e
leaq 0xca2f0(%rip), %r8      # 0x172bf4
movl $0xb4, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2ac(%rsp) # imm = 0xFFFFFFFF
jmp 0xa891e
jmp 0xa8920
jmp 0xa8922
cmpl $0x0, 0x2ac(%rsp)
jne 0xa898c
movq 0x2a0(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x50020
movaps %xmm0, %xmm1
xorps %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jne 0xa894e
jp 0xa894e
jmp 0xa898a
movq 0x2b0(%rsp), %rdi
leaq 0xb781a(%rip), %rsi     # 0x160177
leaq 0xca37f(%rip), %rdx     # 0x172ce3
leaq 0xca2e3(%rip), %rcx     # 0x172c4e
leaq 0xca282(%rip), %r8      # 0x172bf4
movl $0xb5, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2ac(%rsp) # imm = 0xFFFFFFFF
jmp 0xa898c
jmp 0xa898e
movq 0x2a0(%rsp), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x4f100
movq 0x2a0(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
leaq 0xd414b(%rip), %rdx     # 0x17caff
callq 0x51640
cmpl $0x0, 0x2ac(%rsp)
jne 0xa8a18
movq 0x2a0(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x4f9e0
cmpl $0x0, %eax
jne 0xa8a16
movq 0x2b0(%rsp), %rdi
leaq 0xb778e(%rip), %rsi     # 0x160177
leaq 0xca30e(%rip), %rdx     # 0x172cfe
leaq 0xca257(%rip), %rcx     # 0x172c4e
leaq 0xca1f6(%rip), %r8      # 0x172bf4
movl $0xb8, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2ac(%rsp) # imm = 0xFFFFFFFF
jmp 0xa8a18
jmp 0xa8a1a
jmp 0xa8a1c
cmpl $0x0, 0x2ac(%rsp)
jne 0xa8a8e
movq 0x2a0(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
xorl %eax, %eax
movl %eax, %edx
callq 0x50180
movq %rax, %rsi
leaq 0xbfd14(%rip), %rdi     # 0x16875a
callq 0xb850
cmpl $0x0, %eax
je 0xa8a8c
movq 0x2b0(%rsp), %rdi
leaq 0xb7718(%rip), %rsi     # 0x160177
leaq 0xca2ac(%rip), %rdx     # 0x172d12
leaq 0xca1e1(%rip), %rcx     # 0x172c4e
leaq 0xca180(%rip), %r8      # 0x172bf4
movl $0xb9, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2ac(%rsp) # imm = 0xFFFFFFFF
jmp 0xa8a8e
jmp 0xa8a90
movq 0x2a0(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x4f100
movq 0x2a0(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
leaq 0xbf08d(%rip), %rdx     # 0x167b43
callq 0x51640
cmpl $0x0, 0x2ac(%rsp)
jne 0xa8b1a
movq 0x2a0(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x4f800
cmpl $0x1, %eax
je 0xa8b18
movq 0x2b0(%rsp), %rdi
leaq 0xb768c(%rip), %rsi     # 0x160177
leaq 0xca247(%rip), %rdx     # 0x172d39
leaq 0xca155(%rip), %rcx     # 0x172c4e
leaq 0xca0f4(%rip), %r8      # 0x172bf4
movl $0xbc, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2ac(%rsp) # imm = 0xFFFFFFFF
jmp 0xa8b1a
jmp 0xa8b1c
jmp 0xa8b1e
cmpl $0x0, 0x2ac(%rsp)
jne 0xa8b7d
movq 0x2a0(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x50110
cmpl $0x0, %eax
je 0xa8b7b
movq 0x2b0(%rsp), %rdi
leaq 0xb7629(%rip), %rsi     # 0x160177
leaq 0xca1f9(%rip), %rdx     # 0x172d4e
leaq 0xca0f2(%rip), %rcx     # 0x172c4e
leaq 0xca091(%rip), %r8      # 0x172bf4
movl $0xbd, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2ac(%rsp) # imm = 0xFFFFFFFF
jmp 0xa8b7d
jmp 0xa8b7f
movq 0x2a0(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x4f100
movq 0x2a0(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
leaq 0xbef8f(%rip), %rdx     # 0x167b34
callq 0x51640
cmpl $0x0, 0x2ac(%rsp)
jne 0xa8c09
movq 0x2a0(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x4f800
cmpl $0x0, %eax
je 0xa8c07
movq 0x2b0(%rsp), %rdi
leaq 0xb759d(%rip), %rsi     # 0x160177
leaq 0xca18b(%rip), %rdx     # 0x172d6c
leaq 0xca066(%rip), %rcx     # 0x172c4e
leaq 0xca005(%rip), %r8      # 0x172bf4
movl $0xc0, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x2ac(%rsp) # imm = 0xFFFFFFFF
jmp 0xa8c09
jmp 0xa8c0b
movq 0x2a0(%rsp), %rdi
movl $0xfffffffc, %esi       # imm = 0xFFFFFFFC
callq 0x4f100
jmp 0xa8c1f
movq 0x298(%rsp), %rdi
callq 0x1afc0
movq 0x2a0(%rsp), %rdi
callq 0x55070
movl 0x2ac(%rsp), %eax
addq $0x2b8, %rsp            # imm = 0x2B8
retq
nopl (%rax,%rax)