CTEST2(tube, send_pdec) { tube *t; uint8_t ip[] = {192, 168, 0, 0}; uint8_t token[] = {42, 42, 42, 42, 42}; char url[]= "http://example.com"; struct sockaddr_in6 remoteAddr; cn_cbor_context ctx; cn_cbor *map; ASSERT_TRUE(ls_sockaddr_get_remote_ip_addr("127.0.0.1", "1402", (struct sockaddr*)&remoteAddr, sizeof(remoteAddr), &data->err)); ASSERT_TRUE( tube_manager_open_tube(data->mgr, (const struct sockaddr*)&remoteAddr, &t, &data->err)); ASSERT_TRUE(path_mandatory_keys_create(ip, sizeof(ip), token, sizeof(token), url, &ctx, &map, &data->err)); ASSERT_TRUE( tube_send_pdec(t,map,true, &data->err) ); ls_pool_destroy((ls_pool*)ctx.context); tube_manager_remove(data->mgr, t); ASSERT_EQUAL(tube_manager_size(data->mgr), 0); }
CTEST2(tube, tube_data) { tube *t; uint8_t udata[] = "SPUD_makeUBES_FUN"; struct sockaddr_storage remoteAddr; ASSERT_TRUE( ls_sockaddr_get_remote_ip_addr("127.0.0.1", "1402", (struct sockaddr*)&remoteAddr, sizeof(remoteAddr), &data->err)); ASSERT_TRUE( tube_manager_open_tube(data->mgr, (const struct sockaddr*)&remoteAddr, &t, &data->err)); ASSERT_TRUE( tube_data(t, udata, 17, &data->err)); ASSERT_TRUE( tube_data(t, NULL, 0, &data->err)); tube_manager_remove(data->mgr, t); ASSERT_EQUAL(tube_manager_size(data->mgr), 0); }
CTEST2(tube, close) { tube *t; struct sockaddr_in6 remoteAddr; ASSERT_TRUE( ls_sockaddr_get_remote_ip_addr("127.0.0.1", "1402", (struct sockaddr *)&remoteAddr, sizeof(remoteAddr), &data->err)); ASSERT_TRUE( tube_manager_open_tube(data->mgr, (const struct sockaddr*)&remoteAddr, &t, &data->err)); ASSERT_TRUE( tube_close(t, &data->err)); }
CTEST2(tube, open) { tube *t; ls_pktinfo *pi; struct in_pktinfo info4; struct sockaddr_in6 remoteAddr; ASSERT_TRUE( ls_sockaddr_get_remote_ip_addr("::1", "1402", (struct sockaddr*)&remoteAddr, sizeof(remoteAddr), &data->err)); ASSERT_TRUE( tube_manager_open_tube(data->mgr, (const struct sockaddr*)&remoteAddr, &t, &data->err)); ASSERT_EQUAL(tube_manager_size(data->mgr), 1); ASSERT_TRUE(ls_pktinfo_create(&pi, &data->err)); info4.ipi_addr.s_addr = htonl(0x7f000001); ls_pktinfo_set4(pi, &info4); tube_set_local(t, pi, &data->err); ASSERT_TRUE( tube_print(t, &data->err)); }
int spudtest(int argc, char** argv) { ls_err err; size_t i; const char nums[] = "0123456789"; if (argc < 2) { fprintf(stderr, "spudload <destination>\n"); exit(64); } #if defined(__APPLE__) srandomdev(); #endif #if defined(__LINUX__) srandom( time(NULL) ); #endif for (i = 0; i < sizeof(data); i++) { data[i] = nums[i % 10]; } if ( !ls_sockaddr_get_remote_ip_addr(argv[1], "1402", (struct sockaddr*)&remoteAddr, sizeof(remoteAddr), &err) ) { return 1; } if ( !tube_manager_create(0, &mgr, &err) ) { LS_LOG_ERR(err, "tube_manager_create"); return 1; } if ( !tube_manager_socket(mgr, 0, &err) ) { LS_LOG_ERR(err, "tube_manager_socket"); return 1; } if ( !tube_manager_signal(mgr, SIGINT, done, &err) ) { LS_LOG_ERR(err, "tube_manager_signal"); return 1; } if ( !tube_manager_bind_event(mgr, EV_REMOVE_NAME, remove_cb, &err) ) { LS_LOG_ERR(err, "tube_manager_bind_event"); return 1; } memset( tubes, 0, sizeof(tubes) ); /* Start and listen to the sockets. */ pthread_create(&listenThread, NULL, socketListen, NULL); return markov(); }
int spudtest(int argc, char** argv) { ls_err err; int ch; struct sockaddr_storage addr; /* bool has_addr = false;; */ while ( ( ch = getopt(argc, argv, "?hvs:") ) != -1 ) { switch (ch) { case 'v': ls_log_set_level(LS_LOG_VERBOSE); break; case 's': if ( !ls_sockaddr_parse(optarg, (struct sockaddr*)&addr, sizeof(addr), &err) ) { LS_LOG_ERR(err, "Invalid address"); return 1; } /* has_addr = true; */ break; case 'h': case '?': default: usage(); break; } } argc -= optind; argv += optind; if (argc < 1) { usage(); } ls_log(LS_LOG_INFO, "entering spudtest"); memset( &config, 0, sizeof(config) ); if ( !ls_sockaddr_get_remote_ip_addr(argv[0], "1402", (struct sockaddr*)&config.remoteAddr, sizeof(config.remoteAddr), &err) ) { LS_LOG_ERR(err, "ls_sockaddr_get_remote_ip_addr"); return 1; } if ( !tube_manager_create(0, &mgr, &err) ) { LS_LOG_ERR(err, "tube_manager_create"); return 1; } if ( !tube_manager_socket(mgr, 0, &err) ) { LS_LOG_ERR(err, "tube_manager_socket"); return 1; } /* TODO: make source addresses work (again?). */ /* if (has_addr) { */ /* LOGI("source address: %s\n", inet_ntop(AF_INET6, &addr, buf, * sizeof(buf))); */ /* } */ if ( !tube_manager_bind_event(mgr, EV_LOOPSTART_NAME, loopstart_cb, &err) || !tube_manager_bind_event(mgr, EV_RUNNING_NAME, running_cb, &err) || !tube_manager_bind_event(mgr, EV_DATA_NAME, data_cb, &err) ) { LS_LOG_ERR(err, "tube_manager_bind_event"); return 1; } if ( !tube_manager_signal(mgr, SIGINT, done_sig, &err) ) { LS_LOG_ERR(err, "tube_manager_signal"); return 1; } if ( !tube_manager_schedule_ms(mgr, 5000, done, NULL, NULL, &err) ) { LS_LOG_ERR(err, "tube_manager_schedule_ms"); return 1; } if ( !tube_manager_loop(mgr, &err) ) { LS_LOG_ERR(err, "tube_manager_loop"); } return 0; }