int main(void) { struct xkb_context *ctx; struct xkb_keymap *keymap; struct xkb_state *state; struct bench bench; char *elapsed; ctx = test_get_context(0); assert(ctx); keymap = test_compile_rules(ctx, "evdev", "pc104", "us,ru,il,de", ",,,neo", "grp:menu_toggle"); assert(keymap); state = xkb_state_new(keymap); assert(state); xkb_context_set_log_level(ctx, XKB_LOG_LEVEL_CRITICAL); xkb_context_set_log_verbosity(ctx, 0); srand(time(NULL)); bench_start(&bench); bench_key_proc(state); bench_stop(&bench); elapsed = bench_elapsed_str(&bench); fprintf(stderr, "ran %d iterations in %ss\n", BENCHMARK_ITERATIONS, elapsed); free(elapsed); xkb_state_unref(state); xkb_keymap_unref(keymap); xkb_context_unref(ctx); return 0; }
int main(int argc, char **argv) { config_init(); int c; while (-1 != (c = getopt(argc, argv, "n:m:k:d:p:h"))) { switch(c) { case 'n': config.num = atoi(optarg); break; case 'm': config.maxbytes = ((size_t)atoi(optarg)) * 1024 * 1024; break; case 'k': config.keysize = atoi(optarg); break; case 'd': config.datasize = atoi(optarg); break; case 'p': config.hashpower = atoi(optarg); break; case 'h': usage(); return EXIT_SUCCESS; default: usage(); return EXIT_FAILURE; } } generate_key_init(); print_env(); lru *l = lru_init(config.maxbytes, config.hashpower); char *bvalue = malloc(config.datasize); memset(bvalue, 'x', config.datasize); char *key = malloc(config.keysize); memset(key, 0, config.keysize); int gnum = config.keysize - num_; generate_key_reset(); bench_start("SET"); int i; for (i = 0; i < config.num; i++) { snprintf(key, config.keysize, fmt_, gnum, generate_key(gnum), i); int r = item_set(l, key, config.keysize, bvalue, config.datasize); assert(r == 0); process_report(); } bench_stop(); print_stat(l); char *buf = malloc(config.datasize); size_t sz; generate_key_reset(); bench_start("GET"); for (i = 0; i < config.num; i++) { snprintf(key, config.keysize, fmt_, gnum, generate_key(gnum), i); int r = item_get(l, key, config.keysize, buf, config.datasize, &sz); if (!r) { assert((int)sz == config.datasize); assert(memcmp(bvalue, buf, config.datasize) == 0); } memset(buf, 0, config.datasize); process_report(); } bench_stop(); print_stat(l); generate_key_reset(); bench_start("DELETE"); for (i = 0; i < config.num; i++) { snprintf(key, config.keysize, fmt_, gnum, generate_key(gnum), i); item_delete(l, key, config.keysize); process_report(); } bench_stop(); print_stat(l); free(buf); free(bvalue); free(key); free(fmt_); free(key_); lru_free(l); /* printf("print any key to exit...\n"); getchar(); */ return EXIT_SUCCESS; }
int main(int argc, char* argv[]) { int rv; unsigned int ret; USBContext context; USBBuffer buffer(65); //context.setDebug(4); USBDevice::Ptr device = context.openDeviceWithVidPid(0x04b4, 0x1004); #ifndef WIN32 if(device->isKernelDriverActive(0)) device->detachKernelDriver(0); #endif device->setConfiguration(1); device->claimInterface(0); device->setInterfaceAltSetting(0, 0); libusb_device_handle *hndl = device->getDeviceHandle(); while(read_debug(hndl) != LIBUSB_ERROR_TIMEOUT); printf("AdslSniffer Test\n"); printf("RESET\n"); rv = libusb_control_transfer(hndl, LIBUSB_ENDPOINT_OUT | LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_RECIPIENT_DEVICE, 0x90, 0x11, 0x22, 0, 0, 0); if(rv != 0) { printf ( "CONTROL Transfer failed: %s(%d)\n", libusb_error_name(rv), rv); return rv; } ret = buffer.controlTransfer(*device, LIBUSB_ENDPOINT_IN | LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_RECIPIENT_DEVICE, 0x94, 0x11, 0x22, buffer.getBufferSize()-1); if(ret < buffer.getBufferSize()) { unsigned char *cBuffer = buffer.getBuffer(); cBuffer[ret] = '\0'; std::cout << cBuffer << std::endl; } else { std::cerr << "Error during version grabbing" << std::endl; } ret = buffer.controlTransfer(*device, LIBUSB_ENDPOINT_IN | LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_RECIPIENT_DEVICE, 0x95, 0x11, 0x22, buffer.getBufferSize()-1); if(ret == 4) { unsigned int *rate = (unsigned int *)buffer.getBuffer(); std::cout << "Sample rate: " << *rate << std::endl; } else { std::cerr << "Error during sample rate grabbing" << std::endl; } printf("Enable debug\n"); rv = libusb_control_transfer(hndl, LIBUSB_ENDPOINT_OUT | LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_RECIPIENT_DEVICE, 0x91, 0x01, 0x22, 0, 0, 0); if(rv != 0) { printf ( "CONTROL(Debug) Transfer failed: %s(%d)\n", libusb_error_name(rv), rv); return rv; } read_debug(hndl, 1000); while(read_debug(hndl) != LIBUSB_ERROR_TIMEOUT); printf("Print test\n"); rv = libusb_control_transfer(hndl, LIBUSB_ENDPOINT_OUT | LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_RECIPIENT_DEVICE, 0x99, 0x00, 0x22, 0, 0, 0); if(rv != 0) { printf ( "CONTROL(Debug) Transfer failed: %s(%d)\n", libusb_error_name(rv), rv); return rv; } read_debug(hndl, 1000); while(read_debug(hndl) != LIBUSB_ERROR_TIMEOUT); printf("Start Test\n"); rv = libusb_control_transfer(hndl, LIBUSB_ENDPOINT_OUT | LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_RECIPIENT_DEVICE, 0x92, 0xffff, 0xffff, 0, 0, 0); if(rv != 0) { printf ( "CONTROL(Start) Transfer failed: %s(%d)\n", libusb_error_name(rv), rv); return rv; } read_debug(hndl, 0); while(read_debug(hndl) != LIBUSB_ERROR_TIMEOUT); USBRequest request(8, 2048); context.start<>(); // Send request bench_start(); request.send(device, 0x82, BENCH_DATA_SIZE, usb_cb); bench_inc(); request.wait(); bench_stop(); context.stop(); context.wait(); printf("Stop Test\n"); rv = libusb_control_transfer(hndl, LIBUSB_ENDPOINT_OUT | LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_RECIPIENT_DEVICE, 0x93, 0xffff, 0xffff, 0, 0, 0); if(rv != 0) { printf ( "CONTROL(Stop) Transfer failed: %s(%d)\n", libusb_error_name(rv), rv); return rv; } read_debug(hndl, 0); while(read_debug(hndl) != LIBUSB_ERROR_TIMEOUT); printf("Print test\n"); rv = libusb_control_transfer(hndl, LIBUSB_ENDPOINT_OUT | LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_RECIPIENT_DEVICE, 0x99, 0x00, 0x22, 0, 0, 0); if(rv != 0) { printf ( "CONTROL(Debug) Transfer failed: %s(%d)\n", libusb_error_name(rv), rv); return rv; } read_debug(hndl, 0); while(read_debug(hndl) != LIBUSB_ERROR_TIMEOUT); // Empty debug while(read_debug(hndl) != LIBUSB_ERROR_TIMEOUT); // Close device device->releaseInterface(0); device.reset(); printf("Test end\n"); bench_stats(); return 0; }