diff options
author | Mike Buland <eichlan@xagasoft.com> | 2010-05-25 05:42:26 +0000 |
---|---|---|
committer | Mike Buland <eichlan@xagasoft.com> | 2010-05-25 05:42:26 +0000 |
commit | 286dc953c1e0e4a75589e4068e29a317a03f23dd (patch) | |
tree | 2144b0e7847222b0c6b8f6e87d8a5118e85e8b66 /src/unit | |
parent | a0c6e974a3393642bda80fed5bce464a6c6cf2ec (diff) | |
download | libbu++-286dc953c1e0e4a75589e4068e29a317a03f23dd.tar.gz libbu++-286dc953c1e0e4a75589e4068e29a317a03f23dd.tar.bz2 libbu++-286dc953c1e0e4a75589e4068e29a317a03f23dd.tar.xz libbu++-286dc953c1e0e4a75589e4068e29a317a03f23dd.zip |
More myriad tests and features, passes perfectly so far.
Diffstat (limited to '')
-rw-r--r-- | src/unit/myriad.unit | 64 |
1 files changed, 60 insertions, 4 deletions
diff --git a/src/unit/myriad.unit b/src/unit/myriad.unit index ed121cc..d27c0dc 100644 --- a/src/unit/myriad.unit +++ b/src/unit/myriad.unit | |||
@@ -20,9 +20,33 @@ using namespace Bu; | |||
20 | 20 | ||
21 | suite Myriad | 21 | suite Myriad |
22 | { | 22 | { |
23 | void addBlock( Stream &s ) | 23 | test setSize |
24 | { | 24 | { |
25 | s.setPosEnd( 0 ); | 25 | FString sFileName("myriad-XXXXXXX"); |
26 | |||
27 | File fMyriad = tempFile( sFileName ); | ||
28 | Myriad m( fMyriad ); | ||
29 | m.initialize( 64 ); | ||
30 | |||
31 | MyriadStream ms = m.openStream( m.createStream() ); | ||
32 | ms.setSize( 150 ); | ||
33 | ms.setPos( 145 ); | ||
34 | char stuff[10]; | ||
35 | unitTest( ms.read( stuff, 10 ) == 5 ); | ||
36 | |||
37 | ms.setSize( 12 ); | ||
38 | unitTest( ms.read( stuff, 10 ) == 0 ); | ||
39 | unitTest( ms.write( "hello", 5 ) == 5 ); | ||
40 | unitTest( ms.tell() == 17 ); | ||
41 | |||
42 | ms.setSize( 500 ); | ||
43 | unitTest( ms.tell() == 17 ); | ||
44 | } | ||
45 | |||
46 | void addBlock( Stream &s, bool bAppend=true ) | ||
47 | { | ||
48 | if( bAppend ) | ||
49 | s.setPosEnd( 0 ); | ||
26 | int iSize = (random()%1016)+8; | 50 | int iSize = (random()%1016)+8; |
27 | s.write( &iSize, 4 ); | 51 | s.write( &iSize, 4 ); |
28 | char *buf = new char[iSize-8]; | 52 | char *buf = new char[iSize-8]; |
@@ -72,7 +96,7 @@ suite Myriad | |||
72 | verifyBlock( s ); | 96 | verifyBlock( s ); |
73 | } | 97 | } |
74 | 98 | ||
75 | test grow1 | 99 | test stressGrow |
76 | { | 100 | { |
77 | FString sFileName("myriad-XXXXXXX"); | 101 | FString sFileName("myriad-XXXXXXX"); |
78 | 102 | ||
@@ -90,7 +114,6 @@ suite Myriad | |||
90 | 114 | ||
91 | for( int j = 0; j < 2500; j++ ) | 115 | for( int j = 0; j < 2500; j++ ) |
92 | { | 116 | { |
93 | |||
94 | switch( random()%5 ) | 117 | switch( random()%5 ) |
95 | { | 118 | { |
96 | case 0: | 119 | case 0: |
@@ -134,5 +157,38 @@ suite Myriad | |||
134 | verifyStream( ms ); | 157 | verifyStream( ms ); |
135 | } | 158 | } |
136 | } | 159 | } |
160 | |||
161 | test stressTruncate | ||
162 | { | ||
163 | FString sFileName("myriad-XXXXXXX"); | ||
164 | |||
165 | File fMyriad = tempFile( sFileName ); | ||
166 | Myriad m( fMyriad ); | ||
167 | m.initialize( 64 ); | ||
168 | |||
169 | Array<int> aStream; | ||
170 | |||
171 | for( int j = 0; j < 5; j++ ) | ||
172 | { | ||
173 | aStream.append( m.createStream() ); | ||
174 | } | ||
175 | |||
176 | srandom( 1024 ); | ||
177 | |||
178 | char b; | ||
179 | for( int iter = 0; iter < 2500; iter++ ) | ||
180 | { | ||
181 | for( Array<int>::iterator i = aStream.begin(); i; i++ ) | ||
182 | { | ||
183 | MyriadStream ms = m.openStream( *i ); | ||
184 | addBlock( ms, false ); | ||
185 | ms.setSize( ms.tell() ); | ||
186 | unitTest( ms.read( &b, 1 ) == 0 ); | ||
187 | ms.setPos( 0 ); | ||
188 | verifyBlock( ms ); | ||
189 | unitTest( ms.read( &b, 1 ) == 0 ); | ||
190 | } | ||
191 | } | ||
192 | } | ||
137 | } | 193 | } |
138 | 194 | ||