int main(int argc, char *argv[])
{
	display = get_display();

	/* get an appropriate EGL frame buffer configuration */
	ECHK(eglChooseConfig(display, config_attribute_list, &config, 1, &num_config));
	DEBUG_MSG("num_config: %d", num_config);

	/* create an EGL rendering context */
	ECHK(context = eglCreateContext(display, config, EGL_NO_CONTEXT, context_attribute_list));

	test_cube_textured(GL_LINEAR,  GL_LINEAR,  GL_REPEAT,          GL_REPEAT);
	test_cube_textured(GL_LINEAR,  GL_LINEAR,  GL_REPEAT,          GL_REPEAT);
	test_cube_textured(GL_NEAREST, GL_LINEAR,  GL_REPEAT,          GL_REPEAT);
	test_cube_textured(GL_LINEAR,  GL_NEAREST, GL_CLAMP_TO_EDGE,   GL_REPEAT);
	test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT,          GL_CLAMP_TO_EDGE);
	test_cube_textured(GL_LINEAR,  GL_LINEAR,  GL_MIRRORED_REPEAT, GL_REPEAT);
	test_cube_textured(GL_LINEAR,  GL_LINEAR,  GL_CLAMP_TO_EDGE,   GL_MIRRORED_REPEAT);

	ECHK(eglTerminate(display));
}
int main(int argc, char *argv[])
{
	TEST_START();

	TEST(test_cube_textured(GL_LINEAR,  GL_LINEAR,  GL_REPEAT,          GL_REPEAT,          GL_REPEAT,          GL_RGB, GL_UNSIGNED_BYTE));
	TEST(test_cube_textured(GL_NEAREST, GL_LINEAR,  GL_REPEAT,          GL_REPEAT,          GL_CLAMP_TO_EDGE,   GL_RGB, GL_UNSIGNED_BYTE));
	TEST(test_cube_textured(GL_LINEAR,  GL_NEAREST, GL_CLAMP_TO_EDGE,   GL_REPEAT,          GL_MIRRORED_REPEAT, GL_RGB, GL_UNSIGNED_BYTE));
	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT,          GL_CLAMP_TO_EDGE,   GL_REPEAT,          GL_RGB, GL_UNSIGNED_BYTE));
	TEST(test_cube_textured(GL_LINEAR,  GL_LINEAR,  GL_MIRRORED_REPEAT, GL_REPEAT,          GL_REPEAT,          GL_RGB, GL_UNSIGNED_BYTE));
	TEST(test_cube_textured(GL_LINEAR,  GL_LINEAR,  GL_CLAMP_TO_EDGE,   GL_MIRRORED_REPEAT, GL_REPEAT,          GL_RGB, GL_UNSIGNED_BYTE));
	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_ALPHA,     GL_UNSIGNED_BYTE));
	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_LUMINANCE, GL_UNSIGNED_BYTE));
	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE));
	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_RGB,       GL_UNSIGNED_BYTE));
	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_RGB,       GL_UNSIGNED_SHORT_5_6_5));
	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_RGBA,      GL_UNSIGNED_BYTE));
	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_RGBA,      GL_UNSIGNED_SHORT_4_4_4_4));
	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_RGBA,      GL_UNSIGNED_SHORT_5_5_5_1));
	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_RGBA,      GL_FLOAT));
	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_RGB,       GL_FLOAT));
	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_ALPHA,     GL_FLOAT));
	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_LUMINANCE, GL_FLOAT));
	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_LUMINANCE_ALPHA, GL_FLOAT));
	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT));

	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_ALPHA,     GL_HALF_FLOAT_OES));
	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_LUMINANCE, GL_HALF_FLOAT_OES));
	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_LUMINANCE_ALPHA, GL_HALF_FLOAT_OES));
	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_RGB,       GL_HALF_FLOAT_OES));
	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_RGBA,      GL_HALF_FLOAT_OES));

//	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_ALPHA,     GL_BGRA_EXT));
//	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_LUMINANCE, GL_BGRA_EXT));
//	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_LUMINANCE_ALPHA, GL_BGRA_EXT));
//	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_RGB,       GL_BGRA_EXT));
//	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_RGBA,      GL_BGRA_EXT));

//	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_ALPHA,     GL_UNSIGNED_INT_2_10_10_10_REV_EXT));
//	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_LUMINANCE, GL_UNSIGNED_INT_2_10_10_10_REV_EXT));
//	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_LUMINANCE_ALPHA, GL_UNSIGNED_INT_2_10_10_10_REV_EXT));
	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_RGB,       GL_UNSIGNED_INT_2_10_10_10_REV_EXT));
	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_RGBA,      GL_UNSIGNED_INT_2_10_10_10_REV_EXT));

//	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_ALPHA,     GL_UNSIGNED_SHORT));
//	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_LUMINANCE, GL_UNSIGNED_SHORT));
//	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_LUMINANCE_ALPHA, GL_UNSIGNED_SHORT));
//	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_RGB,       GL_UNSIGNED_SHORT));
//	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_RGBA,      GL_UNSIGNED_SHORT));

//	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_ALPHA,     GL_UNSIGNED_INT));
//	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_LUMINANCE, GL_UNSIGNED_INT));
//	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_LUMINANCE_ALPHA, GL_UNSIGNED_INT));
//	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_RGB,       GL_UNSIGNED_INT));
//	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_RGBA,      GL_UNSIGNED_INT));

//	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_ALPHA,     GL_FIXED));
//	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_LUMINANCE, GL_FIXED));
//	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_LUMINANCE_ALPHA, GL_FIXED));
//	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_RGB,       GL_FIXED));
//	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_RGBA,      GL_FIXED));

	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_SRGB_EXT,  GL_UNSIGNED_BYTE));
	TEST(test_cube_textured(GL_NEAREST, GL_NEAREST, GL_REPEAT, GL_REPEAT, GL_REPEAT, GL_SRGB_ALPHA_EXT, GL_UNSIGNED_BYTE));

	TEST_END();

	return 0;
}