Files
product-vamp/tests/catalog_fixture.hpp
T
khodowany 142d843fac
ci / checks (push) Successful in 46m42s
Improve Catalog
2026-09-27 11:03:43 -05:00

36 lines
897 B
C++

#pragma once
#include <cerrno>
#include <filesystem>
#include <string>
#include <sys/wait.h>
#include <unistd.h>
#include <boost/test/unit_test.hpp>
#include <modulus/types.hpp>
namespace vamp_test {
inline auto build_catalog(std::filesystem::path const &assets, std::filesystem::path const &database) -> std::bool_t {
auto source = assets.string();
auto destination = database.string();
auto child = ::fork();
BOOST_REQUIRE(child >= 0);
if (child == 0) {
::execl(VAMP_TEST_PYTHON, VAMP_TEST_PYTHON, VAMP_TEST_SOURCE_DIR "/generator/catalog.py", source.c_str(), destination.c_str(), nullptr);
::_exit(127);
}
auto status = std::int32_t{};
auto waited = ::waitpid(child, &status, 0);
while (waited < 0 && errno == EINTR) {
waited = ::waitpid(child, &status, 0);
}
BOOST_REQUIRE(waited == child);
return WIFEXITED(status) && WEXITSTATUS(status) == 0;
}
}