Ejemplo n.º 1
0
static bool
interval_tree_write_1(interval_tree_node node, int fd,
					  interval_tree_write_data * data)
{
	bool r;

	/* Process left subtree.  */
	if (node->left)
	{
		r = interval_tree_write_1(node->left, fd, data);
		if (!r)
			return r;
	}

	/* Process current node.  */
	data->intervals[data->n].start = u64_to_le(INTERVAL_START(node));
	data->intervals[data->n].end = u64_to_le(INTERVAL_END(node));
	data->n++;
	if (data->n == INTERVAL_COUNT)
	{
		r = full_write(fd, data->intervals, INTERVAL_COUNT * sizeof(interval));
		if (!r)
			return r;
		data->n = 0;
	}

	/* Process right subtree.  */
	if (node->right)
	{
		r = interval_tree_write_1(node->right, fd, data);
		if (!r)
			return r;
	}

	return true;
}
Ejemplo n.º 2
0
Archivo: hts_endian.c Proyecto: atks/vt
static int t64_bit(int verbose) {
    uint8_t buf[9];
    size_t i;
    int errors = 0;

    for (i = 0; i < NELE(tests_64_bit); i++) {
        uint64_t u64;
        int64_t  i64;

        if (verbose) {
            fprintf(stderr, "%s %20"PRId64" %20"PRIu64"\n",
                    to_hex(tests_64_bit[i].u8, 8),
                    tests_64_bit[i].i64, tests_64_bit[i].u64);
        }

        u64 = le_to_u64(tests_64_bit[i].u8);
        if (u64 != tests_64_bit[i].u64) {
            fprintf(stderr, "Failed %s => %"PRIu64"; expected %"PRIu64"\n",
                    to_hex(tests_64_bit[i].u8, 8), u64, tests_64_bit[i].u64);
            errors++;
        }

        i64 = le_to_i64(tests_64_bit[i].u8);
        if (i64 != tests_64_bit[i].i64) {
            fprintf(stderr, "Failed %s => %"PRId64"; expected %"PRId64"\n",
                    to_hex(tests_64_bit[i].u8, 8), i64, tests_64_bit[i].i64);
            errors++;
        }

        u64 = le_to_u64(tests_64_bit[i].u8_unaligned + 1);
        if (u64 != tests_64_bit[i].u64) {
            fprintf(stderr,
                    "Failed unaligned %s => %"PRIu64"; expected %"PRIu64"\n",
                    to_hex(tests_64_bit[i].u8_unaligned + 1, 8),
                    u64, tests_64_bit[i].u64);
            errors++;
        }

        i64 = le_to_i64(tests_64_bit[i].u8_unaligned + 1);
        if (i64 != tests_64_bit[i].i64) {
            fprintf(stderr,
                    "Failed unaligned %s => %"PRId64"; expected %"PRId64"\n",
                    to_hex(tests_64_bit[i].u8_unaligned + 1, 8),
                    i64, tests_64_bit[i].i64);
            errors++;
        }

        u64_to_le(tests_64_bit[i].u64, buf);
        if (memcmp(buf, tests_64_bit[i].u8, 8) != 0) {
            fprintf(stderr, "Failed %"PRIu64" => %s; expected %s\n",
                    tests_64_bit[i].u64,
                    to_hex(buf, 8), to_hex(tests_64_bit[i].u8, 8));
            errors++;
        }

        i64_to_le(tests_64_bit[i].i64, buf);
        if (memcmp(buf, tests_64_bit[i].u8, 8) != 0) {
            fprintf(stderr, "Failed %"PRId64" => %s; expected %s\n",
                    tests_64_bit[i].i64,
                    to_hex(buf, 8), to_hex(tests_64_bit[i].u8, 8));
            errors++;
        }

        u64_to_le(tests_64_bit[i].u64, buf + 1);
        if (memcmp(buf + 1, tests_64_bit[i].u8, 8) != 0) {
            fprintf(stderr, "Failed unaligned %"PRIu64" => %s; expected %s\n",
                    tests_64_bit[i].u64,
                    to_hex(buf + 1, 8), to_hex(tests_64_bit[i].u8, 8));
            errors++;
        }

        i64_to_le(tests_64_bit[i].i64, buf + 1);
        if (memcmp(buf + 1, tests_64_bit[i].u8, 8) != 0) {
            fprintf(stderr, "Failed unaligned %"PRId64" => %s; expected %s\n",
                    tests_64_bit[i].i64,
                    to_hex(buf + 1, 8), to_hex(tests_64_bit[i].u8, 8));
            errors++;
        }
    }

    return errors;
}