[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Libcdio-devel] [PATCH v2 4/5] Add unit test for OS/2 driver
From: |
KO Myung-Hun |
Subject: |
[Libcdio-devel] [PATCH v2 4/5] Add unit test for OS/2 driver |
Date: |
Sun, 5 Feb 2017 20:24:10 +0900 |
---
test/driver/Makefile.am | 4 ++-
test/driver/os2.c | 94 +++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 97 insertions(+), 1 deletion(-)
create mode 100644 test/driver/os2.c
diff --git a/test/driver/Makefile.am b/test/driver/Makefile.am
index 53bdb845..376b2224 100644
--- a/test/driver/Makefile.am
+++ b/test/driver/Makefile.am
@@ -44,6 +44,8 @@ mmc_write_LDADD = $(LIBCDIO_LIBS) $(LTLIBICONV)
nrg_SOURCES = helper.c nrg.c
nrg_LDADD = $(LIBCDIO_LIBS) $(LTLIBICONV)
+os2_LDADD = $(LIBCDIO_LIBS) $(LTLIBICONV)
+
osx_LDADD = $(LIBCDIO_LIBS) $(LTLIBICONV)
track_SOURCES = track.c
@@ -56,7 +58,7 @@ win32_LDADD = $(LIBCDIO_LIBS) $(LTLIBICONV)
check_PROGRAMS = \
abs_path bincue cdda cdrdao freebsd gnu_linux \
logger mmc_read mmc_write nrg \
- osx realpath solaris track win32
+ os2 osx realpath solaris track win32
TESTS = $(check_PROGRAMS)
diff --git a/test/driver/os2.c b/test/driver/os2.c
new file mode 100644
index 00000000..4813aa73
--- /dev/null
+++ b/test/driver/os2.c
@@ -0,0 +1,94 @@
+/* -*- C -*-
+ Copyright (C) 2016 KO Myung-Hun <address@hidden>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/*
+ Unit test for lib/driver/os2.c
+*/
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#define __CDIO_CONFIG_H__ 1
+#endif
+
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#include <cdio/cdio.h>
+#include <cdio/logging.h>
+
+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_OS2)) 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_os2(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, "OS2", strlen("OS2"))) {
+ 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;
+}
--
2.11.0
- [Libcdio-devel] [PATCH v2 0/5] OS/2 patches, KO Myung-Hun, 2017/02/05
- [Libcdio-devel] [PATCH v2 3/5] Fix double-free in cd-drive.c when a device name is not specified, KO Myung-Hun, 2017/02/05
- [Libcdio-devel] [PATCH v2 2/5] Implement get_last_session_os2(), KO Myung-Hun, 2017/02/05
- [Libcdio-devel] [PATCH v2 1/5] Fix name conflicts of SafeDosDevIOCtl() with kLIBC v0.6.6, KO Myung-Hun, 2017/02/05
- [Libcdio-devel] [PATCH v2 4/5] Add unit test for OS/2 driver,
KO Myung-Hun <=
- [Libcdio-devel] [PATCH v2 5/5] Fix compilation on OS/2, KO Myung-Hun, 2017/02/05
- Re: [Libcdio-devel] [PATCH v2 0/5] OS/2 patches, Rocky Bernstein, 2017/02/05