diff options
author | David Schleef <ds@schleef.org> | 2005-01-14 00:25:35 +0000 |
---|---|---|
committer | David Schleef <ds@schleef.org> | 2005-01-14 00:25:35 +0000 |
commit | 5b58af911944e0764e4ce1554d0b1fb6e34f97de (patch) | |
tree | 7abfe25054feaede43d23ca46c1cd082a562bcce | |
parent | cd1eaf60c81ce39a4deeaff4bc1471434ab8c4b3 (diff) | |
download | liboil-5b58af911944e0764e4ce1554d0b1fb6e34f97de.tar.gz |
* testsuite/Makefile.am: add proto4
* testsuite/proto1.c: (main): fix
* testsuite/proto4.c: (main): new
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | testsuite/Makefile.am | 2 | ||||
-rw-r--r-- | testsuite/proto1.c | 44 | ||||
-rw-r--r-- | testsuite/proto4.c | 73 |
4 files changed, 85 insertions, 40 deletions
@@ -1,5 +1,11 @@ 2005-01-13 David Schleef <ds@schleef.org> + * testsuite/Makefile.am: add proto4 + * testsuite/proto1.c: (main): fix + * testsuite/proto4.c: (main): new + +2005-01-13 David Schleef <ds@schleef.org> + * liboil/colorspace/rgb2rgba_powerpc.c: (rgb2rgba_ppc): fix code * liboil/conv/conv_powerpc.c: asm fix * liboil/simdpack/abs_powerpc.c: broken diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am index 761caae..c144778 100644 --- a/testsuite/Makefile.am +++ b/testsuite/Makefile.am @@ -5,7 +5,7 @@ else glib_programs = endif -programs = moo introspect proto1 proto2 test1 proto3 stride +programs = moo introspect proto1 proto2 test1 proto3 proto4 stride check_PROGRAMS = $(programs) $(glib_programs) diff --git a/testsuite/proto1.c b/testsuite/proto1.c index 929c90f..baa286f 100644 --- a/testsuite/proto1.c +++ b/testsuite/proto1.c @@ -34,30 +34,6 @@ #include <liboil/liboilprototype.h> -static char *names[] = { - "n", - "dest", - "dstr", - "dest1", - "dest2", - "src", - "src1", - "src2", - "src3", - "sstr", - "sstr1", - "sstr2", - "sstr3", - "param", - "param1", - "param2", - "state", - NULL -}; - -static int get_name_index (const char *s); - - int main (int argc, char *argv[]) { OilFunctionClass *klass; @@ -72,38 +48,28 @@ int main (int argc, char *argv[]) klass = oil_class_get_by_index(i); if(klass->prototype) { - int x = 0; OilPrototype *proto; proto = oil_prototype_from_string (klass->prototype); if (proto == NULL) { - printf (" bad prototype\n"); + printf ("ERROR bad prototype for %s\n", klass->name); continue; } for(j=0;j<proto->n_params;j++){ - x = get_name_index (proto->params[j].parameter_name); - if (x<0) { - printf("%s(%s) [%s]\n", klass->name, klass->prototype, + if (proto->params[j].parameter_type == OIL_ARG_UNKNOWN) { + printf("ERROR bad parameter %s(%s) [%s]\n", klass->name, klass->prototype, proto->params[j].parameter_name); break; } } oil_prototype_free (proto); + } else { + printf("ERROR no prototype for %s\n", klass->name); } } return 0; } -static int get_name_index (const char *s) -{ - int i; - for(i=0;names[i];i++){ - if (strcmp (names[i], s) == 0) { - return i; - } - } - return -1; -} diff --git a/testsuite/proto4.c b/testsuite/proto4.c new file mode 100644 index 0000000..3c2d2d9 --- /dev/null +++ b/testsuite/proto4.c @@ -0,0 +1,73 @@ +/* + * LIBOIL - Library of Optimized Inner Loops + * Copyright (c) 2004 David A. Schleef <ds@schleef.org> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + + +#include <stdio.h> +#include <liboil/liboil.h> +#include <ctype.h> +#include <stdlib.h> +#include <string.h> + +#include <liboil/liboilprototype.h> + +int main (int argc, char *argv[]) +{ + OilFunctionClass *klass; + int i; + int n; + + oil_init (); + + n = oil_class_get_n_classes (); + for (i=0;i<n; i++ ){ + klass = oil_class_get_by_index(i); + + if(klass->prototype) { + OilPrototype *proto; + char *string; + + proto = oil_prototype_from_string (klass->prototype); + if (proto == NULL) { + printf ("ERROR bad prototype for %s\n", klass->name); + continue; + } + + string = oil_prototype_to_string (proto); + + printf("%s (%s)\n", klass->name, string); + + oil_prototype_free (proto); + free(string); + } else { + printf("ERROR no prototype for %s\n", klass->name); + } + } + + return 0; +} + + |