#include <stdlib.h>
#include <string.h>
+#include "../lib/unbuffer_output.c"
+
/**************************************************************************
* TESTS :
* -- function arguments that are enumerated types
* IN id_int student -- enumerated type
* IN colors shirt -- enumerated type
*****************************************************************/
-#ifdef PROTOTYPES
void print_student_id_shirt_color (id_int student, colors shirt)
-#else
-void print_student_id_shirt_color ( student, shirt )
- id_int student;
- colors shirt;
-#endif
{
printf("student id : %d\t", student);
* PRINT_CHAR_ARRAY :
* IN char array_c[] -- character array
*****************************************************************/
-#ifdef PROTOTYPES
void print_char_array (char array_c[])
-#else
-void print_char_array ( array_c )
- char array_c[];
-#endif
{
int index;
* PRINT_DOUBLE_ARRAY :
* IN double array_d[] -- array of doubles
*****************************************************************/
-#ifdef PROTOTYPES
void print_double_array (double array_d[])
-#else
-void print_double_array (array_d)
- double array_d[];
-#endif
{
int index;
printf("array_d :\n");
printf("=========\n\n");
- for (index = 0; index < 100; index++) {
+ for (index = 0; index < 9; index++) {
printf("%f ", array_d[index]);
if ((index%8) == 0) printf("\n");
}
* PRINT_FLOAT_ARRAY:
* IN float array_f[] -- array of floats
*****************************************************************/
-#ifdef PROTOTYPES
void print_float_array (float array_f[])
-#else
-void print_float_array ( array_f )
- float array_f[];
-#endif
{
int index;
* PRINT_INT_ARRAY:
* IN int array_i[] -- array of integers
*****************************************************************/
-#ifdef PROTOTYPES
void print_int_array (int array_i[])
-#else
-void print_int_array ( array_i )
- int array_i[];
-#endif
{
int index;
* IN float array_f[] -- array of floats
* IN double array_d[] -- array of doubles
*****************************************************************/
-#ifdef PROTOTYPES
void print_all_arrays(int array_i[], char array_c[], float array_f[], double array_d[])
-#else
-void print_all_arrays( array_i, array_c, array_f, array_d )
- int array_i[];
- char array_c[];
- float array_f[];
- double array_d[];
-#endif
{
- print_int_array(array_i);
- print_char_array(array_c);
+ print_int_array(array_i); /* -step1- */
+ print_char_array(array_c); /* -next1- */
print_float_array(array_f);
print_double_array(array_d);
}
* A do nothing function. Used to provide a point at which calls can be made.
* IN int seed
*****************************************************************/
-#ifdef PROTOTYPES
void compute_with_small_structs (int seed)
-#else
-void compute_with_small_structs ( seed )
- int seed;
-#endif
{
struct small_rep_info_t array[4];
* IN unsigned e -- 0 or 1
* IN unsigned o -- 0 or 1
*****************************************************************/
-#ifdef PROTOTYPES
void init_bit_flags (struct bit_flags_t *bit_flags, unsigned a, unsigned b, unsigned g, unsigned d, unsigned e, unsigned o)
-#else
-void init_bit_flags ( bit_flags, a, b, g, d, e, o )
-struct bit_flags_t *bit_flags;
-unsigned a;
-unsigned b;
-unsigned g;
-unsigned d;
-unsigned e;
-unsigned o;
-#endif
{
bit_flags->alpha = a;
* IN unsigned e -- 0 or 1
* IN unsigned o -- 0 or 1
*****************************************************************/
-#ifdef PROTOTYPES
void init_bit_flags_combo (struct bit_flags_combo_t *bit_flags_combo, unsigned a, unsigned b, char ch1, unsigned g, unsigned d, char ch2, unsigned e, unsigned o)
-#else
-void init_bit_flags_combo ( bit_flags_combo, a, b, ch1, g, d, ch2, e, o )
- struct bit_flags_combo_t *bit_flags_combo;
- unsigned a;
- unsigned b;
- char ch1;
- unsigned g;
- unsigned d;
- char ch2;
- unsigned e;
- unsigned o;
-#endif
{
- bit_flags_combo->alpha = a;
+ bit_flags_combo->alpha = a; /* -step3- */
bit_flags_combo->beta = b;
bit_flags_combo->ch1 = ch1;
bit_flags_combo->gamma = g;
* OUT struct one_double_t *one_double -- structure to fill
* IN double init_val
*****************************************************************/
-#ifdef PROTOTYPES
void init_one_double (struct one_double_t *one_double, double init_val)
-#else
-void init_one_double ( one_double, init_val )
- struct one_double_t *one_double;
- double init_val;
-#endif
{
one_double->double1 = init_val;
* IN float init_val1
* IN float init_val2
*****************************************************************/
-#ifdef PROTOTYPES
void init_two_floats (struct two_floats_t *two_floats, float init_val1, float init_val2)
-#else
-void init_two_floats ( two_floats, init_val1, init_val2 )
- struct two_floats_t *two_floats;
- float init_val1;
- float init_val2;
-#endif
{
two_floats->float1 = init_val1;
two_floats->float2 = init_val2;
* IN char init_val1
* IN char init_val2
*****************************************************************/
-#ifdef PROTOTYPES
void init_two_chars (struct two_char_t *two_char, char init_val1, char init_val2)
-#else
-void init_two_chars ( two_char, init_val1, init_val2 )
- struct two_char_t *two_char;
- char init_val1;
- char init_val2;
-#endif
{
two_char->ch1 = init_val1;
* IN char init_val2
* IN char init_val3
*****************************************************************/
-#ifdef PROTOTYPES
void init_three_chars (struct three_char_t *three_char, char init_val1, char init_val2, char init_val3)
-#else
-void init_three_chars ( three_char, init_val1, init_val2, init_val3 )
- struct three_char_t *three_char;
- char init_val1;
- char init_val2;
- char init_val3;
-#endif
{
three_char->ch1 = init_val1;
* IN char init_val4
* IN char init_val5
*****************************************************************/
-#ifdef PROTOTYPES
void init_five_chars (struct five_char_t *five_char, char init_val1, char init_val2, char init_val3, char init_val4, char init_val5)
-#else
-void init_five_chars ( five_char, init_val1, init_val2, init_val3,init_val4,init_val5 )
- struct five_char_t *five_char;
- char init_val1;
- char init_val2;
- char init_val3;
- char init_val4;
- char init_val5;
-#endif
{
five_char->ch1 = init_val1;
five_char->ch2 = init_val2;
* IN int init_val1
* IN char init_val2
*****************************************************************/
-#ifdef PROTOTYPES
void init_int_char_combo (struct int_char_combo_t *combo, int init_val1, char init_val2)
-#else
-void init_int_char_combo ( combo, init_val1, init_val2 )
- struct int_char_combo_t *combo;
- int init_val1;
- char init_val2;
-#endif
{
combo->int1 = init_val1;
* OUT struct small_rep_into_t *small_struct -- structure to be filled
* IN int seed
*****************************************************************/
-#ifdef PROTOTYPES
void init_struct_rep(struct small_rep_info_t *small_struct, int seed)
-#else
-void init_struct_rep( small_struct, seed )
- struct small_rep_info_t *small_struct;
- int seed;
-#endif
{
small_struct->value = 2 + (seed*2);
* Takes all the small structures as input and calls the appropriate
* initialization routine for each structure
*****************************************************************/
-#ifdef PROTOTYPES
void init_small_structs (
struct small_rep_info_t *struct1,
struct small_rep_info_t *struct2,
struct two_floats_t *f1,
struct two_floats_t *f2,
struct two_floats_t *f3)
-#else
-void init_small_structs (struct1, struct2, struct3,struct4,flags,flags_combo,
-three_char, five_char,int_char_combo, d1, d2,d3,f1,f2,f3)
- struct small_rep_info_t *struct1;
- struct small_rep_info_t *struct2;
- struct small_rep_info_t *struct3;
- struct small_rep_info_t *struct4;
- struct bit_flags_t *flags;
- struct bit_flags_combo_t *flags_combo;
- struct three_char_t *three_char;
- struct five_char_t *five_char;
- struct int_char_combo_t *int_char_combo;
- struct one_double_t *d1;
- struct one_double_t *d2;
- struct one_double_t *d3;
- struct two_floats_t *f1;
- struct two_floats_t *f2;
- struct two_floats_t *f3;
-#endif
{
init_bit_flags(flags, (unsigned)1, (unsigned)0, (unsigned)1,
init_struct_rep(struct3, 5);
init_struct_rep(struct4, 6);
init_one_double ( d1, 10.5);
- init_one_double ( d2, -3.34);
- init_one_double ( d3, 675.09123);
+ init_one_double ( d2, -3.375);
+ init_one_double ( d3, 675.09375);
init_two_floats ( f1, 45.234, 43.6);
init_two_floats ( f2, 78.01, 122.10);
init_two_floats ( f3, -1232.345, -199.21);
* PRINT_TEN_DOUBLES :
* ?????????????????????????????
****************************************************************/
-#ifdef PROTOTYPES
void print_ten_doubles (
double d1,
double d2,
double d8,
double d9,
double d10)
-#else
-void print_ten_doubles ( d1, d2, d3, d4, d5, d6, d7, d8, d9, d10 )
- double d1;
- double d2;
- double d3;
- double d4;
- double d5;
- double d6;
- double d7;
- double d8;
- double d9;
- double d10;
-#endif
{
printf("Two Doubles : %f\t%f\n", d1, d2);
* PRINT_BIT_FLAGS :
* IN struct bit_flags_t bit_flags
****************************************************************/
-#ifdef PROTOTYPES
void print_bit_flags (struct bit_flags_t bit_flags)
-#else
-void print_bit_flags ( bit_flags )
-struct bit_flags_t bit_flags;
-#endif
{
if (bit_flags.alpha) printf("alpha\n");
* PRINT_BIT_FLAGS_COMBO :
* IN struct bit_flags_combo_t bit_flags_combo
****************************************************************/
-#ifdef PROTOTYPES
void print_bit_flags_combo (struct bit_flags_combo_t bit_flags_combo)
-#else
-void print_bit_flags_combo ( bit_flags_combo )
- struct bit_flags_combo_t bit_flags_combo;
-#endif
{
if (bit_flags_combo.alpha) printf("alpha\n");
* PRINT_ONE_DOUBLE :
* IN struct one_double_t one_double
****************************************************************/
-#ifdef PROTOTYPES
void print_one_double (struct one_double_t one_double)
-#else
-void print_one_double ( one_double )
-struct one_double_t one_double;
-#endif
{
printf("Contents of one_double_t: \n\n");
* PRINT_TWO_FLOATS :
* IN struct two_floats_t two_floats
****************************************************************/
-#ifdef PROTOTYPES
void print_two_floats (struct two_floats_t two_floats)
-#else
-void print_two_floats ( two_floats )
-struct two_floats_t two_floats;
-#endif
{
printf("Contents of two_floats_t: \n\n");
* PRINT_TWO_CHARS :
* IN struct two_char_t two_char
****************************************************************/
-#ifdef PROTOTYPES
void print_two_chars (struct two_char_t two_char)
-#else
-void print_two_chars ( two_char )
-struct two_char_t two_char;
-#endif
{
printf("Contents of two_char_t: \n\n");
* PRINT_THREE_CHARS :
* IN struct three_char_t three_char
****************************************************************/
-#ifdef PROTOTYPES
void print_three_chars (struct three_char_t three_char)
-#else
-void print_three_chars ( three_char )
-struct three_char_t three_char;
-#endif
{
printf("Contents of three_char_t: \n\n");
* PRINT_FIVE_CHARS :
* IN struct five_char_t five_char
****************************************************************/
-#ifdef PROTOTYPES
void print_five_chars (struct five_char_t five_char)
-#else
-void print_five_chars ( five_char )
-struct five_char_t five_char;
-#endif
{
printf("Contents of five_char_t: \n\n");
* PRINT_INT_CHAR_COMBO :
* IN struct int_char_combo_t int_char_combo
****************************************************************/
-#ifdef PROTOTYPES
void print_int_char_combo (struct int_char_combo_t int_char_combo)
-#else
-void print_int_char_combo ( int_char_combo )
-struct int_char_combo_t int_char_combo;
-#endif
{
printf("Contents of int_char_combo_t: \n\n");
* IN struct small_rep_info_t struct2
* IN struct small_rep_info_t struct3
****************************************************************/
-#ifdef PROTOTYPES
void print_struct_rep(
struct small_rep_info_t struct1,
struct small_rep_info_t struct2,
struct small_rep_info_t struct3)
-#else
-void print_struct_rep( struct1, struct2, struct3)
- struct small_rep_info_t struct1;
- struct small_rep_info_t struct2;
- struct small_rep_info_t struct3;
-#endif
{
* IN struct small_rep_info_t struct3
* IN struct small_rep_info_t struct4
****************************************************************/
-#ifdef PROTOTYPES
void sum_struct_print (
int seed,
struct small_rep_info_t struct1,
struct small_rep_info_t struct2,
struct small_rep_info_t struct3,
struct small_rep_info_t struct4)
-#else
-void sum_struct_print ( seed, struct1, struct2, struct3, struct4)
- int seed;
- struct small_rep_info_t struct1;
- struct small_rep_info_t struct2;
- struct small_rep_info_t struct3;
- struct small_rep_info_t struct4;
-#endif
{
int sum;
* All of the small structures of odd sizes (40 bits, 8bits, etc.)
* are pushed onto the stack.
****************************************************************/
-#ifdef PROTOTYPES
void print_small_structs (
struct small_rep_info_t struct1,
struct small_rep_info_t struct2,
struct two_floats_t f1,
struct two_floats_t f2,
struct two_floats_t f3)
-#else
-void print_small_structs ( struct1, struct2, struct3, struct4, flags,
-flags_combo, three_char, five_char, int_char_combo, d1, d2,d3,f1,f2,f3)
- struct small_rep_info_t struct1;
- struct small_rep_info_t struct2;
- struct small_rep_info_t struct3;
- struct small_rep_info_t struct4;
- struct bit_flags_t flags;
- struct bit_flags_combo_t flags_combo;
- struct three_char_t three_char;
- struct five_char_t five_char;
- struct int_char_combo_t int_char_combo;
- struct one_double_t d1;
- struct one_double_t d2;
- struct one_double_t d3;
- struct two_floats_t f1;
- struct two_floats_t f2;
- struct two_floats_t f3;
-#endif
{
print_bit_flags(flags);
print_bit_flags_combo(flags_combo);
* may force more space to be pushed onto the stack as part of the callers
* frame.
****************************************************************/
-#ifdef PROTOTYPES
void print_long_arg_list (
double a,
double b,
struct two_floats_t f1,
struct two_floats_t f2,
struct two_floats_t f3)
-#else
-void print_long_arg_list ( a, b, c, d, e, f, struct1, struct2, struct3,
-struct4, flags, flags_combo, three_char, five_char, int_char_combo, d1,d2,d3,
-f1, f2, f3 )
- double a;
- double b;
- int c;
- int d;
- int e;
- int f;
- struct small_rep_info_t struct1;
- struct small_rep_info_t struct2;
- struct small_rep_info_t struct3;
- struct small_rep_info_t struct4;
- struct bit_flags_t flags;
- struct bit_flags_combo_t flags_combo;
- struct three_char_t three_char;
- struct five_char_t five_char;
- struct int_char_combo_t int_char_combo;
- struct one_double_t d1;
- struct one_double_t d2;
- struct one_double_t d3;
- struct two_floats_t f1;
- struct two_floats_t f2;
- struct two_floats_t f3;
-#endif
{
- printf("double : %f\n", a);
+ printf("double : %f\n", a); /* -step2- */
printf("double : %f\n", b);
printf("int : %d\n", c);
printf("int : %d\n", d);
}
-#ifdef PROTOTYPES
void print_one_large_struct (struct array_rep_info_t linked_list1)
-#else
-void print_one_large_struct( linked_list1 )
- struct array_rep_info_t linked_list1;
-#endif
{
/* printf("Contents of linked list1: \n\n");
* IN struct array_rep_info_t linked_list2
* IN struct array_rep_info_t linked_list3
****************************************************************/
-#ifdef PROTOTYPES
void print_array_rep(
struct array_rep_info_t linked_list1,
struct array_rep_info_t linked_list2,
struct array_rep_info_t linked_list3)
-#else
-void print_array_rep( linked_list1, linked_list2, linked_list3 )
- struct array_rep_info_t linked_list1;
- struct array_rep_info_t linked_list2;
- struct array_rep_info_t linked_list3;
-#endif
{
int index;
* IN struct array_rep_info_t linked_list3
* IN struct array_rep_info_t linked_list4
****************************************************************/
-#ifdef PROTOTYPES
void sum_array_print (
int seed,
struct array_rep_info_t linked_list1,
struct array_rep_info_t linked_list2,
struct array_rep_info_t linked_list3,
struct array_rep_info_t linked_list4)
-#else
-void sum_array_print ( seed, linked_list1, linked_list2, linked_list3,linked_list4)
- int seed;
- struct array_rep_info_t linked_list1;
- struct array_rep_info_t linked_list2;
- struct array_rep_info_t linked_list3;
- struct array_rep_info_t linked_list4;
-#endif
{
int index;
int sum;
* IN struct array_rep_info_t *linked_list
* IN int seed
****************************************************************/
-#ifdef PROTOTYPES
void init_array_rep(
struct array_rep_info_t *linked_list,
int seed)
-#else
-void init_array_rep( linked_list, seed )
- struct array_rep_info_t *linked_list;
- int seed;
-#endif
{
int index;
/* variables for array and enumerated type testing
*/
- char char_array[121];
- double double_array[100];
- float float_array[15];
- int integer_array[50];
- int index;
- id_int student_id = 23;
- colors my_shirt = YELLOW;
+ static char char_array[121];
+ static double double_array[9];
+ static float float_array[15];
+ static int integer_array[50];
+ static int index;
+ static id_int student_id = 23;
+ static colors my_shirt = YELLOW;
/* variables for large structure testing
*/
- int number = 10;
- struct array_rep_info_t *list1;
- struct array_rep_info_t *list2;
- struct array_rep_info_t *list3;
- struct array_rep_info_t *list4;
+ static int number = 10;
+ static struct array_rep_info_t *list1;
+ static struct array_rep_info_t *list2;
+ static struct array_rep_info_t *list3;
+ static struct array_rep_info_t *list4;
/* variables for testing a very long argument list
*/
- double a;
- double b;
- int c;
- int d;
- int e;
- int f;
+ static double a;
+ static double b;
+ static int c;
+ static int d;
+ static int e;
+ static int f;
/* variables for testing a small structures and a very long argument list
*/
- struct small_rep_info_t *struct1;
- struct small_rep_info_t *struct2;
- struct small_rep_info_t *struct3;
- struct small_rep_info_t *struct4;
- struct bit_flags_t *flags;
- struct bit_flags_combo_t *flags_combo;
- struct three_char_t *three_char;
- struct five_char_t *five_char;
- struct int_char_combo_t *int_char_combo;
- struct one_double_t *d1;
- struct one_double_t *d2;
- struct one_double_t *d3;
- struct two_floats_t *f1;
- struct two_floats_t *f2;
- struct two_floats_t *f3;
+ static struct small_rep_info_t *struct1;
+ static struct small_rep_info_t *struct2;
+ static struct small_rep_info_t *struct3;
+ static struct small_rep_info_t *struct4;
+ static struct bit_flags_t *flags;
+ static struct bit_flags_combo_t *flags_combo;
+ static struct three_char_t *three_char;
+ static struct five_char_t *five_char;
+ static struct int_char_combo_t *int_char_combo;
+ static struct one_double_t *d1;
+ static struct one_double_t *d2;
+ static struct one_double_t *d3;
+ static struct two_floats_t *f1;
+ static struct two_floats_t *f2;
+ static struct two_floats_t *f3;
+
+ gdb_unbuffer_output ();
/* Initialize arrays
*/
}
char_array[120] = '\0';
- for (index = 0; index < 100; index++) {
+ for (index = 0; index < 9; index++) {
double_array[index] = index*23.4567;
}
float_array[index] = index/7.02;
}
- for (index = 0; index < 50; index++) {
+ for (index = 0; index < 50; index++) { /* -tbreak1- */
integer_array[index] = -index;
}
/* Print arrays
*/
print_char_array(char_array);
- print_double_array(double_array);
+ print_double_array(double_array); /* -tbreak2- */
print_float_array(float_array);
print_student_id_shirt_color(student_id, my_shirt);
print_int_array(integer_array);
- print_all_arrays(integer_array, char_array, float_array, double_array);
+ print_all_arrays(integer_array, char_array, float_array, double_array); /* -tbreak3- */
/* Allocate space for large structures
*/
init_array_rep(list3, 5);
init_array_rep(list4, 10);
printf("HELLO WORLD\n");
- printf("BYE BYE FOR NOW\n");
- printf("VERY GREEN GRASS\n");
+ printf("BYE BYE FOR NOW\n"); /* -tbreak4- */
+ printf("VERY GREEN GRASS\n"); /* -next2- */
/* Print large structures
*/
- sum_array_print(10, *list1, *list2, *list3, *list4);
+ sum_array_print(10, *list1, *list2, *list3, *list4); /* -tbreak5- */
print_array_rep(*list1, *list2, *list3);
print_one_large_struct(*list1);
/* Print a very long arg list
*/
- a = 22.22;
- b = 33.333;
- c = 0;
+ a = 22.25;
+ b = 33.375;
+ c = 0; /* -tbreak6- */
d = -25;
e = 100;
f = 2345;
- print_long_arg_list ( a, b, c, d, e, f, *struct1, *struct2, *struct3, *struct4,
+ print_long_arg_list ( a, b, c, d, e, f, *struct1, *struct2, *struct3, *struct4, /* -tbreak7- */
*flags, *flags_combo, *three_char, *five_char, *int_char_combo,
*d1, *d2, *d3, *f1, *f2, *f3);
init_two_floats ( f3, -2.345, 1.0);
init_bit_flags(flags, (unsigned)1, (unsigned)0, (unsigned)1,
(unsigned)0, (unsigned)1, (unsigned)0 );
- init_bit_flags_combo(flags_combo, (unsigned)1, (unsigned)0, 'y',
+ init_bit_flags_combo(flags_combo, (unsigned)1, (unsigned)0, 'y', /* -tbreak8- */
(unsigned)1, (unsigned)0, 'n',
(unsigned)1, (unsigned)0 );
init_three_chars(three_char, 'x', 'y', 'z');
init_five_chars(five_char, 'h', 'e', 'l', 'l', 'o');
- init_int_char_combo(int_char_combo, 13, '!');
+ init_int_char_combo(int_char_combo, 13, '!'); /* -tbreak9- */
init_struct_rep(struct1, 10);
init_struct_rep(struct2, 20);
init_struct_rep(struct3, 30);
init_struct_rep(struct4, 40);
- compute_with_small_structs(35);
+ compute_with_small_structs(35); /* -tbreak10- */
loop_count();
printf("HELLO WORLD\n");
printf("BYE BYE FOR NOW\n");