diff options
Diffstat (limited to 'src/gl/window.test.c')
| -rw-r--r-- | src/gl/window.test.c | 142 | 
1 files changed, 140 insertions, 2 deletions
| diff --git a/src/gl/window.test.c b/src/gl/window.test.c index 6d5c844..6b8e091 100644 --- a/src/gl/window.test.c +++ b/src/gl/window.test.c @@ -58,14 +58,21 @@ int mock_hs_throw_error(lua_State *L, const char *format_string, ...)  void gl_init_succeeds();  void gl_init_fail_glfwInit();  void glfw_window_hints_table(); +void tointeger_parses_bool(); +void tointeger_parses_int(); +void tointeger_fails_other();  void suite_window()  {  	lily_run_test(gl_init_succeeds);  	lily_run_test(gl_init_fail_glfwInit);  	lily_run_test(glfw_window_hints_table); +	lily_run_test(tointeger_parses_bool); +	lily_run_test(tointeger_parses_int); +	lily_run_test(tointeger_fails_other);  	CLEAN_MOCK(mock_glfwInit); +	CLEAN_MOCK(mock_hs_throw_error);  } @@ -130,8 +137,8 @@ void glfw_window_hints_table()  	lily_assert_int_equal(lua_gettop(L), 0);  	create_glfw_window_hints_table(L); -	lily_assert_int_equal(lua_gettop(L), 1); -	lily_assert_true(lua_istable(L, -1)); +	lily_assert_int_equal(lua_gettop(L), 2); +	lily_assert_true(lua_istable(L, 1));  	/* window hints */  	lily_assert_int_equal( @@ -294,5 +301,136 @@ void glfw_window_hints_table()  		GLFW_CONTEXT_NO_ERROR  	); + +	/* special hint values */ + +	lily_assert_int_equal( +		get_int(L, 2, "dontCare"), +		GLFW_DONT_CARE +	); + +	/* client api */ +	lily_assert_int_equal( +		get_int(L, 2, "glApi"), +		GLFW_OPENGL_API +	); + +	lily_assert_int_equal( +		get_int(L, 2, "glesApi"), +		GLFW_OPENGL_ES_API +	); + +	lily_assert_int_equal( +		get_int(L, 2, "noApi"), +		GLFW_NO_API +	); + +	/* context api */ +	lily_assert_int_equal( +		get_int(L, 2, "nativeApi"), +		GLFW_NATIVE_CONTEXT_API +	); + +	lily_assert_int_equal( +		get_int(L, 2, "eglApi"), +		GLFW_EGL_CONTEXT_API  +	); + +	lily_assert_int_equal( +		get_int(L, 2, "osMesaApi"), +		GLFW_OSMESA_CONTEXT_API +	); + +	/* robustness */ +	lily_assert_int_equal( +		get_int(L, 2, "noRobustness"), +		GLFW_NO_ROBUSTNESS +	); + +	lily_assert_int_equal( +		get_int(L, 2, "noResetNotification"), +		GLFW_NO_RESET_NOTIFICATION  +	); + +	lily_assert_int_equal( +		get_int(L, 2, "loseContextOnReset"), +		GLFW_LOSE_CONTEXT_ON_RESET +	); + +	/* release */ +	lily_assert_int_equal( +		get_int(L, 2, "anyBehavior"), +		GLFW_ANY_RELEASE_BEHAVIOR +	); + +	lily_assert_int_equal( +		get_int(L, 2, "flush"), +		GLFW_RELEASE_BEHAVIOR_FLUSH  +	); + +	lily_assert_int_equal( +		get_int(L, 2, "none"), +		GLFW_RELEASE_BEHAVIOR_NONE +	); + +	/* profile */ +	lily_assert_int_equal( +		get_int(L, 2, "anyProfile"), +		GLFW_OPENGL_ANY_PROFILE +	); + +	lily_assert_int_equal( +		get_int(L, 2, "compatabilityProfile"), +		GLFW_OPENGL_COMPAT_PROFILE +	); + +	lily_assert_int_equal( +		get_int(L, 2, "coreProfile"), +		GLFW_OPENGL_CORE_PROFILE +	); +  	lua_close(L);  } + + +void tointeger_parses_bool() +{ +	USE_MOCK(mock_hs_throw_error); +	lua_State *L = luaL_newstate(); + +	lua_pushboolean(L, 0); +	lily_assert_false(lua_toboolean(L, -1)); +	lily_assert_int_equal(tointeger(L, -1), 0); + +	lua_pushboolean(L, 1); +	lily_assert_true(lua_toboolean(L, -1)); +	lily_assert_int_equal(tointeger(L, -1), 1); + +	lua_close(L); +} + + +void tointeger_parses_int() +{ +	USE_MOCK(mock_hs_throw_error); +	lua_State *L = luaL_newstate(); +	 +	lua_pushinteger(L, 234); +	lua_pushinteger(L, 55555); + +	lily_assert_int_equal(tointeger(L, -2), 234); +	lily_assert_int_equal(tointeger(L, -1), 55555); + +	lua_close(L); +} + + +void tointeger_fails_other() +{ +	USE_MOCK(mock_hs_throw_error); +	lua_State *L = luaL_newstate(); + +	lua_pushstring(L, "hey there babe"); +	tointeger(L, -1); +	lily_assert_int_equal(mock_hs_throw_error_data->n_calls, 1); +} | 
