First public contribution.
2 * LIBOIL - Library of Optimized Inner Loops
3 * Copyright (c) 2004 David A. Schleef <ds@schleef.org>
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
19 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
23 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
24 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 * POSSIBILITY OF SUCH DAMAGE.
30 #include <liboil/liboilprototype.h>
31 #include <liboil/liboil.h>
37 #define LOG_FILE "c:\\logs\\testsuite_proto2_log1.txt"
38 #include "std_log_result.h"
39 #define LOG_FILENAME_LINE __FILE__, __LINE__
41 void create_xml(int result)
46 testResultXml("testsuite_proto2");
50 static OilParameter * get_param_by_type (OilPrototype *proto,
53 int main (int argc, char *argv[])
55 OilFunctionClass *klass;
60 std_log(LOG_FILENAME_LINE, "Test Started testsuite_proto2");
64 n = oil_class_get_n_classes (); //get the number of function classes, n=415 i.e. total number of OilFunctionClasses
66 klass = oil_class_get_by_index(i); //get a pointer to the OilFunctionClass with index i.
68 if(klass->prototype) {
70 OilParameter params[OIL_ARG_LAST];
73 memset (params, 0, sizeof(params));
74 proto = oil_prototype_from_string (klass->prototype);
76 printf("%s\n", klass->name);
78 for(j=0;j<proto->n_params;j++){
80 printf(" (%s) (%s) %d %d [%s] [%s]\n",
81 proto->params[j].type_name,
82 proto->params[j].parameter_name,
83 proto->params[j].type,
84 proto->params[j].parameter_type,
85 oil_type_name (proto->params[j].type),
86 oil_arg_type_name (proto->params[j].parameter_type));
87 if (proto->params[j].parameter_type == OIL_ARG_UNKNOWN) {
88 std_log(LOG_FILENAME_LINE, "unknown parameter type");
89 printf("unknown parameter type\n");
93 for(j=0;j<proto->n_params;j++){
94 memcpy (¶ms[proto->params[j].parameter_type], &proto->params[j],
95 sizeof (OilParameter));
98 p = get_param_by_type (proto, OIL_ARG_N);
100 std_log(LOG_FILENAME_LINE, "yes");
103 std_log(LOG_FILENAME_LINE, "no");
107 oil_prototype_free (proto);
109 std_log(LOG_FILENAME_LINE, "bad prototype");
110 printf(" bad prototype\n");
115 std_log(LOG_FILENAME_LINE, "Test Successful");
121 static OilParameter *
122 get_param_by_type (OilPrototype *proto, OilArgType ptype) //checks if any of the ArgTypes is of OIL_ARG_N
125 for(i=0;i<proto->n_params;i++){
126 if (proto->params[i].parameter_type == ptype) {
127 return &proto->params[i];