3c7c8efb6a4972ea1c153b9e8d77be05ccd0e742
[yaffs2.git] / direct / timothy_tests / yaffs_tester.c
1 /*yaffs_tester.c*/
2 #include "yaffs_tester.h"
3
4
5 int random_seed;
6 int simulate_power_failure = 0;
7
8
9 buffer message_buffer;  /*create  message_buffer */
10
11
12
13 int main()
14 {       
15         char yaffs_test_dir[]="/yaffs2/test_dir";
16         char yaffs_mount_dir[]="/yaffs2/";
17         printf("welcome to the yaffs tester\n");
18         init(yaffs_test_dir,yaffs_mount_dir);
19         //test(yaffs_test_dir);
20         add_to_buffer(&message_buffer,"message1\0");
21         add_to_buffer(&message_buffer,"message2\0");
22         add_to_buffer(&message_buffer,"message3\0");
23         add_to_buffer(&message_buffer,"message4\0");
24         add_to_buffer(&message_buffer,"message5\0");
25         print_buffer(&message_buffer);
26         yaffs_unmount(yaffs_mount_dir);
27         return 0;
28 }
29
30 void add_to_buffer(buffer *p_Buffer, char message[])
31 {
32         //add a thing to add \0 on the end of the message
33         if (p_Buffer->head+1==p_Buffer->tail)
34         {
35                 p_Buffer->tail++;
36                 if (p_Buffer->tail >BUFFER_SIZE-1) p_Buffer->tail -= BUFFER_SIZE-1;
37                 
38         }
39         /*move the head up one. the head always points at the last witten data*/
40         p_Buffer->head++;
41         if (p_Buffer->head >BUFFER_SIZE) p_Buffer->head -= BUFFER_SIZE;
42
43         strcpy(p_Buffer->message[p_Buffer->head],message);
44
45 }
46 void print_buffer(buffer *p_Buffer)
47 {
48         printf("print buffer\n");
49         printf("buffer head:%d\n",p_Buffer->head);
50         printf("buffer tail:%d\n",p_Buffer->tail);
51         int x;
52         for (x=p_Buffer->head; x>=p_Buffer->tail; x--)
53         {
54                 printf("x:%d\n",x);
55                 if (x<0) x = BUFFER_SIZE;
56                 printf("%s",p_Buffer->message[x]);
57                 
58         }
59
60 }
61
62
63 void init(char yaffs_test_dir[],char yaffs_mount_dir[])
64 {
65         yaffs_StartUp();
66         yaffs_mount(yaffs_mount_dir);
67         if (yaffs_access(yaffs_test_dir,0))
68         {
69                 yaffs_mkdir(yaffs_test_dir,S_IREAD | S_IWRITE);
70         }
71 }
72
73 void yaffs_check_for_errors(char output)
74 {
75         if (output==-1)
76         {
77                 printf("error####");
78                 print_buffer(&message_buffer);
79         }
80 }
81
82 void test(char yaffs_test_dir[])
83 {
84         char name[MAX_FILE_NAME_SIZE +3];
85         unsigned int x;
86         while(1)
87         {
88
89                 generate_random_string(name);
90                 printf("the length of the string is %d \n",strlen(name)); 
91                 printf("generated string is:");
92                 for (x=0; x <= (strlen(name)-1)&&x<=MAX_FILE_NAME_SIZE ; x++)
93                 {
94 //                      printf("x=%d\n",x);
95                         printf("%c ",name[x]);
96                 }
97                 printf("\n");
98         }
99 }
100 void  generate_random_string(char *ptr)
101 {
102         unsigned int x;
103         unsigned int length=((rand() %MAX_FILE_NAME_SIZE)+1);   /*creates a int with the number of charecters been between 1 and 51*/           
104         printf("generating string\n");
105         printf("string length is %d\n",length);
106         for (x=0; x <= (length-2) &&length>2 ; x++)
107         {
108 //              printf("x=%d\n",x);     
109                 ptr[x]=(rand() % 126-32)+32;    /*generate a number between 32 and 126 and uses it as a charecter (letter) */
110 //              printf("charecter generated is %c\n",ptr[x]);
111         }
112         ptr[x+1]=0;     /*adds NULL charecter to turn it into a string*/
113         
114 }
115