%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}

Summary: Programs that test various rt-features
Name: rt-tests
# These will be setup by the "make rpm" logic
# Version:  __VERSION__
# BuildRequires: __BUILDREQUIRES_NUMA__
# Numa argument to make:  __MAKE_NUMA__
#
Version: __VERSION__
Release: 1%{?dist}
License: GPLv2
Group: Development/Tools
URL: git://git.kernel.org/pub/scm/linux/kernel/git/tglx/rt-tests.git
Source0: %{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
Obsoletes: cyclictest signaltest pi_tests
ExclusiveArch: x86_64
BuildRequires: __BUILDREQUIRES_NUMA__ python

%description
rt-tests is a set of programs that test and measure various components of
real-time kernel behavior. This package measures timer, signal, and hardware
latency. It also tests the functioning of priority-inheritance mutexes.

%prep
%setup -qn rt-tests

%build
make __MAKE_NUMA__

%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/%{python_sitelib}
make DESTDIR=$RPM_BUILD_ROOT prefix=/usr install

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root,-)
%{python_sitelib}/hwlatdetect.py*
/usr/bin/cyclictest
/usr/bin/pi_stress
/usr/bin/signaltest
/usr/bin/hwlatdetect
/usr/bin/rt-migrate-test
/usr/bin/pip_stress
/usr/bin/ptsematest
/usr/bin/sendme
/usr/bin/sigwaittest
/usr/bin/svsematest
/usr/bin/pmqtest
/usr/bin/hackbench
/usr/src/backfire/backfire.c
/usr/src/backfire/Makefile
%doc
/usr/share/man/man8/cyclictest.8.gz
/usr/share/man/man8/pi_stress.8.gz
/usr/share/man/man8/hwlatdetect.8.gz
/usr/share/man/man4/backfire.4.gz
/usr/share/man/man8/ptsematest.8.gz
/usr/share/man/man8/sendme.8.gz
/usr/share/man/man8/sigwaittest.8.gz
/usr/share/man/man8/svsematest.8.gz
/usr/share/man/man8/pmqtest.8.gz
/usr/share/man/man8/hackbench.8.gz

%changelog
 * Tue Feb 17 2015 Clark Williams <williams@redhat.com> - 0.91-1
- From Boris Egorov <egorov@linux.com>
  - rt-migrate-test: exit early if nr_runs is non-positive
  - rt-migrate-test: use variables instead of macros
- From Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
  - pi_stress: remove timestamp of compilation from version output
- rt-migrate-test: make sure input parameters are converted to correct units
- rt-migrate-test: sanity check --prio value

* Tue Jan 27 2015 Clark Williams <williams@redhat.com> - 0.90-1
- pip_stress: parameterize usleep value to work-around platform issues
- From Daniel Wagner <daniel.wagner@bmw-carit.de>:
  - pi_stress: Store schedule attributes per thread
  - rt-utils: Add gettid()
  - rt-utils: Add helper to parse/print scheduling policies
  - rt-sched: Add sched_setattr/sched_getattr API
  - pi_stress: Use error.h for logging and debugging
  - error: Add debug() function
  - pi_stress: Remove unused TIMER_SIGNAL definition
  - rt-tests.h: Remove unused header file
  - hackbench: Don't re-assign context for each fd
- From Joakim Hernberg <jbh@alchemy.lu>:
  - cyclictest: make affinity option only use number of online cpus
- From John Kacur <jkacur@redhat.com>:
  - cyclictest: Add long option --laptop to preserve battery power
  - cyclictest: Fix help for long options only
  - cyclictest: Change the output from function sighand() to stderr
  - cyclictest: Always print an err message if write of 0 to cpu-dma_latency fails
  - rt_numa.h: Suppress discards 'const' qualifier warning
  - lib: Rework err_msg_n to output strerror after message
- From Alexey Brodkin <Alexey.Brodkin@synopsys.com>:
  - Makefile: allow building selected tests with non-NPTL toolchain

