libextractor

GNU libextractor
Log | Files | Refs | Submodules | README | LICENSE

commit b7382eee137f67f959da59912d5d9b9e5587e834
parent dc0861ada7e0bdd8754b86bcb0dc533ca1df02d2
Author: Christian Grothoff <christian@grothoff.org>
Date:   Tue, 14 Aug 2012 22:32:03 +0000

nsfe testcase and nsfe fixes

Diffstat:
Msrc/plugins/Makefile.am | 9++++++++-
Msrc/plugins/nsfe_extractor.c | 4++--
Asrc/plugins/test_nsfe.c | 133+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/plugins/testdata/nsfe_classics.nsfe | 0
4 files changed, 143 insertions(+), 3 deletions(-)

diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am @@ -33,7 +33,8 @@ EXTRA_DIST = template_extractor.c \ testdata/png_image.png \ testdata/odf_cg.odt \ testdata/deb_bzip2.deb \ - testdata/nsf_arkanoid.nsf + testdata/nsf_arkanoid.nsf \ + testdata/nsfe_classics.nsfe if HAVE_VORBISFILE PLUGIN_OGG=libextractor_ogg.la @@ -119,6 +120,7 @@ check_PROGRAMS = \ test_odf \ test_zip \ test_nsf \ + test_nsfe \ $(TEST_ZLIB) \ $(TEST_OGG) \ $(TEST_MIME) \ @@ -177,6 +179,11 @@ libextractor_nsfe_la_SOURCES = \ libextractor_nsfe_la_LDFLAGS = \ $(PLUGINFLAGS) +test_nsfe_SOURCES = \ + test_nsfe.c +test_nsfe_LDADD = \ + $(top_builddir)/src/plugins/libtest.la + libextractor_odf_la_SOURCES = \ odf_extractor.c diff --git a/src/plugins/nsfe_extractor.c b/src/plugins/nsfe_extractor.c @@ -371,10 +371,10 @@ EXTRACTOR_nsfe_extract_method (struct EXTRACTOR_ExtractContext *ec) if (8 > ec->read (ec->cls, &data, - sizeof (struct header))) + 8)) break; chunksize = nsfeuint (data); - off += 4 + chunksize; + off += 8 + chunksize; if (0 == memcmp (data + 4, "INFO", 4)) ret = info_extract (ec, chunksize); else if (0 == memcmp (data + 4, "auth", 4)) diff --git a/src/plugins/test_nsfe.c b/src/plugins/test_nsfe.c @@ -0,0 +1,133 @@ +/* + This file is part of libextractor. + (C) 2012 Vidyut Samanta and Christian Grothoff + + libextractor 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, or (at your + option) any later version. + + libextractor 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 libextractor; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. +*/ +/** + * @file plugins/test_nsfe.c + * @brief testcase for nsfe plugin + * @author Christian Grothoff + */ +#include "platform.h" +#include "test_lib.h" + + + +/** + * Main function for the NSFE testcase. + * + * @param argc number of arguments (ignored) + * @param argv arguments (ignored) + * @return 0 on success + */ +int +main (int argc, char *argv[]) +{ + struct SolutionData nsfe_classics_sol[] = + { + { + EXTRACTOR_METATYPE_MIMETYPE, + EXTRACTOR_METAFORMAT_UTF8, + "text/plain", + "audio/x-nsfe", + strlen ("audio/x-nsfe") + 1, + 0 + }, + { + EXTRACTOR_METATYPE_SONG_COUNT, + EXTRACTOR_METAFORMAT_UTF8, + "text/plain", + "2", + strlen ("2") + 1, + 0 + }, + { + EXTRACTOR_METATYPE_STARTING_SONG, + EXTRACTOR_METAFORMAT_UTF8, + "text/plain", + "0", + strlen ("0") + 1, + 0 + }, + { + EXTRACTOR_METATYPE_BROADCAST_TELEVISION_SYSTEM, + EXTRACTOR_METAFORMAT_UTF8, + "text/plain", + "PAL", + strlen ("PAL") + 1, + 0 + }, + { + EXTRACTOR_METATYPE_ALBUM, + EXTRACTOR_METAFORMAT_UTF8, + "text/plain", + "Adventures of Dr. Franken,The", + strlen ("Adventures of Dr. Franken,The") + 1, + 0 + }, + { + EXTRACTOR_METATYPE_ARTIST, + EXTRACTOR_METAFORMAT_UTF8, + "text/plain", + "Mark Cooksey", + strlen ("Mark Cooksey") + 1, + 0 + }, + { + EXTRACTOR_METATYPE_COPYRIGHT, + EXTRACTOR_METAFORMAT_UTF8, + "text/plain", + "1993 Motivetime LTD.", + strlen ("1993 Motivetime LTD.") + 1, + 0 + }, + { + EXTRACTOR_METATYPE_RIPPER, + EXTRACTOR_METAFORMAT_UTF8, + "text/plain", + "Gil_Galad", + strlen ("Gil_Galad") + 1, + 0 + }, + { + EXTRACTOR_METATYPE_TITLE, + EXTRACTOR_METAFORMAT_UTF8, + "text/plain", + "Bach: Prelude & Fugue In C Minor", + strlen ("Bach: Prelude & Fugue In C Minor") + 1, + 0 + }, + { + EXTRACTOR_METATYPE_TITLE, + EXTRACTOR_METAFORMAT_UTF8, + "text/plain", + "Beethoven: Moonlight Sonata", + strlen ("Beethoven: Moonlight Sonata") + 1, + 0 + }, + { 0, 0, NULL, NULL, 0, -1 } + }; + struct ProblemSet ps[] = + { + { "testdata/nsfe_classics.nsfe", + nsfe_classics_sol }, + { NULL, NULL } + }; + return ET_main ("nsfe", ps); +} + +/* end of test_nsfe.c */ diff --git a/src/plugins/testdata/nsfe_classics.nsfe b/src/plugins/testdata/nsfe_classics.nsfe Binary files differ.