int main(int argc, char **argv) { FILE *pipe = popen("tee arithmetic.log | /usr/bin/ruby", "w"); if (pipe == NULL) { handle_error(-1, "popen"); } int pfd = fileno(pipe); handle_error(pfd, "fileno"); int retcode = close(STDOUT_FILENO); handle_error(retcode, "close(STDOUT_FILENO)"); retcode = dup(pfd); handle_error(retcode, "dup"); fprintf(stderr, "doing add_test\n"); add_test(); fprintf(stderr, "doing sub_test\n"); sub_test(); fprintf(stderr, "doing sprintf_test\n"); sprintf_test(); fprintf(stderr, "doing mul_test\n"); mul_test(); fprintf(stderr, "doing divx_test\n"); divx_test(); fprintf(stderr, "done with C-operations\n"); printf("puts 'DONE'\n"); fflush(stdout); retcode = close(STDOUT_FILENO); handle_error(retcode, "close"); retcode = pclose(pipe); handle_error(retcode, "pclose"); exit(0); }
void mg_uint256_mul_test() { mul_test("135123333333333333314541", "46782741153131331"); mul_test("99999999999999999999999999999999999", "99999999999999999999999999999999999"); mul_test("999999999999999999999", "9999999999999999"); mul_test("500", "20"); mul_test("8888888888888888141351", "446165153118888888888888888141351"); mul_test("446165153118888888888888888141351", "446165153118888888888888888141351"); mul_test("123465791234657912346579123465791234657912346579123465791234657912346579123", "20"); mul_test("3333333333333333", "999999999999999999999999999999999999999999999999"); mul_test("340282366920938463463374607431768211456", "1"); mul_test("115792089237316195423570985008687907853269984665640564039457584007913129639935", "1"); mul_test("340282366920938463463374607431768211455", "340282366920938463463374607431768211455"); mul_test("340282366920938463463374607431768211455", "1"); mul_test("18446744073709551616", "18446744073709551616"); mul_test("340282366920938463463374607431768211456", "18446744073709551616"); mul_test("340282366920768211456", "18446744073709551616"); mul_test("34028236656", "34028236656"); mul_test("3402656", "3402656"); mul_test("34", "1324"); mul_test("9999999999999999999999999999999999999", "9999"); mul_test("9999999999999999999999999999999999999", "9999999"); mul_test("9999999999999999999999999999999999999", "99999999999"); mul_test("9999999999999999999999999999999999999", "999999999999999999999999"); mul_test("0", "999999999999999999999999"); mul128_test("135123333333333333314541", "46782741153131331"); mul128_test("9999999999999999999999999999999999", "9999999999999999999999999999999999"); mul128_test("999999999999999999999", "9999999999999999"); mul128_test("500", "20"); mul128_test("8888888888888888141351", "446165153118888888888888888141351"); mul128_test("446165153118888888888888888141351", "446165153118888888888888888141351"); mul128_test("12346579123465791234657912346579123", "20"); mul128_test("340282366920938463463374607431768211455", "340282366920938463463374607431768211455"); mul128_test("340282366920938463463374607431768211455", "1"); mul128_test("18446744073709551616", "18446744073709551616"); mul128_test("0", "18446744073709551616"); mul256x64_test("18446744073709551616", "18446744073709551"); mul256x64_test("12346579123465791234657912346579123", "20"); mul256x64_test("135123333333333333314541", "5264180654151"); mul256x64_test("135123333333333333314541", "99999999999999"); mul256x64_test("135123333333333333314541", "2"); mul256x64_test("135123333333333333314541", "666"); mul256x64_test("13512333333314541", "99999999"); mul256x64_test("1351233", "99999999"); mul256x64_test("1230000000000135111", "99999999"); mul256x64_test("1351233333331454333333333331454133333333333145411", "99999999"); mul256x64_test("3145413333333333135123333333333333314541", "99999999999999"); mul256x64_test("3145413333333333135123333333333333314541", "9999999999999999"); mul256x64_test("9999999999999999999999999999999999999999", "99999999999999"); mul256x64_test("0", "99999999999999"); printf("TEST mg_uint256_mul(): OK\n"); }