rvm  1.11
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
test-vaulter-003.cc
Go to the documentation of this file.
1 #include "config.h"
2 
3 #include <iostream>
4 #include <fstream>
5 #include <iomanip>
6 #include <string>
7 #include <cassert>
8 
9 #include "error.h"
10 #include "fs.h"
11 #include "vaulter.h"
12 #include "test-vaulter-setup.h"
13 
14 #define ERR_OUT(e) std::cerr << e
15 // #define ERR_OUT(e)
16 
17 void test_vaulter1(void)
18 {
19  char const * argv[256] = { 0 };
20  int argc = 0;
21  bool thrown = false;
22 
23  argv[argc++] = "<program>";
24  argv[argc++] = "--archive";
25  argv[argc++] = "--timestamp";
26  argv[argc++] = "2003-09-16";
27 
28  config.default_file("./test-vaulter.dir/file-1.conf");
29  try {
30  config.init(argc, argv);
31  logger.init();
32  vaulter.init();
33  vaulter.select();
34  logger.clear();
35  assert(vaulter.vault() == "./test-vaulter.dir/group-1/vault-2");
36  }
37  catch(error e) {
38  ERR_OUT(e);
39  thrown = true;
40  }
41  catch(...) {
43  assert(0);
44  }
45  assert(!thrown);
46 }
47 
48 void test_vaulter2(void)
49 {
50  char const * argv[256] = { 0 };
51  int argc = 0;
52  bool thrown = false;
53 
54  argv[argc++] = "<program>";
55  argv[argc++] = "--archive";
56  argv[argc++] = "--timestamp";
57  argv[argc++] = "2003-09-18";
58 
59  config.default_file("./test-vaulter.dir/file-1.conf");
60  try {
61  config.init(argc, argv);
62  logger.init();
63  vaulter.init();
64  vaulter.select();
65  logger.clear();
66  assert(vaulter.vault() == "./test-vaulter.dir/group-1/vault-1");
67  }
68  catch(error e) {
69  ERR_OUT(e);
70  thrown = true;
71  }
72  catch(...) {
74  assert(0);
75  }
76  assert(!thrown);
77 }
78 
79 void test_vaulter3(void)
80 {
81  char const * argv[256] = { 0 };
82  int argc = 0;
83  bool thrown = false;
84 
85  argv[argc++] = "<program>";
86  argv[argc++] = "--archive";
87  argv[argc++] = "--timestamp";
88  argv[argc++] = "2003-09-18";
89 
90  config.default_file("./test-vaulter.dir/file-1.conf");
91  try {
92  config.init(argc, argv);
93  logger.init();
94  vaulter.init();
95  vaulter.select();
96  logger.clear();
97  assert(vaulter.vault() == "./test-vaulter.dir/group-1/vault-1");
98 
100  subdirectory::iterator sdi;
101 
102  for (sdi = subdir.begin(); sdi != subdir.end(); sdi++) {
103  assert((*sdi).find(".corrupt") == std::string::npos);
104  }
105  }
106  catch(error e) {
107  ERR_OUT(e);
108  thrown = true;
109  }
110  catch(...) {
112  assert(0);
113  }
114  assert(!thrown);
115 }
116 
117 int main(int argc, char const * argv[])
118 {
119  cleanup();
120  setup();
121  try {
122  test_vaulter1();
123  test_vaulter2();
124  test_vaulter3();
125  }
126  catch(error e) {
127  std::cerr << e;
128  assert(0);
129  }
130  catch(...) {
131  std::cerr << err_unknown;
132  assert(0);
133  }
134  cleanup();
135  return(0);
136 }
137 
void init(int argc, char const *argv[])
Initialize the configuration manager from rvm's command line options.
Definition: rconfig.cc:1218
log_manager logger
The global log manager.
Definition: logger.cc:138
void init(void)
Initialize the vault manager.
Definition: vaulter.cc:40
void setup(void)
Definition: test-logger.cc:62
#define ERR_OUT(e)
void default_file(const std::string &a_path)
Set the default configuration filename.
Definition: rconfig.cc:1484
void cleanup(void)
Definition: test-fs.cc:63
void test_vaulter3(void)
#define err_unknown
Definition: error.h:114
int main(int argc, char const *argv[])
void select(void)
Select a vault.
Definition: vaulter.cc:59
const subdirectory get_archive_list(void)
Return a list of archive directories in the selected vault.
Definition: vaulter.cc:262
An error class.
Definition: error.h:72
const std::string vault(void) const
Return the path to the selected vault.
Definition: vaulter.cc:291
void clear(void)
Clear the log manager.
Definition: logger.cc:32
void init(void)
Initialize the log manager.
Definition: logger.cc:42
configuration_manager config
The global configuration manager instance.
Definition: rconfig.cc:3364
void test_vaulter2(void)
Retrieve a list of files in a subdirectory that match a given wildcard filename.
Definition: fs.h:273
void test_vaulter1(void)
vault_manager vaulter
The global vault manager.
Definition: vaulter.cc:772