* Sun Mar 30 2014 Clark Williams <williams@redhat.com> - 0.89-1
- clean up debugging comments and printfs from last release
- ran hwlatdetect.py through 2to3, works for both python2 and 3

* Fri Mar 28 2014 Clark Williams <williams@redhat.com> - 0.88-1
- From Uwe Kleine-König <u.kleine-koenig@pengutronix.de>:
  - cyclictest: Fix tracemark output when the latency threshold is hit on ARM
- From Gary S. Robertson <gary.robertson@linaro.org>:
  - cyclictest: Restore CPU affinity function for non-NUMA builds
  - cyclictest: Don't offer --numa option when unavailable

* Wed Dec 11 2013 Clark Williams <williams@redhat.com> - 0.87-1
- From Aaron Fabbri <ajfabbri@gmail.com>:
  - cyclictest: CPU affinity now takes arbitrary set of cpus

* Fri Nov 15 2013 Clark Williams <williams@redhat.com> - 0.86-1
- cyclictest: allow break threshold without doing any tracing
- cyclictest: add named fifo for statistics
- from  John Kacur <jkacur@redhat.com>:
  - cyclictest: Align option fixes
  - Makefile: Don't tag files in dir BUILD from rpm builds
  - Makefile: Add BUILDROOT and SPECS to the dirs to remove for distclean
  - Makefile: Add tmp dir to distclean and "make release" call distclean
  - Makefile: Don't tag tmp files created when making a release
- from Nicholas Mc Guire <der.herr@hofr.at>:
  - cyclictest: add align thread wakeup times option
- cyclictest: modify option handling to use enumerated types
- from Sebastian Andrzej Siewior <bigeasy@linutronix.de>:
  - hackbench: init child's struct before using it
- from Jim Somerville <Jim.Somerville@windriver.com>:
  - cyclictest: finish removal of 1 second first loops
- from Frank Rowand <frank.rowand@am.sony.com>:
  - rt-tests: NUMA optional for make rpm
  - cyclictest: white space cleanup

* Tue Nov 13 2012 Clark Williams <williams@redhat.com> - 0.85-1
- [cyclictest] add tracemark function back to breaktrace logic
- from Frank Rowand <frank.rowand@am.sony.com>:
  - [cyclictest] report large measured clock latency
  - [cyclictest] cleanup getopt_long() parameters
- from John Kacur <jkacur@redhat.com>:
  - [Makefile] add CPPFLAGS to pattern rule for dependencies
  - [gitignore] exclude patches and .a archives
- from Uwe Kleine-König <u.kleine-koenig@pengutronix.de>:
  - Makefile: separate CFLAGS and CPPFLAGS
  - have printf use %s format for strings
- from Bhavesh Davda <bhavesh@vmware.com>:
  - cyclictest: histogram overflow instance tracking
  - cyclictest: whitespace cleanup

* Wed May  9 2012 Clark Williams <williams@redhat.com> - 0.84-1
- [cyclictest] added -Q/--priospread option to
- from Markus Kohlhase <mail@markus-kohlhase.de>
  - [docs] added description from osadl.org
- from Darren Hart <dvhart@linux.intel.com>
  - Makefile: Support user supplied CFLAGS and LDFLAGS
- from Steven Rostedt <rostedt@goodmis.org>
  - rt-tests: Update rt-migrate-test to use ftrace infrastructure
- from John Kacur <jkacur@redhat.com>
  - .gitignore: differentiate between program names and directories
  - pi_stress: Check the status of sched_getaffinity
  - Makefile: Introduce a static library
  - Move info, warn, and fatal functions to error.[ch]
  - install: Fix failed to create symbolic link hwlatdetect file exists
  - cyclictest: Make cyclictest fail if it cannot run with requested priority
- from Frank Rowand <frank.rowand@am.sony.com>
  - cyclictest: segfault with '-a'
  - cyclictest: avoid unneeded warning
  - cyclictest: warn of interaction between '-a', '--smp', and '--numa'
  - Makefile: get machinetype from compiler instead of uname
  - cyclictest: incorrect first latency value for --verbose option
  - cyclictest: printf format compile warning

