int main(int argc, const char *argv[]) { CdIo_t *p_cdio; char **ppsz_drives=NULL; int n=0; cdio_loglevel_default = (argc > 1) ? CDIO_LOG_DEBUG : CDIO_LOG_INFO; /* snprintf(psz_nrgfile, sizeof(psz_nrgfile)-1, "%s/%s", TEST_DIR, cue_file[i]); */ if (!cdio_have_driver(DRIVER_OSX)) return(77); ppsz_drives = cdio_get_devices(DRIVER_DEVICE); if (!ppsz_drives) { printf("Can't find a CD-ROM drive. Skipping test.\n"); exit(77); } do { p_cdio = cdio_open_osx(ppsz_drives[n]); if (p_cdio) { const char *psz_source = cdio_get_arg(p_cdio, "source"); const char *psz_access_mode = cdio_get_arg(p_cdio, "access-mode"); discmode_t discmode = cdio_get_discmode(p_cdio); if (0 != strncmp(psz_source, ppsz_drives[0], strlen(ppsz_drives[0]))) { fprintf(stderr, "Got %s; should get back %s, the name we opened.\n", psz_source, ppsz_drives[0]); exit(1); } if (0 != strncmp(psz_access_mode, "OS X", strlen("OS X"))) { fprintf(stderr, "Got %s; Should get back %s, the access mode requested.\n", psz_access_mode, "OS X"); exit(2); } if (CDIO_DISC_MODE_ERROR == discmode) { fprintf(stderr, "Error getting disc mode for device %s.\n", ppsz_drives[n]); exit(3); } } cdio_destroy(p_cdio); } while (ppsz_drives[++n] != NULL); cdio_free_device_list(ppsz_drives); return 0; }
int main(int argc, const char *argv[]) { CdIo_t *p_cdio; char **ppsz_drives=NULL; cdio_loglevel_default = (argc > 1) ? CDIO_LOG_DEBUG : CDIO_LOG_INFO; /* snprintf(psz_nrgfile, sizeof(psz_nrgfile)-1, "%s/%s", TEST_DIR, cue_file[i]); */ if (!cdio_have_driver(DRIVER_SOLARIS)) return(77); ppsz_drives = cdio_get_devices(DRIVER_DEVICE); if (!ppsz_drives) { printf("Can't find a CD-ROM drive. Skipping test.\n"); exit(77); } p_cdio = cdio_open_linux(ppsz_drives[0]); if (p_cdio) { const char *psz_source = cdio_get_arg(p_cdio, "source"); if (0 != strncmp(psz_source, ppsz_drives[0], strlen(ppsz_drives[0]))) { fprintf(stderr, "Got %s; should get back %s, the name we opened.\n", psz_source, ppsz_drives[0]); exit(1); } } cdio_destroy(p_cdio); p_cdio = cdio_open_am_linux(ppsz_drives[0], "SCSI"); if (p_cdio) { const char *psz_access_mode = cdio_get_arg(p_cdio, "access-mode"); if (0 != strncmp(psz_access_mode, "SCSI", strlen("SCSI"))) { fprintf(stderr, "Got %s; Should get back %s, the access mode requested.\n", psz_access_mode, "SCSI"); exit(2); } } cdio_destroy(p_cdio); cdio_free_device_list(ppsz_drives); return 0; }
void check_get_arg_source(CdIo_t *p_cdio, const char *psz_expected_source) { const char *psz_source = cdio_get_arg(p_cdio, "source"); if ( psz_source == NULL || (0 != strcmp(psz_expected_source, psz_source)) ) { fprintf(stderr, "cdio_get_arg(\"source\") should return \"%s\"; got: \"%s\".\n", psz_expected_source, psz_source); exit(40); } }
void check_access_mode(CdIo_t *p_cdio, const char *psz_expected_access_mode) { const char *psz_access_mode = cdio_get_arg(p_cdio, "access-mode"); if ( psz_access_mode == NULL || (0 != strcmp(psz_expected_access_mode, psz_access_mode)) ) { fprintf(stderr, "cdio_get_arg(\"access-mode?\") should return \"%s\"; got: \"%s\".\n", psz_expected_access_mode, psz_access_mode); exit(10); } }
/** Returns a paranoia CD-ROM drive object with a CD-DA in it or NULL if there was an error. In contrast to cdio_cddap_identify, we start out with an initialized p_cdio object. For example you may have used that for other purposes such as to get CDDB/CD-Text information. @see cdio_cddap_identify */ cdrom_drive_t * cdio_cddap_identify_cdio(CdIo_t *p_cdio, int messagedest, char **ppsz_messages) { if (!p_cdio) return NULL; { const char *psz_device = cdio_get_arg(p_cdio, "source"); idmessage(messagedest, ppsz_messages, "Checking %s for cdrom...", psz_device); return cdda_identify_device_cdio(p_cdio, psz_device, messagedest, ppsz_messages); } }
/* i_expected: 1 => expect false 2 => expect true 3 => expect true or false */ void check_mmc_supported(CdIo_t *p_cdio, int i_expected) { const char *psz_response = cdio_get_arg(p_cdio, "mmc-supported?"); if ( psz_response == NULL ) { fprintf(stderr, "cdio_get_arg(\"mmc-supported?\") returned NULL\n"); exit(30); } else if ( (0 == (i_expected & 1)) && (0 == strncmp("false", psz_response, sizeof("false"))) ) { fprintf(stderr, "cdio_get_arg(\"mmc-supported?\") should not return \"false\""); exit(31); } else if ( (0 == (i_expected & 2)) && (0 == strncmp("true", psz_response, sizeof("true"))) ) { fprintf(stderr, "cdio_get_arg(\"mmc-supported?\") should not return \"true\""); exit(32); } }
/** Returns a paranoia CD-ROM drive object with a CD-DA in it or NULL if there was an error. @see cdio_cddap_identify_cdio */ cdrom_drive_t * cdio_cddap_identify(const char *psz_dev, int messagedest, char **ppsz_messages) { CdIo_t *p_cdio = NULL; if (psz_dev) idmessage(messagedest, ppsz_messages, "Checking %s for cdrom...", psz_dev); else idmessage(messagedest, ppsz_messages, "Checking for cdrom...", NULL); #ifdef DEVICE_IN_FILESYSTEM if (psz_dev) { char *psz_device = test_resolve_symlink(psz_dev, messagedest, ppsz_messages); if ( psz_device ) { cdrom_drive_t *d=NULL; p_cdio = cdio_open(psz_device, DRIVER_UNKNOWN); d = cdda_identify_device_cdio(p_cdio, psz_device, messagedest, ppsz_messages); free(psz_device); return d; } } #endif p_cdio = cdio_open(psz_dev, DRIVER_UNKNOWN); if (p_cdio) { if (!psz_dev) { psz_dev = cdio_get_arg(p_cdio, "source"); } return cdda_identify_device_cdio(p_cdio, psz_dev, messagedest, ppsz_messages); } return NULL; }