Don't eject a CDROM drive door in testing.

This commit is contained in:
R. Bernstein
2009-12-26 14:33:31 -05:00
parent fe5ac400df
commit e06e0d096b

View File

@@ -41,6 +41,7 @@ main(int argc, const char *argv[])
driver_id_t driver_id = DRIVER_DEVICE; driver_id_t driver_id = DRIVER_DEVICE;
char *psz_drive = NULL; char *psz_drive = NULL;
bool do_eject = false; bool do_eject = false;
bool do_close = false;
if (argc > 1) if (argc > 1)
psz_drive = strdup(argv[1]); psz_drive = strdup(argv[1]);
@@ -64,6 +65,7 @@ main(int argc, const char *argv[])
case 0: case 0:
printf("CD-ROM drive %s is closed.\n", psz_drive); printf("CD-ROM drive %s is closed.\n", psz_drive);
do_eject = true; do_eject = true;
do_close = true;
break; break;
case 1: case 1:
printf("CD-ROM drive %s is open.\n", psz_drive); printf("CD-ROM drive %s is open.\n", psz_drive);
@@ -71,7 +73,7 @@ main(int argc, const char *argv[])
default: default:
printf("Error status for drive %s: %s.\n", psz_drive, printf("Error status for drive %s: %s.\n", psz_drive,
cdio_driver_errmsg(ret)); cdio_driver_errmsg(ret));
return 1; return 77;
} }
ret = mmc_get_media_changed(p_cdio); ret = mmc_get_media_changed(p_cdio);
@@ -85,10 +87,10 @@ main(int argc, const char *argv[])
default: default:
printf("Error status for drive %s: %s.\n", psz_drive, printf("Error status for drive %s: %s.\n", psz_drive,
cdio_driver_errmsg(ret)); cdio_driver_errmsg(ret));
return 1; return 77;
} }
if (do_eject) if (do_eject && argc > 2)
ret = cdio_eject_media_drive(psz_drive); ret = cdio_eject_media_drive(psz_drive);
else else
ret = cdio_close_tray(psz_drive, &driver_id); ret = cdio_close_tray(psz_drive, &driver_id);
@@ -104,7 +106,7 @@ main(int argc, const char *argv[])
default: default:
printf("Error status for drive %s: %s.\n", psz_drive, printf("Error status for drive %s: %s.\n", psz_drive,
cdio_driver_errmsg(ret)); cdio_driver_errmsg(ret));
return 1; return 77;
} }
ret = mmc_get_media_changed(p_cdio); ret = mmc_get_media_changed(p_cdio);
@@ -118,9 +120,12 @@ main(int argc, const char *argv[])
default: default:
printf("Error status for drive %s: %s.\n", psz_drive, printf("Error status for drive %s: %s.\n", psz_drive,
cdio_driver_errmsg(ret)); cdio_driver_errmsg(ret));
return 1; return 77;
} }
if (do_close)
cdio_close_tray(psz_drive, &driver_id);
free(psz_drive); free(psz_drive);
cdio_destroy(p_cdio); cdio_destroy(p_cdio);