forked from agorise/c-ipfs
033dd767b4
Blockstore now storing the data, whereas datastore is storing the key and filename. The key should be the multihash (currently the sha256, not the multihash), and the value is the filename (base32).
127 lines
3.1 KiB
C
127 lines
3.1 KiB
C
#include "cid/test_cid.h"
|
|
#include "cmd/ipfs/test_init.h"
|
|
#include "flatfs/test_flatfs.h"
|
|
#include "merkledag/test_merkledag.h"
|
|
#include "node/test_node.h"
|
|
#include "node/test_importer.h"
|
|
#include "repo/test_repo_bootstrap_peers.h"
|
|
#include "repo/test_repo_config.h"
|
|
#include "repo/test_repo_fsrepo.h"
|
|
#include "repo/test_repo_identity.h"
|
|
#include "storage/test_ds_helper.h"
|
|
#include "storage/test_datastore.h"
|
|
#include "storage/test_blocks.h"
|
|
|
|
int testit(const char* name, int (*func)(void)) {
|
|
printf("Testing %s...\n", name);
|
|
int retVal = func();
|
|
if (retVal)
|
|
printf("%s success!\n", name);
|
|
else
|
|
printf("** Uh oh! %s failed.**\n", name);
|
|
return retVal == 0;
|
|
}
|
|
|
|
const char* names[] = {
|
|
"test_cid_new_free",
|
|
"test_cid_cast_multihash",
|
|
"test_cid_cast_non_multihash",
|
|
"test_cid_protobuf_encode_decode",
|
|
"test_repo_config_new",
|
|
"test_repo_config_init",
|
|
"test_repo_config_write",
|
|
"test_repo_config_identity_new",
|
|
"test_repo_config_identity_private_key",
|
|
"test_repo_fsrepo_write_read_block",
|
|
"test_get_init_command",
|
|
"test_import_small_file",
|
|
"test_repo_fsrepo_open_config",
|
|
"test_flatfs_get_directory",
|
|
"test_flatfs_get_filename",
|
|
"test_flatfs_get_full_filename",
|
|
"test_ds_key_from_binary",
|
|
"test_blocks_new",
|
|
"test_repo_bootstrap_peers_init",
|
|
"test_ipfs_datastore_put",
|
|
"test_node",
|
|
"test_node_link_encode_decode",
|
|
"test_node_encode_decode",
|
|
"test_merkledag_add_data",
|
|
"test_merkledag_get_data",
|
|
"test_merkledag_add_node_with_links"
|
|
};
|
|
|
|
int (*funcs[])(void) = {
|
|
test_cid_new_free,
|
|
test_cid_cast_multihash,
|
|
test_cid_cast_non_multihash,
|
|
test_cid_protobuf_encode_decode,
|
|
test_repo_config_new,
|
|
test_repo_config_init,
|
|
test_repo_config_write,
|
|
test_repo_config_identity_new,
|
|
test_repo_config_identity_private_key,
|
|
test_repo_fsrepo_write_read_block,
|
|
test_get_init_command,
|
|
test_import_small_file,
|
|
test_repo_fsrepo_open_config,
|
|
test_flatfs_get_directory,
|
|
test_flatfs_get_filename,
|
|
test_flatfs_get_full_filename,
|
|
test_ds_key_from_binary,
|
|
test_blocks_new,
|
|
test_repo_bootstrap_peers_init,
|
|
test_ipfs_datastore_put,
|
|
test_node,
|
|
test_node_link_encode_decode,
|
|
test_node_encode_decode,
|
|
test_merkledag_add_data,
|
|
test_merkledag_get_data,
|
|
test_merkledag_add_node_with_links
|
|
};
|
|
|
|
/**
|
|
* run 1 test or run all
|
|
*/
|
|
int main(int argc, char** argv) {
|
|
int counter = 0;
|
|
int tests_ran = 0;
|
|
char* test_wanted;
|
|
int only_one = 0;
|
|
if(argc > 1) {
|
|
only_one = 1;
|
|
if (argv[1][0] == '\'') { // some shells put quotes around arguments
|
|
argv[1][strlen(argv[1])-1] = 0;
|
|
test_wanted = &(argv[1][1]);
|
|
}
|
|
else
|
|
test_wanted = argv[1];
|
|
}
|
|
int array_length = sizeof(funcs) / sizeof(funcs[0]);
|
|
for (int i = 0; i < array_length; i++) {
|
|
if (only_one) {
|
|
const char* currName = names[i];
|
|
if (strcmp(currName, test_wanted) == 0) {
|
|
tests_ran++;
|
|
counter += testit(names[i], funcs[i]);
|
|
}
|
|
}
|
|
else
|
|
if (!only_one) {
|
|
tests_ran++;
|
|
counter += testit(names[i], funcs[i]);
|
|
}
|
|
|
|
}
|
|
|
|
if (tests_ran == 0)
|
|
printf("***** No tests found *****\n");
|
|
else {
|
|
if (counter > 0) {
|
|
printf("***** There were %d failed test(s) *****\n", counter);
|
|
} else {
|
|
printf("All %d tests passed\n", tests_ran);
|
|
}
|
|
}
|
|
return 1;
|
|
}
|