test_dir ()
{
  gchar * D.6507;
  struct GError * error.0;
  const gchar * D.6515;
  int D.6488;
  int iftmp.1;
  int D.6487;
  char[2] * D.6525;
  unsigned char D.6526;
  int D.6527;
  unsigned char D.6528;
  int D.6529;
  _Bool D.6530;
  _Bool D.6531;
  _Bool D.6532;
  const unsigned char * D.6535;
  unsigned char D.6536;
  int D.6537;
  const unsigned char * D.6538;
  unsigned char D.6539;
  int D.6540;
  _Bool D.6541;
  _Bool D.6542;
  const unsigned char * D.6545;
  unsigned char D.6546;
  int D.6547;
  const unsigned char * D.6548;
  unsigned char D.6549;
  int D.6550;
  _Bool D.6551;
  _Bool D.6552;
  const unsigned char * D.6555;
  unsigned char D.6556;
  int D.6557;
  const unsigned char * D.6558;
  unsigned char D.6559;
  int D.6560;
  int D.6497;
  int iftmp.2;
  int D.6496;
  char[3] * D.6567;
  unsigned char D.6568;
  int D.6569;
  unsigned char D.6570;
  int D.6571;
  _Bool D.6572;
  _Bool D.6573;
  _Bool D.6574;
  const unsigned char * D.6577;
  unsigned char D.6578;
  int D.6579;
  const unsigned char * D.6580;
  unsigned char D.6581;
  int D.6582;
  _Bool D.6583;
  _Bool D.6584;
  const unsigned char * D.6587;
  unsigned char D.6588;
  int D.6589;
  const unsigned char * D.6590;
  unsigned char D.6591;
  int D.6592;
  _Bool D.6593;
  _Bool D.6594;
  const unsigned char * D.6597;
  unsigned char D.6598;
  int D.6599;
  const unsigned char * D.6600;
  unsigned char D.6601;
  int D.6602;
  struct GDir * dir;
  struct GError * error;
  const gchar * name;

  try
    {
      dir = monoeg_g_dir_open ("", 0, 0B);
      if (dir != 0B) goto <D.6505>; else goto <D.6506>;
      <D.6505>:
      D.6507 = FAILED ("1 Should be an error");
      return D.6507;
      <D.6506>:
      dir = monoeg_g_dir_open ("", 9, 0B);
      if (dir != 0B) goto <D.6508>; else goto <D.6509>;
      <D.6508>:
      D.6507 = FAILED ("2 Should be an error");
      return D.6507;
      <D.6509>:
      error = 0B;
      dir = monoeg_g_dir_open (".ljasdslakjd", 9, &error);
      if (dir != 0B) goto <D.6510>; else goto <D.6511>;
      <D.6510>:
      D.6507 = FAILED ("3 opendir should fail");
      return D.6507;
      <D.6511>:
      error.0 = error;
      if (error.0 == 0B) goto <D.6513>; else goto <D.6514>;
      <D.6513>:
      D.6507 = FAILED ("4 got no error");
      return D.6507;
      <D.6514>:
      error.0 = error;
      monoeg_g_error_free (error.0);
      error = 0B;
      D.6515 = monoeg_g_get_tmp_dir ();
      dir = monoeg_g_dir_open (D.6515, 9, &error);
      if (dir == 0B) goto <D.6516>; else goto <D.6517>;
      <D.6516>:
      D.6507 = FAILED ("5 opendir should succeed");
      return D.6507;
      <D.6517>:
      error.0 = error;
      if (error.0 != 0B) goto <D.6518>; else goto <D.6519>;
      <D.6518>:
      D.6507 = FAILED ("6 got an error");
      return D.6507;
      <D.6519>:
      name = 0B;
      name = monoeg_g_dir_read_name (dir);
      if (name == 0B) goto <D.6520>; else goto <D.6521>;
      <D.6520>:
      D.6507 = FAILED ("7 didn\'t read a file name");
      return D.6507;
      <D.6521>:
      goto <D.6499>;
      <D.6498>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 1;
        if (__s2_len <= 3) goto <D.6523>; else goto <D.6524>;
        <D.6523>:
        {
          const unsigned char * __s2;
          int __result;

          __s2 = name;
          D.6525 = ".";
          D.6526 = MEM[(const unsigned char *)D.6525];
          D.6527 = (int) D.6526;
          D.6528 = *__s2;
          D.6529 = (int) D.6528;
          __result = D.6527 - D.6529;
          {
            D.6530 = __s2_len != 0;
            D.6531 = __result == 0;
            D.6532 = D.6530 & D.6531;
            if (D.6532 != 0) goto <D.6533>; else goto <D.6534>;
            <D.6533>:
            D.6535 = &MEM[(void *)"." + 1B];
            D.6536 = *D.6535;
            D.6537 = (int) D.6536;
            D.6538 = __s2 + 1;
            D.6539 = *D.6538;
            D.6540 = (int) D.6539;
            __result = D.6537 - D.6540;
            D.6541 = __s2_len > 1;
            D.6531 = __result == 0;
            D.6542 = D.6541 & D.6531;
            if (D.6542 != 0) goto <D.6543>; else goto <D.6544>;
            <D.6543>:
            D.6545 = &MEM[(void *)"." + 2B];
            D.6546 = *D.6545;
            D.6547 = (int) D.6546;
            D.6548 = __s2 + 2;
            D.6549 = *D.6548;
            D.6550 = (int) D.6549;
            __result = D.6547 - D.6550;
            D.6551 = __s2_len > 2;
            D.6531 = __result == 0;
            D.6552 = D.6551 & D.6531;
            if (D.6552 != 0) goto <D.6553>; else goto <D.6554>;
            <D.6553>:
            D.6555 = &MEM[(void *)"." + 3B];
            D.6556 = *D.6555;
            D.6557 = (int) D.6556;
            D.6558 = __s2 + 3;
            D.6559 = *D.6558;
            D.6560 = (int) D.6559;
            __result = D.6557 - D.6560;
            <D.6554>:
            <D.6544>:
            <D.6534>:
          }
          D.6487 = __result;
        }
        iftmp.1 = -D.6487;
        goto <D.6561>;
        <D.6524>:
        iftmp.1 = __builtin_strcmp (name, ".");
        <D.6561>:
        D.6488 = iftmp.1;
      }
      if (D.6488 == 0) goto <D.6562>; else goto <D.6563>;
      <D.6562>:
      D.6507 = FAILED (". directory found");
      return D.6507;
      <D.6563>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 2;
        if (__s2_len <= 3) goto <D.6565>; else goto <D.6566>;
        <D.6565>:
        {
          const unsigned char * __s2;
          int __result;

          __s2 = name;
          D.6567 = "..";
          D.6568 = MEM[(const unsigned char *)D.6567];
          D.6569 = (int) D.6568;
          D.6570 = *__s2;
          D.6571 = (int) D.6570;
          __result = D.6569 - D.6571;
          {
            D.6572 = __s2_len != 0;
            D.6573 = __result == 0;
            D.6574 = D.6572 & D.6573;
            if (D.6574 != 0) goto <D.6575>; else goto <D.6576>;
            <D.6575>:
            D.6577 = &MEM[(void *)".." + 1B];
            D.6578 = *D.6577;
            D.6579 = (int) D.6578;
            D.6580 = __s2 + 1;
            D.6581 = *D.6580;
            D.6582 = (int) D.6581;
            __result = D.6579 - D.6582;
            D.6583 = __s2_len > 1;
            D.6573 = __result == 0;
            D.6584 = D.6583 & D.6573;
            if (D.6584 != 0) goto <D.6585>; else goto <D.6586>;
            <D.6585>:
            D.6587 = &MEM[(void *)".." + 2B];
            D.6588 = *D.6587;
            D.6589 = (int) D.6588;
            D.6590 = __s2 + 2;
            D.6591 = *D.6590;
            D.6592 = (int) D.6591;
            __result = D.6589 - D.6592;
            D.6593 = __s2_len > 2;
            D.6573 = __result == 0;
            D.6594 = D.6593 & D.6573;
            if (D.6594 != 0) goto <D.6595>; else goto <D.6596>;
            <D.6595>:
            D.6597 = &MEM[(void *)".." + 3B];
            D.6598 = *D.6597;
            D.6599 = (int) D.6598;
            D.6600 = __s2 + 3;
            D.6601 = *D.6600;
            D.6602 = (int) D.6601;
            __result = D.6599 - D.6602;
            <D.6596>:
            <D.6586>:
            <D.6576>:
          }
          D.6496 = __result;
        }
        iftmp.2 = -D.6496;
        goto <D.6603>;
        <D.6566>:
        iftmp.2 = __builtin_strcmp (name, "..");
        <D.6603>:
        D.6497 = iftmp.2;
      }
      if (D.6497 == 0) goto <D.6604>; else goto <D.6605>;
      <D.6604>:
      D.6507 = FAILED (".. directory found");
      return D.6507;
      <D.6605>:
      <D.6499>:
      name = monoeg_g_dir_read_name (dir);
      if (name != 0B) goto <D.6498>; else goto <D.6500>;
      <D.6500>:
      monoeg_g_dir_close (dir);
      D.6507 = 0B;
      return D.6507;
    }
  finally
    {
      error = {CLOBBER};
    }
}


dir_tests_init ()
{
  struct Test * D.6608;

  D.6608 = &dir_tests;
  return D.6608;
}


