tests: add test_stl_internal.c
This commit is contained in:
parent
e559694bb5
commit
10bf55f18f
@ -52,6 +52,7 @@ add_executable(
|
||||
EXCLUDE_FROM_ALL
|
||||
main_test_stl.c
|
||||
test_stl_io.c
|
||||
test_stl_internal.c
|
||||
stl_utils.c
|
||||
utils.c
|
||||
../src/gmio_stl/internal/stl_rw_common.c)
|
||||
|
@ -15,6 +15,8 @@
|
||||
|
||||
#include "utest_lib.h"
|
||||
|
||||
const char* test_stl_internal__rw_common();
|
||||
|
||||
const char* test_stl_read();
|
||||
const char* test_stlb_write_header();
|
||||
const char* test_stlb_write();
|
||||
@ -24,6 +26,8 @@ const char* all_tests()
|
||||
{
|
||||
UTEST_SUITE_START();
|
||||
|
||||
UTEST_RUN(test_stl_internal__rw_common);
|
||||
|
||||
UTEST_RUN(test_stl_read);
|
||||
UTEST_RUN(test_stlb_write_header);
|
||||
UTEST_RUN(test_stlb_write);
|
||||
|
104
tests/test_stl_internal.c
Normal file
104
tests/test_stl_internal.c
Normal file
@ -0,0 +1,104 @@
|
||||
/****************************************************************************
|
||||
** gmio
|
||||
** Copyright Fougue (2 Mar. 2015)
|
||||
** contact@fougue.pro
|
||||
**
|
||||
** This software is a reusable library whose purpose is to provide complete
|
||||
** I/O support for various CAD file formats (eg. STL)
|
||||
**
|
||||
** This software is governed by the CeCILL-B license under French law and
|
||||
** abiding by the rules of distribution of free software. You can use,
|
||||
** modify and/ or redistribute the software under the terms of the CeCILL-B
|
||||
** license as circulated by CEA, CNRS and INRIA at the following URL
|
||||
** "http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html".
|
||||
****************************************************************************/
|
||||
|
||||
#include "utest_assert.h"
|
||||
|
||||
#include "stl_utils.h"
|
||||
|
||||
#include "../src/gmio_core/error.h"
|
||||
#include "../src/gmio_stl/internal/stl_rw_common.h"
|
||||
#include "../src/gmio_stl/stl_error.h"
|
||||
#include "../src/gmio_stl/stl_io.h"
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
const char* test_stl_internal__rw_common()
|
||||
{
|
||||
/* gmio_check_transfer() */
|
||||
{
|
||||
int error = GMIO_ERROR_OK;
|
||||
uint8_t buff[128] = {0};
|
||||
gmio_transfer_t trsf = {0};
|
||||
|
||||
UTEST_ASSERT(!gmio_check_transfer(&error, NULL));
|
||||
UTEST_ASSERT(error == GMIO_ERROR_NULL_TRANSFER);
|
||||
|
||||
UTEST_ASSERT(!gmio_check_transfer(&error, &trsf));
|
||||
UTEST_ASSERT(error == GMIO_ERROR_NULL_BUFFER);
|
||||
|
||||
trsf.buffer = gmio_buffer(&buff[0], 0, NULL);
|
||||
UTEST_ASSERT(!gmio_check_transfer(&error, &trsf));
|
||||
UTEST_ASSERT(error == GMIO_ERROR_INVALID_BUFFER_SIZE);
|
||||
|
||||
/* Verify that gmio_check_transfer() doesn't touch error when in case of
|
||||
* success */
|
||||
trsf.buffer = gmio_buffer(&buff[0], sizeof(buff), NULL);
|
||||
UTEST_ASSERT(!gmio_check_transfer(&error, &trsf));
|
||||
UTEST_ASSERT(error == GMIO_ERROR_INVALID_BUFFER_SIZE);
|
||||
|
||||
error = GMIO_ERROR_OK;
|
||||
UTEST_ASSERT(gmio_check_transfer(&error, &trsf));
|
||||
UTEST_ASSERT(error == GMIO_ERROR_OK);
|
||||
}
|
||||
|
||||
/* gmio_stl_check_mesh() */
|
||||
{
|
||||
int error = GMIO_ERROR_OK;
|
||||
gmio_stl_mesh_t mesh = {0};
|
||||
|
||||
UTEST_ASSERT(!gmio_stl_check_mesh(&error, NULL));
|
||||
UTEST_ASSERT(error == GMIO_STL_ERROR_NULL_GET_TRIANGLE_FUNC);
|
||||
|
||||
mesh.triangle_count = 100;
|
||||
UTEST_ASSERT(!gmio_stl_check_mesh(&error, &mesh));
|
||||
UTEST_ASSERT(error == GMIO_STL_ERROR_NULL_GET_TRIANGLE_FUNC);
|
||||
|
||||
/* Verify that gmio_stl_check_mesh() doesn't touch error when in case of
|
||||
* success */
|
||||
mesh.triangle_count = 0;
|
||||
mesh.func_get_triangle = &gmio_stl_nop_get_triangle;
|
||||
UTEST_ASSERT(!gmio_stl_check_mesh(&error, &mesh));
|
||||
UTEST_ASSERT(error == GMIO_STL_ERROR_NULL_GET_TRIANGLE_FUNC);
|
||||
|
||||
error = GMIO_ERROR_OK;
|
||||
UTEST_ASSERT(gmio_stl_check_mesh(&error, &mesh));
|
||||
UTEST_ASSERT(error == GMIO_ERROR_OK);
|
||||
}
|
||||
|
||||
/* gmio_stlb_check_params() */
|
||||
{
|
||||
int error = GMIO_ERROR_OK;
|
||||
gmio_transfer_t trsf = {0};
|
||||
uint8_t buff[1024] = {0};
|
||||
|
||||
UTEST_ASSERT(!gmio_stlb_check_params(&error, NULL, GMIO_ENDIANNESS_HOST));
|
||||
UTEST_ASSERT(error == GMIO_ERROR_NULL_TRANSFER);
|
||||
|
||||
error = GMIO_ERROR_OK;
|
||||
trsf.buffer = gmio_buffer(&buff[0], GMIO_STLB_MIN_CONTENTS_SIZE / 2, NULL);
|
||||
UTEST_ASSERT(!gmio_stlb_check_params(&error, &trsf, GMIO_ENDIANNESS_HOST));
|
||||
UTEST_ASSERT(error == GMIO_ERROR_INVALID_BUFFER_SIZE);
|
||||
|
||||
error = GMIO_ERROR_OK;
|
||||
trsf.buffer = gmio_buffer(&buff[0], sizeof(buff), NULL);
|
||||
UTEST_ASSERT(gmio_stlb_check_params(&error, &trsf, GMIO_ENDIANNESS_HOST));
|
||||
UTEST_ASSERT(error == GMIO_ERROR_OK);
|
||||
|
||||
UTEST_ASSERT(!gmio_stlb_check_params(&error, &trsf, GMIO_ENDIANNESS_UNKNOWN));
|
||||
UTEST_ASSERT(error == GMIO_STL_ERROR_UNSUPPORTED_BYTE_ORDER);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
Loading…
Reference in New Issue
Block a user