* Mon Sep 26 2011 Clark Williams <williams@redhat.com> - 0.83-1
- modified Makefile to be smarter about building with NUMA

* Wed Sep 21 2011 Clark Williams <williams@redhat.com> - 0.82-1
- fix print that causes error in histogram processing

* Tue Sep 20 2011 Clark Williams <williams@redhat.com> - 0.81-1
- cleaned up previous hack for /dev/cpu_dma_latency interface

* Tue Sep 20 2011 Clark Williams <williams@redhat.com> - 0.80-1
- use /dev/cpu_dma_latency interface to prevent cstate transitions
  in cyclictest

* Thu Sep 15 2011 Clark Williams <williams@redhat.com> - 0.79-1
- added signal_workers routine to hackbench
- added -F/--fifo option to hackbench

* Wed Sep 14 2011 Clark Williams <williams@redhat.com> - 0.78-1
- modified hackebench signal logic

* Fri Sep  9 2011 Clark Williams <williams@redhat.com> - 0.77-1
- removed tracemark functions (too much contention on multiprocessors)

* Wed Sep  7 2011 Clark Williams <williams@redhat.com> - 0.76-1
- only turn on /proc/sys/kernel/ftrace_enabled for a tracer that
  needs it
- make sure to set current_tracer to function for -f switch

* Fri Sep  2 2011 Clark Williams <williams@redhat.com> - 0.75-1
- added utility routines for mounting debugfs and event/tracing manipulation
- from Steven Rostedt <srostedt@redhat.com>:
  - allow events for all tracers
  - Have -I and -P together also be -B
  - do not touch tracing_thresh
  - only check file descriptor in tracemark() function
  - use interval on first loop instead of 1 second
  - allow tracemark() to take variable args

* Thu Aug 18 2011 Clark Williams <williams@redhat.com> - 0.74-1
- changes to deal with 3.0 kernel
- fixed buildrequires in specfile for Python
- fixed spelling error in printf in cyclictest
- from John Kacur <jkacur@redhat.com>
  - Make the function header style consistent with the rest of cyclictest.
  - Spelling clean-ups
- from Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
  - fix possible buffer overflow in string handling

* Mon May  9 2011 Clark Williams <williams@redhat.com> - 0.73-1
- fixed signal handling in hackbench (avoid thousands of zombies)
- from Geunsik Lim <geunsik.lim@samsung.com>
  - fix incorrect wakeup interface in cyclictest
- from Wolfram Sang <w.sang@pengutronix.de>
  - Simplify Makefile using -D option to install
- from Carsten Emde <C.Emde@osadl.org>
  - add histogram summary column option (-H) to cyclictest
- from Daniel Sangorrin <daniel.sangorrin@gmail.com>
  - fix sched_setaffinity type error when building with UCLIB
- from Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
  - install backfire's Makefile
  - modernize backfire's Makefile

* Fri Jun 25 2010 Clark Williams <williams@redhat.com> - 0.72-1
- changed 'diff' variable in timerthread() routine to be unsigned
  64-bit to avoid overflow issues in debugging
- included <stdint.h> and changed all 'long long' declarations to
  use uint64_t and int64_t

* Tue May 18 2010 Clark Williams <williams@redhat.com> - 0.71-1
- from Michal Schmit <mschmidt@redhat.com>:
  - fix accumulating overruns in periodic timer mode

* Fri Apr  9 2010 Clark Williams <williams@redhat.com> - 0.70-1
- from Olaf Hering <olaf@aepfle.de>
  - skip python dependency during install if python not available

* Fri Apr  9 2010 Clark Williams <williams@redhat.com> - 0.69-1
- fix bus error in cyclictest on NUMA systems with more than 16 cores
- reset default cyclictest policy to SCHED_OTHER
- from Carsten Emde <C.Emde@osadl.org>
  - add pmqest program for testing posix message queue performance
  - misc doc fixes

