Commit Graph

739 Commits

Author SHA1 Message Date
Sebastian Messmer
d731ecf6a6 On startup, check read/write permissions for base directory and fail if permissions missing 2015-10-30 18:28:33 +01:00
Sebastian Messmer
e46fb04c58 Removed debug output from test cases 2015-10-30 17:24:44 +01:00
Sebastian Messmer
a37c1af761 Check that base directory is not inside mount directory 2015-10-30 17:23:08 +01:00
Sebastian Messmer
b7af7ca2f2 Add a sanity check that mountdir can't be equal to rootdir 2015-10-29 20:17:52 +01:00
Sebastian Messmer
c572e7f353 Add a test configuration running cryfs in foreground 2015-10-29 20:00:59 +01:00
Sebastian Messmer
f42eefbc6b Refactor CliTest_WrongEnvironment into a parametrized test 2015-10-29 19:55:26 +01:00
Sebastian Messmer
a358ae859a Refactor Cli test cases 2015-10-29 19:35:22 +01:00
Sebastian Messmer
cdf0025b15 If basedir doesn't exist, immediately quit with error message. Also added test case for this behaviour. 2015-10-29 16:04:20 +01:00
Sebastian Messmer
49c2fe3902 Move Cli (command line interface) to own class and write first test case for it 2015-10-29 10:47:14 +01:00
Sebastian Messmer
dd4c9cbf4b Since our threads now work well with fork(), we can remove the workarounds 2015-10-28 15:27:30 +01:00
Sebastian Messmer
c4dfd55c39 Because LoopThread now works fine with fork(), we don't have to specify this a DeathTest 2015-10-28 15:20:55 +01:00
Sebastian Messmer
3e01c56ad4 Add Cipher::NAME to CipherConcept 2015-10-28 01:49:12 +01:00
Sebastian Messmer
926d1ce7a4 Allow Cipher::NAME (e.g. AES256_GCM::NAME) 2015-10-28 01:41:38 +01:00
Sebastian Messmer
0d5a7d9d10 Adapt to cpputils crypto library 2015-10-27 23:46:54 +01:00
Sebastian Messmer
22a3c90d54 Moved ciphers to cpputils 2015-10-27 23:27:40 +01:00
Sebastian Messmer
c50371d583 Add symmetric ciphers to crypto lib 2015-10-27 23:19:20 +01:00
Sebastian Messmer
1f86f83ca1 Fix test cases 2015-10-27 23:19:11 +01:00
Sebastian Messmer
340bbf842e Moved crypto classes to cpputils 2015-10-27 22:19:40 +01:00
Sebastian Messmer
7b269a1184 Added a crypto library with scrypt key derivation function and random padding 2015-10-27 22:19:06 +01:00
Sebastian Messmer
88262c3ef9 Make SCrypt config modifiable and speed up test cases by using a special test config 2015-10-27 13:28:42 +01:00
Sebastian Messmer
aceeb2644f Refactor folder structure and put classes in own files 2015-10-26 18:14:27 +01:00
Sebastian Messmer
fd184b45d2 Refactor CryConfigEncryptor: Store instance instead of static 2015-10-26 16:36:57 +01:00
Sebastian Messmer
248f0b0d61 FixedSizeData::take/drop() 2015-10-26 12:15:11 +01:00
Sebastian Messmer
90ecee252e Fix DeathTest 2015-10-25 19:13:33 +01:00
Sebastian Messmer
4164c2353e Graceful exiting when password is wrong 2015-10-25 19:00:30 +01:00
Sebastian Messmer
25db4064b7 Use EXPECT_EXIT instead of EXPECT_DEATH 2015-10-25 18:42:49 +01:00
Sebastian Messmer
daa4f0a7f3 CryConfigEncryptor more thoroughly uses Serializer/Deserializer interface 2015-10-25 17:01:28 +01:00
Sebastian Messmer
cde1a3b7b9 Refactor CryConfigEncryptor 2015-10-25 11:33:30 +01:00
Sebastian Messmer
868e12183a Fix Usage line when called with --help and fix test cases 2015-10-24 20:02:43 +02:00
Sebastian Messmer
61ca163339 If a configuration file is not specified on command line, it will be put into the base directory 2015-10-24 19:56:05 +02:00
Sebastian Messmer
371303ae6a Config file is AES256_GCM encrypted, the config file key is generated with scrypt 2015-10-24 19:35:37 +02:00
Sebastian Messmer
7988cc406d Added serialization/deserialization of DerivedKeyConfig 2015-10-24 12:25:49 +02:00
Sebastian Messmer
8741853eef Added key derivation function scrypt 2015-10-24 01:57:17 +02:00
Sebastian Messmer
20b0034ab1 - Refactor main()
- Added CryConfigLoaderTest
2015-10-23 12:16:23 +02:00
Sebastian Messmer
39c62ae185 Added test case for CryConfigFile 2015-10-23 00:04:03 +02:00
Sebastian Messmer
c936fca16a Added test cases for CryConfigCreator 2015-10-22 18:48:14 +02:00
Sebastian Messmer
9bf83a6fe7 Adapted to new key creation interface 2015-10-22 18:48:04 +02:00
Sebastian Messmer
caaf528031 Refactor key creation 2015-10-22 18:19:59 +02:00
Sebastian Messmer
62549eeae6 Adapt to new cpputils::Random interface 2015-10-22 17:41:43 +02:00
Sebastian Messmer
ca5edb48db Refactor random library 2015-10-22 17:36:03 +02:00
Sebastian Messmer
9b1152348e Added test cases for CryConfig 2015-10-21 17:08:15 +02:00
Sebastian Messmer
d8e0465954 Added test cases for CryCipher 2015-10-19 14:22:01 +02:00
Sebastian Meßmer
d629e14533 Add include tests 2015-10-18 01:09:49 +02:00
Sebastian Meßmer
a3f557ef63 Fix warnings from -Weffc++ 2015-10-17 21:17:38 +02:00
Sebastian Meßmer
a4ce9f1c97 Fix warnings from -Weffc++ 2015-10-17 21:10:26 +02:00
Sebastian Meßmer
0c8b3e69a8 Disabled failing test 2015-10-17 20:37:57 +02:00
Sebastian Meßmer
97fce00391 Fixed warnings from -Weffc++ 2015-10-17 20:35:17 +02:00
Sebastian Meßmer
8b429bac9a Fix warnings from -Weffc++ 2015-10-17 20:15:20 +02:00
Sebastian Meßmer
490936d29d Fix test cases 2015-10-17 19:38:24 +02:00
Sebastian Meßmer
afc0f909b3 Use logging instead of cout/cerr 2015-10-17 17:23:35 +02:00
Sebastian Meßmer
05f9723295 Default logger logs to stderr, not stdout 2015-10-17 16:49:58 +02:00
Sebastian Meßmer
08c09e4af8 Add a fork test case for logging 2015-10-17 16:42:56 +02:00
Sebastian Meßmer
9f9b4fc342 Add test cases for logging 2015-10-17 15:49:54 +02:00
Sebastian Meßmer
7f7e27d6a3 Removed debug output 2015-10-17 03:28:05 +02:00
Sebastian Meßmer
bb90bb19ba Fix death tests in multithreading context 2015-10-16 04:06:00 +02:00
Sebastian Meßmer
39eaff4533 Unify (and fix) include guards 2015-10-15 13:10:20 +02:00
Sebastian Meßmer
821550e62f Unify (and fix) include guards 2015-10-15 13:09:21 +02:00
Sebastian Meßmer
5f9c2c0611 Unify (and fix) include guards 2015-10-15 13:06:51 +02:00
Sebastian Meßmer
c9663acd85 Unify (and fix) include guards 2015-10-15 13:04:57 +02:00
Sebastian Meßmer
02d89fa721 Unify (and fix) include guards 2015-10-15 12:58:16 +02:00
Sebastian Meßmer
7103b3ab07 Fix test cases 2015-10-15 05:26:05 +02:00
Sebastian Messmer
210c2c2811 Fix compiler error in test cases 2015-10-08 18:05:09 +02:00
Sebastian Messmer
2a938730e7 Test cases print stack trace on sigsegv 2015-10-05 16:56:53 +02:00
Sebastian Messmer
cc2f93af92 Test cases print stack trace on sigsegv 2015-10-05 16:54:41 +02:00
Sebastian Messmer
d47020e781 Test cases print stack trace on sigsegv 2015-10-05 16:52:49 +02:00
Sebastian Messmer
58f7024919 Test cases print stack trace on sigsegv 2015-10-05 16:52:06 +02:00
Sebastian Messmer
78dbe6ea24 Test cases print stack trace on sigsegv 2015-10-05 16:51:49 +02:00
Sebastian Messmer
e78cd1db91 Demangle backtrace 2015-10-05 14:58:16 +02:00
Sebastian Messmer
6dec27253c Fix assert test case 2015-10-03 01:30:42 +02:00
Sebastian Messmer
3fed6f13cb Removed testcases for constexpr 2015-10-03 01:01:48 +02:00
Sebastian Messmer
84330b1100 Cache has better parallelity - we can push()/pop() while it is flushing and flushing is actually parallel 2015-10-01 13:51:01 +02:00
Sebastian Messmer
90471ea6a3 Fixed Cache race condition and added test for it 2015-10-01 01:20:40 +02:00
Sebastian Messmer
e07ddaa289 Fix traversing bug and add test case for it 2015-09-30 15:33:09 +02:00
Sebastian Messmer
52bb855627 EncryptedBlockStore crashed when a modified block was removed. Fixed crash and added test case. 2015-09-29 18:51:59 +02:00
Sebastian Messmer
dfb030e51b Config file is also configurable with an option 2015-09-29 14:39:10 +02:00
Sebastian Messmer
27d3ffc472 MountDir and BaseDir are configureable via command line 2015-09-29 14:29:10 +02:00
Sebastian Messmer
819e48b446 Allow outputting const_string to std::ostream 2015-09-18 22:08:56 +02:00
Sebastian Messmer
12f1e7983b Use messmer/gitversion instead of own version parser code 2015-09-18 21:16:42 +02:00
Sebastian Messmer
fc7316f06c Show number of commits and git id in version number if it is a dev version 2015-09-18 17:34:56 +02:00
Sebastian Messmer
4cf1237bb8 Moved constexpr string manipulations to cpputils::const_string 2015-09-18 17:09:04 +02:00
Sebastian Messmer
3573a6fa74 Added const_string class (constexpr string manipulations) 2015-09-18 17:08:26 +02:00
Sebastian Messmer
3fd5cb7afc Show version information on console and warn if it is a nonstable or dev version 2015-09-17 14:12:51 +02:00
Sebastian Messmer
8db80d5ebf Refactor directory structure 2015-09-12 20:16:13 +02:00
Sebastian Messmer
67f0f39b50 Added Console class 2015-09-12 20:07:44 +02:00
Sebastian Messmer
117930fad2 Print a newline around user interactions 2015-09-04 16:09:37 +02:00
Sebastian Messmer
a9a5a5d04d Console class supports askYesNo(question) 2015-09-04 16:00:41 +02:00
Sebastian Messmer
aea84d9ef5 Added more ciphers 2015-08-31 23:04:56 +02:00
Sebastian Messmer
e96bb17e11 Removed unnecessary workaround 2015-07-29 12:07:25 +02:00
Sebastian Messmer
5607a51594 Added testcase for Console.print() 2015-07-26 13:13:36 +02:00
Sebastian Messmer
fd11436fb9 Test cases don't need user interaction anymore 2015-07-26 13:09:55 +02:00
Sebastian Messmer
69a413bf4b Fix EitherTest 2015-07-25 15:17:27 +02:00
Sebastian Messmer
50503d9ce0 Renamed Either to either 2015-07-24 20:08:03 +02:00
Sebastian Messmer
d9cfa55b91 Use ASSERT from cpputils instead of fspp_assert 2015-07-22 13:48:53 +02:00
Sebastian Messmer
106f18b496 Use the new assert that doesn't crash the program in a release build 2015-07-22 13:44:04 +02:00
Sebastian Messmer
fd93e4c199 Use the new assert that doesn't crash the program in a release build 2015-07-22 13:42:07 +02:00
Sebastian Messmer
cce24dd64b Implemented ASSERT macro 2015-07-22 13:39:38 +02:00
Sebastian Messmer
7dcb29d515 Implemented fspp_assert() 2015-07-21 19:45:44 +02:00
Sebastian Messmer
881c19c262 Fix missing usings 2015-07-21 18:31:28 +02:00
Sebastian Messmer
e5647ace48 Remove unneccessary using statements 2015-07-21 18:22:55 +02:00
Sebastian Messmer
492caeb418 Migrate from unique_ptr to unique_ref 2015-07-21 18:22:03 +02:00
Sebastian Messmer
37bdbd907a Finished migrating to unique_ref instead of unique_ptr 2015-07-21 18:19:34 +02:00
Sebastian Messmer
e64255a16e Removed last unique_ptr uses, all uses unique_ref now 2015-07-21 15:24:49 +02:00
Sebastian Messmer
b5d9f07f7a Implement cpputils::destruct(unique_ref) 2015-07-21 15:23:21 +02:00
Sebastian Messmer
e9c461e328 optional_ownership_ptr works with unique_ref 2015-07-21 15:18:14 +02:00
Sebastian Messmer
a923165360 Adapted to new blockstore interface (using unique_ref instead of unique_ptr) 2015-07-21 15:00:57 +02:00
Sebastian Messmer
7c407c4b69 Switched whole blockstore interface to unique_ref instead of unique_ptr 2015-07-21 14:50:52 +02:00
Sebastian Messmer
7fc4115129 Adapt to new blockstore (Blockstore::tryCreate returns optional<unique_ref<Block>> instead of unique_ptr<Block>) 2015-07-20 19:10:46 +02:00
Sebastian Messmer
a945e4f0fc Changed Blockstore::tryCreate() to return optional<unique_ref<Block>> instead of unique_ptr<Block> 2015-07-20 18:57:48 +02:00
Sebastian Messmer
337d2c055b Implemented Console class to interact with the user 2015-07-01 14:32:26 +02:00
Sebastian Messmer
6442512877 Allow dereferencing rvalues in unique_ref 2015-06-28 17:34:23 +02:00
Sebastian Messmer
72cb9fa038 When calling left()/right()/left_opt()/right_opt() on a rvalue reference, it performs a move and returns a rvalue reference 2015-06-28 17:25:13 +02:00
Sebastian Messmer
c5822b97f4 Use optional::value() instead of optional::get() 2015-06-28 17:05:06 +02:00
Sebastian Messmer
b47fd3f671 Use optional::value() instead of optional::get() 2015-06-28 17:02:20 +02:00
Sebastian Messmer
5ea654445c Use optional::value() instead of optional::get() in test cases 2015-06-28 16:59:13 +02:00
Sebastian Messmer
7ae30280f3 Use optional::value() instead of options::get() in test cases 2015-06-28 16:49:35 +02:00
Sebastian Messmer
de5dd8a838 Use optional::value() instead of options::get() in test cases 2015-06-28 16:45:18 +02:00
Sebastian Messmer
5a812b279f Use optional::value() instead of options::get() in test cases 2015-06-28 16:44:55 +02:00
Sebastian Messmer
3d1341114b Use unique_ref instead of unique_ptr 2015-06-26 15:59:18 +02:00
Sebastian Messmer
3826bab481 Fix test cases 2015-06-26 15:57:41 +02:00
Sebastian Messmer
ab5238549d Introduced make_left, make_right 2015-06-26 12:41:25 +02:00
Sebastian Messmer
f3222e361b Added operator<<(ostream, Either) 2015-06-26 02:17:08 +02:00
Sebastian Messmer
a98cf8200e Improve move testcases for Either 2015-06-26 02:06:33 +02:00
Sebastian Messmer
99be93d970 Add tests for direct (move) assignments 2015-06-26 02:02:29 +02:00
Sebastian Messmer
396dbcfc1c Add assignment operators 2015-06-26 01:59:29 +02:00
Sebastian Messmer
d5dadc74e7 Offer Either::left_opt() and Either::right_opt() and add some test cases 2015-06-26 01:07:46 +02:00
Sebastian Messmer
e1c4327338 Added comparison operators to Either 2015-06-25 16:27:26 +02:00
Sebastian Messmer
2d7dc8c583 Added first version for an either type 2015-06-25 15:46:53 +02:00
Sebastian Messmer
adbcb054c6 Add dynamic_pointer_move test cases for unique_ref 2015-06-21 18:18:43 +02:00
Sebastian Messmer
a1e0358d4c Adapt to new cpp-utils 2015-06-21 17:44:45 +02:00
Sebastian Messmer
2fa7d656e7 Adapt to new cpp-utils 2015-06-21 17:44:30 +02:00
Sebastian Messmer
7fae2d1e59 Adapt to new cpp-utils 2015-06-21 17:43:45 +02:00
Sebastian Messmer
e346283b0b Refactor folder structure 2015-06-21 17:41:57 +02:00
Sebastian Messmer
f30bec26ee Added some more test cases for dynamic_pointer_move 2015-06-21 17:14:35 +02:00
Sebastian Messmer
cf6ef7c02c Use C++11 uniform initialization for structs 2015-06-21 14:40:57 +02:00
Sebastian Messmer
d1528fe541 Use C++11 uniform initialization for structs 2015-06-21 14:40:52 +02:00
Sebastian Meßmer
2f22cbc9a8 Adapt to new fspp interface using unique_ref instead of unique_ptr 2015-06-18 19:36:05 +02:00
Sebastian Meßmer
31cd0eb9e9 Adapt to new dynamic_pointer_move 2015-06-18 19:34:24 +02:00
Sebastian Meßmer
536cba1459 Use unique_ref instead of unique_ptr wherever possible 2015-06-18 19:30:52 +02:00
Sebastian Meßmer
e883bc5747 More use of unique_ref instead of unique_ptr 2015-06-18 13:45:08 +02:00
Sebastian Meßmer
5039205cd2 BlobStore handles unique_ref<Blob> instead of unique_ptr<Blob> 2015-06-18 12:45:37 +02:00
Sebastian Meßmer
590beac11c Added dynamic_pointer_move for unique_ref 2015-06-18 02:36:57 +02:00
Sebastian Meßmer
86a8683fa7 Finish implementing unique_ref and added many more test cases 2015-06-18 01:29:02 +02:00
Sebastian Meßmer
09f89327da Fix test cases 2015-06-17 12:28:18 +02:00
Sebastian Meßmer
199da740ed Fix test cases 2015-06-17 12:17:17 +02:00
Sebastian Messmer
3d5b9e9815 Implemented unique_ref and started writing test cases 2015-06-17 00:59:02 +02:00
Sebastian Messmer
3069874066 Fix test cases 2015-06-17 00:38:02 +02:00
Sebastian Messmer
e8a48afd3b Enable extended compiler warnings and resolve occurring ones 2015-05-08 02:10:56 +02:00
Sebastian Messmer
abf0f68432 Enable extended compiler warnings and resolve occurring ones 2015-05-08 02:10:40 +02:00
Sebastian Messmer
fdcd56401a Added specific test cases for EncryptedBlockStore 2015-05-06 00:37:57 +02:00
Sebastian Messmer
0042ae1cef - Run test cases for EncryptedBlockStore with different ciphers
- Implement FakeAuthenticatedCipher for use with specific EncryptedBlockStoreTest
- Write skeleton for specific EncryptedBlockStoreTest
- Fix behavior of AES256_CFB when called with too small input
- Add testcase that all ciphers (also non-authenticating ones) have to handle too small input correctly
2015-05-06 00:12:14 +02:00
Sebastian Messmer
fd09ff1f9e Remove includes to unused exception 2015-04-29 16:33:26 +02:00
Sebastian Messmer
cb402fd14b Added test cases for Cache 2015-04-28 11:56:07 +02:00
Sebastian Messmer
d589910b0d TODOs 2015-04-27 23:10:30 +02:00
Sebastian Messmer
c47434d3b3 Separated QueueMapTest.cpp into test groups with their own files each 2015-04-27 23:09:29 +02:00
Sebastian Messmer
1ff807e09c Make Cache a generic over Key/Value. Furthermore, add test skeleton for Cache 2015-04-27 22:46:57 +02:00
Sebastian Messmer
f286886b49 Handle QueueMap::push(existing_key) better and write more test cases for QueueMap 2015-04-27 22:11:15 +02:00
Sebastian Messmer
fa4e23ceb4 Fix loading encryption keys from config file 2015-04-27 18:00:11 +02:00
Sebastian Messmer
bf77e0ffa7 Small fix in AES256_GCM 2015-04-27 17:58:34 +02:00
Sebastian Messmer
8f7853f01a Add basic test case for cryfs 2015-04-27 16:38:09 +02:00
Sebastian Messmer
6f1c39fd21 QueueMap: Added more test cases and improved interface 2015-04-27 10:35:01 +02:00
Sebastian Messmer
f647342228 TODOs 2015-04-27 01:36:32 +02:00
Sebastian Messmer
e177c6f45c Switch to a QueueMap implementation with less indirections (directly store elements instead of pointers) 2015-04-27 01:22:39 +02:00
Sebastian Messmer
09bc28e810 EncryptedBlock stores its block key in the block, so that an attacker can't replace block contents with a different block 2015-04-26 16:36:48 +02:00
Sebastian Messmer
1f14598d25 Added Test Cases for PeriodicTask 2015-04-26 12:36:19 +02:00
Sebastian Messmer
864f0a0186 Added more test cases for Data 2015-04-26 00:41:29 +02:00
Sebastian Messmer
61337eef85 Removed DataBlockFixture 2015-04-25 17:45:18 +02:00
Sebastian Messmer
7d6febe17f Reduce use of memcmp and use operator==(Data, Data) instead 2015-04-25 17:17:15 +02:00
Sebastian Messmer
77b67a8137 Reduce use of memcmp and use operator==(Data, Data) instead 2015-04-25 17:17:06 +02:00
Sebastian Messmer
a07c03d752 Added test cases for DataFixture 2015-04-25 17:03:18 +02:00
Sebastian Messmer
b4e2eaa3e8 Use cpputils::DataFixture instead of DataBlockFixture 2015-04-25 16:44:00 +02:00
Sebastian Messmer
a2c89ed73a Use cpputils::DataFixture instead of DataBlockFixture 2015-04-25 16:43:52 +02:00
Sebastian Messmer
65eb73e7d9 Use cpputils::DataFixture instead of DataBlockFixture 2015-04-25 16:43:37 +02:00
Sebastian Messmer
0b60370665 Remove dependency to tempfile 2015-04-25 03:47:30 +02:00
Sebastian Messmer
3e12c771a1 Remove dependency to tempfile 2015-04-25 03:47:03 +02:00
Sebastian Messmer
74e9ffb9f4 Use cpputils::TempFile and cpputils::Data instead of blockstore::TempFile and blockstore::Data 2015-04-25 03:37:25 +02:00
Sebastian Messmer
9de2d9d04a - Use cpputils::DataBlockFixture and cpputils::Data.
- Fix test cases
2015-04-25 03:26:59 +02:00
Sebastian Messmer
6a0623956d Use Data, DataBlockFixture from cpputils 2015-04-25 02:55:34 +02:00
Sebastian Messmer
59bfddc18f Moved Data, FixedSizeData and DataBlockFixture to cpp-utils 2015-04-25 02:48:41 +02:00
Sebastian Messmer
38327de0c8 Move tempfile to cpp-utils 2015-04-25 02:40:02 +02:00
Sebastian Messmer
d8a6b23962 Moved data classes to cpp-utils 2015-04-25 02:24:18 +02:00
Sebastian Messmer
3d9e98d892 Fix compiler errors in tests 2015-04-25 00:08:29 +02:00
Sebastian Messmer
e056a65b48 - Added test cases for authenticated ciphers
- Fixed corner case for AES256_GCM when decrypt is called on data that can't hold IV and TAG
2015-04-24 23:58:24 +02:00
Sebastian Messmer
0335b243fb Implemented AES256_GCM 2015-04-24 23:02:14 +02:00
Sebastian Messmer
19e5f03de3 Simplified CipherTest 2015-04-24 21:33:25 +02:00
Sebastian Messmer
008c6f7ab7 Add Cipher concept 2015-04-24 21:30:54 +02:00
Sebastian Messmer
5adcf4aca1 Allow decryption interface to fail (needed for authenticated ciphers later) 2015-04-24 21:08:36 +02:00
Sebastian Messmer
79283b868b Added test cases that a Cipher is indeterministic 2015-04-24 19:13:56 +02:00
Sebastian Messmer
f18195757c - Added test cases for ciphers
- Removed Cipher.h
2015-04-24 18:58:42 +02:00
Sebastian Messmer
6e50c9d8a5 Factor out encryption algorithm from EncryptedBlockStore 2015-04-24 18:14:25 +02:00
Sebastian Meßmer
17f6a38629 Removed unneccessary flushes 2015-04-18 17:06:55 +02:00
Sebastian Meßmer
417a701636 - BlockStore::create() gets the data of the new block as a parameter
- Fixed numBlocks() in OnDiskBlockStore, FakeBlockStore, CachingBlockStore, ...
- CachingBlockStore caches created blocks and doesn't directly create them in the underlying blockstore
2015-04-18 14:47:12 +02:00
Sebastian Messmer
18e7d68f15 Added test cases checking that numBlocks() works correctly when a created block is not destructed yet 2015-04-17 13:27:17 +02:00
Sebastian Messmer
d15a355464 Renamed to ParallelAccessStore 2015-04-16 14:52:06 +02:00
Sebastian Messmer
9fa6b041eb Renamed old Caching2BlockStore to new CachingBlockStore 2015-04-16 14:10:44 +02:00
Sebastian Messmer
248fd0f5cc Renamed old CachingBlockStore to ParallelAccessBlockStore 2015-04-16 13:59:52 +02:00
Sebastian Messmer
72f952b57c Added dummy implementation for new caching block store 2015-04-15 15:46:35 +02:00
Sebastian Messmer
cc30dcde10 Fix FakeBlockStore 2015-04-15 14:51:41 +02:00
Sebastian Messmer
bee68464dc When traversing a blob out of range, automatically create the leaves up to the traversed point 2015-04-10 21:52:30 +02:00
Sebastian Messmer
bb98e9b31d Fix test cases for new flushing policy 2015-04-10 00:10:49 +02:00
Sebastian Messmer
711283a89b EncryptedBlockStore handles encryption keys 2015-04-09 20:14:12 +02:00
Sebastian Messmer
990ca6ca26 Generalized Key to FixedSizeData 2015-04-09 20:07:03 +02:00
Sebastian Messmer
86f8ca6dc4 Dummy implementation for EncryptedBlockStore 2015-04-09 19:22:09 +02:00
Sebastian Meßmer
9de711b881 Refactoring 2015-04-02 12:18:44 -04:00
Sebastian Meßmer
5578af3948 Initial version 2015-04-02 11:39:44 -04:00
Sebastian Meßmer
da0efd80c5 Rename SynchronizedBlockStore -> CachingBlockStore 2015-04-02 02:59:43 -04:00
Sebastian Meßmer
5571a42980 Continued working on SynchronizedBlockStore. remove() doesn't work yet. 2015-03-28 13:44:22 -04:00
Sebastian Meßmer
f6669c86c1 Added SynchronizedBlockStore. In this first version, it only synchronizes the direct blockstore functions, but still allows opening the same block twice. This will be forbidden in future commits 2015-03-19 11:16:20 +01:00
Sebastian Messmer
a7a87a07dd Add style warnings 2015-03-16 18:32:37 +01:00
Sebastian Meßmer
c47095474c Use new FsTest 2015-03-16 02:57:01 +01:00
Sebastian Meßmer
662c3f8e90 Use the fspp test cases for cryfs 2015-03-16 02:15:51 +01:00
Sebastian Meßmer
6d61b896af Remove test that is dependent on gcc optimization level 2015-03-15 09:26:50 +01:00
Sebastian Messmer
deba4810a8 Replaced absolute paths to messmer/blobstore with local relative paths 2015-03-12 15:18:10 +01:00
Sebastian Messmer
294530c662 Replaced absolute paths to messmer/blockstore/... with relative local paths 2015-03-12 14:27:51 +01:00
Sebastian Messmer
141b7e08b7 Fix OpenFile::read() return type 2015-03-11 01:05:16 +01:00
Sebastian Messmer
9741fb3f5c - ReadDir also returns whether the entry is a file or a directory
- OpenFileList has a simpler interface
2015-03-11 00:22:36 +01:00
Sebastian Messmer
498623ddab Merge branch 'master' into develop 2015-03-10 21:51:21 +01:00
Sebastian Messmer
40c690d03b Dir::children() returns not only the entry name, but also whether it is a file or a directory entry 2015-03-10 21:51:12 +01:00
Sebastian Messmer
b13b9d8689 Added test cases for BlockStore::write() 2015-03-08 02:15:31 +01:00
Sebastian Messmer
ffd9ada260 Test BlockStoreUtils fillWithZeroes() 2015-03-08 00:36:59 +01:00
Sebastian Messmer
40cbf93957 Deleted unneccessary test cases and added test cases for BlobReadWriteTest 2015-03-06 21:18:22 +01:00
Sebastian Messmer
2bfc872088 Fix Blob::read()/write() and write test cases for it 2015-03-06 20:40:23 +01:00
Sebastian Messmer
c293dc0571 Added test cases 2015-03-06 16:54:49 +01:00
Sebastian Messmer
d8b7a99ea8 Fix compiler warning 2015-03-06 16:43:16 +01:00
Sebastian Messmer
df9a44eace Added some more test cases to BlobStore 2015-03-06 16:39:40 +01:00
Sebastian Messmer
a9c44a40ed Fix Blob::write() and add some test cases for it 2015-03-06 16:08:30 +01:00
Sebastian Messmer
4658de552f TODOs 2015-03-06 02:34:18 +01:00
Sebastian Messmer
19b9551a00 Added test cases loading nonexisting blobs 2015-03-06 02:32:43 +01:00
Sebastian Messmer
044f6c9f8a TODOs 2015-03-06 02:28:41 +01:00
Sebastian Messmer
75d1ef11fe Fixed loading nonexisting blobs and wrote more test cases 2015-03-06 02:21:31 +01:00
Sebastian Messmer
471ce89421 Removed duplicate test case 2015-03-05 22:40:29 +01:00
Sebastian Messmer
f834f8892d Added test cases for resizing blobs 2015-03-05 22:34:51 +01:00
Sebastian Messmer
8b7a76c38a Added first test for BlobStoreOnBlocks 2015-03-05 22:23:30 +01:00
Sebastian Messmer
e64ab10059 Fix DataNodeView: Only allow read access to data region 2015-03-05 22:22:22 +01:00
Sebastian Messmer
31417f8e05 Add test cases for writing into leaves 2015-03-04 21:56:48 +01:00
Sebastian Messmer
3a01f95467 Adapt to new blockstore which has Block::write() instead of writeable Block::data() pointer 2015-03-04 20:58:39 +01:00
Sebastian Messmer
d42bda0ca6 Added Block::write() and removed writeable data() pointer 2015-03-04 20:47:02 +01:00
Sebastian Messmer
5fb235a40c Removed DataTree::addDataLeaf() / DataTree::removeLastDataLeaf() and DataTree::flush() 2015-03-04 03:17:59 +01:00
Sebastian Messmer
02ae3615fd DataBlockFixture create data that is independent from its size 2015-03-04 02:59:46 +01:00
Sebastian Messmer
09b648317f DataBlockFixture create data that is independent from its size 2015-03-04 02:58:52 +01:00
Sebastian Messmer
c0e5b5db8c Added more test cases for resizing blobs 2015-03-04 02:56:17 +01:00
Sebastian Messmer
3b06dec1f2 DataBlockFixture creates data that is independent from its size 2015-03-04 02:34:54 +01:00
Sebastian Messmer
0e91d06a6f Add test cases for DataTree::resizeNumBytes() 2015-03-04 02:05:03 +01:00
Sebastian Messmer
68182e523f Added test cases for DataNode::key() and DataTree::key() 2015-02-27 14:32:28 +01:00
Sebastian Messmer
a44b6318e2 - Refactor math functions for reuse (and write test cases for them)
- Implemented BlobOnBlocks::read() and write(). Not tested yet.
2015-02-26 20:19:12 +01:00
Sebastian Messmer
1e2cb46c0b Refactor test folder structure 2015-02-26 17:05:05 +01:00
Sebastian Messmer
87db6dfab8 Fix DataTree::numStoredBytes() and write test cases for it 2015-02-26 17:04:02 +01:00
Sebastian Messmer
0f3314b31c Added some test cases for traversing a four level tree 2015-02-25 22:38:49 +01:00
Sebastian Messmer
c9ce0d55cf Make block size configureable in DataNodeStore -> this greatly speeds up our test cases, because they can use smaller blocks, which means less children per inner node 2015-02-25 22:30:48 +01:00
Sebastian Messmer
100268930e Add some test cases traversing a DataTree 2015-02-25 16:52:52 +01:00
Sebastian Messmer
02bceecb29 Refactoring test cases 2015-02-25 14:42:20 +01:00
Sebastian Messmer
97cf6a6e40 Written data tree leaf traversal and some test cases 2015-02-25 01:31:16 +01:00
Sebastian Messmer
a71f26d0d4 Added another DataTreeStoreTest 2015-02-24 22:51:56 +01:00
Sebastian Messmer
81ab18f595 Speedup test case 2015-02-24 22:46:44 +01:00
Sebastian Messmer
7f55285ecd Implement removing trees and write some test cases for DataTreeStore 2015-02-24 22:44:10 +01:00
Sebastian Messmer
19e14146f4 Be more explicit in test case 2015-02-24 17:37:39 +01:00
Sebastian Messmer
db32c37b87 Added testcase for DataNodeStore::remove() 2015-02-24 16:54:44 +01:00
Sebastian Messmer
b9e3a9b109 Added test cases for DataNodeStore::numNodes() 2015-02-24 16:52:11 +01:00
Sebastian Messmer
96208200f9 Improve depth test cases (also check that the level below depth 1 nodes is leaves) 2015-02-24 16:46:05 +01:00
Sebastian Messmer
67dbb96774 Add tests that the depth flags stay intact on shrinking 2015-02-24 16:42:13 +01:00
Sebastian Messmer
1006c2cc38 Test cases for BlockStore::numBlocks() 2015-02-24 14:42:26 +01:00
Sebastian Messmer
f491d3d183 Added BlockStore::numBlocks() 2015-02-23 21:07:07 +01:00
Sebastian Messmer
6127a9d6a8 Added test cases shrinking down full trees to one-leaf trees 2015-02-23 21:06:45 +01:00
Sebastian Messmer
0d26692048 TODOs 2015-02-23 20:25:37 +01:00
Sebastian Messmer
6d923c5ef5 Refactor DataTreeGrowingTest_DataStaysIntact 2015-02-23 20:25:13 +01:00
Sebastian Messmer
f7e710f305 Added tests ensuring that the data stays intact on shrinking 2015-02-23 19:54:59 +01:00
Sebastian Messmer
6c9d4cca39 Refactor growing test cases 2015-02-23 17:51:11 +01:00
Sebastian Messmer
388c755f63 Refactor GetLowestRightBorderNode... algorithm test cases 2015-02-23 17:45:10 +01:00
Sebastian Messmer
7fea8017c8 Refactor shrinking test cases 2015-02-23 17:30:44 +01:00
Sebastian Messmer
fee8cd42eb Refactoring test cases 2015-02-23 17:03:45 +01:00
Sebastian Messmer
c81e058717 TODOs 2015-02-23 16:21:41 +01:00
Sebastian Messmer
05b4ccae05 Added some test cases for shrinking trees 2015-02-23 16:21:02 +01:00
Sebastian Messmer
ab2e789dac Implement tree shrinking and some test cases for it 2015-02-22 19:30:42 +01:00
Sebastian Messmer
aeec8b1490 Add utility function to copy blocks 2015-02-22 19:29:30 +01:00
Sebastian Messmer
e65ce5f11f Change way of deleting blocks to be more foolproof (when deleting a block, the user is forced to give up its reference to the block) 2015-02-22 16:53:49 +01:00
Sebastian Messmer
37e8a511f5 Added BlockStore::remove(key) 2015-02-22 00:29:21 +01:00
Sebastian Messmer
46a0bf617b Added test cases for GetLowestRightBorderNodeWithMoreThanOneChildOrNull 2015-02-21 23:25:57 +01:00
Sebastian Messmer
f5c48db10b - Refactor GetLowestRightBorderNodeWithLessThanKChildrenOrNull into algorithm.h
- Started shrinking leaves
2015-02-21 01:59:25 +01:00
Sebastian Messmer
959b5dcb3b Added test case growing a larger tree step by step 2015-02-20 20:16:44 +01:00
Sebastian Messmer
5133e3d8a0 Add test cases checking that growing a tree sets correct depth flags 2015-02-20 20:01:47 +01:00
Sebastian Messmer
0607dcb282 Refactor initialization of DataLeafNode/DataInnerNode 2015-02-20 19:46:52 +01:00
Sebastian Messmer
8b792e691c Refactor test cases 2015-02-20 18:31:18 +01:00
Sebastian Messmer
d63d66c97b Added some test cases for growing a tree 2015-02-20 17:33:33 +01:00
Sebastian Messmer
8843cef9ca Added some test cases ensuring the data of leaves stays intact when growing a tree 2015-02-20 14:27:11 +01:00
Sebastian Messmer
727b5f5e9c Added Travis CI 2015-02-20 02:01:03 +01:00
Sebastian Messmer
2ac970a833 Switch to biicode 2015-02-17 00:48:49 +01:00
Sebastian Messmer
3350e9368a Switch to biicode 2015-02-17 00:40:34 +01:00
Sebastian Messmer
0c851fa452 Switch to biicode 2015-02-17 00:23:33 +01:00
Sebastian Messmer
687a7c9500 Fix test cases 2015-02-16 21:36:00 +01:00
Sebastian Messmer
a01a6f64d1 Add macros.h, pointer.h and optional_ownership_pointer.h 2015-02-16 21:31:57 +01:00