int test_print_size ( int argc, char ** argv ) { #if 1 u64 i = 0; printf("%21llu |%s|%s| |%s|\t|%s|\n", i, wd_print_size_1000(0,0,i,true), wd_print_size_1024(0,0,i,true), wd_print_size_1000(0,0,i,false), wd_print_size_1024(0,0,i,false) ); for ( i = 1; i; i <<= 5 ) { printf("%21llu |%s|%s| |%s|\t|%s|\n", i, wd_print_size_1000(0,0,i,true), wd_print_size_1024(0,0,i,true), wd_print_size_1000(0,0,i,false), wd_print_size_1024(0,0,i,false) ); } u64 prev = 0; for ( i = 1; i > prev; i *= 10 ) { prev = i; printf("%21llu |%s|%s| |%s|\t|%s|\n", i, wd_print_size_1000(0,0,i,true), wd_print_size_1024(0,0,i,true), wd_print_size_1000(0,0,i,false), wd_print_size_1024(0,0,i,false) ); } i = ~(u64)0; printf("%21llu |%s|%s| |%s|\t|%s|\n", i, wd_print_size_1000(0,0,i,true), wd_print_size_1024(0,0,i,true), wd_print_size_1000(0,0,i,false), wd_print_size_1024(0,0,i,false) ); #else u64 size = 1000000000; wd_size_mode_t mode; for ( mode = 0; mode < WD_SIZE_N_MODES; mode++ ) printf("|%s|\t|%s|\t|%s|\t|%s|\t|%s|\t|%s|\n", wd_get_size_unit(mode,"?"), wd_print_size(0,0,size,true,mode|WD_SIZE_F_NO_UNIT), wd_print_size(0,0,size,true,mode|WD_SIZE_F_1000), wd_print_size(0,0,size,true,mode), wd_print_size(0,0,size,false,mode|WD_SIZE_F_1000), wd_print_size(0,0,size,false,mode) ); #endif return 0; }
enumError cmd_test_options() { printf("Options (hex=dec):\n"); printf(" test: %16d\n",testmode); printf(" verbose: %16d\n",verbose); printf(" width: %16d\n",opt_width); #if IS_WWT print_val( "size:", opt_size, 0); print_val( "hd sec-size:", opt_hss, 0); print_val( "wb sec-size:", opt_wss, 0); print_val( "repair-mode:", repair_mode, 0); #elif defined(TEST) u64 opt_size = 0; #endif snprintf(iobuf,sizeof(iobuf)," = %s",oft_info[output_file_type].name); print_val( "output-mode:", output_file_type, iobuf ); SetupOptionsWDF(); if ( opt_wdf_version || opt_wdf_align || opt_wdf_min_holesize ) { if ( use_wdf_version != opt_wdf_version ) snprintf(iobuf,sizeof(iobuf)," => use v%d",use_wdf_version); else *iobuf = 0; print_val( "wdf-version:", opt_wdf_version, iobuf ); if ( use_wdf_align != opt_wdf_align ) snprintf(iobuf,sizeof(iobuf)," => use %x (%s)", use_wdf_align, wd_print_size_1024(0,0,use_wdf_align,false) ); else *iobuf = 0; print_val( "align-wdf:", opt_wdf_align, iobuf ); print_val( "minhole-wdf", opt_wdf_min_holesize, 0 ); } print_val( "chunk-mode:", opt_chunk_mode, 0 ); print_val( "chunk-size:", opt_chunk_size, force_chunk_size ? " FORCE!" : "" ); print_val( "max-chunks:", opt_max_chunks, 0 ); #ifdef TEST { u64 filesize[] = { 100ull*MiB, 1ull*GiB, 10ull*GiB, opt_size, 0 }; u64 *fs_ptr = filesize; for (;;) { u32 n_blocks; u32 block_size = CalcBlockSizeCISO(&n_blocks,*fs_ptr); printf(" CISO block size %12llx = %12lld -> %5u * %8x/hex == %12llx/hex\n", *fs_ptr, *fs_ptr, n_blocks, block_size, (u64)block_size * n_blocks ); if (!*++fs_ptr) break; } } #endif printf(" auto-split: %16x = %12d\n",opt_auto_split,opt_auto_split); printf(" split: %16x = %12d\n",opt_split,opt_split); print_val( "split-size:", opt_split_size, 0 ); printf(" compression: %16x = %12d = %s (level=%d)\n", opt_compr_method, opt_compr_method, wd_get_compression_name(opt_compr_method,"?"), opt_compr_level ); printf(" level: %16x = %12d\n",opt_compr_level,opt_compr_level); print_val( " chunk-size:", opt_compr_chunk_size, 0 ); print_val( "mem:", opt_mem, 0 ); GetMemLimit(); print_val( "mem limit:", opt_mem, 0 ); printf(" escape-char: %16x = %12d\n",escape_char,escape_char); printf(" print-time: %16x = %12d\n",opt_print_time,opt_print_time); printf(" sort-mode: %16x = %12d\n",sort_mode,sort_mode); printf(" show-mode: %16x = %12d\n",opt_show_mode,opt_show_mode); printf(" unit: %16x = %12d, unit=%s\n", opt_unit, opt_unit, wd_get_size_unit(opt_unit,"?") ); printf(" limit: %16x = %12d\n",opt_limit,opt_limit); #if IS_WIT printf(" file-limit: %16x = %12d\n",opt_file_limit,opt_file_limit); printf(" block-size: %16x = %12d\n",opt_block_size,opt_block_size); #endif printf(" gcz-block: %16x = %12d\n",opt_gcz_block_size,opt_gcz_block_size); printf(" rdepth: %16x = %12d\n",opt_recurse_depth,opt_recurse_depth); printf(" enc: %16x = %12d\n",encoding,encoding); printf(" region: %16x = %12d\n",opt_region,opt_region); printf(" prealloc: %16x = %12d\n",prealloc_mode,prealloc_mode); if (opt_ios_valid) { const u32 hi = opt_ios >> 32; const u32 lo = (u32)opt_ios; if ( hi == 1 && lo < 0x100 ) printf(" ios: %08x-%08x = IOS %u\n", hi, lo, lo ); else printf(" ios: %08x-%08x\n", hi, lo ); } printf(" modify: %16x = %12d\n",opt_modify,opt_modify); if (modify_name) printf(" modify name: '%s'\n",modify_name); if (modify_id) printf(" modify id: '%s'\n",modify_id); if (modify_disc_id) printf(" modify disc id: '%s'\n",modify_disc_id); if (modify_boot_id) printf(" modify boot id: '%s'\n",modify_boot_id); if (modify_ticket_id) printf(" modify ticket id: '%s'\n",modify_ticket_id); if (modify_tmd_id) printf(" modify tmd id: '%s'\n",modify_tmd_id); if (modify_wbfs_id) printf(" modify wbfs id: '%s'\n",modify_wbfs_id); if ( opt_http || opt_domain ) { printf(" http: %s\n", opt_http ? "enabled" : "disabled" ); printf(" domain: '%s'\n",opt_domain); } #if IS_WWT char buf_set_time[20]; if (opt_set_time) { struct tm * tm = localtime(&opt_set_time); strftime(buf_set_time,sizeof(buf_set_time),"%F %T",tm); } else strcpy(buf_set_time,"NULL"); printf(" set-time: %16llx = %12lld = %s\n", (u64)opt_set_time, (u64)opt_set_time,buf_set_time ); #endif printf(" trim: %16x = %12u\n",opt_trim,opt_trim); print_val( "align #1:", opt_align1, 0 ); print_val( "align #2:", opt_align2, 0 ); print_val( "align #3:", opt_align3, 0 ); print_val( "align-part:", opt_align_part, 0 ); print_val( "disc-size:", opt_disc_size, 0 ); printf(" partition selector:\n"); wd_print_select(stdout,6,&part_selector); return ERR_OK; }