libcdio-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Libcdio-devel] [PATCH] Add UDF test for Logical Volume ID


From: Pete Batard
Subject: [Libcdio-devel] [PATCH] Add UDF test for Logical Volume ID
Date: Tue, 29 Oct 2013 19:54:02 +0000
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.0.1

As promised.

This should produce the following when running make test:

-- Volume id: NEU
PASS: testudf

Regards,

/Pete
>From d3705b04c06592e2a22834d146e5c653fae21264 Mon Sep 17 00:00:00 2001
From: Pete Batard <address@hidden>
Date: Tue, 29 Oct 2013 19:45:47 +0000
Subject: [PATCH] Add UDF test for Logical Volume ID

---
 configure.ac      |    1 +
 test/.gitignore   |    2 +
 test/Makefile.am  |    6 +++-
 test/testudf.c.in |   79 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 86 insertions(+), 2 deletions(-)
 create mode 100755 test/testudf.c.in

diff --git a/configure.ac b/configure.ac
index a7ff495..2a87677 100755
--- a/configure.ac
+++ b/configure.ac
@@ -721,6 +721,7 @@ AC_CONFIG_FILES([
        test/testisorr.c \
        test/testisocd2.c \
        test/testpregap.c \
+       test/testudf.c \
        test/Makefile \
        ])
 
diff --git a/test/.gitignore b/test/.gitignore
index 9a703ea..4468b05 100755
--- a/test/.gitignore
+++ b/test/.gitignore
@@ -45,3 +45,5 @@
 /testpregap.c
 /testsolaris
 /testtoc
+/testudf
+/testudf.c
diff --git a/test/Makefile.am b/test/Makefile.am
index 2bd278c..be7e1f5 100755
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -22,7 +22,7 @@ SUBDIRS = data driver
 
 hack = check_sizeof testassert testgetdevices testischar \
        testisocd testisocd2 testisocd_joliet testiso9660 \
-       testisorr test_lib_driver_util \
+       testisorr test_lib_driver_util testudf \
        testpregap
 
 DATA_DIR       = @abs_top_srcdir@/test/data
@@ -41,6 +41,8 @@ testisocd2_LDADD      = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) 
$(LTLIBICONV)
 testisocd_joliet_LDADD= $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
 testisorr_LDADD       = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
 
+testudf_LDADD         = $(LIBUDF_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
+
 test_lib_driver_util_LDADD    = $(LIBCDIO_LIBS) $(LTLIBICONV)
 test_lib_driver_util_CFLAGS   = -DDATA_DIR=\"$(DATA_DIR)\"
 
@@ -70,7 +72,7 @@ check_DATA = vcd_demo.right vcd_demo_vcdinfo.right \
 EXTRA_DIST = $(check_SCRIPTS) $(check_DATA) \
        check_common_fn check_cue.sh.in check_nrg.sh.in \
        testpregap.c.in testisorr.c.in check_legal.regex \
-       testgetdevices.c.in check_iso.sh.in \
+       testgetdevices.c.in check_iso.sh.in testudf.c.in \
        check_iso_read.sh.in
 
 TESTS = $(check_PROGRAMS) $(check_SCRIPTS)
diff --git a/test/testudf.c.in b/test/testudf.c.in
new file mode 100755
index 0000000..2042629
--- /dev/null
+++ b/test/testudf.c.in
@@ -0,0 +1,79 @@
+/*
+  Copyright (C) 2013 Rocky Bernstein <address@hidden>
+  Copyright (C) 2013 Pete Batard <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/>.
+*/
+
+/* Tests reading UDF info from an UDF image.  */
+
+#define UDF_IMAGE "@native_abs_top_srcdir@/test/udf102.iso"
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#define __CDIO_CONFIG_H__ 1
+#endif
+
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+
+#include <cdio/cdio.h>
+#include <cdio/udf.h>
+
+int
+main(int argc, const char *argv[])
+{
+  char const *psz_fname = UDF_IMAGE;
+  char volume_id[192];         /* 3*64 to account for UTF-8 */
+  udf_t* p_udf = NULL;
+  udf_dirent_t* p_udf_root;
+
+  p_udf = udf_open(psz_fname);
+
+  if (NULL == p_udf) {
+    fprintf(stderr, "Sorry, couldn't open %s as an UDF image\n",
+      psz_fname);
+    return 1;
+  }
+
+  p_udf_root = udf_get_root(p_udf, true, 0);
+  if (NULL == p_udf_root) {
+    fprintf(stderr, "Could not locate UDF root directory\n");
+    return 2;
+  }
+
+  if (udf_get_logical_volume_id(p_udf, volume_id, sizeof(volume_id)) <= 0) {
+    fprintf(stderr, "UDF image %s has no logical volume ID\n",
+      psz_fname);
+    return 3;
+  } 
+  printf("-- Volume id: %s\n", volume_id);
+
+  udf_close(p_udf);
+
+  return 0;
+}
-- 
1.7.4.4


reply via email to

[Prev in Thread] Current Thread [Next in Thread]