* Fri Mar 19 2010 Clark Williams <williams@redhat.com> - 0.68-1
- fix tracing difference between 2.6.24 and 2.6.33

* Tue Mar 16 2010 Clark Williams <williams@redhat.com> - 0.67-1
- modified specfile to add hackbench
- modified internal ftrace logic for correct tracing
- Changed rpm %description field to be more descriptive (BZ# 572323)
- from Carsten Emde <c.emde@osadl.org>
  - added smp option to svsematest
  - fixed policy display in cyclictest
- from John Kacur <jkacur@redhat.com>
  - changed default scheduling policy to SCHED_FIFO
  - fixed spelling mistake on cyclictest man page
  - use symbolic names for scheduling policy
  - reverted commit 582be2a52c43801a10d318de7491f1cc7243d5cf to
    deal with bug in priority distribution
- from Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
  - renamed pip to pip_stress
  - eliminated use of temp files in dependency generation
  - install backfire.c module source in /usr/src/backfire
- from David Sommerseth <davids@redhat.com>
  - added new-and-improved hackbench to rt-tests

* Mon Feb 15 2010 Clark Williams <williams@redhat.com> - 0.66-1
- fix incorrect usage of sched_setscheduler in check_privs()

* Mon Feb  8 2010 Clark Williams <williams@redhat.com> - 0.65-1
- add workaround to hwlatdetect for incorrect initializer in
  smi_detector.ko

* Fri Jan 29 2010 Clark Williams <williams@redhat.com> - 0.64-1
- from John Kacur <jkacur@redhat.com>
  - automatic dependency generation
  - style cleanups
  - libnuma code cleanups
  - add copyright to rt_numa.h

* Wed Jan 27 2010 Clark Williams <williams@redhat.com> - 0.63-1
- added support for libnuma V1 API

* Tue Jan 26 2010 Clark Williams <williams@redhat.com> - 0.62-1
- added NUMA option
- patch from Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
  to clarify source copyrights
- moved hwlatdetect to python site-library

* Wed Jan 13 2010 Clark Williams <williams@redhat.com> - 0.61-1
- added --smp/-S option to setup for basic SMP testing
- added warn() and fatal() utility functions

* Tue Dec 29 2009 Clark Williams <williams@redhat.com> - 0.60-1
- John Kacur <jkacur@redhat.com>:
  - added pip test (process based priority inheritance)
  - refactored some error routines into the common library
  - added 'make tags' option to Makefile
- Michael Olbrich <m.olbrich@pengutronix.de> added an unbuffered
  output option to cyclictest (-u/--unbuffered)

* Mon Dec 21 2009 Clark Williams <williams@redhat.com> - 0.59-1
- deleted classic_pi
- David Sommerseth <davids@redhat.com>:
  - added help text for -M (refresh-on-max) option for cyclictest
  - fixed parsing of --mlockall in signaltest
- Carsten Emde <C.Emde@osadl.org> provided a better explaination
  for using the kernel module with the backfire program
- John Kacur <jkacur@redhat.com> cleaned up the trailing comments
  on the guard macros in src/lib/rt-utils.h

* Mon Dec 21 2009 Clark Williams <williams@redhat.com> - 0.58-1
- merged jkacur's portable getcpu() code
- fixed inadvertent conversion of some source to DOS text files

* Mon Dec 14 2009 Clark Williams <williams@redhat.com> - 0.57-1
- John Kacur <jkacur@redhat.com> folded in Carsten Emde's tests
    - ptsematest
    - sigwaittest
    - svsematest
    - sendme
- Carsten Emde <carsten.emde@osadl.org> created a utility library
  moving functions from cyclictest into src/lib/rt-utils.c
- Makefile cleanups from jkacur

* Thu Dec 10 2009 Clark Williams <williams@redhat.com> - 0.56-1
- cyclictest: added code to print break thread id with -b

* Thu Nov 19 2009 Clark Williams <williams@redhat.com> - 0.55-1
- pi_stress: cosmetic newline added
- fixes from John Kacur <jkacur@redhat.com>
  - pi_stress: Remove racy state variables that cause watchdog to trigger
  - pi_stress: Check whether quiet is set, before taking shutdown_mtx
  - pi_stress: Use a pthread_mutex_t for the global variable shutdown

* Tue Nov 17 2009 Clark Williams <williams@redhat.com> - 0.54-1
- patches from John Kacur <jkacur@redhat.com>
  - fix source style issues in pi_stress
  - add a DEBUG option to the Makefile
  - use CFLAGS for C compiler options
  - label targets as PHONY if not generating actual file
- patch to remove rt-tests.spec from .PHONY in Makefile

* Mon Nov 16 2009 Clark Williams <williams@redhat.com> - 0.53-2
- added back missing dist tag for release

* Tue Oct  6 2009 Clark Williams <williams@redhat.com> - 0.53-1
- fixed incorrect format string in hwlatdetect.py
- added docs/release-checklist.txt

* Mon Sep 21 2009 Clark Williams <williams@redhat.com> - 0.52-1
- fixes and cleanups to pi_stress from jkacur
- added rostedt's rt-migrate-test

* Thu Sep  3 2009 Clark Williams <williams@redhat.com> - 0.51-1
- two manpage fixes from Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
- added -M option from Arnaldo Carvahlo de Melo <acme@redhat.com>
  (for use on low-bandwidth connections, defer's update until new max hit)

* Fri Jul 24 2009 Clark Williams <williams@redhat.com> - 0.50-2
- minor patch to fix reporting option of hwlatdetect

* Thu Jul 16 2009 Clark Williams <williams@redhat.com> - 0.50-1
- patch to cyclictest from Sebastian Andrzej Siewior <bigeasy@linutronix.de>
  to process options before checking for root user
- patch to cyclictest from Sebastian Andrzej Siewior <bigeasy@linutronix.de>
  to exit with proper error code on exit
- added scripts/do-git-push script
- added push target to Makefile
- rewrite of hwlatdetect script to handle old smi_detector module

* Sun Jul  5 2009 Clark Williams <williams@redhat.com> - 0.47-1
- patch from GeunSik Lim <leemgs1@gmail.com> to reorder options for readability
- patch from GeunSik Lim <leemgs1@gmail.com> to add --policy option
- patch from GeunSik Lim <leemgs1@gmail.com> to clarify -h option usage
- modified --policy to take scheduler policy name instead of integers

* Thu Jul  2 2009 Clark Williams <williams@redhat.com> - 0.46-1
- added fix from Daniel Gollub <dgollub@suse.de> (doomsday latency)

* Thu Jul  2 2009 Clark Williams <williams@redhat.com> - 0.45-1
- bugfix from Daniel Gollub <dgollub@suse.de> (fix cyclictest segfault)
- cyclictest format change from Sven-Thorsten Dietrich <sdietrich@suse.de>
- added help target to Makefile

* Tue Jun 30 2009 Clark Williams <williams@redhat.com> - 0.44-1
- fix to specfile (renamed smidetect to hwlatdetect)
- added code to hwlatdetect allow setting window and width properly

* Thu Jun 25 2009 Clark Williams <williams@redhat.com> - 0.43-1
- manpage fixes from Uwe Kleine-Konig <u.kleine-koenig@pengutronix.de>

* Fri Jun 12 2009 Clark Williams <williams@redhat.com> - 0.42-1
- renamed smidetect -> hwlatdetect

* Thu May 28 2009 Clark Williams <williams@redhat.com> - 0.41-1
- added Stefan Agner's patch to fix calculating time difference
  when delta is bigger than 2147 seconds

* Wed May 13 2009 Clark Williams <williams@redhat.com> - 0.40-1
- added smidetect

* Thu Jan 03 2008 Clark Williams <williams@redhat.com> - 0.18-1
- Initial build.
