Commit f16f764c authored by Andrea Shepard's avatar Andrea Shepard
Browse files

Add unit test for format_hex_number_for_helper_exit_status()

parent 4d671638
Loading
Loading
Loading
Loading
+39 −0
Original line number Diff line number Diff line
@@ -2464,6 +2464,44 @@ test_util_spawn_background_partial_read(void *ptr)
  tor_process_handle_destroy(process_handle, 1);
}

/**
 * Test for format_hex_number_for_helper_exit_status()
 */

static void
test_util_format_hex_number(void *ptr)
{
  int i, len;
  char buf[HEX_ERRNO_SIZE + 1];
  const struct {
    const char *str;
    unsigned int x;
  } test_data[] = {
    {"0", 0},
    {"1", 1},
    {"273A", 0x273a},
    {"FFFF", 0xffff},
#if UINT_MAX >= 0xffffffff
    {"31BC421D", 0x31bc421d},
    {"FFFFFFFF", 0xffffffff},
#endif
    {NULL, 0}
  };

  (void)ptr;

  for (i = 0; test_data[i].str != NULL; ++i) {
    len = format_hex_number_for_helper_exit_status(test_data[i].x,
        buf, HEX_ERRNO_SIZE);
    test_neq(len, 0);
    buf[len] = '\0';
    test_streq(buf, test_data[i].str);
  }

 done:
  return;
}

/**
 * Test that we can properly format q Windows command line
 */
@@ -3031,6 +3069,7 @@ struct testcase_t util_tests[] = {
  UTIL_TEST(spawn_background_ok, 0),
  UTIL_TEST(spawn_background_fail, 0),
  UTIL_TEST(spawn_background_partial_read, 0),
  UTIL_TEST(format_hex_number, 0),
  UTIL_TEST(join_win_cmdline, 0),
  UTIL_TEST(split_lines, 0),
  UTIL_TEST(n_bits_set, 0),