diff options
Diffstat (limited to 'src/tools/mkunit.cpp')
-rw-r--r-- | src/tools/mkunit.cpp | 41 |
1 files changed, 24 insertions, 17 deletions
diff --git a/src/tools/mkunit.cpp b/src/tools/mkunit.cpp index 12ce65f..741a888 100644 --- a/src/tools/mkunit.cpp +++ b/src/tools/mkunit.cpp | |||
@@ -1,3 +1,10 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2007-2011 Xagasoft, All rights reserved. | ||
3 | * | ||
4 | * This file is part of the libbu++ library and is released under the | ||
5 | * terms of the license contained in the file LICENSE. | ||
6 | */ | ||
7 | |||
1 | #include <bu/file.h> | 8 | #include <bu/file.h> |
2 | #include <bu/optparser.h> | 9 | #include <bu/optparser.h> |
3 | #include <bu/buffer.h> | 10 | #include <bu/buffer.h> |
@@ -15,7 +22,7 @@ public: | |||
15 | { | 22 | { |
16 | } | 23 | } |
17 | 24 | ||
18 | Bu::FString sName; | 25 | Bu::String sName; |
19 | bool bExpectPass; | 26 | bool bExpectPass; |
20 | }; | 27 | }; |
21 | typedef Bu::List<Test> TestList; | 28 | typedef Bu::List<Test> TestList; |
@@ -23,7 +30,7 @@ typedef Bu::List<Test> TestList; | |||
23 | class Suite | 30 | class Suite |
24 | { | 31 | { |
25 | public: | 32 | public: |
26 | Bu::FString sName; | 33 | Bu::String sName; |
27 | TestList lTest; | 34 | TestList lTest; |
28 | }; | 35 | }; |
29 | //typedef Bu::List<Suite> SuiteList; | 36 | //typedef Bu::List<Suite> SuiteList; |
@@ -66,7 +73,7 @@ Bu::Formatter &operator<<( Bu::Formatter &f, const Suite &s ) | |||
66 | class Parser | 73 | class Parser |
67 | { | 74 | { |
68 | public: | 75 | public: |
69 | Parser( const Bu::FString &sFile ) : | 76 | Parser( const Bu::String &sFile ) : |
70 | sIn( sFile ), | 77 | sIn( sFile ), |
71 | fIn( sFile, File::Read ), | 78 | fIn( sFile, File::Read ), |
72 | bIn( fIn ), | 79 | bIn( fIn ), |
@@ -99,10 +106,10 @@ public: | |||
99 | return cBuf; | 106 | return cBuf; |
100 | } | 107 | } |
101 | 108 | ||
102 | TokType nextToken( Variant &v, Bu::FString &sWsOut, int &iLineStart, | 109 | TokType nextToken( Variant &v, Bu::String &sWsOut, int &iLineStart, |
103 | int &iCharStart ) | 110 | int &iCharStart ) |
104 | { | 111 | { |
105 | Bu::FString sTok, sWs; | 112 | Bu::String sTok, sWs; |
106 | 113 | ||
107 | char buf; | 114 | char buf; |
108 | try | 115 | try |
@@ -307,7 +314,7 @@ public: | |||
307 | void firstPass() | 314 | void firstPass() |
308 | { | 315 | { |
309 | Variant v; | 316 | Variant v; |
310 | Bu::FString sWs; | 317 | Bu::String sWs; |
311 | int iL, iC; | 318 | int iL, iC; |
312 | for(;;) | 319 | for(;;) |
313 | { | 320 | { |
@@ -322,7 +329,7 @@ public: | |||
322 | if( nextToken( v, sWs, iL, iC ) != tokFluff ) | 329 | if( nextToken( v, sWs, iL, iC ) != tokFluff ) |
323 | throw Bu::ExceptionBase("%d:%d: Expected string " | 330 | throw Bu::ExceptionBase("%d:%d: Expected string " |
324 | "following suite.", iL, iC ); | 331 | "following suite.", iL, iC ); |
325 | s.sName = v.get<Bu::FString>(); | 332 | s.sName = v.get<Bu::String>(); |
326 | if( nextToken( v, sWs, iL, iC ) != tokChar || | 333 | if( nextToken( v, sWs, iL, iC ) != tokChar || |
327 | v.get<char>() != '{' ) | 334 | v.get<char>() != '{' ) |
328 | throw Bu::ExceptionBase("%d:%d: Expected {, got " | 335 | throw Bu::ExceptionBase("%d:%d: Expected {, got " |
@@ -346,7 +353,7 @@ public: | |||
346 | throw Bu::ExceptionBase("%d:%d: Expected " | 353 | throw Bu::ExceptionBase("%d:%d: Expected " |
347 | "string following test.", iL, iC ); | 354 | "string following test.", iL, iC ); |
348 | Test t; | 355 | Test t; |
349 | t.sName = v.get<Bu::FString>(); | 356 | t.sName = v.get<Bu::String>(); |
350 | if( nextToken( v, sWs, iL, iC ) != tokBlock ) | 357 | if( nextToken( v, sWs, iL, iC ) != tokBlock ) |
351 | throw Bu::ExceptionBase("%d:%d: Expected " | 358 | throw Bu::ExceptionBase("%d:%d: Expected " |
352 | "{...} block.", | 359 | "{...} block.", |
@@ -380,7 +387,7 @@ public: | |||
380 | } | 387 | } |
381 | } | 388 | } |
382 | 389 | ||
383 | void secondPass( const Bu::FString &sOut ) | 390 | void secondPass( const Bu::String &sOut ) |
384 | { | 391 | { |
385 | File fOut( sOut, File::WriteNew ); | 392 | File fOut( sOut, File::WriteNew ); |
386 | Formatter f( fOut ); | 393 | Formatter f( fOut ); |
@@ -393,7 +400,7 @@ public: | |||
393 | iChar = 0; | 400 | iChar = 0; |
394 | bool bHasIncluded = false; | 401 | bool bHasIncluded = false; |
395 | 402 | ||
396 | Bu::FString sWs; | 403 | Bu::String sWs; |
397 | Variant v; | 404 | Variant v; |
398 | int iL, iC; | 405 | int iL, iC; |
399 | for(;;) | 406 | for(;;) |
@@ -408,7 +415,7 @@ public: | |||
408 | if( nextToken( v, sWs, iL, iC ) != tokFluff ) | 415 | if( nextToken( v, sWs, iL, iC ) != tokFluff ) |
409 | throw Bu::ExceptionBase("%d:%d: Expected string " | 416 | throw Bu::ExceptionBase("%d:%d: Expected string " |
410 | "following suite.", iL, iC ); | 417 | "following suite.", iL, iC ); |
411 | s.sName = v.get<Bu::FString>(); | 418 | s.sName = v.get<Bu::String>(); |
412 | if( nextToken( v, sWs, iL, iC ) != tokChar || | 419 | if( nextToken( v, sWs, iL, iC ) != tokChar || |
413 | v.get<char>() != '{' ) | 420 | v.get<char>() != '{' ) |
414 | throw Bu::ExceptionBase("%d:%d: Expected {", | 421 | throw Bu::ExceptionBase("%d:%d: Expected {", |
@@ -421,7 +428,7 @@ public: | |||
421 | bHasIncluded = true; | 428 | bHasIncluded = true; |
422 | } | 429 | } |
423 | 430 | ||
424 | Bu::FString sClass = "_UnitSuite_" + s.sName; | 431 | Bu::String sClass = "_UnitSuite_" + s.sName; |
425 | f << "class " << sClass | 432 | f << "class " << sClass |
426 | << " : public Bu::UnitSuite" << f.nl | 433 | << " : public Bu::UnitSuite" << f.nl |
427 | << "{" << f.nl << "public:" << f.nl | 434 | << "{" << f.nl << "public:" << f.nl |
@@ -441,7 +448,7 @@ public: | |||
441 | } | 448 | } |
442 | else if( t == tokEof ) | 449 | else if( t == tokEof ) |
443 | { | 450 | { |
444 | Bu::FString sClass = "_UnitSuite_" + s.sName; | 451 | Bu::String sClass = "_UnitSuite_" + s.sName; |
445 | f << sWs << f.nl << "int main( int argc, char *argv[] )" | 452 | f << sWs << f.nl << "int main( int argc, char *argv[] )" |
446 | << f.nl << "{" << f.nl << "\treturn " << sClass | 453 | << f.nl << "{" << f.nl << "\treturn " << sClass |
447 | << "().run( argc, argv );" << f.nl << "}" << f.nl; | 454 | << "().run( argc, argv );" << f.nl << "}" << f.nl; |
@@ -458,7 +465,7 @@ public: | |||
458 | { | 465 | { |
459 | case tokFluff: | 466 | case tokFluff: |
460 | fOut.write( sWs ); | 467 | fOut.write( sWs ); |
461 | fOut.write( v.get<Bu::FString>() ); | 468 | fOut.write( v.get<Bu::String>() ); |
462 | break; | 469 | break; |
463 | 470 | ||
464 | case tokTest: | 471 | case tokTest: |
@@ -468,7 +475,7 @@ public: | |||
468 | throw Bu::ExceptionBase("%d:%d: Expected " | 475 | throw Bu::ExceptionBase("%d:%d: Expected " |
469 | "string following test.", iL, iC ); | 476 | "string following test.", iL, iC ); |
470 | Test t; | 477 | Test t; |
471 | t.sName = v.get<Bu::FString>(); | 478 | t.sName = v.get<Bu::String>(); |
472 | if( nextToken( v, sWs, iL, iC ) != tokBlock ) | 479 | if( nextToken( v, sWs, iL, iC ) != tokBlock ) |
473 | throw Bu::ExceptionBase("%d:%d: Expected " | 480 | throw Bu::ExceptionBase("%d:%d: Expected " |
474 | "{...} block.", | 481 | "{...} block.", |
@@ -499,7 +506,7 @@ public: | |||
499 | fOut.write( sWs ); | 506 | fOut.write( sWs ); |
500 | f << f.nl << "#line " << iL << " \"" << sIn | 507 | f << f.nl << "#line " << iL << " \"" << sIn |
501 | << "\"" << f.nl; | 508 | << "\"" << f.nl; |
502 | fOut.write( v.get<Bu::FString>() ); | 509 | fOut.write( v.get<Bu::String>() ); |
503 | 510 | ||
504 | break; | 511 | break; |
505 | 512 | ||
@@ -521,7 +528,7 @@ public: | |||
521 | } | 528 | } |
522 | 529 | ||
523 | private: | 530 | private: |
524 | Bu::FString sIn; | 531 | Bu::String sIn; |
525 | File fIn; | 532 | File fIn; |
526 | Buffer bIn; | 533 | Buffer bIn; |
527 | char cBuf; | 534 | char cBuf; |