void check_header(const ar::iso::header& old, const ar::iso::header& now)
{
    BOOST_CHECK_EQUAL(old.path.string(), now.path.string());
    BOOST_CHECK_EQUAL(static_cast<unsigned>(now.version), 0u);
    BOOST_CHECK_EQUAL(old.link_path.string(), now.link_path.string());
    BOOST_CHECK(now.data_pos != 0u);
    BOOST_CHECK_EQUAL(old.file_size, now.file_size);
    BOOST_CHECK(::date_time_equal_sec(old.recorded_time, now.recorded_time));
    BOOST_CHECK_BITWISE_EQUAL(old.flags, now.flags);
    BOOST_CHECK(old.attributes == now.attributes);
    if (old.attributes && now.attributes)
    {
        BOOST_CHECK_EQUAL(
            old.attributes->permissions, now.attributes->permissions);
        BOOST_CHECK_EQUAL(old.attributes->links, now.attributes->links);
        BOOST_CHECK_EQUAL(old.attributes->uid, now.attributes->uid);
        BOOST_CHECK_EQUAL(old.attributes->gid, now.attributes->gid);
        BOOST_CHECK_EQUAL(old.attributes->serial_no, now.attributes->serial_no);
    }
    BOOST_CHECK(old.device_number == now.device_number);
    BOOST_CHECK(date_time_equal_sec(old.creation_time, now.creation_time));
    BOOST_CHECK(date_time_equal_sec(old.last_write_time, now.last_write_time));
    BOOST_CHECK(
        date_time_equal_sec(old.last_access_time, now.last_access_time));
    BOOST_CHECK(
        date_time_equal_sec(old.last_change_time, now.last_change_time));
    BOOST_CHECK(
        date_time_equal_sec(old.last_backup_time, now.last_backup_time));
    BOOST_CHECK(date_time_equal_sec(old.expiration_time, now.expiration_time));
    BOOST_CHECK(date_time_equal_sec(old.effective_time, now.effective_time));
}
void check_header(const ar::iso::header& old, const ar::iso::header& now)
{
    BOOST_CHECK_EQUAL(old.path.string(), now.path.string());
    BOOST_CHECK_EQUAL(
        static_cast<unsigned>(old.version), static_cast<unsigned>(now.version));
    BOOST_CHECK_EQUAL(old.link_path.string(), now.link_path.string());
    BOOST_CHECK(now.data_pos != 0u);
    BOOST_CHECK_EQUAL(old.file_size, now.file_size);
    BOOST_CHECK(::date_time_equal_sec(old.recorded_time, now.recorded_time));
    BOOST_CHECK_BITWISE_EQUAL(old.flags, now.flags);
    BOOST_CHECK_EQUAL(old.system_use, now.system_use);
    BOOST_CHECK(!now.attributes);
    BOOST_CHECK(!now.device_number);
    BOOST_CHECK(now.creation_time.empty());
    BOOST_CHECK(now.last_write_time.empty());
    BOOST_CHECK(now.last_access_time.empty());
    BOOST_CHECK(now.last_change_time.empty());
    BOOST_CHECK(now.last_backup_time.empty());
    BOOST_CHECK(now.expiration_time.empty());
    BOOST_CHECK(now.effective_time.empty());
}
void do_bitwise_eq()
{
    int i = 62;

    BOOST_CHECK_BITWISE_EQUAL( i, 144 );
}