backup_helper_test.cpp revision 2e1da32203b7f6df76023f25a7382a31fad6b19d
13ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato#include <utils/backup_helpers.h> 23ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato 33ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato#include <stdio.h> 43ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato#include <string.h> 53ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato 64535e40544aeb957d44fad75fbe5676effe03689Joe Onoratousing namespace android; 74535e40544aeb957d44fad75fbe5676effe03689Joe Onorato 8c825d3ebd6ca66e65e63fdc76f032e08aa2a8e22Joe Onorato#if TEST_BACKUP_HELPERS 93ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato 103ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato// ============================================================ 113ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato// ============================================================ 123ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onoratotypedef int (*test_func)(); 133ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato 143ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onoratostruct Test { 153ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato const char* name; 163ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato test_func func; 173ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato int result; 183ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato bool run; 193ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato}; 203ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato 213ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe OnoratoTest TESTS[] = { 223ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato { "backup_helper_test_empty", backup_helper_test_empty, 0, false }, 233ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato { "backup_helper_test_four", backup_helper_test_four, 0, false }, 243ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato { "backup_helper_test_files", backup_helper_test_files, 0, false }, 254535e40544aeb957d44fad75fbe5676effe03689Joe Onorato { "backup_helper_test_data_writer", backup_helper_test_data_writer, 0, false }, 262e1da32203b7f6df76023f25a7382a31fad6b19dJoe Onorato { "backup_helper_test_data_reader", backup_helper_test_data_reader, 0, false }, 273ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato { 0, NULL, 0, false} 283ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato}; 293ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato 303ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onoratoint 313ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onoratomain(int argc, const char** argv) 323ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato{ 333ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato Test* t; 343ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato 353ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato if (argc == 1) { 363ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato t = TESTS; 373ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato while (t->name) { 383ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato t->run = true; 393ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato t++; 403ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato } 413ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato } else { 423ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato t = TESTS; 433ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato while (t->name) { 443ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato for (int i=1; i<argc; i++) { 453ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato if (0 == strcmp(t->name, argv[i])) { 463ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato t->run = true; 473ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato } 483ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato } 493ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato t++; 503ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato } 513ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato } 523ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato 533ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato int testCount = 0; 543ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato t = TESTS; 553ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato while (t->name) { 563ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato if (t->run) { 573ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato testCount++; 583ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato } 593ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato t++; 603ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato } 613ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato 623ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato 633ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato int failed = 0; 643ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato int i = 1; 653ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato t = TESTS; 663ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato while (t->name) { 673ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato if (t->run) { 683ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato printf("===== Running %s (%d of %d) ==============================\n", 693ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato t->name, i, testCount); 703ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato fflush(stdout); 713ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato fflush(stderr); 723ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato t->result = t->func(); 733ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato if (t->result != 0) { 743ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato failed++; 753ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato printf("failed\n"); 763ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato } else { 773ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato printf("passed\n"); 783ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato } 793ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato i++; 803ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato } 813ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato t++; 823ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato } 833ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato 843ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato printf("=================================================================\n"); 853ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato if (failed == 0) { 863ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato printf("All %d test(s) passed\n", testCount); 873ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato } else { 883ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato printf("Tests failed: (%d of %d)\n", failed, testCount); 893ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato t = TESTS; 903ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato while (t->name) { 913ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato if (t->run) { 923ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato if (t->result != 0) { 933ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato printf(" %s\n", t->name); 943ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato } 953ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato } 963ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato t++; 973ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato } 983ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato } 993ad977b41c6e4ef30c2f4f316b909b742ffc04aaJoe Onorato} 100c825d3ebd6ca66e65e63fdc76f032e08aa2a8e22Joe Onorato 101c825d3ebd6ca66e65e63fdc76f032e08aa2a8e22Joe Onorato#else 102c825d3ebd6ca66e65e63fdc76f032e08aa2a8e22Joe Onoratoint 103c825d3ebd6ca66e65e63fdc76f032e08aa2a8e22Joe Onoratomain(int argc, char** argv) 104c825d3ebd6ca66e65e63fdc76f032e08aa2a8e22Joe Onorato{ 105c825d3ebd6ca66e65e63fdc76f032e08aa2a8e22Joe Onorato printf ("test_backup_helper built without the tests\n"); 106c825d3ebd6ca66e65e63fdc76f032e08aa2a8e22Joe Onorato return 0; 107c825d3ebd6ca66e65e63fdc76f032e08aa2a8e22Joe Onorato} 108c825d3ebd6ca66e65e63fdc76f032e08aa2a8e22Joe Onorato#endif 109