예제 #1
0
int main(void)
{
	test_mask(16);
	test_mask(32);
	test_mask(64);
	test_mask(128);
	return(0);
}
예제 #2
0
파일: aaclip.cpp 프로젝트: hicdre/skiaui
    virtual void onDraw(SkCanvas* canvas) {
        if (false) {
            test_grad(canvas); return;
        }
        if (false) { // avoid bit rot, suppress warning
            test_mask();
        }

        // Initial pixel-boundary-aligned draw
        draw_rect_tests(canvas);

        // Repeat 4x with .2, .4, .6, .8 px offsets
        canvas->translate(SK_Scalar1 / 5, SK_Scalar1 / 5);
        canvas->translate(SkIntToScalar(50), 0);
        draw_rect_tests(canvas);

        canvas->translate(SK_Scalar1 / 5, SK_Scalar1 / 5);
        canvas->translate(SkIntToScalar(50), 0);
        draw_rect_tests(canvas);

        canvas->translate(SK_Scalar1 / 5, SK_Scalar1 / 5);
        canvas->translate(SkIntToScalar(50), 0);
        draw_rect_tests(canvas);

        canvas->translate(SK_Scalar1 / 5, SK_Scalar1 / 5);
        canvas->translate(SkIntToScalar(50), 0);
        draw_rect_tests(canvas);
    }
int main( int argc , char ** argv) {
  test_index_list();
  test_mask();
  test_active_index_list();
  test_approx_equal();
  exit(0);
}
예제 #4
0
int main(int argc, char** argv) {
    test_host_bits();
    test_class();
    test_mask();
    test_broadcast();
    test_is_valid_id();

    return 0;
}
예제 #5
0
void test_masks(void)
{
	int i;

	testStart("Mask pattern checks");
	for(i=0; i<4; i++) {
		assert_zero(test_mask(i), "Mask pattern %d incorrect.\n", i);
	}
	testFinish();
}
예제 #6
0
파일: main.c 프로젝트: JunhoSuh/ofagent
int aim_main(int argc, char* argv[])
{
    (void) argc;
    (void) argv;

    test_basic();
    test_collisions();
    test_random();
    test_mask();

    return 0;
}
예제 #7
0
int test_functions(void) {
  int retval = 0;

  retval |= test_settings();
  retval |= test_rounding();
  retval |= test_sticky();
  retval |= test_precision();
  retval |= test_class();
  retval |= test_mask();

  return retval;
}
예제 #8
0
파일: tree.c 프로젝트: sdstrowes/util
/*
 * Internal function; called by lpm_lookup()
 */
void lookup(struct sockaddr_storage *addr, char* output, struct internal_node* n)
{
	uint32_t b = 0;
	struct internal_node* next = n;

	struct  sockaddr_storage *best_prefix = NULL;
	uint8_t best_netmask = 0;

	if (addr->ss_family == AF_INET6) {
		b = MAX_BITS6;
	}
	else if (addr->ss_family == AF_INET) {
		b = MAX_BITS4;
	}

	do {
		n = next;
		b--;

		bool v_bit = test_v_bit(addr, b);

		/* If we've found an internal node, determine which
		   direction to descend. */
		if (v_bit) {
			next = n->r;
		}
		else {
			next = n->l;
		}

		if (n->type == DAT_NODE) {
			struct data_node* node = (struct data_node*)n;

			char prefix[INET6_ADDRSTRLEN];
			switch (node->prefix->ss_family) {
			case AF_INET6: {
				struct sockaddr_in6 *match_addr = (struct sockaddr_in6 *)addr;
				inet_ntop(AF_INET6, &match_addr->sin6_addr, prefix, INET6_ADDRSTRLEN);

				if (test_mask((struct sockaddr_in6 *)node->prefix, node->netmask, match_addr)) {
					best_prefix  = node->prefix;
					best_netmask = node->netmask;
				}
				else {
					break;
				}

				break;
			}
			case AF_INET: {
				struct sockaddr_in *match_addr = (struct sockaddr_in *)addr;
				struct sockaddr_in *node_addr  = (struct sockaddr_in *)node->prefix;
				inet_ntop(AF_INET, &match_addr->sin_addr, prefix, INET6_ADDRSTRLEN);

				uint32_t mask = 0xFFFFFFFF;
				mask = mask - ((uint32_t)pow(2, 32 - node->netmask) - 1);

				if ((match_addr->sin_addr.s_addr & mask) == node_addr->sin_addr.s_addr) {
					best_prefix = node->prefix;
					best_netmask = node->netmask;
				}
				else {
					break;
				}

				break;
			}
			}
		}
	} while (next != NULL);

	if (best_prefix == NULL) {
		sprintf(output, "NF");
	}
	else {
		char prefix[INET6_ADDRSTRLEN];
		switch (best_prefix->ss_family) {
		case AF_INET6: {
			struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *)best_prefix;
			inet_ntop(AF_INET6, &addr6->sin6_addr, prefix, INET6_ADDRSTRLEN);
			break;
		}
		case AF_INET: {
			struct sockaddr_in *addr4 = (struct sockaddr_in *)best_prefix;
			struct in_addr addr_bytes;
			addr_bytes.s_addr = htonl(addr4->sin_addr.s_addr);
			inet_ntop(AF_INET, &addr_bytes, prefix, INET_ADDRSTRLEN);
			break;
		}
		}


		sprintf(output, "%s/%d", prefix, best_netmask);
	}
}
예제 #9
0
파일: masktest.c 프로젝트: AllardJ/Tomato
/****************************************************************************
  main program
****************************************************************************/
 int main(int argc,char *argv[])
{
	char *share1, *share2;
	struct cli_state *cli1, *cli2;	
	extern char *optarg;
	extern int optind;
	extern FILE *dbf;
	int opt;
	char *p;
	int seed;

	setlinebuf(stdout);

	dbf = stderr;

	if (argv[1][0] == '-' || argc < 3) {
		usage();
		exit(1);
	}

	share1 = argv[1];
	share2 = argv[2];

	all_string_sub(share1,"/","\\",0);
	all_string_sub(share2,"/","\\",0);

	setup_logging(argv[0],True);

	argc -= 2;
	argv += 2;

	TimeInit();
	charset_initialise();

	if (getenv("USER")) {
		pstrcpy(username,getenv("USER"));
	}

	seed = time(NULL);

	while ((opt = getopt(argc, argv, "U:s:hm:f:a")) != EOF) {
		switch (opt) {
		case 'U':
			pstrcpy(username,optarg);
			p = strchr(username,'%');
			if (p) {
				*p = 0;
				pstrcpy(password, p+1);
				got_pass = 1;
			}
			break;
		case 's':
			seed = atoi(optarg);
			break;
		case 'h':
			usage();
			exit(1);
		case 'm':
			maskchars = optarg;
			break;
		case 'f':
			filechars = optarg;
			break;
		case 'a':
			showall = 1;
			break;
		default:
			printf("Unknown option %c (%d)\n", (char)opt, opt);
			exit(1);
		}
	}

	argc -= optind;
	argv += optind;

	DEBUG(0,("seed=%d\n", seed));
	srandom(seed);

	cli1 = connect_one(share1);
	if (!cli1) {
		DEBUG(0,("Failed to connect to %s\n", share1));
		exit(1);
	}

	cli2 = connect_one(share2);
	if (!cli2) {
		DEBUG(0,("Failed to connect to %s\n", share2));
		exit(1);
	}


	test_mask(argc, argv, cli1, cli2);

	return(0);
}