Browse code
Reformat
Ed Langley authored on 13/06/2017 21:33:52
Showing 14 changed files
Showing 14 changed files
- dual_control_integrate.cc
- dual_control_tool.cc
- installer.cc
- installer.h
- installer_test.cc
- sys_unistd.h
- token.cc
- token.h
- token_test.cc
- user.cc
- user.h
- user_test.cc
- validator.cc
- validator.h
... | ... |
@@ -44,7 +44,8 @@ installer init_installer() |
44 | 44 |
int code_digits = 6; |
45 | 45 |
totp_generator generator = totp_generator (time, code_digits); |
46 | 46 |
tokens tokens (tokens::create (fstreams, generator)); |
47 |
- installer installer (installer::create (tokens, unistd, directory, generator)); |
|
47 |
+ installer installer (installer::create (tokens, unistd, directory, |
|
48 |
+ generator)); |
|
48 | 49 |
|
49 | 50 |
return installer; |
50 | 51 |
} |
... | ... |
@@ -55,5 +56,7 @@ int main (int argc, char *argv[]) |
55 | 56 |
class system system (init_system()); |
56 | 57 |
installer tool (init_installer()); |
57 | 58 |
auto generated_key_and_sample_token = tool.install_key(); |
58 |
- std::cout << generated_key_and_sample_token.first << " " << generated_key_and_sample_token.second << std::endl; |
|
59 |
+ std::cout << generated_key_and_sample_token.first << " " << |
|
60 |
+ generated_key_and_sample_token.second << std::endl; |
|
59 | 61 |
} |
62 |
+ |
... | ... |
@@ -46,10 +46,10 @@ public: |
46 | 46 |
|
47 | 47 |
user user (found_user[0]); |
48 | 48 |
|
49 |
- std::string key_string = tokens_.ensure_key(user); |
|
50 |
- std::vector<uint8_t> key = base32().decode(key_string); |
|
49 |
+ std::string key_string = tokens_.ensure_key (user); |
|
50 |
+ std::vector<uint8_t> key = base32().decode (key_string); |
|
51 | 51 |
std::string decoded_key (key.begin(), key.end()); |
52 |
- std::string token = generator_.generate_token(decoded_key); |
|
52 |
+ std::string token = generator_.generate_token (decoded_key); |
|
53 | 53 |
|
54 | 54 |
// TODO: fix generator input |
55 | 55 |
return {key_string, token}; |
... | ... |
@@ -61,5 +61,7 @@ public: |
61 | 61 |
installer installer::create (const tokens &tokens, const unistd &unistd, |
62 | 62 |
const directory &directory, const totp_generator &generator) |
63 | 63 |
{ |
64 |
- return installer (std::make_shared<impl> (tokens, unistd, directory, generator)); |
|
64 |
+ return installer (std::make_shared<impl> (tokens, unistd, directory, |
|
65 |
+ generator)); |
|
65 | 66 |
} |
67 |
+ |
... | ... |
@@ -31,12 +31,14 @@ public: |
31 | 31 |
: key_ (key) |
32 | 32 |
{} |
33 | 33 |
|
34 |
- std::string token (const user &user) const override { |
|
34 |
+ std::string token (const user &user) const override |
|
35 |
+ { |
|
35 | 36 |
return key_; |
36 | 37 |
} |
37 | 38 |
|
38 |
- std::string ensure_key(const user &user) const override { |
|
39 |
- save(user, key_); |
|
39 |
+ std::string ensure_key (const user &user) const override |
|
40 |
+ { |
|
41 |
+ save (user, key_); |
|
40 | 42 |
return key_; |
41 | 43 |
} |
42 | 44 |
|
... | ... |
@@ -76,7 +78,7 @@ public: |
76 | 78 |
expected_token (expected_token) |
77 | 79 |
{} |
78 | 80 |
|
79 |
- std::string generate_token(const std::string &key) const override |
|
81 |
+ std::string generate_token (const std::string &key) const override |
|
80 | 82 |
{ |
81 | 83 |
return expected_token; |
82 | 84 |
} |
... | ... |
@@ -88,7 +90,8 @@ private: |
88 | 90 |
std::string expected_user_name_; |
89 | 91 |
bool has_current_user_; |
90 | 92 |
public: |
91 |
- fake_directory (const std::string &expected_user_name, bool has_current_user = true) : |
|
93 |
+ fake_directory (const std::string &expected_user_name, |
|
94 |
+ bool has_current_user = true) : |
|
92 | 95 |
expected_user_name_ (expected_user_name), |
93 | 96 |
has_current_user_ (has_current_user) |
94 | 97 |
{ |
... | ... |
@@ -106,9 +109,11 @@ public: |
106 | 109 |
std::vector<user> get_current_user() const override |
107 | 110 |
{ |
108 | 111 |
std::vector<user> result = {}; |
112 |
+ |
|
109 | 113 |
if (has_current_user_) { |
110 |
- result = {find_user(expected_user_name_)}; |
|
114 |
+ result = {find_user (expected_user_name_)}; |
|
111 | 115 |
} |
116 |
+ |
|
112 | 117 |
return result; |
113 | 118 |
} |
114 | 119 |
}; |
... | ... |
@@ -119,11 +124,12 @@ int installs_token() |
119 | 124 |
std::string user_name ("user"); |
120 | 125 |
std::string key ("thekey"); |
121 | 126 |
std::string token ("thetoken"); |
122 |
- auto test_tokens = std::make_shared<mock_tokens>(key); |
|
127 |
+ auto test_tokens = std::make_shared<mock_tokens> (key); |
|
123 | 128 |
tokens tokens{test_tokens}; |
124 | 129 |
unistd unistd (std::make_shared<fake_unistd> (user_name)); |
125 | 130 |
directory directory (std::make_shared<fake_directory> (user_name)); |
126 |
- std::shared_ptr<fake_totp_generator> fake_generator = std::make_shared<fake_totp_generator> (token); |
|
131 |
+ std::shared_ptr<fake_totp_generator> fake_generator = |
|
132 |
+ std::make_shared<fake_totp_generator> (token); |
|
127 | 133 |
totp_generator generator (fake_generator ); |
128 | 134 |
|
129 | 135 |
installer installer = installer::create (tokens, unistd, directory, |
... | ... |
@@ -131,7 +137,7 @@ int installs_token() |
131 | 137 |
|
132 | 138 |
//when |
133 | 139 |
std::string actual_key, actual_token; |
134 |
- std::tie(actual_key, actual_token) = installer.install_key(); |
|
140 |
+ std::tie (actual_key, actual_token) = installer.install_key(); |
|
135 | 141 |
|
136 | 142 |
//then |
137 | 143 |
check (test_tokens->captured_token == key, "installed wrong key"); |
... | ... |
@@ -169,18 +175,19 @@ int unistd_does_not_find_user_name_empty_string_case() |
169 | 175 |
//given |
170 | 176 |
std::string user_name ("user"); |
171 | 177 |
std::string key ("token"); |
172 |
- auto test_tokens = std::make_shared<mock_tokens>(key); |
|
178 |
+ auto test_tokens = std::make_shared<mock_tokens> (key); |
|
173 | 179 |
tokens tokens{test_tokens}; |
174 | 180 |
unistd unistd (std::make_shared<fake_unistd> ("")); |
175 | 181 |
directory directory (std::make_shared<fake_directory> (user_name, false)); |
176 |
- totp_generator generator (totp_generator (std::make_shared<fake_totp_generator>())); |
|
182 |
+ totp_generator generator (totp_generator ( |
|
183 |
+ std::make_shared<fake_totp_generator>())); |
|
177 | 184 |
|
178 | 185 |
installer installer = installer::create (tokens, unistd, directory, |
179 | 186 |
generator); |
180 | 187 |
|
181 | 188 |
//when |
182 | 189 |
std::string actual_key, actual_token; |
183 |
- std::tie(actual_key, actual_token) = installer.install_key(); |
|
190 |
+ std::tie (actual_key, actual_token) = installer.install_key(); |
|
184 | 191 |
|
185 | 192 |
//then |
186 | 193 |
// TODO: rethink this... |
... | ... |
@@ -197,10 +204,11 @@ int directory_finds_no_user_info() |
197 | 204 |
{ |
198 | 205 |
std::string user_name ("user"); |
199 | 206 |
std::string key ("token"); |
200 |
- auto test_tokens = std::make_shared<mock_tokens>(key); |
|
207 |
+ auto test_tokens = std::make_shared<mock_tokens> (key); |
|
201 | 208 |
tokens tokens{test_tokens}; |
202 | 209 |
unistd unistd (std::make_shared<fake_unistd> (user_name)); |
203 |
- directory directory (std::make_shared<fake_directory> ("not the user", false)); |
|
210 |
+ directory directory (std::make_shared<fake_directory> ("not the user", |
|
211 |
+ false)); |
|
204 | 212 |
totp_generator generator (std::make_shared<fake_totp_generator>()); |
205 | 213 |
|
206 | 214 |
installer installer = installer::create (tokens, unistd, directory, |
... | ... |
@@ -208,7 +216,7 @@ int directory_finds_no_user_info() |
208 | 216 |
|
209 | 217 |
//when |
210 | 218 |
std::string actual_key, actual_token; |
211 |
- std::tie(actual_key, actual_token) = installer.install_key(); |
|
219 |
+ std::tie (actual_key, actual_token) = installer.install_key(); |
|
212 | 220 |
|
213 | 221 |
//then |
214 | 222 |
check (test_tokens->captured_token == "", "installed wrong key"); |
... | ... |
@@ -230,3 +238,4 @@ int main (int argc, char *argv[]) |
230 | 238 |
{ |
231 | 239 |
return !run_tests(); |
232 | 240 |
} |
241 |
+ |
... | ... |
@@ -30,72 +30,78 @@ private: |
30 | 30 |
totp_generator generator_; |
31 | 31 |
public: |
32 | 32 |
tokens_impl (const fstreams &fstreams, const totp_generator generator) : |
33 |
- fstreams_ (fstreams), generator_(generator) {} |
|
33 |
+ fstreams_ (fstreams), generator_ (generator) {} |
|
34 | 34 |
std::string token (const user &user) const override |
35 | 35 |
{ |
36 | 36 |
// Get key |
37 |
- std::string line = read_key(user); |
|
37 |
+ std::string line = read_key (user); |
|
38 |
+ |
|
38 | 39 |
if (line == "") { |
39 | 40 |
return ""; |
40 | 41 |
} |
41 | 42 |
|
42 | 43 |
base32 codec; |
43 |
- std::vector<uint8_t> key = codec.decode(line); |
|
44 |
+ std::vector<uint8_t> key = codec.decode (line); |
|
44 | 45 |
|
45 | 46 |
// TODO: generate the token |
46 | 47 |
return generator_.generate_token (std::string (key.begin(), key.end())); |
47 | 48 |
} |
48 | 49 |
|
49 | 50 |
private: |
50 |
- std::string get_key_path(const user &user) const { |
|
51 |
+ std::string get_key_path (const user &user) const |
|
52 |
+ { |
|
51 | 53 |
return user.home_directory() + "/.dual_control"; |
52 | 54 |
} |
53 | 55 |
|
54 |
- bool key_exists (const user &user) const { |
|
56 |
+ bool key_exists (const user &user) const |
|
57 |
+ { |
|
55 | 58 |
// check if file exists |
56 |
- std::string file_path = get_key_path(user); |
|
57 |
- fstreams::pstream stream (fstreams_.open_fstream(file_path)); |
|
59 |
+ std::string file_path = get_key_path (user); |
|
60 |
+ fstreams::pstream stream (fstreams_.open_fstream (file_path)); |
|
58 | 61 |
return stream->good(); |
59 | 62 |
} |
60 | 63 |
|
61 |
- std::string generate_key() const { |
|
64 |
+ std::string generate_key() const |
|
65 |
+ { |
|
62 | 66 |
base32 codec; |
63 | 67 |
// get randomness |
64 | 68 |
std::vector<unsigned char> random_bytes (16); |
65 | 69 |
// base32encode it |
66 |
- std::string key = codec.encode(random_bytes); |
|
70 |
+ std::string key = codec.encode (random_bytes); |
|
67 | 71 |
return "QWERQWERQWERQWER"; |
68 | 72 |
} |
69 | 73 |
|
70 |
- std::string read_key (const user &user) const { |
|
71 |
- std::string file_path = get_key_path(user); |
|
74 |
+ std::string read_key (const user &user) const |
|
75 |
+ { |
|
76 |
+ std::string file_path = get_key_path (user); |
|
72 | 77 |
fstreams::pstream stream (fstreams_.open_fstream (file_path)); |
73 | 78 |
|
74 | 79 |
// TODO: ignore newlines |
75 |
- std::vector<char> line_v(16); |
|
76 |
- stream->read(line_v.data(), line_v.size()); |
|
80 |
+ std::vector<char> line_v (16); |
|
81 |
+ stream->read (line_v.data(), line_v.size()); |
|
77 | 82 |
|
78 | 83 |
if (stream->fail()) { |
79 | 84 |
return ""; |
80 | 85 |
} |
81 | 86 |
|
82 |
- std::string line(line_v.begin(), line_v.end()); |
|
87 |
+ std::string line (line_v.begin(), line_v.end()); |
|
83 | 88 |
return line; |
84 | 89 |
} |
85 | 90 |
public: |
86 |
- std::string ensure_key (const user &user) const override { |
|
87 |
- if (!key_exists(user)) { |
|
91 |
+ std::string ensure_key (const user &user) const override |
|
92 |
+ { |
|
93 |
+ if (!key_exists (user)) { |
|
88 | 94 |
std::string key = generate_key(); |
89 |
- save(user, key); |
|
95 |
+ save (user, key); |
|
90 | 96 |
return key; |
91 | 97 |
} else { |
92 |
- return read_key(user); |
|
98 |
+ return read_key (user); |
|
93 | 99 |
} |
94 | 100 |
} |
95 | 101 |
|
96 | 102 |
void save (const user &user, const std::string &token) const override |
97 | 103 |
{ |
98 |
- std::string file_path = get_key_path(user); |
|
104 |
+ std::string file_path = get_key_path (user); |
|
99 | 105 |
fstreams::postream stream (fstreams_.open_ofstream (file_path, |
100 | 106 |
std::ios_base::trunc)); |
101 | 107 |
*stream << token << std::endl; |
... | ... |
@@ -103,8 +109,10 @@ public: |
103 | 109 |
}; |
104 | 110 |
} |
105 | 111 |
|
106 |
-tokens tokens::create (const fstreams &fstreams, const totp_generator &generator) |
|
112 |
+tokens tokens::create (const fstreams &fstreams, |
|
113 |
+ const totp_generator &generator) |
|
107 | 114 |
{ |
108 | 115 |
return tokens (tokens::delegate |
109 | 116 |
(new tokens_impl (fstreams, generator))); |
110 | 117 |
} |
118 |
+ |
... | ... |
@@ -29,7 +29,10 @@ public: |
29 | 29 |
{ |
30 | 30 |
return ""; |
31 | 31 |
} |
32 |
- virtual std::string ensure_key (const user &user) const { return ""; }; |
|
32 |
+ virtual std::string ensure_key (const user &user) const |
|
33 |
+ { |
|
34 |
+ return ""; |
|
35 |
+ }; |
|
33 | 36 |
virtual void save (const user &user, const std::string &token) const {} |
34 | 37 |
}; |
35 | 38 |
|
... | ... |
@@ -44,8 +47,9 @@ public: |
44 | 47 |
delegate_ (delegate) {} |
45 | 48 |
tokens() : tokens ( |
46 | 49 |
delegate (new tokens_ifc)) {} |
47 |
- std::string ensure_key (const user &user) const { |
|
48 |
- return delegate_->ensure_key(user); |
|
50 |
+ std::string ensure_key (const user &user) const |
|
51 |
+ { |
|
52 |
+ return delegate_->ensure_key (user); |
|
49 | 53 |
} |
50 | 54 |
std::string token (const user &user) const |
51 | 55 |
{ |
... | ... |
@@ -55,7 +59,9 @@ public: |
55 | 59 |
{ |
56 | 60 |
return delegate_->save (user, token); |
57 | 61 |
} |
58 |
- static tokens create (const fstreams &fstreams, const totp_generator &generator); |
|
62 |
+ static tokens create (const fstreams &fstreams, |
|
63 |
+ const totp_generator &generator); |
|
59 | 64 |
}; |
60 | 65 |
|
61 | 66 |
#endif |
67 |
+ |
... | ... |
@@ -92,7 +92,8 @@ public: |
92 | 92 |
fake_totp_generator (std::string expected_token = "<unspecified>") : |
93 | 93 |
expected_token (expected_token) |
94 | 94 |
{} |
95 |
- std::string generate_token (const std::string &key) const override { |
|
95 |
+ std::string generate_token (const std::string &key) const override |
|
96 |
+ { |
|
96 | 97 |
return expected_token; |
97 | 98 |
} |
98 | 99 |
}; |
... | ... |
@@ -105,8 +106,10 @@ int reads_from_the_right_file () |
105 | 106 |
std::string token_file = home_directory + "/.dual_control"; |
106 | 107 |
std::string token ("AAAAAAAAAAAAAAAA"); |
107 | 108 |
|
108 |
- fstreams test_streams (fstreams::delegate (new fake_fstreams (token_file, token))); |
|
109 |
- totp_generator generator (totp_generator::delegate (new fake_totp_generator (token))); |
|
109 |
+ fstreams test_streams (fstreams::delegate (new fake_fstreams (token_file, |
|
110 |
+ token))); |
|
111 |
+ totp_generator generator (totp_generator::delegate (new |
|
112 |
+ fake_totp_generator (token))); |
|
110 | 113 |
|
111 | 114 |
//file_reader test_file_reader (file_reader::delegate (new fake_file_reader)); |
112 | 115 |
user test_user (user::delegate (new fake_user (home_directory))); |
... | ... |
@@ -128,7 +131,8 @@ int returns_empty_string_if_file_open_fail() |
128 | 131 |
std::string token_file = home_directory + "/.not_dual_control"; |
129 | 132 |
fstreams test_streams (fstreams::delegate (new fake_fstreams (token_file, |
130 | 133 |
"654321"))); |
131 |
- totp_generator generator (totp_generator::delegate (new fake_totp_generator ())); |
|
134 |
+ totp_generator generator (totp_generator::delegate (new |
|
135 |
+ fake_totp_generator ())); |
|
132 | 136 |
|
133 | 137 |
user test_user (user::delegate (new fake_user (home_directory))); |
134 | 138 |
tokens supplier (tokens::create (test_streams, generator)); |
... | ... |
@@ -150,8 +154,10 @@ int returns_empty_string_if_file_too_short() |
150 | 154 |
// we want a 40-byte key, so we need a 64-byte base32-encoded file. |
151 | 155 |
std::string token ("AAAAAAAAAAAAAAA"); |
152 | 156 |
|
153 |
- fstreams test_streams (fstreams::delegate (new fake_fstreams (token_file, token))); |
|
154 |
- totp_generator generator (totp_generator::delegate (new fake_totp_generator (token))); |
|
157 |
+ fstreams test_streams (fstreams::delegate (new fake_fstreams (token_file, |
|
158 |
+ token))); |
|
159 |
+ totp_generator generator (totp_generator::delegate (new |
|
160 |
+ fake_totp_generator (token))); |
|
155 | 161 |
|
156 | 162 |
//file_reader test_file_reader (file_reader::delegate (new fake_file_reader)); |
157 | 163 |
user test_user (user::delegate (new fake_user (home_directory))); |
... | ... |
@@ -172,7 +178,8 @@ int writes_the_token () |
172 | 178 |
user test_user (user::delegate (new fake_user (home_directory))); |
173 | 179 |
mock_write_fstreams *mockfs (new mock_write_fstreams); |
174 | 180 |
fstreams test_streams{fstreams::delegate (mockfs)}; |
175 |
- totp_generator generator (totp_generator::delegate (new fake_totp_generator ())); |
|
181 |
+ totp_generator generator (totp_generator::delegate (new |
|
182 |
+ fake_totp_generator ())); |
|
176 | 183 |
std::string token ("token"); |
177 | 184 |
tokens tokens (tokens::create (test_streams, generator)); |
178 | 185 |
|
... | ... |
@@ -184,8 +191,10 @@ int writes_the_token () |
184 | 191 |
temp << token << std::endl; |
185 | 192 |
std::string expected_written = temp.str(); |
186 | 193 |
std::string expected_filename (home_directory + "/.dual_control"); |
187 |
- check (mockfs->captured_filename() == expected_filename, "filename does not match"); |
|
188 |
- check (mockfs->captured_written() == expected_written, "token does not match"); |
|
194 |
+ check (mockfs->captured_filename() == expected_filename, |
|
195 |
+ "filename does not match"); |
|
196 |
+ check (mockfs->captured_written() == expected_written, |
|
197 |
+ "token does not match"); |
|
189 | 198 |
succeed(); |
190 | 199 |
} |
191 | 200 |
|
... | ... |
@@ -202,3 +211,4 @@ int main (int argc, char *argv[]) |
202 | 211 |
{ |
203 | 212 |
return !run_tests(); |
204 | 213 |
} |
214 |
+ |
... | ... |
@@ -56,7 +56,8 @@ public: |
56 | 56 |
return return_value; |
57 | 57 |
} |
58 | 58 |
|
59 |
- std::vector<user> get_current_user () const override { |
|
59 |
+ std::vector<user> get_current_user () const override |
|
60 |
+ { |
|
60 | 61 |
const char *c_user_name = unistd_.getlogin(); |
61 | 62 |
|
62 | 63 |
if (c_user_name == nullptr) { |
... | ... |
@@ -80,3 +81,4 @@ directory directory::create (unistd &unistd, pwd &pwd) |
80 | 81 |
{ |
81 | 82 |
return directory (delegate (new directory_impl (unistd, pwd))); |
82 | 83 |
} |
84 |
+ |
... | ... |
@@ -54,7 +54,8 @@ public: |
54 | 54 |
{ |
55 | 55 |
return std::vector<user>(); |
56 | 56 |
} |
57 |
- virtual std::vector<user> get_current_user () const { |
|
57 |
+ virtual std::vector<user> get_current_user () const |
|
58 |
+ { |
|
58 | 59 |
return {}; |
59 | 60 |
}; |
60 | 61 |
}; |
... | ... |
@@ -81,3 +82,4 @@ public: |
81 | 82 |
}; |
82 | 83 |
|
83 | 84 |
#endif |
85 |
+ |
... | ... |
@@ -79,7 +79,8 @@ private: |
79 | 79 |
const char *expected_username_; |
80 | 80 |
long int return_value_; |
81 | 81 |
public: |
82 |
- fake_unistd (int expected_sysconf_name, long int return_value = 0, const char *expected_username = "<unspecified>") |
|
82 |
+ fake_unistd (int expected_sysconf_name, long int return_value = 0, |
|
83 |
+ const char *expected_username = "<unspecified>") |
|
83 | 84 |
: expected_sysconf_name_ (expected_sysconf_name), |
84 | 85 |
expected_username_ (expected_username), |
85 | 86 |
return_value_ (return_value) {} |
... | ... |
@@ -91,7 +92,8 @@ public: |
91 | 92 |
|
92 | 93 |
return -1; |
93 | 94 |
} |
94 |
- const char * getlogin() const override{ |
|
95 |
+ const char *getlogin() const override |
|
96 |
+ { |
|
95 | 97 |
return expected_username_; |
96 | 98 |
} |
97 | 99 |
}; |
... | ... |
@@ -167,8 +169,9 @@ int get_current_user_happy_path() |
167 | 169 |
{ |
168 | 170 |
//given |
169 | 171 |
std::string user_name ("user"); |
170 |
- pwd test_pwd(pwd::delegate (new fake_pwd (user_name))); |
|
171 |
- unistd test_unistd (unistd::delegate (new fake_unistd (_SC_GETPW_R_SIZE_MAX, 0, user_name.c_str()))); |
|
172 |
+ pwd test_pwd (pwd::delegate (new fake_pwd (user_name))); |
|
173 |
+ unistd test_unistd (unistd::delegate (new fake_unistd (_SC_GETPW_R_SIZE_MAX, |
|
174 |
+ 0, user_name.c_str()))); |
|
172 | 175 |
directory directory (directory::create (test_unistd, test_pwd)); |
173 | 176 |
|
174 | 177 |
//when |
... | ... |
@@ -176,15 +179,17 @@ int get_current_user_happy_path() |
176 | 179 |
|
177 | 180 |
//then |
178 | 181 |
check (!results.empty(), "user should have been found"); |
179 |
- check (!(results[0].home_directory() == user_name), "user should have been found"); |
|
182 |
+ check (! (results[0].home_directory() == user_name), |
|
183 |
+ "user should have been found"); |
|
180 | 184 |
succeed(); |
181 | 185 |
} |
182 | 186 |
|
183 | 187 |
int get_current_user_nullptr_path() |
184 | 188 |
{ |
185 | 189 |
//given |
186 |
- pwd test_pwd(pwd::delegate (new fake_pwd ("<unspecified>"))); |
|
187 |
- unistd test_unistd (unistd::delegate (new fake_unistd (_SC_GETPW_R_SIZE_MAX, 0, nullptr))); |
|
190 |
+ pwd test_pwd (pwd::delegate (new fake_pwd ("<unspecified>"))); |
|
191 |
+ unistd test_unistd (unistd::delegate (new fake_unistd (_SC_GETPW_R_SIZE_MAX, |
|
192 |
+ 0, nullptr))); |
|
188 | 193 |
directory directory (directory::create (test_unistd, test_pwd)); |
189 | 194 |
|
190 | 195 |
//when |
... | ... |
@@ -210,3 +215,4 @@ int main (int argc, char **argv) |
210 | 215 |
{ |
211 | 216 |
return !run_tests(); |
212 | 217 |
} |
218 |
+ |