1/*
2 * Copyright (C) Bull S.A. 2001
3 * Copyright (c) International Business Machines  Corp., 2001
4 *
5 *   This program is free software;  you can redistribute it and/or modify
6 *   it under the terms of the GNU General Public License as published by
7 *   the Free Software Foundation; either version 2 of the License, or
8 *   (at your option) any later version.
9 *
10 *   This program is distributed in the hope that it will be useful,
11 *   but WITHOUT ANY WARRANTY;  without even the implied warranty of
12 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
13 *   the GNU General Public License for more details.
14 *
15 *   You should have received a copy of the GNU General Public License
16 *   along with this program;  if not, write to the Free Software
17 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 */
19
20/******************************************************************************/
21/*                                                                            */
22/* Dec-03-2001  Created: Jacky Malcles & Jean Noel Cordenner                  */
23/*              These tests are adapted from AIX float PVT tests.             */
24/*                                                                            */
25/******************************************************************************/
26#include	<sys/types.h>
27#include	<sys/wait.h>
28#include 	<float.h>
29#include 	<stdio.h>
30#include 	<stdlib.h>
31#include 	<string.h>
32#include 	<errno.h>
33#include        <limits.h>
34#include        <unistd.h>
35#include        <fcntl.h>
36#include        <errno.h>
37#include        <sys/signal.h>
38#include        <math.h>
39
40#define 	M_PIl	3.1415926535897932384626433832795029L L
41#define		MAX_FNAME_LEN	16
42
43/*****************************************************************
44 * create file:
45 *
46 * func_name is the name of the trigo function (sin, cos, tan...)
47 *
48 * code can take 2 values: DATA_CREATE to create a input data file
49 *			   RESULT_CREATE for output result file
50 */
51
52int create_file(char *func_name, int NbVal)
53{
54	pid_t myproc;
55
56	if ((myproc = fork()) != 0)
57		return myproc;
58	else {
59		char *arglist[] = { func_name, NULL };
60		execvp(arglist[0], arglist);
61
62		fprintf(stderr, "ERROR %s\n", strerror(errno));
63		abort();
64	}
65}
66
67int main(int argc, char *argv[])
68{
69	char *funct, *bin_path;
70	pid_t child;
71
72	if (argc != 2) {
73		printf("ERROR: need the path to generation binaries\n");
74		abort();
75	}
76
77	bin_path = argv[1];
78
79	funct = malloc(strlen(bin_path) + MAX_FNAME_LEN);
80	sprintf(funct, "%s/gencos", bin_path);
81	child = create_file(funct, 0);
82	waitpid(child, NULL, 0);
83
84	sprintf(funct, "%s/gensin", bin_path);
85	child = create_file(funct, 0);
86	waitpid(child, NULL, 0);
87
88	sprintf(funct, "%s/gentan", bin_path);
89	child = create_file(funct, 0);
90	waitpid(child, NULL, 0);
91
92	sprintf(funct, "%s/genatan", bin_path);
93	child = create_file(funct, 0);
94	waitpid(child, NULL, 0);
95
96	sprintf(funct, "%s/genatan2", bin_path);
97	child = create_file(funct, 0);
98	waitpid(child, NULL, 0);
99
100	sprintf(funct, "%s/genacos", bin_path);
101	child = create_file(funct, 0);
102	waitpid(child, NULL, 0);
103
104	sprintf(funct, "%s/genasin", bin_path);
105	child = create_file(funct, 0);
106	waitpid(child, NULL, 0);
107
108	return 0;
109}
110