void test_recover (float load_factor, std::size_t count) { testcase << count << " inserts"; path_type const path = beast::UnitTestUtilities::TempDirectory( "nudb").getFullPathName().toStdString(); for (std::size_t n = 1;;++n) { try { fail_counter c(n); do_work (count, load_factor, path, c); break; } catch (nudb::fail_error const&) { } for (std::size_t m = 1;;++m) { fail_counter c(m); try { do_recover (path, c); break; } catch (nudb::fail_error const&) { } } } }
void test_recover (float load_factor, std::size_t count) { testcase << count << " inserts"; beast::temp_dir tempDir; auto const path = tempDir.path(); for (std::size_t n = 1;;++n) { try { fail_counter c(n); do_work (count, load_factor, path, c); break; } catch (nudb::fail_error const&) { } for (std::size_t m = 1;;++m) { fail_counter c(m); try { do_recover (path, c); break; } catch (nudb::fail_error const&) { } } } }
/* * Temporary usage: run_queries <index file> <type> [length] [V] */ int main (int argc, char *argv[]) { int error = 0; error=0; char *filename; char querytype; int i; uint sampleK =1; if (argc < 6) { print_search_usage(argv[0]); exit (1); } filename = argv[1]; sampleK = atoi(argv[2]); querytype = *argv[3]; cerr << "\n SampleK value is " <<sampleK << " BUT IT IS NOT USING ACTUALLY"; //parameters for intersect-operations char *params = NULL; int nchars, len; nchars = argc-5; //nchars = argc; for(i=4;i<argc;i++) nchars += strlen(argv[i]); params = (char *) malloc((nchars+1)*sizeof(char)); params[nchars] = '\0'; nchars = 0; for(i=5;i<argc;i++) { len = strlen(argv[i]); strncpy(params+nchars,argv[i],len); params[nchars+len] = ' '; nchars += len+1; } params[nchars-1] = '\0'; // end parameters /**/ timeFile = fopen("timesSearch.txt","a"); /**/ initResults(argv[1],argv[1]); /**/ fprintf(timeFile,"\n Searching!!: %s %s %s %s %s %s",argv[0],argv[1],argv[2],argv[3],argv[4], params); Load_time = getTime (); //error = load_il (filename, &Index); //IFERRORIL (error); g = new RepairPost(filename); Load_time = getTime () - Load_time; Load_time *= TIMEFACTOR_TO_SEC; fprintf (stderr, "Load index time = %.6f secs\n", Load_time); fflush(stderr); //error = setDefaultSearchOptions_il (Index, params); //IFERRORIL (error); //error = size_il(Index, &Index_size); //IFERRORIL (error); //error = size_il_uncompressed(Index, &Uncompressed_Index_size); //IFERRORIL (error); Index_size = g->size(); Uncompressed_Index_size = g->sizeUncompressed; fprintf(stderr,"Index size = %u bytes\n", Index_size); fflush(stderr); Index_size /=1024; fprintf(stderr,"Index size = %u Kb\n", Index_size); fflush(stderr); switch (querytype){ case EXTRACT: if (argc < 6) { print_search_usage(argv[0]); exit (1); } if (argc > 6) if (*argv[6] == VERBOSE){ Verbose = 1; fprintf(stderr,"%c", EXTRACT); } do_extract((uint) atoi(argv[4]), (uint) atoi(argv[5]) ); break; case RECOVER: printf("\n******** %d ******\n" , argc); fflush(stdout);fflush(stderr); if (argc < 6) { print_search_usage(argv[0]); exit (1); } if (argc > 6) if (*argv[6] == VERBOSE){ Verbose = 1; fprintf(stderr,"%c", RECOVER); } do_recover(filename); break; case INTERSECT2_SVS_U: if (argc < 6) { print_search_usage(argv[0]); exit (1); } if (argc > 6) if (*argv[6] == VERBOSE){ Verbose = 1; fprintf(stderr,"%c", INTERSECT2_SVS_U); } do_intersect2svsUnc((uint) atoi(argv[4]), (uint) atoi(argv[5]) ); break; case INTERSECT2_MERGE: if (argc < 6) { print_search_usage(argv[0]); exit (1); } if (argc > 6) if (*argv[6] == VERBOSE){ Verbose = 1; fprintf(stderr,"%c", INTERSECT2_MERGE); } do_intersect2merge((uint) atoi(argv[4]), (uint) atoi(argv[5]) ); break; default: fprintf (stderr, "Unknow option: main ru\n"); exit (1); } //error = free_il(Index); //IFERRORIL(error); delete g; /**/ fclose(timeFile); free(params); return 0; }