test(tests/meshIO): added basic test suite for meshIO

just tests the constuctor, getMesh, and isLoaded method. This confirms that a basic spherical mesh can be loaded in correctly
This commit is contained in:
2025-02-16 15:10:13 -05:00
parent a727eca14c
commit 2f753c6ea0
3 changed files with 49 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
#include <gtest/gtest.h>
#include "meshIO.h"
#include <iostream>
#include <string>
#include "mfem.hpp"
std::string EXAMPLE_FILENAME = std::string(getenv("MESON_SOURCE_ROOT")) + "/src/resources/mesh/sphere.msh";
class meshIOTest : public ::testing::Test {};
TEST_F(meshIOTest, DefaultConstructor) {
EXPECT_NO_THROW(MeshIO meshIO(EXAMPLE_FILENAME));
}
TEST_F(meshIOTest, IsLoaded) {
MeshIO meshIO(EXAMPLE_FILENAME);
EXPECT_EQ(meshIO.IsLoaded(), true);
}
TEST_F(meshIOTest, GetMesh) {
MeshIO meshIO(EXAMPLE_FILENAME);
mfem::Mesh& mesh = meshIO.GetMesh();
EXPECT_EQ(mesh.GetNE(), 670);
EXPECT_EQ(mesh.GetNV(), 201);
}

22
tests/meshIO/meson.build Normal file
View File

@@ -0,0 +1,22 @@
# Test files for mesh
test_sources = [
'meshIOTest.cpp',
]
foreach test_file : test_sources
exe_name = test_file.split('.')[0]
message('Building test: ' + exe_name)
# Create an executable target for each test
test_exe = executable(
exe_name,
test_file,
dependencies: [gtest_dep, mfem_dep],
include_directories: include_directories('../../src/meshIO/public'),
link_with: libmeshIO, # Link the dobj library
install_rpath: '@loader_path/../../src' # Ensure runtime library path resolves correctly
)
# Add the executable as a test
test(exe_name, test_exe)
endforeach

View File

@@ -6,6 +6,7 @@ gtest_nomain_dep = dependency('gtest', main: false, required : true)
subdir('dobj')
subdir('const')
subdir('opatIO')
subdir('meshIO')
# Subdirectories for sandbox tests
subdir('dobj_sandbox')