From 2dab592164a5769478eca1a8cc806eb88de35024 Mon Sep 17 00:00:00 2001 From: xethyrion Date: Tue, 21 Feb 2017 21:05:20 +0200 Subject: [PATCH] How it should be used --- testing.c | 127 +++++++++++++++++++++++++----------------------------- 1 file changed, 59 insertions(+), 68 deletions(-) diff --git a/testing.c b/testing.c index 7c7bd48..dbdd725 100644 --- a/testing.c +++ b/testing.c @@ -1,74 +1,65 @@ -#include +#pragma once -#include "test_multiaddr.h" +#include "multiaddr/multiaddr.h" -const char* names[] = { - "test_new_from_string", - "test_full", - "test_hex_to_var", - "test_int_to_hex" -}; - -int (*funcs[])(void) = { - test_new_from_string, - test_full, - test_hex_to_var, - test_int_to_hex -}; - -int testit(const char* name, int (*func)(void)) { - printf("Testing %s...\n", name); - int retVal = func(); - if (retVal) - printf("%s success!\n", name); - else - printf("** Uh oh! %s failed.**\n", name); - return retVal; -} - -int main(int argc, char** argv) { - int counter = 0; - int tests_ran = 0; - char* test_wanted; - int only_one = 0; - if(argc > 1) { - only_one = 1; - if (argv[1][0] == '\'') { // some shells put quotes around arguments - argv[1][strlen(argv[1])-1] = 0; - test_wanted = &(argv[1][1]); - } - else - test_wanted = argv[1]; - } - int array_length = sizeof(funcs) / sizeof(funcs[0]); - int array2_length = sizeof(names) / sizeof(names[0]); - if (array_length != array2_length) { - printf("Test arrays are not of the same length. Funcs: %d, Names: %d\n", array_length, array2_length); - } - for (int i = 0; i < array_length; i++) { - if (only_one) { - const char* currName = names[i]; - if (strcmp(currName, test_wanted) == 0) { - tests_ran++; - counter += testit(names[i], funcs[i]); - } - } - else - if (!only_one) { - tests_ran++; - counter += testit(names[i], funcs[i]); - } - } - - if (tests_ran == 0) - printf("***** No tests found *****\n"); - else { - if (tests_ran - counter > 0) { - printf("***** There were %d failed test(s) (%d successful) *****\n", tests_ran - counter, counter); - } else { - printf("All %d tests passed\n", tests_ran); - } +int test_new_from_string() { + struct MultiAddress* a = multiaddress_new_from_string("/ip4/127.0.0.1/tcp/8080/"); + printf("Number of Bytes: %lu, Bytes: ", a->bsize); + for(int i = 0; i < a->bsize; i++) { + printf("%02x ", a->bytes[i]); } + printf(" End of bytes\n"); + multiaddress_free(a); return 1; } +int test_full() { + char addrstr[100]; + strcpy(addrstr,"/ip4/192.168.1.1/tcp/8080/"); + printf("INITIAL: %s\n",addrstr); + struct MultiAddress* a; + a= multiaddress_new_from_string(addrstr); + printf("TEST BYTES: %s\n",Var_To_Hex(a->bsize, a->bytes)); + + //Remember, Decapsulation happens from right to left, never in reverse! + + printf("A STRING:%s\n",a->string); + multiaddress_encapsulate(a,"/udp/3333/"); + printf("A STRING ENCAPSULATED:%s\n",a->string); + + multiaddress_decapsulate(a,"udp"); + printf("A STRING DECAPSULATED UDP:%s\n",a->string); + + multiaddress_encapsulate(a,"/tcp/8080"); + printf("A STRING ENCAPSULATED TCP:%s\n",a->string); + + struct MultiAddress* beta; + beta = multiaddress_new_from_bytes(a->bytes,a->bsize); + printf("B STRING: %s\n",beta->string); + + multiaddress_free(a); + multiaddress_free(beta); + return 1; +} + +int test_hex_to_var() { + size_t d; + unsigned char* result = Hex_To_Var("04", &d); + if (d != 1) + return 0; + if (result[0] != 4) + return 0; + + if (result != NULL) + free(result); + return 1; +} + +int test_int_to_hex() { + int val = 2555351; + char* result = Int_To_Hex(val); + int retVal = Hex_To_Int(result); + if (retVal != val) + return 0; + return 1; +}