#include "redump_dat.h"

#include <stdio.h>
#include <string.h>

int main(int argc, char **argv) {
    redump_verify_result result;
    int ok;

    if (argc != 2) {
        fprintf(stderr, "Usage: %s <Nintendo - GameCube.dat>\n",
                argc > 0 ? argv[0] : "test_redump_dat_verify");
        return 64;
    }

    redump_verify_result_init(&result);
    ok = redump_verify_dat_file(
        argv[1],
        UINT64_C(1459978240),
        "01b52739",
        "85a525df1481d0ad67d8761f832dca12",
        "06eb6d15b4d7f90ec0fed9ce9a77db41358d74ed",
        &result
    );

    printf("status=%s\n", redump_verify_status_string(result.status));
    printf("entries_scanned=%lu\n", result.entries_scanned);
    printf("exact_matches=%lu\n", result.exact_matches);
    printf("game_name=%s\n", result.game_name);
    printf("rom_name=%s\n", result.rom_name);

    if (!ok || result.status != REDUMP_VERIFY_MATCH)
        return 1;
    if (result.exact_matches < 1)
        return 2;
    if (strcmp(result.expected_crc32, "01b52739") != 0)
        return 3;
    if (strcmp(result.expected_md5, "85a525df1481d0ad67d8761f832dca12") != 0)
        return 4;
    if (strcmp(result.expected_sha1,
               "06eb6d15b4d7f90ec0fed9ce9a77db41358d74ed") != 0)
        return 5;

    return 0;
}
