rvm 1.08
|
00001 #include "config.h" 00002 00003 #include <iostream> 00004 #include <string> 00005 #include <cassert> 00006 00007 #ifdef HAVE_UNISTD_H 00008 #include <unistd.h> 00009 #endif 00010 00011 #include <errno.h> 00012 00013 #include "asserts.h" 00014 #include "types.h" 00015 #include "error.h" 00016 #include "estring.h" 00017 #include "fs.h" 00018 #include "tstamp.h" 00019 #include "rconfig.h" 00020 #include "test-rconfig-setup.h" 00021 00022 // #define ERR_OUT(e) std::cerr << e; 00023 #define ERR_OUT(e) 00024 00025 void test(void) 00026 { 00027 char const * argv[256] = { 0 }; 00028 int argc = 0; 00029 bool thrown = false; 00030 00031 argv[argc++] = "<program>"; 00032 argv[argc++] = "--archive"; 00033 00034 config.default_file("./test-rconfig.dir/global-include.dir/file-7.conf"); 00035 config.default_logdir("./test-rconfig.dir/log.dir"); 00036 try { 00037 config.init(argc, argv); 00038 } 00039 catch(error e) { 00040 ERR_OUT(e); 00041 // assert(e.num() == 0); 00042 assert(!e.internal()); 00043 assert(e.size() == 6); 00044 assert(e[0].what() == "No configuration file(s) found: \"../../nonexistent-file.conf\""); 00045 assert(e[1].what() == "At ./test-rconfig.dir/global-include.dir/file-7.dir/../file-7.dir/dir.2/file-7.3.4.conf[1]"); 00046 assert(e[2].what() == "For files found matching: \"file-7.dir/dir.2/*\""); 00047 assert(e[3].what() == "At ./test-rconfig.dir/global-include.dir/file-7.dir/../file-7.2.conf[1]"); 00048 assert(e[4].what() == "At ./test-rconfig.dir/global-include.dir/file-7.dir/file-7.1.conf[1]"); 00049 assert(e[5].what() == "At ./test-rconfig.dir/global-include.dir/file-7.conf[1]"); 00050 thrown = true; 00051 } 00052 catch(...) { 00053 assert(0); 00054 } 00055 assert(thrown); 00056 } 00057 00058 int main(int argc, char const * argv[]) 00059 { 00060 cleanup(); 00061 setup(); 00062 try { 00063 test(); 00064 } 00065 catch(error e) { 00066 std::cerr << e; 00067 assert(0); 00068 } 00069 catch(...) { 00070 std::cerr << err_unknown; 00071 assert(0); 00072 } 00073 cleanup(); 00074 return(0); 00075 } 00076