Name: ptef Version: 1.0.2.g4271e10 Release: 1%{?dist} Summary: Portable Test Execution Framework License: MIT URL: https://github.com/comps/ptef Source: ptef-1.0.2.g4271e10.tar.gz # >1 on non-native (emulated) hw platforms in mock/copr, # https://rpm-software-management.github.io/mock/Release-Notes-2.11 %if 0%{?_platform_multiplier} <= 1 %global running_on_native 1 %else %global running_on_native 0 %endif # required for python rpm macros to work BuildRequires: python3-devel %if %{running_on_native} && 0%{?!skip_tests:1} BuildRequires: valgrind BuildRequires: python3 %endif BuildRequires: gcc BuildRequires: make BuildRequires: bash-devel BuildRequires: asciidoctor Recommends: bash Recommends: python3 %description A simple (KISS) specification and an example implementation of a test "runner" framework for system testing and/or integration and execution of test suites. The "portable" refers to its inspiration from POSIX concepts and C API - the specification can be implemented purely using POSIX.1-2008 and the reference implementation does so (no GNU extensions). %changelog * Wed May 03 2023 Jiri Jaburek - 1.0.2.g4271e10-1 - include bash/version.h to make DEFAULT_COMPAT_LEVEL available * Mon Jun 27 2022 Jiri Jaburek - 1.0.1.g1374fd1-1 - don't run valgrind tests on non-native CPU * Mon Jun 27 2022 Jiri Jaburek - 1.0.0.g57b641c-1 - add video links for quick {{{PTEF_CHANGELOG}}} long intros into the main README * Mon Jun 27 2022 Jiri Jaburek - 0.7.216.gc9bb902-1 - catch internal valgrind failure in the test suite * Mon Jun 27 2022 Jiri Jaburek - 0.7.215.gc3504e5-1 - don't echo the entire specfile during build_versioned_srpm * Fri Jun 24 2022 Jiri Jaburek - 0.7.214.g3abf729-1 - unset PTEF_SHELL for the actual spawned shell * Wed Jun 22 2022 Jiri Jaburek - 0.7.213.gab100c4-1 - add a standalone_simple contrib example * Tue Jun 21 2022 Jiri Jaburek - 0.7.212.ge1a6796-1 - don't run bash/python tests on 32bit multilib * Mon Jun 20 2022 Jiri Jaburek - 0.7.211.gdfeb841-1 - use CFLAGS even for linking * Mon Jun 20 2022 Jiri Jaburek - 0.7.210.g4113f92-1 - replace TEST_VARIANT with a script getter * Mon Jun 20 2022 Jiri Jaburek - 0.7.209.g48b9d30-1 - rename misc/exit_code_sanity to exit_code_mapping * Fri Jun 17 2022 Jiri Jaburek - 0.7.208.g096bb57-1 - check tests for FAIL instead of diffing results * Fri Jun 17 2022 Jiri Jaburek - 0.7.207.g717605a-1 - run ptef_shell test only where realpath is available * Fri Jun 17 2022 Jiri Jaburek - 0.7.206.gd6017eb-1 - print test logs to output with TEST_PRINT_LOGS defined * Fri Jun 17 2022 Jiri Jaburek - 0.7.205.g3ce4afa-1 - make report/locking/ use signals instead of a named pipe * Thu Jun 16 2022 Jiri Jaburek - 0.7.204.g780625f-1 - move tests/bin/list-fds to a test-specific dir * Thu Jun 16 2022 Jiri Jaburek - 0.7.203.g80bc274-1 - run limited tests on rhel7/rhel6 too * Thu Jun 16 2022 Jiri Jaburek - 0.7.202.ge03f89e-1 - split results-reference.log per-variant * Thu Jun 16 2022 Jiri Jaburek - 0.7.201.g7dd0cc9-1 - don't run the lock-waiting tests via valgrind due to SIGTERM * Thu Jun 16 2022 Jiri Jaburek - 0.7.200.g085f8be-1 - print out valgrind errors to console in tests * Wed Jun 15 2022 Jiri Jaburek - 0.7.199.gf8a527a-1 - sort test results via a known LC_COLLATE before comparison * Wed Jun 15 2022 Jiri Jaburek - 0.7.198.g37188fa-1 - don't run misc/open_fds test under valgrind * Wed Jun 15 2022 Jiri Jaburek - 0.7.197.g9ea7223-1 - rewrite tests into individual script files * Wed Jun 15 2022 Jiri Jaburek - 0.7.196.gceb72dc-1 - adjust tests for libptef.so.0.0 instead of .so.0 * Wed Jun 15 2022 Jiri Jaburek - 0.7.195.g782b0a8-1 - run tests in specfiles by default * Tue Jun 14 2022 Jiri Jaburek - 0.7.194.g2f87cff-1 - make git ignore unix ownership of the repo, in mock/copr * Sun Jun 12 2022 Jiri Jaburek - 0.7.193.g8869657-1 - misc examples and related README fixes * Sun Jun 12 2022 Jiri Jaburek - 0.7.192.gb5cb40f-1 - add a "No dry run mode" to ptef.adoc Rationale * Sun Jun 12 2022 Jiri Jaburek - 0.7.191.gb6323fd-1 - add .gitignore files for examples (where possible) * Sun Jun 12 2022 Jiri Jaburek - 0.7.190.g8c9b0f9-1 - move examples/contrib/nested-tests-dir description into a README * Sun Jun 12 2022 Jiri Jaburek - 0.7.189.g70a96ea-1 - minor clarifications in ptef.adoc * Sun Jun 12 2022 Jiri Jaburek - 0.7.188.g2ce2806-1 - support running tests with PTEF_RUN * Sun Jun 12 2022 Jiri Jaburek - 0.7.187.g3064801-1 - rename missed bash something() -> function something * Sun Jun 12 2022 Jiri Jaburek - 0.7.186.g43f8e33-1 - disable valgrind for tests where fork()ed child does exit(1) * Sun Jun 12 2022 Jiri Jaburek - 0.7.185.g80abfd6-1 - make ltp example work in containers * Sun Jun 12 2022 Jiri Jaburek - 0.7.184.gae4902a-1 - fix up tests and examples dependencies * Sun Jun 12 2022 Jiri Jaburek - 0.7.183.g4a6cd01-1 - remove symbol versioning * Tue Feb 01 2022 Jiri Jaburek - 0.7.182.g7270e41-1 - add a runconf-based contrib example * Tue Feb 01 2022 Jiri Jaburek - 0.7.181.g401f28d-1 - fix branch name in standalone example * Tue Feb 01 2022 Jiri Jaburek - 0.7.180.g1f5b79a-1 - split exit code example to 15-nonstandard * Sat Jan 08 2022 Jiri Jaburek - 0.7.179.g6dac646-1 - Revert python RunnerCLI addition * Thu Jan 06 2022 Jiri Jaburek - 0.7.178.ga18be8c-1 - add ptef-report -c to ptef-runner as well * Thu Jan 06 2022 Jiri Jaburek - 0.7.177.g7687f53-1 - add runner CLI handling to ptef.py, emulating C-based CLI * Thu Jan 06 2022 Jiri Jaburek - 0.7.176.g2950d2b-1 - add customizable exit-code-to-status mapping * Tue Oct 19 2021 Jiri Jaburek - 0.7.175.g0b59164-1 - split rhel9.spec out of fedora.spec, remove asciidoctor * Tue Oct 19 2021 Jiri Jaburek - 0.7.174.g0993688-1 - use override for setting CFLAGS/LDFLAGS * Tue Oct 19 2021 Jiri Jaburek - 0.7.173.g41beff2-1 - add contrib/standalone example * Tue Oct 19 2021 Jiri Jaburek - 0.7.172.g12c289d-1 - add environment-checking and nested-tests-dir examples * Wed Oct 06 2021 Jiri Jaburek - 0.7.171.g5e07ed6-1 - use RPM_LD_FLAGS for RHEL spec files too * Wed Oct 06 2021 Jiri Jaburek - 0.7.170.g00e372b-1 - use RPM_LD_FLAGS, pass LDFLAGS when building cli * Tue Oct 05 2021 Jiri Jaburek - 0.7.169.g86e430c-1 - install git in .copr/Makefile * Fri Sep 24 2021 Jiri Jaburek - 0.7.168.g30144ef-1 - add extra contrib/ examples * Fri Sep 24 2021 Jiri Jaburek - 0.7.167.gbd9224e-1 - add a test for parallel_jobs_extrajobs * Fri Sep 24 2021 Jiri Jaburek - 0.7.166.gbc349a6-1 - add -pie -Wl,-z,now to spec files directly * Fri Sep 24 2021 Jiri Jaburek - 0.7.165.g6f144a2-1 - split CFLAGS/LDFLAGS handling to allow for -pie / -fPIE / -Wl,-z,now * Fri Sep 24 2021 Jiri Jaburek - 0.7.164.g07d15ab-1 - remove __thread from ptef_status_colors * Fri Sep 24 2021 Jiri Jaburek - 0.7.163.g62d9c51-1 - reuse rhel7.6.spec as rhel6.spec * Fri Sep 24 2021 Jiri Jaburek - 0.7.162.g32d8720-1 - remove -flto by default * Fri Sep 24 2021 Jiri Jaburek - 0.7.161.g74b5c2a-1 - remove _Noreturn, which is not c99 * Fri Sep 24 2021 Jiri Jaburek - 0.7.160.g110c39f-1 - guarantee that PTEF_NOLOGS doesn't touch logs * Fri Sep 24 2021 Jiri Jaburek - 0.7.159.g5e7873f-1 - add support for rhel7.6 and older (no python3) * Fri Sep 24 2021 Jiri Jaburek - 0.7.158.g14274d6-1 - don't use pycached in rhel8.spec to support older rhel8.x versions * Fri Sep 24 2021 Jiri Jaburek - 0.7.157.gc6b3a4b-1 - go back to .copr instead of rpkg * Fri Sep 24 2021 Jiri Jaburek - 0.7.156.g3f7c981-1 - fix up rpkg changelog macro / spec files * Fri Sep 24 2021 Jiri Jaburek - 0.7.155.g28f3346-1 - clarify portability in README * Thu Sep 16 2021 Jiri Jaburek - 0.7.154.g9b2ef22-1 - documentation updates, main README rewrite * Thu Sep 16 2021 Jiri Jaburek - 0.7.153.ga45e4a1-1 - add new examples, remove development notes * Thu Sep 16 2021 Jiri Jaburek - 0.7.152.g461e83d-1 - delete old examples * Thu Sep 16 2021 Jiri Jaburek - 0.7.151.gdd66c56-1 - rename builtins.sh to builtins.bash * Thu Sep 16 2021 Jiri Jaburek - 0.7.150.gede4d45-1 - fix repeated occurence of a standalone arg * Sat Sep 11 2021 Jiri Jaburek - 0.7.149.g43c98e6-1 - get rid of -Werror due to compiler bugs * Sat Sep 11 2021 Jiri Jaburek - 0.7.148.g1004950-1 - fix rare conditions / unused vars found using clang * Thu Sep 09 2021 Jiri Jaburek - 0.7.147.g72ca49f-1 - force arg sanity check, slash-trim each argument * Thu Sep 09 2021 Jiri Jaburek - 0.7.146.g9f24b7e-1 - duplicate stdout to stderr for PTEF_DEBUG * Thu Sep 09 2021 Jiri Jaburek - 0.7.145.g167a39d-1 - remove -Werror from spec files due to gcc bugs * Thu Sep 09 2021 Jiri Jaburek - 0.7.144.g1d49f3d-1 - adjust tests to the new (and correct) assert_contents * Thu Sep 09 2021 Jiri Jaburek - 0.7.143.g1e6cb03-1 - add PTEF_SHELL, for debugging * Tue Sep 07 2021 Jiri Jaburek - 0.7.142.g848bf98-1 - add PTEF_SILENT to suppress stdout result reporting * Mon Sep 06 2021 Jiri Jaburek - 0.7.141.gfafe3f0-1 - Revert "add depinstall to root-level Makefile" * Mon Sep 06 2021 Jiri Jaburek - 0.7.140.ge4c9c1c-1 - add depinstall to root-level Makefile * Mon Sep 06 2021 Jiri Jaburek - 0.7.139.g9c6d863-1 - auto-guess python3_sitelib, should work on Python 3.2+ * Sun Sep 05 2021 Jiri Jaburek - 0.7.138.g2a12bbf-1 - replace .copr with .rpkg * Sun Sep 05 2021 Jiri Jaburek - 0.7.137.g7068651-1 - make copr/ptef.spec compatible with el8/el7 * Sun Sep 05 2021 Jiri Jaburek - 0.7.136.g60696b0-1 - explicitly use -std=c99 (fix build on older gcc versions) * Sat Sep 04 2021 Jiri Jaburek - 0.7.135.g8598c3f-1 - hardcode python read1() buffer size for python 3.6 and older * Sat Sep 04 2021 Jiri Jaburek - 0.7.134.gf062f18-1 - add back runner ignore functionality * Sat Sep 04 2021 Jiri Jaburek - 0.7.133.g4685e4d-1 - add a test for closed PTEF_RESULTS_FD * Sat Sep 04 2021 Jiri Jaburek - 0.7.132.g6d4758a-1 - don't build bash builtins if bash-devel is missing * Fri Sep 03 2021 Jiri Jaburek - 0.7.131.g389ece9-1 - make dup2/close EINTR-safe * Fri Sep 03 2021 Jiri Jaburek - 0.7.130.g260c34a-1 - minimize time spent in report while holding locks * Fri Sep 03 2021 Jiri Jaburek - 0.7.129.gd659b8f-1 - clean up includes * Fri Sep 03 2021 Jiri Jaburek - 0.7.128.g3e66601-1 - add documentation to ptef.py * Fri Sep 03 2021 Jiri Jaburek - 0.7.127.g2d378e3-1 - add tests for -h (help) and report/mklog without arguments * Fri Sep 03 2021 Jiri Jaburek - 0.7.126.g4705769-1 - address without_args.c issues found by gcc -fanalyzer * Fri Sep 03 2021 Jiri Jaburek - 0.7.125.g62c2baa-1 - remove PTEF_IGNORE_FILES and any exclude/ignore logic * Thu Sep 02 2021 Jiri Jaburek - 0.7.124.g898d1f4-1 - add manpages for ptef_report and ptef_mklog * Thu Sep 02 2021 Jiri Jaburek - 0.7.123.g7a676b7-1 - always use -D_POSIX_C_SOURCE=200809 in CFLAGS * Thu Sep 02 2021 Jiri Jaburek - 0.7.122.g2c65cc3-1 - remove default_basename, pass it as part of argc/argv * Wed Sep 01 2021 Jiri Jaburek - 0.7.121.gd5f7d24-1 - add rationale for not having test elapsed time to the spec * Wed Sep 01 2021 Jiri Jaburek - 0.7.120.gb10b54d-1 - remove the MARK status and functionality * Wed Sep 01 2021 Jiri Jaburek - 0.7.119.g119a7a6-1 - provide ptef_set_status_colors bash builtin instead of -c * Wed Sep 01 2021 Jiri Jaburek - 0.7.118.g045fe14-1 - use a global variable on TLS for custom status colors * Tue Aug 31 2021 Jiri Jaburek - 0.7.117.g8250ced-1 - add user-specified color map support for report * Mon Aug 30 2021 Jiri Jaburek - 0.7.116.ga2d8b7a-1 - don't build ptef.html when asciidoctor cmd isn't available * Mon Aug 30 2021 Jiri Jaburek - 0.7.115.gc6c7330-1 - use commit-number-above-tag as RPM version, not release * Mon Aug 30 2021 Jiri Jaburek - 0.7.114.g89d5793-1 - install ptef.h into /usr/include * Mon Aug 30 2021 Jiri Jaburek - 0.7.113.gea658d4-1 - record DT_SONAME in libptef.so.0 * Mon Aug 30 2021 Jiri Jaburek - 0.7.112.ge9240ff-1 - update copr spec file, install and package documentation * Mon Aug 30 2021 Jiri Jaburek - 0.7.111.gde3e728-1 - fix libptef-bash.c build on bash-5.1 * Mon Aug 30 2021 Jiri Jaburek - 0.7.110.g9ed64ef-1 - add a manpage for ptef_runner * Sun Aug 29 2021 Jiri Jaburek - 0.7.109.g31da97f-1 - add PTEF_NOROTATE to mklog, disabling log rotation * Sun Aug 29 2021 Jiri Jaburek - 0.7.108.g840aac1-1 - remove old TEF specification * Fri Aug 27 2021 Jiri Jaburek - 0.7.107.g169d071-1 - write out the PTEF spec as ptef.adoc * Wed Aug 25 2021 Jiri Jaburek - 0.7.106.g5bcffe5-1 - abort run with args on the first invalid arg * Wed Aug 25 2021 Jiri Jaburek - 0.7.105.g33c2d3b-1 - exit runner with non-0 when invalid args are found * Sun Aug 22 2021 Jiri Jaburek - 0.7.104.g1af69e5-1 - transform the RUN status into opt-in PTEF_RUN env var * Sun Aug 22 2021 Jiri Jaburek - 0.7.103.gc164825-1 - Revert "add the NORUN flag to runner" * Sun Aug 22 2021 Jiri Jaburek - 0.7.102.gd141a2d-1 - add the NORUN flag to runner * Sun Aug 22 2021 Jiri Jaburek - 0.7.101.g7d3ddbc-1 - implement the MARK status * Sat Aug 21 2021 Jiri Jaburek - 0.7.100.g900232e-1 - make report lock both stdout and PTEF_RESULTS_FD before writing * Sat Aug 21 2021 Jiri Jaburek - 0.7.99.g0f226fb-1 - add report locking tests, expose flag defines via CLI * Fri Aug 20 2021 Jiri Jaburek - 0.7.98.gf682cb6-1 - add flags parameter to C runner/report/mklog functions * Fri Aug 20 2021 Jiri Jaburek - 0.7.97.g6924d62-1 - add mklog tests, fix log rotation from .1.log to .log.1 * Fri Aug 20 2021 Jiri Jaburek - 0.7.96.g4bfa24a-1 - add misc tests, fix found issues in runner code * Thu Aug 19 2021 Jiri Jaburek - 0.7.95.g658b403-1 - unify most of mkfile contents across tests * Wed Aug 18 2021 Jiri Jaburek - 0.7.94.gf31d1d3-1 - add vars and basename tests, fix PTEF_IGNORE_FILES bug * Wed Aug 18 2021 Jiri Jaburek - 0.7.93.g52af2eb-1 - introduce PTEF_BASENAME * Thu Aug 05 2021 Jiri Jaburek - 0.7.92.gfecbf5f-1 - move install logic from specfile to make install * Wed Aug 04 2021 Jiri Jaburek - 0.7.91.gc7b591a-1 - use major ABI version for shared object file names * Tue Aug 03 2021 Jiri Jaburek - 0.7.90.g5ee3bec-1 - first working/buildable spec file * Tue Aug 03 2021 Jiri Jaburek - 0.7.89.g7c5e384-1 - Revert "add errno test variant using LD_PRELOAD" * Tue Aug 03 2021 Jiri Jaburek - 0.7.88.gf0911b2-1 - return original errno on success * Tue Aug 03 2021 Jiri Jaburek - 0.7.87.g216896e-1 - Revert "reset errno to 0 on expected errors" * Tue Aug 03 2021 Jiri Jaburek - 0.7.86.g5793683-1 - add errno test variant using LD_PRELOAD * Tue Aug 03 2021 Jiri Jaburek - 0.7.85.g9d7c06c-1 - reset errno to 0 on expected errors * Tue Aug 03 2021 Jiri Jaburek - 0.7.84.g6444c93-1 - add strace test variant, used only manually for debug * Tue Aug 03 2021 Jiri Jaburek - 0.7.83.g301f0f8-1 - remove test fail exit code from make ptef-runner CLI * Tue Aug 03 2021 Jiri Jaburek - 0.7.82.gd7b7cee-1 - raise OSError in ptef.py when ptef_* return -1 * Mon Aug 02 2021 Jiri Jaburek - 0.7.81.gcf6b9a7-1 - first attempt at a spec file {{{PTEF_CHANGELOG}}} rpm building * Mon Aug 02 2021 Jiri Jaburek - 0.7.80.gb817729-1 - add tests for python runner * Mon Aug 02 2021 Jiri Jaburek - 0.7.79.g5bb44f5-1 - add python ctypes-based wrapper * Mon Aug 02 2021 Jiri Jaburek - 0.7.78.g0006f19-1 - use 'testname' as test name, consistently * Sat Jul 24 2021 Jiri Jaburek - 0.7.77.g0cd9fb7-1 - rewrite tests from dir structure to shell scripts * Sat Jul 24 2021 Jiri Jaburek - 0.7.76.g4471133-1 - don't throw error on processing an empty argument * Tue Jul 13 2021 Jiri Jaburek - 0.7.75.g42c4aab-1 - add ptef-runner -v for exporting PTEF_NOLOGS=1 * Tue Jul 13 2021 Jiri Jaburek - 0.7.74.gc7e6969-1 - call mklog() from runner before adjusting prefix * Mon Jul 12 2021 Jiri Jaburek - 0.7.73.g95c7010-1 - always add testname to PTEF_PREFIX, not just to subrunner * Mon Jul 12 2021 Jiri Jaburek - 0.7.72.g63fbe55-1 - update gitignore files for the c-based runner * Mon Jul 12 2021 Jiri Jaburek - 0.7.71.g4b85592-1 - add support for PTEF_COLOR * Mon Jul 12 2021 Jiri Jaburek - 0.7.70.g93dc186-1 - replace struct runner_opts with direct args * Mon Jul 12 2021 Jiri Jaburek - 0.7.69.geb2600c-1 - re-do ignored executables as PTEF_IGNORE_FILES * Mon Jul 12 2021 Jiri Jaburek - 0.7.68.g582e9f3-1 - implement PTEF_NOLOGS * Sun Jul 11 2021 Jiri Jaburek - 0.7.67.g30cd352-1 - get rid of global error log fd var, restructure O_CLOEXEC code * Sun Jul 11 2021 Jiri Jaburek - 0.7.66.gdbf2850-1 - abstract 'defined and non-empty' as getenv_defined() * Sun Jul 11 2021 Jiri Jaburek - 0.7.65.g3e7821c-1 - allow specifying runner type as arg to tests/run * Sun Jul 11 2021 Jiri Jaburek - 0.7.64.g151c8cf-1 - use CLI runner instead of bash builtin * Sat Jul 10 2021 Jiri Jaburek - 0.7.63.g5755dbe-1 - add bash runner to tests * Wed Jul 07 2021 Jiri Jaburek - 0.7.62.g417803f-1 - add bash builtin wrapper, mostly working * Tue Jul 06 2021 Jiri Jaburek - 0.7.61.g208a37e-1 - use link time optimization * Tue Jul 06 2021 Jiri Jaburek - 0.7.60.g6ff5de9-1 - add help texts, make mklog CLI forward output * Sat Jul 03 2021 Jiri Jaburek - 0.7.59.gcaaa117-1 - run tests without color, add reference output * Sat Jul 03 2021 Jiri Jaburek - 0.7.58.gaa0007c-1 - separate stdout logging + diff in tests * Sat Jul 03 2021 Jiri Jaburek - 0.7.57.gdb19c44-1 - use global var for current_error_fd * Sat Jul 03 2021 Jiri Jaburek - 0.7.56.gbdc5dbd-1 - preserve errno from open_create_dir in mklog * Sat Jul 03 2021 Jiri Jaburek - 0.7.55.g470028b-1 - preserve errno when printing errors * Sat Jul 03 2021 Jiri Jaburek - 0.7.54.gfcbd6d4-1 - add basic PTEF_LOGS tests * Fri Jun 25 2021 Jiri Jaburek - 0.7.53.gc804b00-1 - add runner_prefix tests * Wed Jun 23 2021 Jiri Jaburek - 0.7.52.g0aa014e-1 - use ptef independent hierarchy traversal in tests * Tue Jun 22 2021 Jiri Jaburek - 0.7.51.ge851e50-1 - remove getopt ':' GNUism from runner CLI * Tue Jun 22 2021 Jiri Jaburek - 0.7.50.g781b81a-1 - log tests output via ttee * Mon Jun 21 2021 Jiri Jaburek - 0.7.49.gc348335-1 - working valgrind + cli test runners * Mon Jun 21 2021 Jiri Jaburek - 0.7.48.g7116fdb-1 - add argument-based tests * Mon Jun 21 2021 Jiri Jaburek - 0.7.47.g0273598-1 - rename test-runner to ptef-runner, for PATH consistency * Mon Jun 21 2021 Jiri Jaburek - 0.7.46.gaa12cb3-1 - basic tests structure * Mon Jun 21 2021 Jiri Jaburek - 0.7.45.gc2781bc-1 - correctly qsort dirents as pointers to pointers * Mon Jun 21 2021 Jiri Jaburek - 0.7.44.g22e8812-1 - honor external CFLAGS without breaking includes * Sun Jun 20 2021 Jiri Jaburek - 0.7.43.gf886f34-1 - rename tef to ptef * Sun Jun 20 2021 Jiri Jaburek - 0.7.42.g0203694-1 - mention symlink support in guide * Sun Jun 20 2021 Jiri Jaburek - 0.7.41.g924c60a-1 - always do fstatat() on readdir(3) entries * Sun Jun 20 2021 Jiri Jaburek - 0.7.40.g88156fb-1 - embed colors into status strings via preprocessor * Sun Jun 13 2021 Jiri Jaburek - 0.7.39.g00b19f9-1 - actually dup2() tef_mklog fd to stderr * Sun Jun 13 2021 Jiri Jaburek - 0.7.38.gf1a5976-1 - fix double free in without_args.c * Sun Jun 13 2021 Jiri Jaburek - 0.7.37.g9f92c1c-1 - store max jobs in exec_state * Sun Jun 13 2021 Jiri Jaburek - 0.7.36.gf6f0f55-1 - return on execute() failure, ignore test failure * Mon Jun 07 2021 Jiri Jaburek - 0.7.35.g2c79adf-1 - first complete runner w/ execute, untested * Sun Jun 06 2021 Jiri Jaburek - 0.7.34.g99155f9-1 - full working mklog * Sun Jun 06 2021 Jiri Jaburek - 0.7.33.gf325fbe-1 - first mklog version, kinda works * Wed Jun 02 2021 Jiri Jaburek - 0.7.32.g3830423-1 - better error reporting * Wed Jun 02 2021 Jiri Jaburek - 0.7.31.ga160643-1 - bool->int, ERROR(), some execute.c work * Tue Jun 01 2021 Jiri Jaburek - 0.7.30.ga424f20-1 - guarantee allocated argv for execute() * Tue Jun 01 2021 Jiri Jaburek - 0.7.29.g05b75c1-1 - remove now-useless static archives * Tue Jun 01 2021 Jiri Jaburek - 0.7.28.g9ff7fc4-1 - link runner/report to .so * Fri May 28 2021 Jiri Jaburek - 0.7.27.gd78e1ba-1 - restructure src, add lib, fix report->stdout * Wed May 26 2021 Jiri Jaburek - 0.7.26.g6a0c14c-1 - Makefile for report * Wed May 26 2021 Jiri Jaburek - 0.7.25.gb661ff0-1 - working locking safe report.c * Wed May 26 2021 Jiri Jaburek - 0.7.24.g5bafb97-1 - first basic report.c idea * Tue May 18 2021 Jiri Jaburek - 0.7.23.gd58e1d4-1 - cli as tef-runner, copy runner to (tef-)report * Mon May 17 2021 Jiri Jaburek - 0.7.22.g50329c5-1 - non-merging runner * Mon May 17 2021 Jiri Jaburek - 0.7.21.gc4c1d60-1 - add top-level Makefile * Mon May 17 2021 Jiri Jaburek - 0.7.20.g08afa8b-1 - working getopt CLI * Mon May 17 2021 Jiri Jaburek - 0.7.19.g0799d69-1 - restructure runner, move stuff into common.h * Mon May 17 2021 Jiri Jaburek - 0.7.18.gcf66d8c-1 - runner abort on insane arg * Mon May 17 2021 Jiri Jaburek - 0.7.17.gd9e4471-1 - split runner into multiple files * Mon May 17 2021 Jiri Jaburek - 0.7.16.g74fba91-1 - de-const, kinda buggy in C11 * Mon May 17 2021 Jiri Jaburek - 0.7.15.g23b9b3b-1 - actually working arg runner, woohoo * Sun May 16 2021 Jiri Jaburek - 0.7.14.g0ea4943-1 - more progress * Fri May 07 2021 Jiri Jaburek - 0.7.13.gb25ba95-1 - actually decent file/dir detection * Fri May 07 2021 Jiri Jaburek - 0.7.12.g0c84cd7-1 - try to abstract execute_unknown, badly * Fri May 07 2021 Jiri Jaburek - 0.7.11.g34fd141-1 - remove useless test2.c * Fri May 07 2021 Jiri Jaburek - 0.7.10.gac6c8e2-1 - useless changes to test2.c * Thu May 06 2021 Jiri Jaburek - 0.7.9.g923f1ca-1 - changes to TEF.md * Thu May 06 2021 Jiri Jaburek - 0.7.8.g9c94c9a-1 - c runner #6 * Thu May 06 2021 Jiri Jaburek - 0.7.7.gba9462c-1 - c runner #5 * Thu May 06 2021 Jiri Jaburek - 0.7.6.ga5a7d10-1 - c runner #4 * Thu May 06 2021 Jiri Jaburek - 0.7.5.g03710a9-1 - c runner #3 noncompile * Thu May 06 2021 Jiri Jaburek - 0.7.4.gd104ee1-1 - c runner #2 noncompile * Sat May 01 2021 Jiri Jaburek - 0.7.3.gf048473-1 - c runner #1 * Mon Apr 19 2021 Jiri Jaburek - 0.7.2.g79903d9-1 - switch license to MIT * Thu Apr 15 2021 Jiri Jaburek - 0.7.1.g6cb7f6a-1 - delete previous bash runner * Thu Apr 08 2021 Jiri Jaburek - 0.7.0.ga20cbba-1 - use gray color for the MARK status * Thu Apr 08 2021 Jiri Jaburek - 0.6.9.g2a47f00-1 - propagate failure upwards in the hierarchy * Wed Apr 07 2021 Jiri Jaburek - 0.6.8.ga6d0787-1 - install common.inc as lib/tef.bash for external use * Wed Apr 07 2021 Jiri Jaburek - 0.6.7.ge1bb3a1-1 - rewrite runner/report/mklog as bash functions * Wed Apr 07 2021 Jiri Jaburek - 0.6.6.g88ec696-1 - remove tput colors check, optimize touch * Wed Apr 07 2021 Jiri Jaburek - 0.6.5.g4644bc3-1 - optimize mklog/report, don't call realpath * Wed Apr 07 2021 Jiri Jaburek - 0.6.4.gda17781-1 - use safe [ -n .. ] test * Wed Apr 07 2021 Jiri Jaburek - 0.6.3.gebc975f-1 - introduce the MARK result status * Wed Apr 07 2021 Jiri Jaburek - 0.6.2.g895e9b4-1 - expose create_logroot via tef-mklog * Wed Apr 07 2021 Jiri Jaburek - 0.6.1.gd8d8b72-1 - split logging back into logs and TEF_LOGS, separately * Wed Mar 31 2021 Jiri Jaburek - 0.6.0.gfa7a541-1 - correct logical error in the spec, fix formatting * Tue Jun 19 2018 Jiri Jaburek - 0.1.48.g70dffb5-1 - add in-development note to README * Tue Jun 19 2018 Jiri Jaburek - 0.1.47.g638d819-1 - add test suite example * Tue Jun 19 2018 Jiri Jaburek - 0.1.46.gf004ae2-1 - unify logging hierarchy, get rid of per-level logs * Tue Jun 19 2018 Jiri Jaburek - 0.1.45.gec6a0a2-1 - make reporting RUN optional * Tue Jun 19 2018 Jiri Jaburek - 0.1.44.gdbd4e6c-1 - TEF_PREFIX any executable like a subdir runner * Mon Jun 18 2018 Jiri Jaburek - 0.1.43.g9990a2d-1 - replace flock(2) with standard POSIX advisory locks * Mon Jun 18 2018 Jiri Jaburek - 0.1.42.g8f49f6c-1 - introduce TEF_RESULTS_FD for status logging * Mon Jun 18 2018 Jiri Jaburek - 0.1.41.ge7889e9-1 - split runner into include files, provide report/mklog tools * Mon Jun 18 2018 Jiri Jaburek - 0.1.40.gc89cc61-1 - runner code cleanup, remove tef_ func prefix * Mon Jun 18 2018 Jiri Jaburek - 0.1.39.g90b8049-1 - redesign TEF_LOGS logic, mimic execution hierarchy * Mon Jun 18 2018 Jiri Jaburek - 0.1.38.g89071c9-1 - further clarify executable files vs directories * Mon Jun 18 2018 Jiri Jaburek - 0.1.37.gbe3f6fd-1 - get rid of binary logs, output to fd0 only * Mon Jun 18 2018 Jiri Jaburek - 0.1.36.g56848a5-1 - detect fail rc from an executable inside a dir * Mon Jun 18 2018 Jiri Jaburek - 0.1.35.g025b9a1-1 - provide rationale for undefined argument-less run * Thu Jun 07 2018 Jiri Jaburek - 0.1.34.gf4135ec-1 - make readlog print all results for 'only/not' filter * Thu Jun 07 2018 Jiri Jaburek - 0.1.33.g1b22da7-1 - simplify binary log tty condition, make it fd0 independent * Thu Jun 07 2018 Jiri Jaburek - 0.1.32.g1a68123-1 - detect terminal based on opened fd, more spec-like * Thu Jun 07 2018 Jiri Jaburek - 0.1.31.g67e1409-1 - upgrade log format, split status/name with whitespace * Thu Jun 07 2018 Jiri Jaburek - 0.1.30.g36d0896-1 - trim paths leading above CWD * Thu Jun 07 2018 Jiri Jaburek - 0.1.29.g18fb3a3-1 - don't automatically run hidden executables * Thu Jun 07 2018 Jiri Jaburek - 0.1.28.g68c1030-1 - argv0 override, scripts-based example * Thu Jun 07 2018 Jiri Jaburek - 0.1.27.gfe4890d-1 - remove path/arg relativity to simplify external runner execution * Thu Jun 07 2018 Jiri Jaburek - 0.1.26.ga656f85-1 - add README for the symlinks example * Thu Jun 07 2018 Jiri Jaburek - 0.1.25.gbfdd9c9-1 - rename selftest as symlinks example * Thu Jun 07 2018 Jiri Jaburek - 0.1.24.ga624121-1 - make path/arg relativity optional * Thu Jun 07 2018 Jiri Jaburek - 0.1.23.ge3b8a33-1 - rewrite/update and formalize documentation, provide README * Thu Jun 07 2018 Jiri Jaburek - 0.1.22.g98baa78-1 - add proper license and copyrights * Thu Jun 07 2018 Jiri Jaburek - 0.1.21.g5c31a1b-1 - move runner into a more proper src/bin structure * Thu Jun 07 2018 Jiri Jaburek - 0.1.20.g97420f4-1 - add a simple selftest, no runners yet * Thu Jun 07 2018 Jiri Jaburek - 0.1.19.g4f8d803-1 - give readlog basic log parsing functionality * Thu Jun 07 2018 Jiri Jaburek - 0.1.18.gc50aba1-1 - add readlog, a prototype results parser * Thu Jun 07 2018 Jiri Jaburek - 0.1.17.g8613418-1 - version the 'tefresults' on-disk format * Thu Jun 07 2018 Jiri Jaburek - 0.1.16.g9334bbd-1 - allow any number of whitespaces after STATUS * Thu Jun 07 2018 Jiri Jaburek - 0.1.15.g0879d26-1 - support colors, reorganize io setup * Thu Jun 07 2018 Jiri Jaburek - 0.1.14.g15d3316-1 - add support for stdout/err redirection to logs * Thu Jun 07 2018 Jiri Jaburek - 0.1.13.g27eacb7-1 - implement basic result reporting * Thu Jun 07 2018 Jiri Jaburek - 0.1.12.g81fe2cc-1 - prepare for result logging * Thu Jun 07 2018 Jiri Jaburek - 0.1.11.g9d0bfee-1 - rephrase stdout log file for test results in concept * Thu Jun 07 2018 Jiri Jaburek - 0.1.10.g859d15b-1 - mention result collection in concept * Thu Jun 07 2018 Jiri Jaburek - 0.1.9.g0f0fdb3-1 - slight re-wording/updating of the concept * Thu Jun 07 2018 Jiri Jaburek - 0.1.8.g2f0fc43-1 - further clarify on-disk runner output * Thu Jun 07 2018 Jiri Jaburek - 0.1.7.g6e8d5d1-1 - specify output/result logging in concept * Thu Jun 07 2018 Jiri Jaburek - 0.1.6.gb94cec3-1 - parent vs child path, logic cleanup, un-bug * Thu Jun 07 2018 Jiri Jaburek - 0.1.5.ge332a1c-1 - relative path support, buggy * Thu Jun 07 2018 Jiri Jaburek - 0.1.4.g9240e0c-1 - some work on runall, can run optimized paths * Wed Apr 12 2017 Jiri Jaburek - 0.1.3.g196ab46-1 - further concept clarifications, typo fixes * Wed Apr 12 2017 Jiri Jaburek - 0.1.2.g228af4a-1 - expand on test arguments/parameters * Wed Apr 12 2017 Jiri Jaburek - 0.1.1.g63ac5cd-1 - describe the concept basics * Fri Nov 22 2013 Jiri Jaburek - 0.1.0.gcd80150-1 - init %prep %setup %build # -Wno-unused-result # we intentionally discard writev() result as it's used only for debugging, # unfortunately, there's no __attribute__ that could create an exception, # and (void) also doesn't silence it, so just disable it globally make \ CFLAGS="${RPM_OPT_FLAGS} -Wno-unused-result -Wextra" \ LDFLAGS="${RPM_LD_FLAGS}" %if %{running_on_native} && 0%{?!skip_tests:1} %check # testing is destructive since it re-builds binaries # with several different CFLAGS, so back-up original outputs rm -rf src-backup mv src src-backup cp -a src-backup src # if building 32bit on 64bit, do only minimal testing: # - 64bit bash/python would link .so against 64bit interpreter # - valgrind would need a 32bit memcheck tool %if "%{_host_cpu}" != "%{_target_cpu}" export TEST_VARIANTS="/cli" %endif TEST_PRINT_LOGS=1 make test \ CFLAGS="${RPM_OPT_FLAGS} -Wno-unused-result -Wextra" \ LDFLAGS="${RPM_LD_FLAGS}" rm -rf src mv src-backup src %endif %install %make_install \ bindir="%{_bindir}" \ libdir="%{_libdir}" \ includedir="%{_includedir}" \ datadir="%{_datadir}" \ docdir="%{_docdir}" \ mandir="%{_mandir}" \ python3_sitelib="%{python3_sitelib}" %files %license LICENSE %attr(755,root,root) %{_bindir}/ptef-runner %attr(755,root,root) %{_bindir}/ptef-report %attr(755,root,root) %{_bindir}/ptef-mklog %attr(755,root,root) %{_libdir}/libptef.so.0.0 %{_libdir}/libptef.so.0 %{_libdir}/libptef.so %attr(644,root,root) %{_includedir}/ptef.h %attr(755,root,root) %{_libdir}/libptef-bash.so %attr(755,root,root) %dir %{_datadir}/ptef %attr(644,root,root) %{_datadir}/ptef/builtins.bash %attr(644,root,root) %{_mandir}/man3/ptef_runner.3* %attr(644,root,root) %{_mandir}/man3/ptef_report.3* %attr(644,root,root) %{_mandir}/man3/ptef_mklog.3* %attr(755,root,root) %dir %{_docdir}/ptef %attr(644,root,root) %{_docdir}/ptef/ptef.adoc %attr(644,root,root) %{_docdir}/ptef/ptef.html %pycached %{python3_sitelib}/ptef.py