1 /* 2 * Copyright 2002-2010, Haiku, Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5 6 7 #include <stdio.h> 8 9 #include <SemaphoreSyncObject.h> 10 #include <Directory.h> 11 12 #include "UnitTester.h" 13 14 15 UnitTesterShell::UnitTesterShell(const std::string &description, 16 SyncObject *syncObject) 17 : 18 BTestShell(description, syncObject) 19 { 20 } 21 22 23 void 24 UnitTesterShell::PrintDescription(int argc, char *argv[]) 25 { 26 printf("This program is the central testing framework for the purpose\n" 27 "of testing and verifying the various kits, classes, functions,\n" 28 "and the like that comprise Haiku.\n"); 29 } 30 31 32 void 33 UnitTesterShell::PrintValidArguments() 34 { 35 BTestShell::PrintValidArguments(); 36 printf(" -haiku Runs tests linked against our Haiku " 37 "libraries (*default*)\n" 38 " -r5 Runs tests linked against Be Inc.'s R5 " 39 "libraries (instead\n" 40 " of our libraries) for the sake of comparison.\n"); 41 } 42 43 44 void 45 UnitTesterShell::LoadDynamicSuites() 46 { 47 // Add the appropriate test lib path 48 std::string defaultLibDir = std::string(GlobalTestDir()) + "/lib"; 49 fLibDirs.insert(defaultLibDir); 50 51 // Load away 52 BTestShell::LoadDynamicSuites(); 53 } 54 55 56 // #pragma mark - 57 58 59 int 60 main(int argc, char *argv[]) 61 { 62 UnitTesterShell shell("Haiku Unit Testing Framework", 63 new SemaphoreSyncObject); 64 65 // ##### Add test suites for statically linked tests here ##### 66 //shell.AddTest("Example", ExampleTest::Suite()); 67 68 BTestShell::SetGlobalShell(&shell); 69 70 // Load our dynamically linked tests 71 72 int result = shell.Run(argc, argv); 73 74 // Unset global shell, just to be sure 75 BTestShell::SetGlobalShell(NULL); 76 77 return result; 78 } 79