libextractor

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

test_exiv2.c (7776B)


      1 /*
      2      This file is part of libextractor.
      3      Copyright (C) 2012 Vidyut Samanta and Christian Grothoff
      4 
      5      libextractor is free software; you can redistribute it and/or modify
      6      it under the terms of the GNU General Public License as published
      7      by the Free Software Foundation; either version 3, or (at your
      8      option) any later version.
      9 
     10      libextractor is distributed in the hope that it will be useful, but
     11      WITHOUT ANY WARRANTY; without even the implied warranty of
     12      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     13      General Public License for more details.
     14 
     15      You should have received a copy of the GNU General Public License
     16      along with libextractor; see the file COPYING.  If not, write to the
     17      Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     18      Boston, MA 02110-1301, USA.
     19 */
     20 /**
     21  * @file plugins/test_exiv2.c
     22  * @brief testcase for exiv2 plugin
     23  * @author Christian Grothoff
     24  */
     25 #include "platform.h"
     26 #include "test_lib.h"
     27 
     28 
     29 /**
     30  * Main function for the EXIV2 testcase.
     31  *
     32  * @param argc number of arguments (ignored)
     33  * @param argv arguments (ignored)
     34  * @return 0 on success
     35  */
     36 int
     37 main (int argc, char *argv[])
     38 {
     39   struct SolutionData exiv2_iptc_sol[] = {
     40     {
     41       EXTRACTOR_METATYPE_GPS_LATITUDE_REF,
     42       EXTRACTOR_METAFORMAT_UTF8,
     43       "text/plain",
     44       "North",
     45       strlen ("North") + 1,
     46       0
     47     },
     48     {
     49       EXTRACTOR_METATYPE_GPS_LATITUDE,
     50       EXTRACTOR_METAFORMAT_UTF8,
     51       "text/plain",
     52       "28 ?deg 8' (18|17.585?)\" ?",
     53       strlen ("28 ?deg 8' (18|17.585?)\" ?") + 1,
     54       0,
     55       .regex = 1
     56     },
     57     {
     58       EXTRACTOR_METATYPE_GPS_LONGITUDE_REF,
     59       EXTRACTOR_METAFORMAT_UTF8,
     60       "text/plain",
     61       "West",
     62       strlen ("West") + 1,
     63       0
     64     },
     65     {
     66       EXTRACTOR_METATYPE_GPS_LONGITUDE,
     67       EXTRACTOR_METAFORMAT_UTF8,
     68       "text/plain",
     69       "14 ?deg 14' (22|21.713?)\" ?",
     70       strlen ("14 ?deg 14' (22|21.713?)\" ?"),
     71       0,
     72       .regex = 1
     73     },
     74     {
     75       EXTRACTOR_METATYPE_CAMERA_MAKE,
     76       EXTRACTOR_METAFORMAT_UTF8,
     77       "text/plain",
     78       "PENTAX Corporation",
     79       strlen ("PENTAX Corporation") + 1,
     80       0
     81     },
     82     {
     83       EXTRACTOR_METATYPE_CAMERA_MODEL,
     84       EXTRACTOR_METAFORMAT_UTF8,
     85       "text/plain",
     86       "PENTAX Optio W30",
     87       strlen ("PENTAX Optio W30") + 1,
     88       0
     89     },
     90     {
     91       EXTRACTOR_METATYPE_ORIENTATION,
     92       EXTRACTOR_METAFORMAT_UTF8,
     93       "text/plain",
     94       "top, left",
     95       strlen ("top, left") + 1,
     96       0
     97     },
     98     {
     99       EXTRACTOR_METATYPE_CREATION_DATE,
    100       EXTRACTOR_METAFORMAT_UTF8,
    101       "text/plain",
    102       "2008:06:29 16:06:10",
    103       strlen ("2008:06:29 16:06:10") + 1,
    104       0
    105     },
    106     {
    107       EXTRACTOR_METATYPE_EXPOSURE_BIAS,
    108       EXTRACTOR_METAFORMAT_UTF8,
    109       "text/plain",
    110       "0 EV",
    111       strlen ("0 EV") + 1,
    112       0
    113     },
    114     {
    115       EXTRACTOR_METATYPE_FLASH,
    116       EXTRACTOR_METAFORMAT_UTF8,
    117       "text/plain",
    118       "No, compulsory",
    119       strlen ("No, compulsory") + 1,
    120       0
    121     },
    122     {
    123       EXTRACTOR_METATYPE_FOCAL_LENGTH,
    124       EXTRACTOR_METAFORMAT_UTF8,
    125       "text/plain",
    126       "18.9 mm",
    127       strlen ("18.9 mm") + 1,
    128       0
    129     },
    130     {
    131       EXTRACTOR_METATYPE_FOCAL_LENGTH_35MM,
    132       EXTRACTOR_METAFORMAT_UTF8,
    133       "text/plain",
    134       "114.0 mm",
    135       strlen ("114.0 mm") + 1,
    136       0
    137     },
    138     {
    139       EXTRACTOR_METATYPE_ISO_SPEED,
    140       EXTRACTOR_METAFORMAT_UTF8,
    141       "text/plain",
    142       "64",
    143       strlen ("64") + 1,
    144       0
    145     },
    146     {
    147       EXTRACTOR_METATYPE_METERING_MODE,
    148       EXTRACTOR_METAFORMAT_UTF8,
    149       "text/plain",
    150       "Multi-segment",
    151       strlen ("Multi-segment") + 1,
    152       0
    153     },
    154     {
    155       EXTRACTOR_METATYPE_APERTURE,
    156       EXTRACTOR_METAFORMAT_UTF8,
    157       "text/plain",
    158       "F8",
    159       strlen ("F8") + 1,
    160       0
    161     },
    162     {
    163       EXTRACTOR_METATYPE_EXPOSURE,
    164       EXTRACTOR_METAFORMAT_UTF8,
    165       "text/plain",
    166       "1/320 s",
    167       strlen ("1/320 s") + 1,
    168       0
    169     },
    170     {
    171       EXTRACTOR_METATYPE_LOCATION_CITY,
    172       EXTRACTOR_METAFORMAT_UTF8,
    173       "text/plain",
    174       "Los Verdes",
    175       strlen ("Los Verdes") + 1,
    176       0
    177     },
    178     {
    179       EXTRACTOR_METATYPE_LOCATION_CITY,
    180       EXTRACTOR_METAFORMAT_UTF8,
    181       "text/plain",
    182       "Los Verdes",
    183       strlen ("Los Verdes") + 1,
    184       0
    185     },
    186     {
    187       EXTRACTOR_METATYPE_LOCATION_SUBLOCATION,
    188       EXTRACTOR_METAFORMAT_UTF8,
    189       "text/plain",
    190       "Fuerteventura",
    191       strlen ("Fuerteventura") + 1,
    192       0
    193     },
    194     {
    195       EXTRACTOR_METATYPE_LOCATION_COUNTRY,
    196       EXTRACTOR_METAFORMAT_UTF8,
    197       "text/plain",
    198       "Spain",
    199       strlen ("Spain") + 1,
    200       0
    201     },
    202     {
    203       EXTRACTOR_METATYPE_LOCATION_COUNTRY,
    204       EXTRACTOR_METAFORMAT_UTF8,
    205       "text/plain",
    206       "Spain",
    207       strlen ("Spain") + 1,
    208       0
    209     },
    210     {
    211       EXTRACTOR_METATYPE_KEYWORDS,
    212       EXTRACTOR_METAFORMAT_UTF8,
    213       "text/plain",
    214       "Fuerteventura",
    215       strlen ("Fuerteventura") + 1,
    216       0
    217     },
    218     {
    219       EXTRACTOR_METATYPE_KEYWORDS,
    220       EXTRACTOR_METAFORMAT_UTF8,
    221       "text/plain",
    222       "Landschaftsbild",
    223       strlen ("Landschaftsbild") + 1,
    224       0
    225     },
    226     {
    227       EXTRACTOR_METATYPE_KEYWORDS,
    228       EXTRACTOR_METAFORMAT_UTF8,
    229       "text/plain",
    230       "ProCenter Rene Egli",
    231       strlen ("ProCenter Rene Egli") + 1,
    232       0
    233     },
    234     {
    235       EXTRACTOR_METATYPE_KEYWORDS,
    236       EXTRACTOR_METAFORMAT_UTF8,
    237       "text/plain",
    238       "Sand",
    239       strlen ("Sand") + 1,
    240       0
    241     },
    242     {
    243       EXTRACTOR_METATYPE_KEYWORDS,
    244       EXTRACTOR_METAFORMAT_UTF8,
    245       "text/plain",
    246       "Sport",
    247       strlen ("Sport") + 1,
    248       0
    249     },
    250     {
    251       EXTRACTOR_METATYPE_KEYWORDS,
    252       EXTRACTOR_METAFORMAT_UTF8,
    253       "text/plain",
    254       "Urlaub",
    255       strlen ("Urlaub") + 1,
    256       0
    257     },
    258     {
    259       EXTRACTOR_METATYPE_KEYWORDS,
    260       EXTRACTOR_METAFORMAT_UTF8,
    261       "text/plain",
    262       "Was?",
    263       strlen ("Was?") + 1,
    264       0
    265     },
    266     {
    267       EXTRACTOR_METATYPE_KEYWORDS,
    268       EXTRACTOR_METAFORMAT_UTF8,
    269       "text/plain",
    270       "Wind",
    271       strlen ("Wind") + 1,
    272       0
    273     },
    274     {
    275       EXTRACTOR_METATYPE_KEYWORDS,
    276       EXTRACTOR_METAFORMAT_UTF8,
    277       "text/plain",
    278       "Windsurfen",
    279       strlen ("Windsurfen") + 1,
    280       0
    281     },
    282     {
    283       EXTRACTOR_METATYPE_KEYWORDS,
    284       EXTRACTOR_METAFORMAT_UTF8,
    285       "text/plain",
    286       "Wo?",
    287       strlen ("Wo?") + 1,
    288       0
    289     },
    290     {
    291       EXTRACTOR_METATYPE_RATING,
    292       EXTRACTOR_METAFORMAT_UTF8,
    293       "text/plain",
    294       "3",
    295       strlen ("3") + 1,
    296       0
    297     },
    298     {
    299       EXTRACTOR_METATYPE_RATING,
    300       EXTRACTOR_METAFORMAT_UTF8,
    301       "text/plain",
    302       "50",
    303       strlen ("50") + 1,
    304       0
    305     },
    306     {
    307       EXTRACTOR_METATYPE_LOCATION_COUNTRY_CODE,
    308       EXTRACTOR_METAFORMAT_UTF8,
    309       "text/plain",
    310       "ES",
    311       strlen ("ES") + 1,
    312       0
    313     },
    314     {
    315       EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE,
    316       EXTRACTOR_METAFORMAT_UTF8,
    317       "text/plain",
    318       "Optio W30 Ver 1.00",
    319       strlen ("Optio W30 Ver 1.00") + 1,
    320       0
    321     },
    322     {
    323       EXTRACTOR_METATYPE_SUBJECT,
    324       EXTRACTOR_METAFORMAT_UTF8,
    325       "text/plain",
    326       "Wo?, Wo?|Fuerteventura, Was?, Was?|Anlass]|Urlaub, Was?|Aufnahme]|Landschaftsbild, Was?|Natur]|Wind, Was?|Natur]|Sand, Wo?|Fuerteventura|ProCenter Rene Egli, Was?|Sport, Was?|Sport|Windsurfen",
    327       strlen (
    328         "Wo?, Wo?|Fuerteventura, Was?, Was?|Anlass]|Urlaub, Was?|Aufnahme]|Landschaftsbild, Was?|Natur]|Wind, Was?|Natur]|Sand, Wo?|Fuerteventura|ProCenter Rene Egli, Was?|Sport, Was?|Sport|Windsurfen")
    329       + 1,
    330       0
    331     },
    332     { 0, 0, NULL, NULL, 0, -1 }
    333   };
    334   struct ProblemSet ps[] = {
    335     { "testdata/exiv2_iptc.jpg",
    336       exiv2_iptc_sol },
    337     { NULL, NULL }
    338   };
    339   return ET_main ("exiv2", ps);
    340 }
    341 
    342 
    343 /* end of test_exiv2.c */