From 26b6d07fe079ff5ebb0c16cd6086f5a2f7597c23 Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Mon, 10 May 2021 21:50:14 +0900 Subject: [PATCH] tc: add tcs for tbm_surface_internal_export/import Change-Id: Id65e71408a5a165db99d693325f118c2d22c54b0 --- haltests/tc_tbm_surface_internal.cpp | 70 +++++++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) diff --git a/haltests/tc_tbm_surface_internal.cpp b/haltests/tc_tbm_surface_internal.cpp index ceacb27..c8e98e8 100644 --- a/haltests/tc_tbm_surface_internal.cpp +++ b/haltests/tc_tbm_surface_internal.cpp @@ -682,4 +682,72 @@ TEST_F(TBMSurfaceInternal, DeleteUserDataSuccess) EXPECT_EQ(tbm_data_free_is_called, 1); EXPECT_EQ(tbm_surface_internal_set_user_data(surface, key_ud, &tbm_data_free_is_called), 0); EXPECT_STREQ(tbm_error_str(tbm_get_last_error()), tbm_error_str(TBM_ERROR_INVALID_PARAMETER)); -} \ No newline at end of file +} + +TEST_F(TBMSurfaceInternal, ExportNegative_InvalidParameters) +{ + tbm_error_e error = TBM_ERROR_NONE; + + // invalid surface test + EXPECT_EQ(tbm_surface_internal_export(invalid_surface, &error), nullptr); + EXPECT_STREQ(tbm_error_str(error), tbm_error_str(TBM_ERROR_INVALID_PARAMETER)); +} + +TEST_F(TBMSurfaceInternal, ExportPositive_Success) +{ + tbm_error_e error = TBM_ERROR_NONE; + tbm_surface_buffer_data *buffer_data = NULL; + unsigned int i; + + EXPECT_NE((buffer_data = tbm_surface_internal_export(surface, &error)), nullptr); + EXPECT_STREQ(tbm_error_str(error), tbm_error_str(TBM_ERROR_NONE)); + + // verify the member variables of tbm_surface_buffer_data + if (buffer_data) { + EXPECT_GT(buffer_data->num_fds, 0); + for (i = 0; i < buffer_data->num_fds; i++) { + EXPECT_GT(buffer_data->fds[i], -1); + } + } +} + +TEST_F(TBMSurfaceInternal, ImportNegative_InvalidParameters) +{ + tbm_error_e error = TBM_ERROR_NONE; + tbm_surface_h surface1 = NULL; + + EXPECT_EQ((surface1 = tbm_surface_internal_import(NULL, NULL, &error)), nullptr); + EXPECT_STREQ(tbm_error_str(error), tbm_error_str(TBM_ERROR_INVALID_PARAMETER)); +} + +TEST_F(TBMSurfaceInternal, ImportPositive_Success) +{ + tbm_error_e error = TBM_ERROR_NONE; + tbm_surface_buffer_data *buffer_data = NULL; + tbm_surface_info_s surface_info; + tbm_surface_h surface1 = NULL; + unsigned int i; + + // export surface_data + EXPECT_NE((buffer_data = tbm_surface_internal_export(surface, &error)), nullptr); + EXPECT_STREQ(tbm_error_str(error), tbm_error_str(TBM_ERROR_NONE)); + + // verify the member variables of tbm_surface_buffer_data + if (buffer_data) { + EXPECT_GT(buffer_data->num_fds, 0); + for (i = 0; i < buffer_data->num_fds; i++) { + EXPECT_GT(buffer_data->fds[i], -1); + } + } + + // get surface_info + error = (tbm_error_e)tbm_surface_get_info(surface, &surface_info); + EXPECT_EQ(TBM_SURFACE_ERROR_NONE, error); + EXPECT_STREQ(tbm_error_str(error), tbm_error_str(TBM_ERROR_NONE)); + + // import surface_data + EXPECT_NE((surface1 = tbm_surface_internal_import(&surface_info, buffer_data, &error)), nullptr); + EXPECT_STREQ(tbm_error_str(error), tbm_error_str(TBM_ERROR_NONE)); + + tbm_surface_internal_destroy(surface1); +} -- 2.7.4