%global debug_package %{nil} Name: testing-utils Version: 0.2.3 Release: 1%{?dist} Summary: Test framework tools and helpers for performance stack project License: MIT URL: https://github.com/example/testing-utils Source0: %{name}-%{version}.tar.gz BuildRequires: gcc-c++ BuildRequires: make BuildRequires: rust BuildRequires: cargo BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: gtest-devel BuildRequires: score-baselibs-devel # For running tests %if 0%{?with_check} BuildRequires: python3-pytest %endif %description Test framework tools and helpers for performance stack project. This repository provides utilities to assist with test automation, log handling, and result parsing. It is designed to be a set of helper libraries for test frameworks or custom test runners. Features: - Test scenarios libraries: Rust and C++ libraries for implementing test scenarios - Build tools: Utilities for interacting with Bazel and Cargo - Log container: A container for storing and querying logs - ResultEntry and subclasses: Structured representation of test log entries - Scenario: Utilities for defining and running test scenarios %package devel Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} Requires: gtest-devel # Note: score-baselibs-devel is an optional runtime dependency # Users who want tracing functionality should install it separately %description devel The %{name}-devel package contains libraries and header files for developing applications that use %{name}. %package -n python3-%{name} Summary: Python 3 module for %{name} Requires: python3 Requires: python3-pytest %description -n python3-%{name} The python3-%{name} package contains the Python 3 module for %{name}. %package -n rust-%{name} Summary: Rust crate for %{name} Requires: rust %description -n rust-%{name} The rust-%{name} package contains the Rust crate for %{name}. %prep %autosetup -n testing_tools %build # Build C++ components make cpp # Build Rust components make rust # Build Python components - no build needed for pure Python %install # Install C++ and Rust components using our Makefile make install DESTDIR=%{buildroot} PREFIX=%{_prefix} PYTHON_INSTALL=no # Install Python package manually mkdir -p %{buildroot}%{python3_sitelib} cp -r testing_utils %{buildroot}%{python3_sitelib}/ # Install coverage checker script install -d %{buildroot}%{_bindir} install -m 755 scripts/coverage_checker/coverage_checker.py %{buildroot}%{_bindir}/coverage_checker # Install Rust crate metadata (if needed for packaging) install -d %{buildroot}%{_datadir}/%{name} cp test_scenarios_rust/Cargo.toml %{buildroot}%{_datadir}/%{name}/rust-Cargo.toml %check # Run C++ tests make cpp-test || true # Run Rust tests make rust-test # Run Python tests (if any) cd testing_utils && python3 -m pytest . -v || true %files %doc README.md %{_libdir}/libtest_scenarios_cpp.a %{_bindir}/coverage_checker %files devel %{_includedir}/test_scenarios_cpp/ %{_libdir}/rust/libtest_scenarios_rust.rlib %files -n python3-%{name} %{python3_sitelib}/testing_utils/ %files -n rust-%{name} %{_datadir}/%{name}/rust-Cargo.toml %changelog * Thu Sep 26 2024 Claude AI - 0.2.3-1 - Initial RPM package - Multi-language support (C++, Rust, Python) - Complete test suite integration - Replaced Bazel with Makefile build system